New templates, can handle parents now

This commit is contained in:
Jesse van den Kieboom 2005-11-15 12:03:14 +00:00
parent b99af17046
commit 4306ef8d88
2 changed files with 47 additions and 47 deletions

View File

@ -1,11 +1,10 @@
#include <glib-object.h> #include "{namespace}-{template-}.h"
#include "gm-{template-}.h"
#define GM_{TEMPLATE}_GET_PRIVATE(object)( \ #define {NAMESPACE}_{TEMPLATE}_GET_PRIVATE(object)( \
G_TYPE_INSTANCE_GET_PRIVATE((object), \ G_TYPE_INSTANCE_GET_PRIVATE((object), \
GM_TYPE_{TEMPLATE}, Gm{Template}Private)) {NAMESPACE}_TYPE_{TEMPLATE}, {Namespace}{Template}Private))
struct _Gm{Template}Private { struct _{Namespace}{Template}Private {
}; };
@ -16,44 +15,44 @@ enum {
NUM_SIGNALS NUM_SIGNALS
}; };
static guint gm_{template_}_signals[NUM_SIGNALS] = {0};*/ static guint {namespace}_{template_}_signals[NUM_SIGNALS] = {0};*/
G_DEFINE_TYPE(Gm{Template}, gm_{template_}, G_TYPE_OBJECT) G_DEFINE_TYPE({Namespace}{Template}, {namespace}_{template_}, {PARENT_NAMESPACE}_TYPE_{PARENT})
static void static void
gm_{template_}_finalize(GObject *object) { {namespace}_{template_}_finalize(GObject *object) {
//Gm{Template} *obj = GM_{TEMPLATE}(object); //{Namespace}{Template} *obj = {NAMESPACE}_{TEMPLATE}(object);
G_OBJECT_CLASS(gm_{template_}_parent_class)->finalize(object); G_OBJECT_CLASS({namespace}_{template_}_parent_class)->finalize(object);
} }
static void static void
gm_{template_}_class_init(Gm{Template}Class *klass) { {namespace}_{template_}_class_init({Namespace}{Template}Class *klass) {
GObjectClass *object_class = G_OBJECT_CLASS(klass); GObjectClass *object_class = G_OBJECT_CLASS(klass);
object_class->finalize = gm_{template_}_finalize; object_class->finalize = {namespace}_{template_}_finalize;
/*gm_{template_}_signals[PROTO] = /*{namespace}_{template_}_signals[PROTO] =
g_signal_new("proto", g_signal_new("proto",
G_OBJECT_CLASS_TYPE(object_class), G_OBJECT_CLASS_TYPE(object_class),
G_SIGNAL_RUN_LAST, G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET(Gm{Template}Class, proto), G_STRUCT_OFFSET({Namespace}{Template}Class, proto),
NULL, NULL, NULL, NULL,
g_cclosure_marshal_VOID__VOID, g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, G_TYPE_NONE,
0);*/ 0);*/
g_type_class_add_private(object_class, sizeof(Gm{Template}Private)); g_type_class_add_private(object_class, sizeof({Namespace}{Template}Private));
} }
static void static void
gm_{template_}_init(Gm{Template} *obj) { {namespace}_{template_}_init({Namespace}{Template} *obj) {
obj->priv = GM_{TEMPLATE}_GET_PRIVATE(obj); obj->priv = {NAMESPACE}_{TEMPLATE}_GET_PRIVATE(obj);
} }
Gm{Template} * {Namespace}{Template} *
gm_{template_}_new() { {namespace}_{template_}_new() {
Gm{Template} *obj = GM_{TEMPLATE}(g_object_new(GM_TYPE_{TEMPLATE}, NULL)); {Namespace}{Template} *obj = {NAMESPACE}_{TEMPLATE}(g_object_new({NAMESPACE}_TYPE_{TEMPLATE}, NULL));
return obj; return obj;
} }

View File

@ -1,56 +1,57 @@
#ifndef __GM_{TEMPLATE}_H__ #ifndef __{NAMESPACE}_{TEMPLATE}_H__
#define __GM_{TEMPLATE}_H__ #define __{NAMESPACE}_{TEMPLATE}_H__
#include <glib-object.h> #include <glib-object.h>
#include <gtk/gtk.h>
G_BEGIN_DECLS G_BEGIN_DECLS
/* /*
* Type checking and casting macros * Type checking and casting macros
*/ */
#define GM_TYPE_{TEMPLATE} (gm_{template_}_get_type()) #define {NAMESPACE}_TYPE_{TEMPLATE} ({namespace}_{template_}_get_type())
#define GM_{TEMPLATE}(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \ #define {NAMESPACE}_{TEMPLATE}(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \
GM_TYPE_{TEMPLATE}, Gm{Template})) {NAMESPACE}_TYPE_{TEMPLATE}, {Namespace}{Template}))
#define GM_{TEMPLATE}_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),\ #define {NAMESPACE}_{TEMPLATE}_CONST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),\
GM_TYPE_{TEMPLATE}, Gm{Template} const)) {NAMESPACE}_TYPE_{TEMPLATE}, {Namespace}{Template} const))
#define GM_{TEMPLATE}_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), \ #define {NAMESPACE}_{TEMPLATE}_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), \
GM_TYPE_{TEMPLATE}, Gm{Template}Class)) {NAMESPACE}_TYPE_{TEMPLATE}, {Namespace}{Template}Class))
#define GM_IS_{TEMPLATE}(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ #define {NAMESPACE}_IS_{TEMPLATE}(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), \
GM_TYPE_{TEMPLATE})) {NAMESPACE}_TYPE_{TEMPLATE}))
#define GM_IS_{TEMPLATE}_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \ #define {NAMESPACE}_IS_{TEMPLATE}_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \
GM_TYPE_{TEMPLATE})) {NAMESPACE}_TYPE_{TEMPLATE}))
#define GM_{TEMPLATE}_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), \ #define {NAMESPACE}_{TEMPLATE}_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), \
GM_TYPE_{TEMPLATE}, Gm{Template}Class)) {NAMESPACE}_TYPE_{TEMPLATE}, {Namespace}{Template}Class))
/* Private structure type */ /* Private structure type */
typedef struct _Gm{Template}Private Gm{Template}Private; typedef struct _{Namespace}{Template}Private {Namespace}{Template}Private;
/* /*
* Main object structure * Main object structure
*/ */
typedef struct _Gm{Template} Gm{Template}; typedef struct _{Namespace}{Template} {Namespace}{Template};
struct _Gm{Template} { struct _{Namespace}{Template} {
GObject parent; {Parent_Namespace}{Parent} parent;
/*< private > */ /*< private > */
Gm{Template}Private *priv; {Namespace}{Template}Private *priv;
}; };
/* /*
* Class definition * Class definition
*/ */
typedef struct _Gm{Template}Class Gm{Template}Class; typedef struct _{Namespace}{Template}Class {Namespace}{Template}Class;
struct _Gm{Template}Class { struct _{Namespace}{Template}Class {
GObjectClass parent_class; {Parent_Namespace}{Parent}Class parent_class;
/* Signals /* Signals
void (* proto) (Gm{Template} *obj); */ void (* proto) ({Namespace}{Template} *obj); */
}; };
GType gm_{template_}_get_type(void) G_GNUC_CONST; GType {namespace}_{template_}_get_type(void) G_GNUC_CONST;
Gm{Template} *gm_{template_}_new(void); {Namespace}{Template} *{namespace}_{template_}_new(void);
G_END_DECLS G_END_DECLS
#endif /* __GM_{TEMPLATE}_H__ */ #endif /* __{NAMESPACE}_{TEMPLATE}_H__ */