Commit 8ba2cf1161a2f0286b2eba0e0b3c6586b1243ebe

Authored by Perry Werneck
1 parent 1e843d2a

Adding zoom options (Ctrl+ Ctrl- Ctrl0).

Showing 2 changed files with 37 additions and 0 deletions   Show diff stats
src/pw3270/actions.c
... ... @@ -499,6 +499,24 @@ static void action_select_last(GtkAction *action, GtkWidget *widget)
499 499 lib3270_reselect(v3270_get_session(widget));
500 500 }
501 501  
  502 +static void action_zoom_in(GtkAction *action, GtkWidget *widget)
  503 +{
  504 + trace("Action zoom_in activated on widget %p\n",widget);
  505 + v3270_zoom_in(widget);
  506 +}
  507 +
  508 +static void action_zoom_out(GtkAction *action, GtkWidget *widget)
  509 +{
  510 + trace("Action zoom_out activated on widget %p\n",widget);
  511 + v3270_zoom_out(widget);
  512 +}
  513 +
  514 +static void action_zoom_fit(GtkAction *action, GtkWidget *widget)
  515 +{
  516 + trace("Action zoom_fit activated on widget %p\n",widget);
  517 + v3270_zoom_best(widget);
  518 +}
  519 +
502 520 static void action_string(GtkAction *action, GtkWidget *widget)
503 521 {
504 522 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
852 870 attr = ui_get_attribute("name",names,values);
853 871 nm = g_strdup(attr ? attr : name);
854 872 }
  873 + else if(!g_ascii_strcasecmp(name,"zoom"))
  874 + {
  875 + static const gchar * src[] = { "in", "out", "fit", NULL };
  876 +
  877 + static const GCallback cbk[] = { G_CALLBACK(action_zoom_in),
  878 + G_CALLBACK(action_zoom_out),
  879 + G_CALLBACK(action_zoom_fit)
  880 + };
  881 + callback = cbk;
  882 + action_type = ACTION_TYPE_TABLE;
  883 + id = get_attribute_id(name,"mode",&nm,src,names,values,error);
  884 + if(id < 0)
  885 + return NULL;
  886 +
  887 + }
855 888 else
856 889 {
857 890 attr = ui_get_attribute("name",names,values);
... ...
ui/00default.xml
... ... @@ -236,6 +236,10 @@
236 236  
237 237 <accelerator action='dup' key='<Shift>KP_Multiply' group='online' />
238 238  
  239 + <accelerator action='zoom' mode='in' key='<ctrl>KP_Add' group='online' />
  240 + <accelerator action='zoom' mode='out' key='<ctrl>KP_Subtract' group='online' />
  241 + <accelerator action='zoom' mode='fit' key='<ctrl>0' group='online' />
  242 +
239 243 <!-- accelerator action='fieldend' key='End' group='online' / -->
240 244 <!-- accelerator name="newline" action='newline' key='Control_R' group='online' / -->
241 245  
... ...