CoreGTK 3.22.0 CoreGTK is an Objective-C language binding for the GTK+ widget toolkit

CGTKBase.m
1 /*
2 * CGTKBase.m
3 * This file is part of CoreGTK
4 *
5 * Copyright (C) 2017 - Tyler Burton
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 */
21
22 /*
23 * Modified by the CoreGTK Team, 2017. See the AUTHORS file for a
24 * list of people on the CoreGTK Team.
25 * See the ChangeLog files for a list of changes.
26 *
27 */
28
29 /*
30 * Objective-C imports
31 */
32 #import "CoreGTK/CGTKBase.h"
33
34 @implementation CGTKBase
35
36 +(CGTKBase *)withGtkWidget:(GtkWidget *)obj
37 {
38 CGTKBase *retVal = [[CGTKBase alloc] initWithGObject:(GObject *)obj];
39 return [retVal autorelease];
40 }
41
42 +(CGTKBase *)withGObject:(GObject *)obj
43 {
44 CGTKBase *retVal = [[CGTKBase alloc] initWithGObject:obj];
45 return [retVal autorelease];
46 }
47
48 -(id)initWithGObject:(GObject *)obj
49 {
50 self = [super init];
51
52 if(self)
53 {
54 [self setGObject:obj];
55 }
56
57 return self;
58 }
59
60 -(GtkWidget *)WIDGET
61 {
62 return GTK_WIDGET(__gObject);
63 }
64
65 -(void)setGObject:(GObject *)obj
66 {
67 if(__gObject != NULL)
68 {
69 // Decrease the reference count on the previously stored GObject
70 g_object_unref(__gObject);
71 }
72
73 __gObject = obj;
74
75 if(__gObject != NULL)
76 {
77 // Increase the reference count on the new GObject
78 g_object_ref(__gObject);
79 }
80 }
81
82 -(GObject *)GOBJECT
83 {
84 return __gObject;
85 }
86
87 -(void)dealloc
88 {
89 if(__gObject != NULL)
90 {
91 // Decrease the reference count on the previously stored GObject
92 g_object_unref(__gObject);
93 __gObject = NULL;
94 }
95 [super dealloc];
96 }
97
98 @end
-[CGTKBase WIDGET]
GtkWidget * WIDGET()
Definition: CGTKBase.m:60
-[CGTKBase GOBJECT]
GObject * GOBJECT()
Definition: CGTKBase.m:82
CGTKBase
Definition: CGTKBase.h:43
CGTKBase::__gObject
GObject * __gObject
Definition: CGTKBase.h:48
-[CGTKBase setGObject:]
void setGObject:(GObject *obj)
Definition: CGTKBase.m:65