gwenhywfar  5.10.1
gtk3/w_stack.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  * Note: This is a special use case for gtk_notebook.
14  * To use it as a WidgetStack we have to disable drawing od tabs
15  * and borders by calling:
16  * - gtk_notebook_set_show_tabs(GTK_NOTEBOOK(g), FALSE);
17  * - gtk_notebook_set_show_border(GTK_NOTEBOOK(g), FALSE);
18  *
19  */
20 
21 
22 
23 static GWENHYWFAR_CB
26  GWEN_UNUSED int index,
27  int value,
28  GWEN_UNUSED int doSignal)
29 {
30  GtkWidget *g;
31 
33  assert(g);
34 
35  switch (prop) {
37  gtk_widget_set_sensitive(GTK_WIDGET(g), (value==0)?FALSE:TRUE);
38  return 0;
39 
41  gtk_widget_grab_focus(GTK_WIDGET(g));
42  return 0;
43 
45  gtk_notebook_set_current_page(GTK_NOTEBOOK(g), value);
46  return 0;
47 
48  default:
49  break;
50  }
51 
53  "Function is not appropriate for this type of widget (%s)",
55  return GWEN_ERROR_INVALID;
56 }
57 
58 
59 
60 
61 static GWENHYWFAR_CB
64  GWEN_UNUSED int index,
65  int defaultValue)
66 {
67  GtkWidget *g;
68 
70  assert(g);
71 
72  switch (prop) {
74  return (gtk_widget_get_sensitive(GTK_WIDGET(g))==TRUE)?1:0;
75 
77  return (gtk_widget_has_focus(GTK_WIDGET(g))==TRUE)?1:0;
78  return 0;
79 
81  return gtk_notebook_get_current_page(GTK_NOTEBOOK(g));
82 
83  default:
84  break;
85  }
86 
88  "Function is not appropriate for this type of widget (%s)",
90  return defaultValue;
91 }
92 
93 
94 
95 static GWENHYWFAR_CB
98  GWEN_UNUSED int index,
99  GWEN_UNUSED const char *value,
100  GWEN_UNUSED int doSignal)
101 {
102  GtkWidget *g;
103 
105  assert(g);
106 
108  "Function is not appropriate for this type of widget (%s)",
110  return GWEN_ERROR_INVALID;
111 }
112 
113 
114 
115 static GWENHYWFAR_CB
118  GWEN_UNUSED int index,
119  const char *defaultValue)
120 {
121  GtkWidget *g;
122 
124  assert(g);
125 
127  "Function is not appropriate for this type of widget (%s)",
129  return defaultValue;
130 }
131 
132 
133 
134 static GWENHYWFAR_CB
136 {
137  GtkWidget *g;
138  GtkWidget *gChild;
139 
141  assert(g);
142 
143  gChild=GTK_WIDGET(GWEN_Widget_GetImplData(wChild, GTK3_DIALOG_WIDGET_REAL));
144  assert(gChild);
145 
146  gtk_notebook_append_page(GTK_NOTEBOOK(g), gChild, NULL);
147 
148  return 0;
149 }
150 
151 
152 
154 {
155  GtkWidget *g;
156  GWEN_WIDGET *wParent;
157 
158  wParent=GWEN_Widget_Tree_GetParent(w);
159 
160  g=gtk_notebook_new();
161  gtk_notebook_set_show_tabs(GTK_NOTEBOOK(g), FALSE);
162  gtk_notebook_set_show_border(GTK_NOTEBOOK(g), FALSE);
163 
166 
172 
173  if (wParent)
174  GWEN_Widget_AddChildGuiWidget(wParent, w);
175 
176  return 0;
177 }
178 
179 
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
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
int Gtk3Gui_WStack_Setup(GWEN_WIDGET *w)
Definition: gtk3/w_stack.c:153
GWEN_DIALOG_PROPERTY
Definition: dialog.h:260
#define NULL
Definition: binreloc.c:300
static GWENHYWFAR_CB int Gtk3Gui_WStack_GetIntProperty(GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, GWEN_UNUSED int index, int defaultValue)
Definition: gtk3/w_stack.c:62
#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
static GWENHYWFAR_CB int Gtk3Gui_WStack_SetCharProperty(GWEN_WIDGET *w, GWEN_UNUSED GWEN_DIALOG_PROPERTY prop, GWEN_UNUSED int index, GWEN_UNUSED const char *value, GWEN_UNUSED int doSignal)
Definition: gtk3/w_stack.c:96
void * GWEN_Widget_GetImplData(const GWEN_WIDGET *w, int index)
Definition: widget.c:122
#define GWENHYWFAR_CB
Definition: gwenhywfarapi.h:89
GWEN_WIDGET_ADDCHILDGUIWIDGET_FN GWEN_Widget_SetAddChildGuiWidgetFn(GWEN_WIDGET *w, GWEN_WIDGET_ADDCHILDGUIWIDGET_FN fn)
Definition: widget.c:747
GWEN_WIDGET_SETINTPROPERTY_FN GWEN_Widget_SetSetIntPropertyFn(GWEN_WIDGET *w, GWEN_WIDGET_SETINTPROPERTY_FN fn)
Definition: widget.c:687
struct GWEN_WIDGET GWEN_WIDGET
Definition: widget_be.h:34
int GWEN_Widget_AddChildGuiWidget(GWEN_WIDGET *w, GWEN_WIDGET *wChild)
Definition: widget.c:828
static GWENHYWFAR_CB int Gtk3Gui_WStack_SetIntProperty(GWEN_WIDGET *w, GWEN_DIALOG_PROPERTY prop, GWEN_UNUSED int index, int value, GWEN_UNUSED int doSignal)
Definition: gtk3/w_stack.c:24
static GWENHYWFAR_CB int Gtk3Gui_WStack_AddChildGuiWidget(GWEN_WIDGET *w, GWEN_WIDGET *wChild)
Definition: gtk3/w_stack.c:135
static GWENHYWFAR_CB const char * Gtk3Gui_WStack_GetCharProperty(GWEN_WIDGET *w, GWEN_UNUSED GWEN_DIALOG_PROPERTY prop, GWEN_UNUSED int index, const char *defaultValue)
Definition: gtk3/w_stack.c:116
const char * GWEN_Widget_Type_toString(GWEN_WIDGET_TYPE t)
Definition: widget.c:452
#define GWEN_UNUSED