Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 static GWENHYWFAR_CB
00015 int Gtk2Gui_WTabBook_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 case GWEN_DialogProperty_Value:
00035 gtk_notebook_set_current_page(GTK_NOTEBOOK(g), value);
00036 return 0;
00037
00038 default:
00039 break;
00040 }
00041
00042 DBG_WARN(GWEN_LOGDOMAIN,
00043 "Function is not appropriate for this type of widget (%s)",
00044 GWEN_Widget_Type_toString(GWEN_Widget_GetType(w)));
00045 return GWEN_ERROR_INVALID;
00046 }
00047
00048
00049
00050
00051 static GWENHYWFAR_CB
00052 int Gtk2Gui_WTabBook_GetIntProperty(GWEN_WIDGET *w,
00053 GWEN_DIALOG_PROPERTY prop,
00054 int index,
00055 int defaultValue) {
00056 GtkWidget *g;
00057
00058 g=GTK_WIDGET(GWEN_Widget_GetImplData(w, GTK2_DIALOG_WIDGET_REAL));
00059 assert(g);
00060
00061 switch(prop) {
00062 case GWEN_DialogProperty_Enabled:
00063 return (gtk_widget_get_sensitive(GTK_WIDGET(g))==TRUE)?1:0;
00064
00065 case GWEN_DialogProperty_Focus:
00066 return (gtk_widget_has_focus(GTK_WIDGET(g))==TRUE)?1:0;
00067 return 0;
00068
00069 case GWEN_DialogProperty_Value:
00070 return gtk_notebook_get_current_page(GTK_NOTEBOOK(g));
00071
00072 default:
00073 break;
00074 }
00075
00076 DBG_WARN(GWEN_LOGDOMAIN,
00077 "Function is not appropriate for this type of widget (%s)",
00078 GWEN_Widget_Type_toString(GWEN_Widget_GetType(w)));
00079 return defaultValue;
00080 }
00081
00082
00083
00084 static GWENHYWFAR_CB
00085 int Gtk2Gui_WTabBook_SetCharProperty(GWEN_WIDGET *w,
00086 GWEN_DIALOG_PROPERTY prop,
00087 int index,
00088 const char *value,
00089 int doSignal) {
00090 GtkWidget *g;
00091
00092 g=GTK_WIDGET(GWEN_Widget_GetImplData(w, GTK2_DIALOG_WIDGET_REAL));
00093 assert(g);
00094
00095 DBG_WARN(GWEN_LOGDOMAIN,
00096 "Function is not appropriate for this type of widget (%s)",
00097 GWEN_Widget_Type_toString(GWEN_Widget_GetType(w)));
00098 return GWEN_ERROR_INVALID;
00099 }
00100
00101
00102
00103 static GWENHYWFAR_CB
00104 const char* Gtk2Gui_WTabBook_GetCharProperty(GWEN_WIDGET *w,
00105 GWEN_DIALOG_PROPERTY prop,
00106 int index,
00107 const char *defaultValue) {
00108 GtkWidget *g;
00109
00110 g=GTK_WIDGET(GWEN_Widget_GetImplData(w, GTK2_DIALOG_WIDGET_REAL));
00111 assert(g);
00112
00113 DBG_WARN(GWEN_LOGDOMAIN,
00114 "Function is not appropriate for this type of widget (%s)",
00115 GWEN_Widget_Type_toString(GWEN_Widget_GetType(w)));
00116 return defaultValue;
00117 }
00118
00119
00120
00121 static GWENHYWFAR_CB
00122 int Gtk2Gui_WTabBook_AddChildGuiWidget(GWEN_WIDGET *w, GWEN_WIDGET *wChild) {
00123 GtkWidget *g;
00124 GtkWidget *gChild;
00125 const char *s;
00126
00127 g=GTK_WIDGET(GWEN_Widget_GetImplData(w, GTK2_DIALOG_WIDGET_REAL));
00128 assert(g);
00129
00130 gChild=GTK_WIDGET(GWEN_Widget_GetImplData(wChild, GTK2_DIALOG_WIDGET_REAL));
00131 assert(gChild);
00132
00133 s=GWEN_Widget_GetText(wChild, 0);
00134
00135 gtk_notebook_append_page(GTK_NOTEBOOK(g), gChild, (s && *s)?gtk_label_new(s):NULL);
00136
00137 return 0;
00138 }
00139
00140
00141
00142 int Gtk2Gui_WTabBook_Setup(GWEN_WIDGET *w) {
00143 GtkWidget *g;
00144 uint32_t flags;
00145 GWEN_WIDGET *wParent;
00146
00147 flags=GWEN_Widget_GetFlags(w);
00148 wParent=GWEN_Widget_Tree_GetParent(w);
00149
00150 g=gtk_notebook_new();
00151 GWEN_Widget_SetImplData(w, GTK2_DIALOG_WIDGET_REAL, (void*) g);
00152 GWEN_Widget_SetImplData(w, GTK2_DIALOG_WIDGET_CONTENT, (void*) g);
00153
00154 GWEN_Widget_SetSetIntPropertyFn(w, Gtk2Gui_WTabBook_SetIntProperty);
00155 GWEN_Widget_SetGetIntPropertyFn(w, Gtk2Gui_WTabBook_GetIntProperty);
00156 GWEN_Widget_SetSetCharPropertyFn(w, Gtk2Gui_WTabBook_SetCharProperty);
00157 GWEN_Widget_SetGetCharPropertyFn(w, Gtk2Gui_WTabBook_GetCharProperty);
00158 GWEN_Widget_SetAddChildGuiWidgetFn(w, Gtk2Gui_WTabBook_AddChildGuiWidget);
00159
00160 if (wParent)
00161 GWEN_Widget_AddChildGuiWidget(wParent, w);
00162
00163 return 0;
00164 }
00165
00166