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