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