00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 static GWENHYWFAR_CB
00015 int Gtk2Gui_WLabel_SetIntProperty(GWEN_WIDGET *w,
00016 GWEN_DIALOG_PROPERTY prop,
00017 int index,
00018 int value,
00019 int doSignal) {
00020 GtkLabel *g;
00021
00022 g=GTK_LABEL(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_Width:
00035 case GWEN_DialogProperty_Height:
00036
00037 return 0;
00038
00039 default:
00040 break;
00041 }
00042
00043 DBG_WARN(GWEN_LOGDOMAIN,
00044 "Function is not appropriate for this type of widget (%s)",
00045 GWEN_Widget_Type_toString(GWEN_Widget_GetType(w)));
00046 return GWEN_ERROR_INVALID;
00047 }
00048
00049
00050
00051
00052 static GWENHYWFAR_CB
00053 int Gtk2Gui_WLabel_GetIntProperty(GWEN_WIDGET *w,
00054 GWEN_DIALOG_PROPERTY prop,
00055 int index,
00056 int defaultValue) {
00057 GtkLabel *g;
00058
00059 g=GTK_LABEL(GWEN_Widget_GetImplData(w, GTK2_DIALOG_WIDGET_REAL));
00060 assert(g);
00061
00062 switch(prop) {
00063 case GWEN_DialogProperty_Enabled:
00064 return (gtk_widget_get_sensitive(GTK_WIDGET(g))==TRUE)?1:0;
00065
00066 case GWEN_DialogProperty_Focus:
00067 return (gtk_widget_has_focus(GTK_WIDGET(g))==TRUE)?1:0;
00068 return 0;
00069
00070 case GWEN_DialogProperty_Width:
00071 case GWEN_DialogProperty_Height:
00072
00073 return 0;
00074
00075 default:
00076 break;
00077 }
00078
00079 DBG_WARN(GWEN_LOGDOMAIN,
00080 "Function is not appropriate for this type of widget (%s)",
00081 GWEN_Widget_Type_toString(GWEN_Widget_GetType(w)));
00082 return defaultValue;
00083 }
00084
00085
00086
00087 static GWENHYWFAR_CB
00088 int Gtk2Gui_WLabel_SetCharProperty(GWEN_WIDGET *w,
00089 GWEN_DIALOG_PROPERTY prop,
00090 int index,
00091 const char *value,
00092 int doSignal) {
00093 GtkLabel *g;
00094 GWEN_BUFFER *tbuf;
00095
00096 g=GTK_LABEL(GWEN_Widget_GetImplData(w, GTK2_DIALOG_WIDGET_REAL));
00097 assert(g);
00098
00099 tbuf=GWEN_Buffer_new(0, 128, 0, 1);
00100 if (value && *value)
00101 Gtk2Gui_GetRawText(value, tbuf);
00102
00103 switch(prop) {
00104 case GWEN_DialogProperty_Title:
00105 gtk_label_set_text(g, GWEN_Buffer_GetStart(tbuf));
00106 GWEN_Buffer_free(tbuf);
00107 return 0;
00108 default:
00109 break;
00110 }
00111
00112 DBG_WARN(GWEN_LOGDOMAIN,
00113 "Function is not appropriate for this type of widget (%s)",
00114 GWEN_Widget_Type_toString(GWEN_Widget_GetType(w)));
00115 GWEN_Buffer_free(tbuf);
00116 return GWEN_ERROR_INVALID;
00117 }
00118
00119
00120
00121 static GWENHYWFAR_CB
00122 const char* Gtk2Gui_WLabel_GetCharProperty(GWEN_WIDGET *w,
00123 GWEN_DIALOG_PROPERTY prop,
00124 int index,
00125 const char *defaultValue) {
00126 GtkLabel *g;
00127
00128 g=GTK_LABEL(GWEN_Widget_GetImplData(w, GTK2_DIALOG_WIDGET_REAL));
00129 assert(g);
00130
00131 switch(prop) {
00132 case GWEN_DialogProperty_Title:
00133 return gtk_label_get_label(g);
00134 default:
00135 break;
00136 }
00137
00138 DBG_WARN(GWEN_LOGDOMAIN,
00139 "Function is not appropriate for this type of widget (%s)",
00140 GWEN_Widget_Type_toString(GWEN_Widget_GetType(w)));
00141 return defaultValue;
00142 }
00143
00144
00145
00146 int Gtk2Gui_WLabel_Setup(GWEN_WIDGET *w) {
00147 GtkWidget *g;
00148 const char *s;
00149 uint32_t flags;
00150 GWEN_WIDGET *wParent;
00151 GWEN_BUFFER *tbuf;
00152
00153 flags=GWEN_Widget_GetFlags(w);
00154 wParent=GWEN_Widget_Tree_GetParent(w);
00155 s=GWEN_Widget_GetText(w, 0);
00156
00157 tbuf=GWEN_Buffer_new(0, 128, 0, 1);
00158 if (s && *s)
00159 Gtk2Gui_GetRawText(s, tbuf);
00160
00161 g=gtk_label_new(GWEN_Buffer_GetStart(tbuf));
00162 GWEN_Buffer_free(tbuf);
00163 GWEN_Widget_SetImplData(w, GTK2_DIALOG_WIDGET_REAL, (void*) g);
00164 GWEN_Widget_SetImplData(w, GTK2_DIALOG_WIDGET_CONTENT, (void*) g);
00165
00166 GWEN_Widget_SetSetIntPropertyFn(w, Gtk2Gui_WLabel_SetIntProperty);
00167 GWEN_Widget_SetGetIntPropertyFn(w, Gtk2Gui_WLabel_GetIntProperty);
00168 GWEN_Widget_SetSetCharPropertyFn(w, Gtk2Gui_WLabel_SetCharProperty);
00169 GWEN_Widget_SetGetCharPropertyFn(w, Gtk2Gui_WLabel_GetCharProperty);
00170
00171 if (wParent)
00172 GWEN_Widget_AddChildGuiWidget(wParent, w);
00173
00174 return 0;
00175 }
00176
00177