diff --git a/src/pw3270/actions.c b/src/pw3270/actions.c
index c50890d..ae02e3f 100644
--- a/src/pw3270/actions.c
+++ b/src/pw3270/actions.c
@@ -499,6 +499,24 @@ static void action_select_last(GtkAction *action, GtkWidget *widget)
lib3270_reselect(v3270_get_session(widget));
}
+static void action_zoom_in(GtkAction *action, GtkWidget *widget)
+{
+ trace("Action zoom_in activated on widget %p\n",widget);
+ v3270_zoom_in(widget);
+}
+
+static void action_zoom_out(GtkAction *action, GtkWidget *widget)
+{
+ trace("Action zoom_out activated on widget %p\n",widget);
+ v3270_zoom_out(widget);
+}
+
+static void action_zoom_fit(GtkAction *action, GtkWidget *widget)
+{
+ trace("Action zoom_fit activated on widget %p\n",widget);
+ v3270_zoom_best(widget);
+}
+
static void action_string(GtkAction *action, GtkWidget *widget)
{
gchar *text = g_object_get_data(G_OBJECT(action),"value");
@@ -852,6 +870,21 @@ GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash
attr = ui_get_attribute("name",names,values);
nm = g_strdup(attr ? attr : name);
}
+ else if(!g_ascii_strcasecmp(name,"zoom"))
+ {
+ static const gchar * src[] = { "in", "out", "fit", NULL };
+
+ static const GCallback cbk[] = { G_CALLBACK(action_zoom_in),
+ G_CALLBACK(action_zoom_out),
+ G_CALLBACK(action_zoom_fit)
+ };
+ callback = cbk;
+ action_type = ACTION_TYPE_TABLE;
+ id = get_attribute_id(name,"mode",&nm,src,names,values,error);
+ if(id < 0)
+ return NULL;
+
+ }
else
{
attr = ui_get_attribute("name",names,values);
diff --git a/ui/00default.xml b/ui/00default.xml
index 925fb90..c70a4d4 100644
--- a/ui/00default.xml
+++ b/ui/00default.xml
@@ -236,6 +236,10 @@
+
+
+
+
--
libgit2 0.21.2