Commit ba1bc21f21f15654d65f6ac925a586a0903db0d2
1 parent
23321bd6
Exists in
master
and in
4 other branches
Implementing keypad on main window.
Showing
2 changed files
with
58 additions
and
6 deletions
Show diff stats
src/objects/keypad/widget.c
@@ -49,6 +49,8 @@ | @@ -49,6 +49,8 @@ | ||
49 | gtk_widget_set_can_default(button,FALSE); | 49 | gtk_widget_set_can_default(button,FALSE); |
50 | gtk_widget_set_focus_on_click(button,FALSE); | 50 | gtk_widget_set_focus_on_click(button,FALSE); |
51 | 51 | ||
52 | + gtk_widget_show_all(button); | ||
53 | + | ||
52 | gtk_grid_attach( | 54 | gtk_grid_attach( |
53 | grid, | 55 | grid, |
54 | button, | 56 | button, |
@@ -81,5 +83,7 @@ | @@ -81,5 +83,7 @@ | ||
81 | 83 | ||
82 | g_list_foreach(keypad->elements,(GFunc) create_child, grid); | 84 | g_list_foreach(keypad->elements,(GFunc) create_child, grid); |
83 | 85 | ||
86 | + gtk_widget_show(grid); // FIX-ME | ||
87 | + | ||
84 | return grid; | 88 | return grid; |
85 | } | 89 | } |
src/objects/window/window.c
@@ -32,6 +32,7 @@ | @@ -32,6 +32,7 @@ | ||
32 | #include <pw3270/toolbar.h> | 32 | #include <pw3270/toolbar.h> |
33 | #include <pw3270/application.h> | 33 | #include <pw3270/application.h> |
34 | #include <pw3270/actions.h> | 34 | #include <pw3270/actions.h> |
35 | + #include <pw3270/keypad.h> | ||
35 | 36 | ||
36 | static void get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec); | 37 | static void get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec); |
37 | static void set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec); | 38 | static void set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec); |
@@ -187,7 +188,7 @@ | @@ -187,7 +188,7 @@ | ||
187 | widget->state.is_fullscreen = 0; | 188 | widget->state.is_fullscreen = 0; |
188 | 189 | ||
189 | // Create contents | 190 | // Create contents |
190 | - GtkBox * vBox = GTK_BOX(gtk_box_new(GTK_ORIENTATION_VERTICAL,0)); | 191 | + GtkBox * container = GTK_BOX(gtk_box_new(GTK_ORIENTATION_VERTICAL,0)); |
191 | 192 | ||
192 | widget->notebook = GTK_NOTEBOOK(gtk_notebook_new()); | 193 | widget->notebook = GTK_NOTEBOOK(gtk_notebook_new()); |
193 | gtk_notebook_set_scrollable(widget->notebook,TRUE); | 194 | gtk_notebook_set_scrollable(widget->notebook,TRUE); |
@@ -197,7 +198,6 @@ | @@ -197,7 +198,6 @@ | ||
197 | 198 | ||
198 | { | 199 | { |
199 | // Create new tab action widget | 200 | // Create new tab action widget |
200 | - //GtkWidget * new_tab = gtk_image_new_from_icon_name("tab-new-symbolic",GTK_ICON_SIZE_LARGE_TOOLBAR); | ||
201 | GtkWidget * new_tab = gtk_button_new_from_icon_name("tab-new-symbolic",GTK_ICON_SIZE_LARGE_TOOLBAR); | 201 | GtkWidget * new_tab = gtk_button_new_from_icon_name("tab-new-symbolic",GTK_ICON_SIZE_LARGE_TOOLBAR); |
202 | gtk_button_set_relief(GTK_BUTTON(new_tab),GTK_RELIEF_NONE); | 202 | gtk_button_set_relief(GTK_BUTTON(new_tab),GTK_RELIEF_NONE); |
203 | gtk_actionable_set_action_name(GTK_ACTIONABLE(new_tab),"app.new.tab"); | 203 | gtk_actionable_set_action_name(GTK_ACTIONABLE(new_tab),"app.new.tab"); |
@@ -213,11 +213,59 @@ | @@ -213,11 +213,59 @@ | ||
213 | } | 213 | } |
214 | 214 | ||
215 | widget->toolbar = GTK_TOOLBAR(pw3270_toolbar_new()); | 215 | widget->toolbar = GTK_TOOLBAR(pw3270_toolbar_new()); |
216 | - gtk_box_pack_start(vBox,GTK_WIDGET(widget->toolbar),FALSE,TRUE,0); | ||
217 | - gtk_box_pack_start(vBox,GTK_WIDGET(widget->notebook),TRUE,TRUE,0); | 216 | + gtk_box_pack_start(container,GTK_WIDGET(widget->toolbar),FALSE,TRUE,0); |
218 | 217 | ||
219 | - gtk_widget_show_all(GTK_WIDGET(vBox)); | ||
220 | - gtk_container_add(GTK_CONTAINER(widget),GTK_WIDGET(vBox)); | 218 | + // |
219 | + // Do we have keypads? | ||
220 | + // | ||
221 | + GList * keypads = pw3270_application_get_keypad_models(g_application_get_default()); | ||
222 | + if(keypads) { | ||
223 | + | ||
224 | + GtkBox * hBox = GTK_BOX(gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0)); | ||
225 | + GList * keypad; | ||
226 | + | ||
227 | + // Add left keypads | ||
228 | + for(keypad = keypads;keypad;keypad = g_list_next(keypad)) { | ||
229 | + | ||
230 | + if(pw3270_keypad_get_position(G_OBJECT(keypad->data)) == KEYPAD_POSITION_LEFT) { | ||
231 | + gtk_box_pack_start( | ||
232 | + hBox, | ||
233 | + pw3270_keypad_get_from_model(G_OBJECT(keypad->data)), | ||
234 | + FALSE,FALSE,0 | ||
235 | + ); | ||
236 | + } | ||
237 | + } | ||
238 | + | ||
239 | + // Add center notebook | ||
240 | + gtk_box_pack_start(hBox,GTK_WIDGET(widget->notebook),TRUE,TRUE,0); | ||
241 | + | ||
242 | + // Add right keypads | ||
243 | + for(keypad = keypads;keypad;keypad = g_list_next(keypad)) { | ||
244 | + | ||
245 | + if(pw3270_keypad_get_position(G_OBJECT(keypad->data)) == KEYPAD_POSITION_RIGHT) { | ||
246 | + gtk_box_pack_end( | ||
247 | + hBox, | ||
248 | + pw3270_keypad_get_from_model(G_OBJECT(keypad->data)), | ||
249 | + FALSE,FALSE,0 | ||
250 | + ); | ||
251 | + } | ||
252 | + } | ||
253 | + | ||
254 | + | ||
255 | + // Add it to the container | ||
256 | + gtk_widget_show(GTK_WIDGET(hBox)); | ||
257 | + gtk_box_pack_start(container,GTK_WIDGET(hBox),TRUE,TRUE,0); | ||
258 | + | ||
259 | + } else { | ||
260 | + | ||
261 | + gtk_box_pack_start(container,GTK_WIDGET(widget->notebook),TRUE,TRUE,0); | ||
262 | + | ||
263 | + } | ||
264 | + | ||
265 | + gtk_widget_show_all(GTK_WIDGET(widget->notebook)); | ||
266 | + | ||
267 | + gtk_widget_show(GTK_WIDGET(container)); | ||
268 | + gtk_container_add(GTK_CONTAINER(widget),GTK_WIDGET(container)); | ||
221 | 269 | ||
222 | // | 270 | // |
223 | // Setup tn3270 actions. | 271 | // Setup tn3270 actions. |