CoreGTK  3.10.0
CoreGTK is an Objective-C language binding for the GTK+ widget toolkit
 All Classes Functions Variables
CGTKBase.m
1 /*
2  * CGTKBase.m
3  * This file is part of CoreGTK
4  *
5  * Copyright (C) 2015 - 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, 2015. 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
GtkWidget * WIDGET()
Definition: CGTKBase.m:60
GObject * GOBJECT()
Definition: CGTKBase.m:82
GObject * __gObject
Definition: CGTKBase.h:47
void setGObject:(GObject *obj)
Definition: CGTKBase.m:65