1 /***************************************************************************
2 begin : Sun May 16 2010
3 copyright : (C) 2010 by Martin Preuss
4 email : martin@libchipcard.de
5
6 ***************************************************************************
7 * Please see toplevel file COPYING for license details *
8 ***************************************************************************/
9
10
11
12
13
14 static GWENHYWFAR_CB
Gtk3Gui_WHLayout_SetIntProperty(GWEN_WIDGET * w,GWEN_DIALOG_PROPERTY prop,GWEN_UNUSED int index,int value,GWEN_UNUSED int doSignal)15 int Gtk3Gui_WHLayout_SetIntProperty(GWEN_WIDGET *w,
16 GWEN_DIALOG_PROPERTY prop,
17 GWEN_UNUSED int index,
18 int value,
19 GWEN_UNUSED int doSignal)
20 {
21 GtkWidget *g;
22
23 g=GTK_WIDGET(GWEN_Widget_GetImplData(w, GTK3_DIALOG_WIDGET_REAL));
24 assert(g);
25
26 switch (prop) {
27 case GWEN_DialogProperty_Enabled:
28 gtk_widget_set_sensitive(GTK_WIDGET(g), (value==0)?FALSE:TRUE);
29 return 0;
30
31 case GWEN_DialogProperty_Focus:
32 gtk_widget_grab_focus(GTK_WIDGET(g));
33 return 0;
34
35 default:
36 break;
37 }
38
39 DBG_WARN(GWEN_LOGDOMAIN,
40 "Function is not appropriate for this type of widget (%s)",
41 GWEN_Widget_Type_toString(GWEN_Widget_GetType(w)));
42 return GWEN_ERROR_INVALID;
43 }
44
45
46
47
48 static GWENHYWFAR_CB
Gtk3Gui_WHLayout_GetIntProperty(GWEN_WIDGET * w,GWEN_DIALOG_PROPERTY prop,GWEN_UNUSED int index,int defaultValue)49 int Gtk3Gui_WHLayout_GetIntProperty(GWEN_WIDGET *w,
50 GWEN_DIALOG_PROPERTY prop,
51 GWEN_UNUSED int index,
52 int defaultValue)
53 {
54 GtkWidget *g;
55
56 g=GTK_WIDGET(GWEN_Widget_GetImplData(w, GTK3_DIALOG_WIDGET_REAL));
57 assert(g);
58
59 switch (prop) {
60 case GWEN_DialogProperty_Enabled:
61 return (gtk_widget_get_sensitive(GTK_WIDGET(g))==TRUE)?1:0;
62
63 case GWEN_DialogProperty_Focus:
64 return (gtk_widget_has_focus(GTK_WIDGET(g))==TRUE)?1:0;
65 return 0;
66
67 default:
68 break;
69 }
70
71 DBG_WARN(GWEN_LOGDOMAIN,
72 "Function is not appropriate for this type of widget (%s)",
73 GWEN_Widget_Type_toString(GWEN_Widget_GetType(w)));
74 return defaultValue;
75 }
76
77
78
79 static GWENHYWFAR_CB
Gtk3Gui_WHLayout_SetCharProperty(GWEN_WIDGET * w,GWEN_UNUSED GWEN_DIALOG_PROPERTY prop,GWEN_UNUSED int index,GWEN_UNUSED const char * value,GWEN_UNUSED int doSignal)80 int Gtk3Gui_WHLayout_SetCharProperty(GWEN_WIDGET *w,
81 GWEN_UNUSED GWEN_DIALOG_PROPERTY prop,
82 GWEN_UNUSED int index,
83 GWEN_UNUSED const char *value,
84 GWEN_UNUSED int doSignal)
85 {
86 GtkWidget *g;
87
88 g=GTK_WIDGET(GWEN_Widget_GetImplData(w, GTK3_DIALOG_WIDGET_REAL));
89 assert(g);
90
91 DBG_WARN(GWEN_LOGDOMAIN,
92 "Function is not appropriate for this type of widget (%s)",
93 GWEN_Widget_Type_toString(GWEN_Widget_GetType(w)));
94 return GWEN_ERROR_INVALID;
95 }
96
97
98
99 static GWENHYWFAR_CB
Gtk3Gui_WHLayout_GetCharProperty(GWEN_WIDGET * w,GWEN_UNUSED GWEN_DIALOG_PROPERTY prop,GWEN_UNUSED int index,const char * defaultValue)100 const char *Gtk3Gui_WHLayout_GetCharProperty(GWEN_WIDGET *w,
101 GWEN_UNUSED GWEN_DIALOG_PROPERTY prop,
102 GWEN_UNUSED int index,
103 const char *defaultValue)
104 {
105 GtkWidget *g;
106
107 g=GTK_WIDGET(GWEN_Widget_GetImplData(w, GTK3_DIALOG_WIDGET_REAL));
108 assert(g);
109
110 DBG_WARN(GWEN_LOGDOMAIN,
111 "Function is not appropriate for this type of widget (%s)",
112 GWEN_Widget_Type_toString(GWEN_Widget_GetType(w)));
113 return defaultValue;
114 }
115
116
117
118 static GWENHYWFAR_CB
Gtk3Gui_WHLayout_AddChildGuiWidget(GWEN_WIDGET * w,GWEN_WIDGET * wChild)119 int Gtk3Gui_WHLayout_AddChildGuiWidget(GWEN_WIDGET *w, GWEN_WIDGET *wChild)
120 {
121 GtkWidget *g;
122 GtkWidget *gChild;
123 uint32_t cflags;
124
125 g=GTK_WIDGET(GWEN_Widget_GetImplData(w, GTK3_DIALOG_WIDGET_REAL));
126 assert(g);
127
128 gChild=GTK_WIDGET(GWEN_Widget_GetImplData(wChild, GTK3_DIALOG_WIDGET_REAL));
129 assert(gChild);
130
131 cflags=GWEN_Widget_GetFlags(wChild);
132
133 gtk_box_pack_start(GTK_BOX(g), gChild,
134 (cflags & GWEN_WIDGET_FLAGS_FILLX)?TRUE:FALSE,
135 (cflags & GWEN_WIDGET_FLAGS_FILLX)?TRUE:FALSE,
136 0);
137
138 return 0;
139 }
140
141
142
Gtk3Gui_WHLayout_Setup(GWEN_WIDGET * w)143 int Gtk3Gui_WHLayout_Setup(GWEN_WIDGET *w)
144 {
145 GtkWidget *g;
146 GWEN_WIDGET *wParent;
147
148 wParent=GWEN_Widget_Tree_GetParent(w);
149
150 g=gtk_box_new(GTK_ORIENTATION_HORIZONTAL,
151 GTK3_GUI_DIALOG_DEFAULT_BOX_SPACING);
152
153 GWEN_Widget_SetImplData(w, GTK3_DIALOG_WIDGET_REAL, (void *) g);
154 GWEN_Widget_SetImplData(w, GTK3_DIALOG_WIDGET_CONTENT, (void *) g);
155
156 GWEN_Widget_SetSetIntPropertyFn(w, Gtk3Gui_WHLayout_SetIntProperty);
157 GWEN_Widget_SetGetIntPropertyFn(w, Gtk3Gui_WHLayout_GetIntProperty);
158 GWEN_Widget_SetSetCharPropertyFn(w, Gtk3Gui_WHLayout_SetCharProperty);
159 GWEN_Widget_SetGetCharPropertyFn(w, Gtk3Gui_WHLayout_GetCharProperty);
160 GWEN_Widget_SetAddChildGuiWidgetFn(w, Gtk3Gui_WHLayout_AddChildGuiWidget);
161
162 if (wParent)
163 GWEN_Widget_AddChildGuiWidget(wParent, w);
164
165 return 0;
166 }
167
168
169