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