00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 static GWENHYWFAR_CB
00015 int Gtk2Gui_WVLayout_SetIntProperty(GWEN_WIDGET *w,
00016 GWEN_DIALOG_PROPERTY prop,
00017 int index,
00018 int value,
00019 int doSignal) {
00020 GtkWidget *g;
00021
00022 g=GTK_WIDGET(GWEN_Widget_GetImplData(w, GTK2_DIALOG_WIDGET_REAL));
00023 assert(g);
00024
00025 switch(prop) {
00026 case GWEN_DialogProperty_Enabled:
00027 gtk_widget_set_sensitive(GTK_WIDGET(g), (value==0)?FALSE:TRUE);
00028 return 0;
00029
00030 case GWEN_DialogProperty_Focus:
00031 gtk_widget_grab_focus(GTK_WIDGET(g));
00032 return 0;
00033
00034 default:
00035 break;
00036 }
00037
00038 DBG_WARN(GWEN_LOGDOMAIN,
00039 "Function is not appropriate for this type of widget (%s)",
00040 GWEN_Widget_Type_toString(GWEN_Widget_GetType(w)));
00041 return GWEN_ERROR_INVALID;
00042 }
00043
00044
00045
00046
00047 static GWENHYWFAR_CB
00048 int Gtk2Gui_WVLayout_GetIntProperty(GWEN_WIDGET *w,
00049 GWEN_DIALOG_PROPERTY prop,
00050 int index,
00051 int defaultValue) {
00052 GtkWidget *g;
00053
00054 g=GTK_WIDGET(GWEN_Widget_GetImplData(w, GTK2_DIALOG_WIDGET_REAL));
00055 assert(g);
00056
00057 switch(prop) {
00058 case GWEN_DialogProperty_Enabled:
00059 return (gtk_widget_get_sensitive(GTK_WIDGET(g))==TRUE)?1:0;
00060
00061 case GWEN_DialogProperty_Focus:
00062 return (gtk_widget_has_focus(GTK_WIDGET(g))==TRUE)?1:0;
00063 return 0;
00064
00065 default:
00066 break;
00067 }
00068
00069 DBG_WARN(GWEN_LOGDOMAIN,
00070 "Function is not appropriate for this type of widget (%s)",
00071 GWEN_Widget_Type_toString(GWEN_Widget_GetType(w)));
00072 return defaultValue;
00073 }
00074
00075
00076
00077 static GWENHYWFAR_CB
00078 int Gtk2Gui_WVLayout_SetCharProperty(GWEN_WIDGET *w,
00079 GWEN_DIALOG_PROPERTY prop,
00080 int index,
00081 const char *value,
00082 int doSignal) {
00083 GtkWidget *g;
00084
00085 g=GTK_WIDGET(GWEN_Widget_GetImplData(w, GTK2_DIALOG_WIDGET_REAL));
00086 assert(g);
00087
00088 DBG_WARN(GWEN_LOGDOMAIN,
00089 "Function is not appropriate for this type of widget (%s)",
00090 GWEN_Widget_Type_toString(GWEN_Widget_GetType(w)));
00091 return GWEN_ERROR_INVALID;
00092 }
00093
00094
00095
00096 static GWENHYWFAR_CB
00097 const char* Gtk2Gui_WVLayout_GetCharProperty(GWEN_WIDGET *w,
00098 GWEN_DIALOG_PROPERTY prop,
00099 int index,
00100 const char *defaultValue) {
00101 GtkWidget *g;
00102
00103 g=GTK_WIDGET(GWEN_Widget_GetImplData(w, GTK2_DIALOG_WIDGET_REAL));
00104 assert(g);
00105
00106 DBG_WARN(GWEN_LOGDOMAIN,
00107 "Function is not appropriate for this type of widget (%s)",
00108 GWEN_Widget_Type_toString(GWEN_Widget_GetType(w)));
00109 return defaultValue;
00110 }
00111
00112
00113
00114 static GWENHYWFAR_CB
00115 int Gtk2Gui_WVLayout_AddChildGuiWidget(GWEN_WIDGET *w, GWEN_WIDGET *wChild) {
00116 GtkWidget *g;
00117 GtkWidget *gChild;
00118 uint32_t cflags;
00119
00120 g=GTK_WIDGET(GWEN_Widget_GetImplData(w, GTK2_DIALOG_WIDGET_REAL));
00121 assert(g);
00122
00123 gChild=GTK_WIDGET(GWEN_Widget_GetImplData(wChild, GTK2_DIALOG_WIDGET_REAL));
00124 assert(gChild);
00125
00126 cflags=GWEN_Widget_GetFlags(wChild);
00127
00128 gtk_box_pack_start(GTK_BOX(g), gChild,
00129 (cflags & GWEN_WIDGET_FLAGS_FILLY)?TRUE:FALSE,
00130 (cflags & GWEN_WIDGET_FLAGS_FILLY)?TRUE:FALSE,
00131 0);
00132
00133 return 0;
00134 }
00135
00136
00137
00138 int Gtk2Gui_WVLayout_Setup(GWEN_WIDGET *w) {
00139 GtkWidget *g;
00140 uint32_t flags;
00141 GWEN_WIDGET *wParent;
00142
00143 flags=GWEN_Widget_GetFlags(w);
00144 wParent=GWEN_Widget_Tree_GetParent(w);
00145
00146 g=gtk_vbox_new((flags & GWEN_WIDGET_FLAGS_EQUAL_HEIGHT)?TRUE:FALSE,
00147 GTK2_GUI_DIALOG_DEFAULT_BOX_SPACING);
00148 GWEN_Widget_SetImplData(w, GTK2_DIALOG_WIDGET_REAL, (void*) g);
00149 GWEN_Widget_SetImplData(w, GTK2_DIALOG_WIDGET_CONTENT, (void*) g);
00150
00151 GWEN_Widget_SetSetIntPropertyFn(w, Gtk2Gui_WVLayout_SetIntProperty);
00152 GWEN_Widget_SetGetIntPropertyFn(w, Gtk2Gui_WVLayout_GetIntProperty);
00153 GWEN_Widget_SetSetCharPropertyFn(w, Gtk2Gui_WVLayout_SetCharProperty);
00154 GWEN_Widget_SetGetCharPropertyFn(w, Gtk2Gui_WVLayout_GetCharProperty);
00155 GWEN_Widget_SetAddChildGuiWidgetFn(w, Gtk2Gui_WVLayout_AddChildGuiWidget);
00156
00157 if (wParent)
00158 GWEN_Widget_AddChildGuiWidget(wParent, w);
00159
00160 return 0;
00161 }
00162
00163