Commit 8ad94851a8f6c58c023cac660f07615b4fb9ec09

Authored by perry.werneck@gmail.com
1 parent 33a76c40

Ajustes para compatibilizar com GTK 2.16

src/pw3270/actions.c
... ... @@ -472,6 +472,30 @@ static int setup_block_action(const gchar *name, const gchar *attr, GError **err
472 472 return id;
473 473 }
474 474  
  475 +static GtkAction * new_action(const gchar *name, const gchar **names, const gchar **values)
  476 +{
  477 +#if GTK_CHECK_VERSION(2,16,0)
  478 + const gchar *label = ui_get_attribute("label",names,values);
  479 + const gchar *tooltip = ui_get_attribute("tooltip",names,values);
  480 + const gchar *id = ui_get_attribute("label",names,values);
  481 + GtkAction *action = NULL;
  482 +
  483 + if(id)
  484 + {
  485 + gchar * stock = g_strconcat("gtk-",id,NULL);
  486 + action = gtk_action_new(name,label,tooltip,stock);
  487 + g_free(stock);
  488 + }
  489 + else
  490 + {
  491 + action = gtk_action_new(name,label,tooltip,NULL);
  492 + }
  493 + return action;
  494 +#else
  495 + return gtk_action_new(nm,NULL,NULL,NULL);
  496 +#endif // GTK(2,16)
  497 +}
  498 +
475 499 GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash, const gchar **names, const gchar **values, GError **error)
476 500 {
477 501 static const gchar *actionname[ACTION_COUNT] = { "pastenext",
... ... @@ -723,7 +747,7 @@ GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash
723 747 switch(action_type)
724 748 {
725 749 case ACTION_TYPE_DEFAULT:
726   - action = gtk_action_new(nm,NULL,NULL,NULL);
  750 + action = new_action(nm,names,values);
727 751 connect_standard_action(action,widget,name);
728 752 break;
729 753  
... ... @@ -737,47 +761,47 @@ GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash
737 761 break;
738 762  
739 763 case ACTION_TYPE_MOVE:
740   - action = gtk_action_new(nm,NULL,NULL,NULL);
  764 + action = new_action(nm,names,values);
741 765 connect_move_action(action,widget,attr,flags,error);
742 766 break;
743 767  
744 768 case ACTION_TYPE_PFKEY:
745   - action = gtk_action_new(nm,NULL,NULL,NULL);
  769 + action = new_action(nm,names,values);
746 770 g_object_set_data(G_OBJECT(action),"pfkey",GINT_TO_POINTER(id));
747 771 g_signal_connect(action,"activate",G_CALLBACK(action_pfkey),widget);
748 772 break;
749 773  
750 774 case ACTION_TYPE_PAKEY:
751   - action = gtk_action_new(nm,NULL,NULL,NULL);
  775 + action = new_action(nm,names,values);
752 776 g_object_set_data(G_OBJECT(action),"pakey",GINT_TO_POINTER(id));
753 777 g_signal_connect(action,"activate",G_CALLBACK(action_pakey),widget);
754 778 break;
755 779  
756 780 case ACTION_TYPE_SET:
757   - action = gtk_action_new(nm,NULL,NULL,NULL);
  781 + action = new_action(nm,names,values);
758 782 g_object_set_data(G_OBJECT(action),"toggle_id",GINT_TO_POINTER(id));
759 783 g_signal_connect(action,"activate",G_CALLBACK(action_set_toggle),widget);
760 784 break;
761 785  
762 786 case ACTION_TYPE_RESET:
763   - action = gtk_action_new(nm,NULL,NULL,NULL);
  787 + action = new_action(nm,names,values);
764 788 g_object_set_data(G_OBJECT(action),"toggle_id",GINT_TO_POINTER(id));
765 789 g_signal_connect(action,"activate",G_CALLBACK(action_reset_toggle),widget);
766 790 break;
767 791  
768 792 case ACTION_TYPE_TABLE:
769   - action = gtk_action_new(nm,NULL,NULL,NULL);
  793 + action = new_action(nm,names,values);
770 794 g_signal_connect(action,"activate",callback[id],widget);
771 795 break;
772 796  
773 797 case ACTION_TYPE_LIB3270:
774   - action = gtk_action_new(nm,NULL,NULL,NULL);
  798 + action = new_action(nm,names,values);
775 799 g_object_set_data(G_OBJECT(action),"lib3270_call",callback[id]);
776 800 g_signal_connect(action,"activate",G_CALLBACK(lib3270_action),widget);
777 801 break;
778 802  
779 803 case ACTION_TYPE_STRING:
780   - action = gtk_action_new(nm,NULL,NULL,NULL);
  804 + action = new_action(nm,names,values);
781 805 g_signal_connect(action,"activate",G_CALLBACK(action_string),widget);
782 806 break;
783 807 }
... ...
src/pw3270/uiparser/action.c
... ... @@ -83,9 +83,11 @@
83 83 }
84 84 else if(!g_ascii_strcasecmp(name[f],"icon"))
85 85 {
  86 +#if GTK_CHECK_VERSION(2,16,0)
86 87 gchar * stock = g_strconcat("gtk-",value[f],NULL);
87 88 gtk_action_set_stock_id(action,stock);
88 89 g_free(stock);
  90 +#endif // GTK(2,16)
89 91 }
90 92 else if(!g_ascii_strcasecmp(name[f],"sensitive"))
91 93 {
... ... @@ -93,19 +95,27 @@
93 95 }
94 96 else if(!g_ascii_strcasecmp(name[f],"label"))
95 97 {
  98 +#if GTK_CHECK_VERSION(2,16,0)
96 99 gtk_action_set_label(action,gettext(value[f]));
  100 +#endif // GTK(2,16)
97 101 }
98 102 else if(!g_ascii_strcasecmp(name[f],"short-label"))
99 103 {
  104 +#if GTK_CHECK_VERSION(2,16,0)
100 105 gtk_action_set_short_label(action,gettext(value[f]));
  106 +#endif // GTK(2,16)
101 107 }
102 108 else if(!g_ascii_strcasecmp(name[f],"tooltip"))
103 109 {
  110 +#if GTK_CHECK_VERSION(2,16,0)
104 111 gtk_action_set_tooltip(action,gettext(value[f]));
  112 +#endif // GTK(2,16)
105 113 }
106 114 else if(!g_ascii_strcasecmp(name[f],"important"))
107 115 {
  116 +#if GTK_CHECK_VERSION(2,16,0)
108 117 gtk_action_set_is_important(action,get_boolean(value[f]));
  118 +#endif // GTK(2,16)
109 119 }
110 120 else if(!g_ascii_strcasecmp(name[f],"key"))
111 121 {
... ...
src/pw3270/uiparser/parser.c
... ... @@ -141,14 +141,6 @@ static void action_group_setup(gpointer key, GtkAction *action, struct action_in
141 141 {
142 142 const gchar * key_name = g_object_get_data(G_OBJECT(action),"accel_attr");
143 143 GSList * child = gtk_action_get_proxies(action);
144   -/*
145   -
146   - Trace("Adding action %s in group %s key=%s",
147   - gtk_action_get_name(action),
148   - gtk_action_group_get_name(info->group[group_id]),
149   - key_name);
150   -*/
151   -
152 144  
153 145 if(key_name && !v3270_set_keyboard_action(info->widget,key_name,action))
154 146 {
... ...