UniWidgets  1.0.0
macros.h
00001 #ifndef _MACROS_GLADE_H
00002 #define _MACROS_GLADE_H
00003 
00004 #include <gladeui/glade.h>
00005 #include <uwidgets/UWidgets.h>
00006 #include <usvgwidgets/USVGWidgets.h>
00007 #include <objects/Objects.h>
00008 #include <components/Components.h>
00009 #include <typical/Typical.h>
00010 
00011 using namespace UniWidgets;
00012 
00013 static void gw_set_default(GladeWidget *gw)
00014 {
00015     /* HACK to set default values from catalog
00016      * It isn't set for some reason
00017      * I hope later we will find the problem
00018      */
00019 
00020     GList *l;
00021 
00022     for (l = gw->properties; l && l->data; l = l->next)
00023         {
00024             GladeProperty *prop  = GLADE_PROPERTY(l->data);
00025             glade_widget_property_reset (gw, prop->klass->id);
00026         }
00027 }
00028 
00029 
00030 #define GLADE_UVOID_FUNCS(uname, cname)\
00031 extern "C" GType cname##_get_type(); \
00032 extern "C" void cname##_wrap_new(GObject* object);\
00033 \
00034 void cname##_init()\
00035 {\
00036     UObj_Get_Type<uname>();\
00037 }\
00038 \
00039 extern "C" GType gtkmm___custom_object_##cname##_get_type()\
00040 {\
00041     GType type = UObj_Get_Type<uname>();\
00042     return type;\
00043 }\
00044 \
00045 extern "C" void cname##_postcreate(GladeWidgetAdaptor *adaptor, GObject *object, GladeCreateReason reason)\
00046 {\
00047     uwrap<uname>(object);\
00048     if (reason == GLADE_CREATE_USER)\
00049     {\
00050         GladeWidget* gw = glade_widget_get_from_gobject(object);\
00051         gw_set_default(gw);\
00052     }\
00053 }
00054 
00055 #define GLADE_DEFAULT_FUNCS(name, cname)\
00056 extern "C" GType cname##_get_type(); \
00057 extern "C" void cname##_wrap_new(GObject* object);\
00058 \
00059 void cname##_init()\
00060 {\
00061     Obj_Get_Type<name>();\
00062 }\
00063 \
00064 extern "C" GType gtkmm___custom_object_##cname##_get_type()\
00065 {\
00066     GType type = Obj_Get_Type<name>();\
00067     return type;\
00068 }\
00069 \
00070 extern "C" void cname##_postcreate(GladeWidgetAdaptor *adaptor, GObject *object, GladeCreateReason reason)\
00071 {\
00072     uwrap<name>(object);\
00073     if (reason == GLADE_CREATE_USER)\
00074     {\
00075         GladeWidget* gw = glade_widget_get_from_gobject(object);\
00076         gw_set_default(gw);\
00077     }\
00078 }
00079 
00080 #define GLADE_SIMPLEOBJECT_FUNCS(uname, cname)\
00081 extern "C" GType cname##_get_type(); \
00082 extern "C" void cname##_wrap_new(GObject* object);\
00083 \
00084 void cname##_init()\
00085 {\
00086     SimpleObject_Get_Type<uname>();\
00087 }\
00088 \
00089 extern "C" GType gtkmm___custom_object_##cname##_get_type()\
00090 {\
00091     GType type = SimpleObject_Get_Type<uname>();\
00092     return type;\
00093 }\
00094 \
00095 extern "C" void cname##_postcreate(GladeWidgetAdaptor *adaptor, GObject *object, GladeCreateReason reason)\
00096 {\
00097     uwrap<uname>(object);\
00098     if (reason == GLADE_CREATE_USER)\
00099     {\
00100         GladeWidget* gw = glade_widget_get_from_gobject(object);\
00101         gw_set_default(gw);\
00102     }\
00103 }
00104 
00105 #define GLADE_GROUPOBJECT_FUNCS(uname, cname)\
00106 extern "C" GType cname##_get_type(); \
00107 extern "C" void cname##_wrap_new(GObject* object);\
00108 \
00109 void cname##_init()\
00110 {\
00111     GroupObject_Get_Type<uname>();\
00112 }\
00113 \
00114 extern "C" GType gtkmm___custom_object_##cname##_get_type()\
00115 {\
00116     GType type = GroupObject_Get_Type<uname>();\
00117     return type;\
00118 }\
00119 \
00120 extern "C" void cname##_postcreate(GladeWidgetAdaptor *adaptor, GObject *object, GladeCreateReason reason)\
00121 {\
00122     uwrap<uname>(object);\
00123     if (reason == GLADE_CREATE_USER)\
00124     {\
00125         GladeWidget* gw = glade_widget_get_from_gobject(object);\
00126         gw_set_default(gw);\
00127     }\
00128 }
00129 
00130 #endif