diff --git a/pw3270.cbp b/pw3270.cbp
index 6c388ce..ba350c7 100644
--- a/pw3270.cbp
+++ b/pw3270.cbp
@@ -347,6 +347,7 @@
+
diff --git a/src/pw3270/Makefile.in b/src/pw3270/Makefile.in
index 25820bd..8cbec15 100644
--- a/src/pw3270/Makefile.in
+++ b/src/pw3270/Makefile.in
@@ -191,6 +191,7 @@ $(DEBDIR)/pw3270.install: Makefile
@echo "$(libdir)/@DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@" >> $@
@echo "$(datarootdir)/$(PACKAGE_NAME)/ui/00default.xml" >> $@
@echo "$(datarootdir)/$(PACKAGE_NAME)/ui/10keypad.xml" >> $@
+ @echo "$(datarootdir)/$(PACKAGE_NAME)/ui/10functions.xml" >> $@
@echo "$(datarootdir)/$(PACKAGE_NAME)/$(PACKAGE_NAME).png" >> $@
@echo "$(datarootdir)/$(PACKAGE_NAME)/$(PACKAGE_NAME)-logo.png" >> $@
diff --git a/src/pw3270/uiparser/keypad.c b/src/pw3270/uiparser/keypad.c
index ed42d11..bcf7037 100644
--- a/src/pw3270/uiparser/keypad.c
+++ b/src/pw3270/uiparser/keypad.c
@@ -210,6 +210,24 @@
}
+ UI_ATTR_DIRECTION ui_get_position_attribute(const gchar **names, const gchar **values)
+ {
+ static const gchar * posname[] = { "top", "bottom", "left", "right" };
+ const gchar * dir = ui_get_attribute("position",names,values);
+ int f;
+
+ if(dir)
+ {
+ for(f=0;fparser = info;
keypad->handle = gtk_handle_box_new();
- keypad->pos = ui_get_dir_attribute(names,values);
+ keypad->pos = ui_get_position_attribute(names,values);
keypad->relief = get_relief(names, values, GTK_RELIEF_NORMAL);
switch(keypad->pos)
@@ -284,7 +302,6 @@
}
}
-
gtk_handle_box_set_shadow_type(GTK_HANDLE_BOX(keypad->handle),GTK_SHADOW_ETCHED_IN);
gtk_container_add(GTK_CONTAINER(keypad->handle),keypad->box);
@@ -297,7 +314,6 @@
{
if(widget)
{
- gtk_widget_show_all(widget);
gtk_table_attach( GTK_TABLE(keypad->table),
widget,
keypad->col,keypad->col+keypad->button_width,
@@ -350,8 +366,6 @@
gtk_box_pack_start(GTK_BOX(keypad->box),keypad->table,FALSE,FALSE,0);
gtk_widget_show_all(keypad->box);
- gtk_widget_show_all(keypad->table);
- gtk_widget_show_all(keypad->handle);
}
g_free(keypad);
diff --git a/src/pw3270/uiparser/parser.c b/src/pw3270/uiparser/parser.c
index 8f483aa..487474d 100644
--- a/src/pw3270/uiparser/parser.c
+++ b/src/pw3270/uiparser/parser.c
@@ -85,7 +85,6 @@ static void pack_keypad(gpointer key, GtkWidget *widget, struct keypad *k)
if(gtk_handle_box_get_handle_position(GTK_HANDLE_BOX(widget)) != k->filter)
return;
- gtk_widget_show_all(widget);
k->pack(GTK_BOX(k->box),widget,FALSE,FALSE,0);
}
@@ -189,9 +188,11 @@ void parser_build(struct parser *p, GtkWidget *widget)
struct action_info a_info;
#if GTK_CHECK_VERSION(3,0,0)
+ GtkWidget * mainBox = gtk_box_new(GTK_ORIENTATION_VERTICAL,0);
GtkWidget * vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL,0);
GtkWidget * hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0);
#else
+ GtkWidget * mainBox = gtk_vbox_new(FALSE,0);
GtkWidget * vbox = gtk_vbox_new(FALSE,0);
GtkWidget * hbox = gtk_hbox_new(FALSE,0);
#endif // GTK(3,0,0)
@@ -224,7 +225,7 @@ void parser_build(struct parser *p, GtkWidget *widget)
g_hash_table_foreach(p->actions,(GHFunc) action_group_setup, &a_info);
// Pack menubars
- p->element = G_OBJECT(vbox);
+ p->element = G_OBJECT(mainBox);
g_hash_table_foreach(p->element_list[UI_ELEMENT_MENUBAR],(GHFunc) pack_start, p);
// Pack top toolbars
@@ -247,9 +248,10 @@ void parser_build(struct parser *p, GtkWidget *widget)
if(widget)
{
ui_set_scroll_actions(widget,p->scroll_action);
- gtk_box_pack_start(GTK_BOX(hbox),widget,TRUE,TRUE,0);
+ gtk_box_pack_start(GTK_BOX(vbox),widget,TRUE,TRUE,0);
gtk_widget_show(widget);
}
+ gtk_box_pack_start(GTK_BOX(hbox),vbox,TRUE,TRUE,0);
// Pack right keypads
keypad.filter = GTK_POS_LEFT;
@@ -262,11 +264,12 @@ void parser_build(struct parser *p, GtkWidget *widget)
g_hash_table_foreach(p->element_list[UI_ELEMENT_KEYPAD],(GHFunc) pack_keypad, &keypad);
// Finish building
- gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,0);
- gtk_container_add(GTK_CONTAINER(p->toplevel),vbox);
+ gtk_box_pack_start(GTK_BOX(mainBox),hbox,TRUE,TRUE,0);
+ gtk_container_add(GTK_CONTAINER(p->toplevel),mainBox);
gtk_widget_show(hbox);
gtk_widget_show(vbox);
+ gtk_widget_show(mainBox);
gtk_window_add_accel_group(GTK_WINDOW(p->toplevel),a_info.accel_group);
diff --git a/ui/10functions.xml b/ui/10functions.xml
new file mode 100644
index 0000000..09a57a0
--- /dev/null
+++ b/ui/10functions.xml
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--
libgit2 0.21.2