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 | 49 | gtk_widget_set_can_default(button,FALSE); |
50 | 50 | gtk_widget_set_focus_on_click(button,FALSE); |
51 | 51 | |
52 | + gtk_widget_show_all(button); | |
53 | + | |
52 | 54 | gtk_grid_attach( |
53 | 55 | grid, |
54 | 56 | button, |
... | ... | @@ -81,5 +83,7 @@ |
81 | 83 | |
82 | 84 | g_list_foreach(keypad->elements,(GFunc) create_child, grid); |
83 | 85 | |
86 | + gtk_widget_show(grid); // FIX-ME | |
87 | + | |
84 | 88 | return grid; |
85 | 89 | } | ... | ... |
src/objects/window/window.c
... | ... | @@ -32,6 +32,7 @@ |
32 | 32 | #include <pw3270/toolbar.h> |
33 | 33 | #include <pw3270/application.h> |
34 | 34 | #include <pw3270/actions.h> |
35 | + #include <pw3270/keypad.h> | |
35 | 36 | |
36 | 37 | static void get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec); |
37 | 38 | static void set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec); |
... | ... | @@ -187,7 +188,7 @@ |
187 | 188 | widget->state.is_fullscreen = 0; |
188 | 189 | |
189 | 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 | 193 | widget->notebook = GTK_NOTEBOOK(gtk_notebook_new()); |
193 | 194 | gtk_notebook_set_scrollable(widget->notebook,TRUE); |
... | ... | @@ -197,7 +198,6 @@ |
197 | 198 | |
198 | 199 | { |
199 | 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 | 201 | GtkWidget * new_tab = gtk_button_new_from_icon_name("tab-new-symbolic",GTK_ICON_SIZE_LARGE_TOOLBAR); |
202 | 202 | gtk_button_set_relief(GTK_BUTTON(new_tab),GTK_RELIEF_NONE); |
203 | 203 | gtk_actionable_set_action_name(GTK_ACTIONABLE(new_tab),"app.new.tab"); |
... | ... | @@ -213,11 +213,59 @@ |
213 | 213 | } |
214 | 214 | |
215 | 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 | 271 | // Setup tn3270 actions. | ... | ... |