gwenhywfar 4.0.3
|
00001 /*************************************************************************** 00002 begin : Sun May 16 2010 00003 copyright : (C) 2010 by Martin Preuss 00004 email : martin@libchipcard.de 00005 00006 *************************************************************************** 00007 * Please see toplevel file COPYING for license details * 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