From 684ad52c186fdc55fc9d032788f97f0d34aedba1 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 29 May 2020 15:50:51 -0300 Subject: [PATCH] Working on keypads. --- src/include/pw3270/keypad.h | 9 +++++++++ src/objects/keypad/keypad.c | 18 +++++++++++++----- src/objects/window/page.c | 3 +-- src/objects/window/terminal.c | 2 ++ 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/include/pw3270/keypad.h b/src/include/pw3270/keypad.h index d70825b..28d7d12 100644 --- a/src/include/pw3270/keypad.h +++ b/src/include/pw3270/keypad.h @@ -55,6 +55,15 @@ GList * pw3270_keypad_model_new_from_xml(GList *keypads, const gchar *filename); GtkWidget * pw3270_keypad_get_from_model(GObject *model); + typedef enum _keypad_position { + KEYPAD_POSITION_TOP, + KEYPAD_POSITION_LEFT, + KEYPAD_POSITION_BOTTOM, + KEYPAD_POSITION_RIGHT + } KEYPAD_POSITION; + + KEYPAD_POSITION pw3270_keypad_get_position(GObject *model); + G_END_DECLS #endif // PW3270_KEYPAD_H_INCLUDED diff --git a/src/objects/keypad/keypad.c b/src/objects/keypad/keypad.c index 6f5f4f8..4b20eb1 100644 --- a/src/objects/keypad/keypad.c +++ b/src/objects/keypad/keypad.c @@ -42,9 +42,9 @@ }; static const char * positions[] = { - "up", - "down", + "top", "left", + "bottom", "right" }; @@ -144,9 +144,11 @@ static void KeypadModel_init(KeypadModel *object) { + object->position = (unsigned short) KEYPAD_POSITION_BOTTOM; + } - static void get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { + static void get_property(GObject *object, guint prop_id, GValue *value, GParamSpec G_GNUC_UNUSED(*pspec)) { KeypadModel * model = PW_KEYPAD_MODEL(object); @@ -177,7 +179,7 @@ } - static void set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { + static void set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec G_GNUC_UNUSED(*pspec)) { KeypadModel * model = PW_KEYPAD_MODEL(object); @@ -299,7 +301,7 @@ } - static void element_end(GMarkupParseContext *context, const gchar *element_name, KeypadModel *keypad, GError **error) { + static void element_end(GMarkupParseContext *context, const gchar *element_name, KeypadModel *keypad, GError G_GNUC_UNUSED(**error)) { debug("%s(%s)",__FUNCTION__,element_name); @@ -340,3 +342,9 @@ model->elements = g_list_reverse(model->elements); } + + KEYPAD_POSITION pw3270_keypad_get_position(GObject *model) { + g_return_val_if_fail(PW_IS_KEYPAD_MODEL(model), (KEYPAD_POSITION) -1); + return (KEYPAD_POSITION) PW_KEYPAD_MODEL(model)->position; + } + diff --git a/src/objects/window/page.c b/src/objects/window/page.c index d400d8b..75eccad 100644 --- a/src/objects/window/page.c +++ b/src/objects/window/page.c @@ -136,7 +136,6 @@ g_signal_connect(G_OBJECT(label), "destroy", G_CALLBACK(label_disconnect),terminal); // Setup tab - GtkWidget * tab = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,2); GtkWidget * button = gtk_button_new_from_icon_name("window-close-symbolic",GTK_ICON_SIZE_MENU); GtkNotebook * notebook = PW3270_APPLICATION_WINDOW(window)->notebook; @@ -155,13 +154,13 @@ g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(close_page), terminal); - gtk_box_pack_start(GTK_BOX(tab),label,FALSE,FALSE,0); gtk_box_pack_end(GTK_BOX(tab),button,FALSE,FALSE,0); gtk_widget_show_all(terminal); gtk_widget_show_all(tab); + // Add page gint page = gtk_notebook_append_page(notebook,terminal,tab); gtk_notebook_set_tab_detachable(notebook,terminal,TRUE); diff --git a/src/objects/window/terminal.c b/src/objects/window/terminal.c index d7881f6..ba5c9af 100644 --- a/src/objects/window/terminal.c +++ b/src/objects/window/terminal.c @@ -201,6 +201,8 @@ GtkWidget * terminal = v3270_new(); + gtk_widget_show_all(terminal); + struct SessionDescriptor * descriptor = NULL; if(session_file) { -- libgit2 0.21.2