[Gnucash-changes] Stephen Evanchik's GncDenseCal GObject patch.
Derek Atkins
warlord at cvs.gnucash.org
Sat Dec 18 14:04:26 EST 2004
Log Message:
-----------
Stephen Evanchik's GncDenseCal GObject patch.
* src/gnome-utils/gnc-dense-cal.h:
Added #include <glib.h>
Added private member 'disposed' to GncDenseCal struct
Added GNC_TYPE_DENSE_CAL macro
* src/gnome-utils/gnc-dense-cal.c:
Converted the following functions to use GObject:
gnc_dense_cal_get_type,
gnc_dense_cal_class_init
Renamed gnc_dense_cal_destroy to gnc_dense_cal_dispose
Tags:
----
gnucash-gnome2-dev
Modified Files:
--------------
gnucash:
ChangeLog
gnucash/src/gnome-utils:
gnc-dense-cal.c
gnc-dense-cal.h
Revision Data
-------------
Index: ChangeLog
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/ChangeLog,v
retrieving revision 1.1487.2.149
retrieving revision 1.1487.2.150
diff -LChangeLog -LChangeLog -u -r1.1487.2.149 -r1.1487.2.150
--- ChangeLog
+++ ChangeLog
@@ -1,3 +1,16 @@
+2004-12-18 Derek Atkins <derek at ihtfp.com>
+
+ Stephen Evanchik's GncDenseCal GObject patch:
+ * src/gnome-utils/gnc-dense-cal.h:
+ Added #include <glib.h>
+ Added private member 'disposed' to GncDenseCal struct
+ Added GNC_TYPE_DENSE_CAL macro
+ * src/gnome-utils/gnc-dense-cal.c:
+ Converted the following functions to use GObject:
+ gnc_dense_cal_get_type,
+ gnc_dense_cal_class_init
+ Renamed gnc_dense_cal_destroy to gnc_dense_cal_dispose
+
2004-12-17 Derek Atkins <derek at ihtfp.com>
Stephen Evanchik's GNCDateEdit GObject patch:
Index: gnc-dense-cal.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome-utils/gnc-dense-cal.c,v
retrieving revision 1.11.4.8
retrieving revision 1.11.4.9
diff -Lsrc/gnome-utils/gnc-dense-cal.c -Lsrc/gnome-utils/gnc-dense-cal.c -u -r1.11.4.8 -r1.11.4.9
--- src/gnome-utils/gnc-dense-cal.c
+++ src/gnome-utils/gnc-dense-cal.c
@@ -101,7 +101,7 @@
static void gnc_dense_cal_class_init (GncDenseCalClass *class);
static void gnc_dense_cal_init (GncDenseCal *dcal);
static void gnc_dense_cal_finalize (GObject *object);
-static void gnc_dense_cal_destroy (GtkObject *object);
+static void gnc_dense_cal_dispose (GObject *object);
static void gnc_dense_cal_realize (GtkWidget *widget);
static void gnc_dense_cal_draw_to_buffer( GncDenseCal *dcal );
static gint gnc_dense_cal_expose( GtkWidget *widget,
@@ -200,43 +200,43 @@
}
-GtkType
+GType
gnc_dense_cal_get_type ()
{
- static GtkType dense_cal_type = 0;
+ static GType dense_cal_type = 0;
- if (!dense_cal_type)
- {
- static const GtkTypeInfo dense_cal_info =
- {
- "GncDenseCal",
- sizeof (GncDenseCal),
+ if (dense_cal_type == 0) {
+ static const GTypeInfo dense_cal_info = {
sizeof (GncDenseCalClass),
- (GtkClassInitFunc) gnc_dense_cal_class_init,
- (GtkObjectInitFunc) gnc_dense_cal_init,
- /* reserved_1 */ NULL,
- /* reserved_1 */ NULL,
- (GtkClassInitFunc) NULL
- };
-
- dense_cal_type =
- gtk_type_unique (GTK_TYPE_WIDGET, &dense_cal_info);
+ NULL,
+ NULL,
+ (GClassInitFunc) gnc_dense_cal_class_init,
+ NULL,
+ NULL,
+ sizeof (GncDenseCal),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) gnc_dense_cal_init,
+ NULL
+ };
+
+ dense_cal_type = g_type_register_static(GTK_TYPE_WIDGET,
+ "GncDenseCal",
+ &dense_cal_info, 0);
}
return dense_cal_type;
}
static void
-gnc_dense_cal_class_init (GncDenseCalClass *class)
+gnc_dense_cal_class_init (GncDenseCalClass *klass)
{
GObjectClass *object_class;
- GtkObjectClass *gtkobject_class;
GtkWidgetClass *widget_class;
- object_class = G_OBJECT_CLASS (class);
- gtkobject_class = GTK_OBJECT_CLASS (class);
- widget_class = GTK_WIDGET_CLASS (class);
- parent_class = g_type_class_peek_parent (class);
+ object_class = G_OBJECT_CLASS (klass);
+ widget_class = GTK_WIDGET_CLASS (klass);
+
+ parent_class = g_type_class_peek_parent (klass);
gnc_dense_cal_signals[MARKS_LOST_SIGNAL] =
g_signal_new (MARKS_LOST_SIGNAL_NAME,
@@ -249,7 +249,8 @@
0);
object_class->finalize = gnc_dense_cal_finalize;
- gtkobject_class->destroy = gnc_dense_cal_destroy;
+ object_class->dispose = gnc_dense_cal_dispose;
+
widget_class->realize = gnc_dense_cal_realize;
widget_class->expose_event = gnc_dense_cal_expose;
widget_class->size_request = gnc_dense_cal_size_request;
@@ -263,6 +264,7 @@
{
gboolean colorAllocSuccess;
+ dcal->disposed = FALSE;
dcal->initialized = FALSE;
dcal->markData = NULL;
dcal->numMarks = 0;
@@ -471,7 +473,7 @@
}
static void
-gnc_dense_cal_destroy (GtkObject *object)
+gnc_dense_cal_dispose (GObject *object)
{
int i;
GncDenseCal *dcal;
@@ -480,6 +482,11 @@
dcal = GNC_DENSE_CAL(object);
+ if(dcal->disposed)
+ return;
+
+ dcal->disposed = TRUE;
+
if ( GTK_WIDGET_REALIZED( dcal->transPopup ) ) {
gtk_widget_hide( GTK_WIDGET(dcal->transPopup) );
gtk_widget_destroy( GTK_WIDGET(dcal->transPopup) );
@@ -511,8 +518,8 @@
/* mark data */
gdc_free_all_mark_data( dcal );
- if (GTK_OBJECT_CLASS (parent_class)->destroy)
- (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
+ if (G_OBJECT_CLASS (parent_class)->dispose)
+ (* G_OBJECT_CLASS (parent_class)->dispose) (object);
}
static void
Index: gnc-dense-cal.h
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome-utils/gnc-dense-cal.h,v
retrieving revision 1.3
retrieving revision 1.3.4.1
diff -Lsrc/gnome-utils/gnc-dense-cal.h -Lsrc/gnome-utils/gnc-dense-cal.h -u -r1.3 -r1.3.4.1
--- src/gnome-utils/gnc-dense-cal.h
+++ src/gnome-utils/gnc-dense-cal.h
@@ -26,11 +26,13 @@
#include <gdk/gdk.h>
#include <gtk/gtkadjustment.h>
#include <gtk/gtkwidget.h>
+#include <glib.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
+#define GNC_TYPE_DENSE_CAL (gnc_dense_cal_get_type ())
#define GNC_DENSE_CAL(obj) GTK_CHECK_CAST (obj, gnc_dense_cal_get_type (), GncDenseCal)
#define GNC_DENSE_CAL_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gnc_dense_cal_get_type (), GncDenseCalClass)
#define GNC_IS_DENSE_CAL(obj) GTK_CHECK_TYPE (obj, gnc_dense_cal_get_type ())
@@ -67,7 +69,7 @@
gint numMonths;
gint monthsPerCol;
- gint num_weeks; // computed
+ gint num_weeks; /* computed */
GDateMonth month;
gint year;
@@ -99,6 +101,8 @@
int numMarks;
/* array of GList*s of per-cell markings. */
GList **marks;
+
+ int disposed; /* private */
};
struct _GncDenseCalClass
@@ -111,7 +115,7 @@
gchar *name;
gchar *info;
guint tag;
- // GdkColor markStyle;
+ /* GdkColor markStyle; */
/**
* A GList of the dcal->marks indexes containing this mark.
**/
@@ -119,7 +123,7 @@
} gdc_mark_data;
GtkWidget* gnc_dense_cal_new (void);
-GtkType gnc_dense_cal_get_type (void);
+GType gnc_dense_cal_get_type (void);
void gnc_dense_cal_set_month( GncDenseCal *dcal, GDateMonth mon );
/**
More information about the gnucash-changes
mailing list