gwenhywfar  5.10.1
gtk3/w_spinbox.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 typedef struct W_SPINBOX W_SPINBOX;
13 struct W_SPINBOX {
14  GtkAdjustment *adjustment;
15 };
16 
17 
19 
20 
21 
22 static GWENHYWFAR_CB
25  GWEN_UNUSED int index,
26  int value,
27  GWEN_UNUSED int doSignal)
28 {
29  GtkWidget *g;
30  W_SPINBOX *xw;
31 
32  assert(w);
34  assert(xw);
35 
37  assert(g);
38 
39  switch (prop) {
41  gtk_widget_set_sensitive(GTK_WIDGET(g), (value==0)?FALSE:TRUE);
42  return 0;
43 
45  gtk_widget_grab_focus(GTK_WIDGET(g));
46  return 0;
47 
50  /* just ignore these for now */
51  return 0;
52 
54  gtk_adjustment_set_value(GTK_ADJUSTMENT(xw->adjustment), value);
55  return 0;
56 
58  gtk_adjustment_set_lower(GTK_ADJUSTMENT(xw->adjustment), value);
59  return 0;
60 
62  gtk_adjustment_set_upper(GTK_ADJUSTMENT(xw->adjustment), value);
63  return 0;
64 
65  default:
66  break;
67  }
68 
70  "Function is not appropriate for this type of widget (%s)",
72  return GWEN_ERROR_INVALID;
73 }
74 
75 
76 
77 
78 static GWENHYWFAR_CB
81  GWEN_UNUSED int index,
82  int defaultValue)
83 {
84  GtkWidget *g;
85  W_SPINBOX *xw;
86 
87  assert(w);
89  assert(xw);
90 
92  assert(g);
93 
94  switch (prop) {
96  return (gtk_widget_get_sensitive(GTK_WIDGET(g))==TRUE)?1:0;
97 
99  return (gtk_widget_has_focus(GTK_WIDGET(g))==TRUE)?1:0;
100  return 0;
101 
104  /* just ignore these for now */
105  return 0;
106 
108  return gtk_adjustment_get_value(GTK_ADJUSTMENT(xw->adjustment));
109 
111  return gtk_adjustment_get_lower(GTK_ADJUSTMENT(xw->adjustment));
112 
114  return gtk_adjustment_get_upper(GTK_ADJUSTMENT(xw->adjustment));
115 
116  default:
117  break;
118  }
119 
121  "Function is not appropriate for this type of widget (%s)",
123  return defaultValue;
124 }
125 
126 
127 
128 static GWENHYWFAR_CB
131  GWEN_UNUSED int index,
132  GWEN_UNUSED const char *value,
133  GWEN_UNUSED int doSignal)
134 {
136  "Function is not appropriate for this type of widget (%s)",
138  return GWEN_ERROR_INVALID;
139 }
140 
141 
142 
143 static GWENHYWFAR_CB
146  GWEN_UNUSED int index,
147  const char *defaultValue)
148 {
150  "Function is not appropriate for this type of widget (%s)",
152  return defaultValue;
153 }
154 
155 
156 
158 {
159  W_SPINBOX *xw;
160 
161  xw=(W_SPINBOX *) p;
162  GWEN_FREE_OBJECT(xw);
163 }
164 
165 
166 
167 static void Gtk3Gui_WSpinBox_Changed_handler(GWEN_UNUSED GtkAdjustment *adjustment, gpointer data)
168 {
169  GWEN_WIDGET *w;
170  int rv;
171 
172  w=data;
173  assert(w);
179  else if (rv==GWEN_DialogEvent_ResultReject)
181 }
182 
183 
184 
186 {
187  GtkWidget *g;
188  GWEN_WIDGET *wParent;
189  W_SPINBOX *xw;
190 
193 
194  wParent=GWEN_Widget_Tree_GetParent(w);
195 
196  xw->adjustment=GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, 100.0, 1.0, 5.0, 5.0));
197  g=gtk_spin_button_new(xw->adjustment, 1.0, 0);
200 
205 
206  g_signal_connect(g,
207  "value-changed",
209  w);
210 
211  if (wParent)
212  GWEN_Widget_AddChildGuiWidget(wParent, w);
213 
214  return 0;
215 }
216 
217 
GWEN_WIDGET_TYPE GWEN_Widget_GetType(const GWEN_WIDGET *w)
Definition: widget.c:185
#define GWEN_ERROR_INVALID
Definition: error.h:67
#define GTK3_DIALOG_WIDGET_REAL
#define GTK3_DIALOG_WIDGET_CONTENT
const char * GWEN_Widget_GetName(const GWEN_WIDGET *w)
Definition: widget.c:320
int Gtk3Gui_WSpinBox_Setup(GWEN_WIDGET *w)
GWEN_WIDGET_SETCHARPROPERTY_FN GWEN_Widget_SetSetCharPropertyFn(GWEN_WIDGET *w, GWEN_WIDGET_SETCHARPROPERTY_FN fn)
Definition: widget.c:717
GWEN_WIDGET_GETCHARPROPERTY_FN GWEN_Widget_SetGetCharPropertyFn(GWEN_WIDGET *w, GWEN_WIDGET_GETCHARPROPERTY_FN fn)
Definition: widget.c:732
static GWENHYWFAR_CB int Gtk3Gui_WSpinBox_SetIntProperty(GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, GWEN_UNUSED int index, int value, GWEN_UNUSED int doSignal)
GWEN_DIALOG_PROPERTY
Definition: dialog.h:260
#define GWEN_FREE_OBJECT(varname)
Definition: memory.h:61
static GWENHYWFAR_CB int Gtk3Gui_WSpinBox_SetCharProperty(GWEN_WIDGET *w, GWEN_UNUSED GWEN_DIALOG_PROPERTY prop, GWEN_UNUSED int index, GWEN_UNUSED const char *value, GWEN_UNUSED int doSignal)
#define DBG_WARN(dbg_logger, format, args...)
Definition: debug.h:125
#define GWEN_LOGDOMAIN
Definition: logger.h:35
void GWEN_Widget_SetImplData(GWEN_WIDGET *w, int index, void *ptr)
Store a pointer with the widget.
Definition: widget.c:136
GWEN_WIDGET_GETINTPROPERTY_FN GWEN_Widget_SetGetIntPropertyFn(GWEN_WIDGET *w, GWEN_WIDGET_GETINTPROPERTY_FN fn)
Definition: widget.c:702
#define GWEN_NEW_OBJECT(typ, varname)
Definition: memory.h:55
void * GWEN_Widget_GetImplData(const GWEN_WIDGET *w, int index)
Definition: widget.c:122
GWEN_DIALOG * GWEN_Widget_GetDialog(const GWEN_WIDGET *w)
Definition: widget.c:92
#define GWENHYWFAR_CB
Definition: gwenhywfarapi.h:89
GWEN_WIDGET_SETINTPROPERTY_FN GWEN_Widget_SetSetIntPropertyFn(GWEN_WIDGET *w, GWEN_WIDGET_SETINTPROPERTY_FN fn)
Definition: widget.c:687
static void Gtk3Gui_WSpinBox_Changed_handler(GWEN_UNUSED GtkAdjustment *adjustment, gpointer data)
GWEN_DIALOG * GWEN_Widget_GetTopDialog(const GWEN_WIDGET *w)
Definition: widget.c:102
struct GWEN_WIDGET GWEN_WIDGET
Definition: widget_be.h:34
int GWEN_Widget_AddChildGuiWidget(GWEN_WIDGET *w, GWEN_WIDGET *wChild)
Definition: widget.c:828
GtkAdjustment * adjustment
int GWEN_Dialog_EmitSignal(GWEN_DIALOG *dlg, GWEN_DIALOG_EVENTTYPE t, const char *sender)
Definition: dialog.c:321
static GWENHYWFAR_CB int Gtk3Gui_WSpinBox_GetIntProperty(GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, GWEN_UNUSED int index, int defaultValue)
#define GWEN_INHERIT(bt, t)
Definition: inherit.h:264
const char * GWEN_Widget_Type_toString(GWEN_WIDGET_TYPE t)
Definition: widget.c:452
void Gtk3Gui_Dialog_Leave(GWEN_DIALOG *dlg, int result)
#define GWEN_INHERIT_SETDATA(bt, t, element, data, fn)
Definition: inherit.h:292
static GWENHYWFAR_CB const char * Gtk3Gui_WSpinBox_GetCharProperty(GWEN_WIDGET *w, GWEN_UNUSED GWEN_DIALOG_PROPERTY prop, GWEN_UNUSED int index, const char *defaultValue)
static void GWENHYWFAR_CB Gtk3Gui_WSpinBox_FreeData(GWEN_UNUSED void *bp, void *p)
#define GWEN_UNUSED
#define GWEN_INHERIT_GETDATA(bt, t, element)
Definition: inherit.h:271