gwenhywfar
4.3.3
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
gui
gtk2
w_hlayout.c
Go to the documentation of this file.
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
15
int
Gtk2Gui_WHLayout_SetIntProperty
(
GWEN_WIDGET
*w,
16
GWEN_DIALOG_PROPERTY
prop,
17
int
index,
18
int
value,
19
int
doSignal) {
20
GtkWidget *g;
21
22
g=GTK_WIDGET(
GWEN_Widget_GetImplData
(w,
GTK2_DIALOG_WIDGET_REAL
));
23
assert(g);
24
25
switch
(prop) {
26
case
GWEN_DialogProperty_Enabled
:
27
gtk_widget_set_sensitive(GTK_WIDGET(g), (value==0)?FALSE:TRUE);
28
return
0;
29
30
case
GWEN_DialogProperty_Focus
:
31
gtk_widget_grab_focus(GTK_WIDGET(g));
32
return
0;
33
34
default
:
35
break
;
36
}
37
38
DBG_WARN
(
GWEN_LOGDOMAIN
,
39
"Function is not appropriate for this type of widget (%s)"
,
40
GWEN_Widget_Type_toString
(
GWEN_Widget_GetType
(w)));
41
return
GWEN_ERROR_INVALID
;
42
}
43
44
45
46
47
static
GWENHYWFAR_CB
48
int
Gtk2Gui_WHLayout_GetIntProperty
(
GWEN_WIDGET
*w,
49
GWEN_DIALOG_PROPERTY
prop,
50
int
index,
51
int
defaultValue) {
52
GtkWidget *g;
53
54
g=GTK_WIDGET(
GWEN_Widget_GetImplData
(w,
GTK2_DIALOG_WIDGET_REAL
));
55
assert(g);
56
57
switch
(prop) {
58
case
GWEN_DialogProperty_Enabled
:
59
return
(gtk_widget_get_sensitive(GTK_WIDGET(g))==TRUE)?1:0;
60
61
case
GWEN_DialogProperty_Focus
:
62
return
(gtk_widget_has_focus(GTK_WIDGET(g))==TRUE)?1:0;
63
return
0;
64
65
default
:
66
break
;
67
}
68
69
DBG_WARN
(
GWEN_LOGDOMAIN
,
70
"Function is not appropriate for this type of widget (%s)"
,
71
GWEN_Widget_Type_toString
(
GWEN_Widget_GetType
(w)));
72
return
defaultValue;
73
}
74
75
76
77
static
GWENHYWFAR_CB
78
int
Gtk2Gui_WHLayout_SetCharProperty
(
GWEN_WIDGET
*w,
79
GWEN_DIALOG_PROPERTY
prop,
80
int
index,
81
const
char
*value,
82
int
doSignal) {
83
GtkWidget *g;
84
85
g=GTK_WIDGET(
GWEN_Widget_GetImplData
(w,
GTK2_DIALOG_WIDGET_REAL
));
86
assert(g);
87
88
DBG_WARN
(
GWEN_LOGDOMAIN
,
89
"Function is not appropriate for this type of widget (%s)"
,
90
GWEN_Widget_Type_toString
(
GWEN_Widget_GetType
(w)));
91
return
GWEN_ERROR_INVALID
;
92
}
93
94
95
96
static
GWENHYWFAR_CB
97
const
char
*
Gtk2Gui_WHLayout_GetCharProperty
(
GWEN_WIDGET
*w,
98
GWEN_DIALOG_PROPERTY
prop,
99
int
index,
100
const
char
*defaultValue) {
101
GtkWidget *g;
102
103
g=GTK_WIDGET(
GWEN_Widget_GetImplData
(w,
GTK2_DIALOG_WIDGET_REAL
));
104
assert(g);
105
106
DBG_WARN
(
GWEN_LOGDOMAIN
,
107
"Function is not appropriate for this type of widget (%s)"
,
108
GWEN_Widget_Type_toString
(
GWEN_Widget_GetType
(w)));
109
return
defaultValue;
110
}
111
112
113
114
static
GWENHYWFAR_CB
115
int
Gtk2Gui_WHLayout_AddChildGuiWidget
(
GWEN_WIDGET
*w,
GWEN_WIDGET
*wChild) {
116
GtkWidget *g;
117
GtkWidget *gChild;
118
uint32_t cflags;
119
120
g=GTK_WIDGET(
GWEN_Widget_GetImplData
(w,
GTK2_DIALOG_WIDGET_REAL
));
121
assert(g);
122
123
gChild=GTK_WIDGET(
GWEN_Widget_GetImplData
(wChild,
GTK2_DIALOG_WIDGET_REAL
));
124
assert(gChild);
125
126
cflags=
GWEN_Widget_GetFlags
(wChild);
127
128
gtk_box_pack_start(GTK_BOX(g), gChild,
129
(cflags &
GWEN_WIDGET_FLAGS_FILLX
)?TRUE:FALSE,
130
(cflags & GWEN_WIDGET_FLAGS_FILLX)?TRUE:FALSE,
131
0);
132
133
return
0;
134
}
135
136
137
138
int
Gtk2Gui_WHLayout_Setup
(
GWEN_WIDGET
*w) {
139
GtkWidget *g;
140
uint32_t flags;
141
GWEN_WIDGET
*wParent;
142
143
flags=
GWEN_Widget_GetFlags
(w);
144
wParent=GWEN_Widget_Tree_GetParent(w);
145
146
#if 0
147
/* using equal width here doesn't seem to be working as expected:
148
* I would expect al children be of equal width, but instead all children are
149
* equally distant to each other while still being of different width...
150
*/
151
g=gtk_hbox_new((flags &
GWEN_WIDGET_FLAGS_EQUAL_WIDTH
)?TRUE:FALSE,
152
GTK2_GUI_DIALOG_DEFAULT_BOX_SPACING
);
153
#else
154
g=gtk_hbox_new(FALSE,
GTK2_GUI_DIALOG_DEFAULT_BOX_SPACING
);
155
#endif
156
GWEN_Widget_SetImplData
(w,
GTK2_DIALOG_WIDGET_REAL
, (
void
*) g);
157
GWEN_Widget_SetImplData
(w,
GTK2_DIALOG_WIDGET_CONTENT
, (
void
*) g);
158
159
GWEN_Widget_SetSetIntPropertyFn
(w,
Gtk2Gui_WHLayout_SetIntProperty
);
160
GWEN_Widget_SetGetIntPropertyFn
(w,
Gtk2Gui_WHLayout_GetIntProperty
);
161
GWEN_Widget_SetSetCharPropertyFn
(w,
Gtk2Gui_WHLayout_SetCharProperty
);
162
GWEN_Widget_SetGetCharPropertyFn
(w,
Gtk2Gui_WHLayout_GetCharProperty
);
163
GWEN_Widget_SetAddChildGuiWidgetFn
(w,
Gtk2Gui_WHLayout_AddChildGuiWidget
);
164
165
if
(wParent)
166
GWEN_Widget_AddChildGuiWidget
(wParent, w);
167
168
return
0;
169
}
170
171
Generated on Thu Mar 20 2014 17:06:00 for gwenhywfar by
1.8.1.2