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