Commit 8ad94851a8f6c58c023cac660f07615b4fb9ec09
1 parent
33a76c40
Exists in
master
and in
5 other branches
Ajustes para compatibilizar com GTK 2.16
Showing
3 changed files
with
43 additions
and
17 deletions
Show diff stats
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 | { |