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 | 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 | { | ... | ... |