Commit 2a2e96798031245c0a798911feb3c62c079a473b
1 parent
1108431d
Exists in
master
and in
1 other branch
Updating/fixing translations.
Showing
12 changed files
with
123 additions
and
74 deletions
Show diff stats
src/dialogs/print/convenience.c
| ... | ... | @@ -146,7 +146,7 @@ |
| 146 | 146 | |
| 147 | 147 | int v3270_print(GtkWidget *widget, GError **error) |
| 148 | 148 | { |
| 149 | - return v3270_print_dialog(widget,(lib3270_has_selection(GTK_V3270(widget)->host) ? LIB3270_CONTENT_SELECTED : LIB3270_CONTENT_ALL),error); | |
| 149 | + return v3270_print_dialog(widget,(lib3270_get_has_selection(GTK_V3270(widget)->host) ? LIB3270_CONTENT_SELECTED : LIB3270_CONTENT_ALL),error); | |
| 150 | 150 | } |
| 151 | 151 | |
| 152 | 152 | ... | ... |
src/dialogs/settings/accelerator.c
| ... | ... | @@ -95,7 +95,8 @@ |
| 95 | 95 | enum |
| 96 | 96 | { |
| 97 | 97 | ACTION, ///< @brief The action object. |
| 98 | - DESCRIPTION, ///< @brief The action description. | |
| 98 | + NAME, ///< @brief The action name. | |
| 99 | + SUMMARY, ///< @brief The action summary. | |
| 99 | 100 | MAIN_MASK, ///< @brief The mask for the main accelerator. |
| 100 | 101 | MAIN_VALUE, ///< @brief The value for the main accelerator. |
| 101 | 102 | ALTERNATIVE_MASK, ///< @brief The mask for the alternative accelerator. |
| ... | ... | @@ -116,16 +117,6 @@ |
| 116 | 117 | // Create description list |
| 117 | 118 | GtkCellRenderer * text_renderer = gtk_cell_renderer_text_new(); |
| 118 | 119 | |
| 119 | - /* | |
| 120 | - g_object_set( | |
| 121 | - text_renderer, | |
| 122 | - "alignment", PANGO_ALIGN_LEFT, | |
| 123 | - "wrap-width", 100, | |
| 124 | - "wrap-mode", PANGO_WRAP_WORD_CHAR, | |
| 125 | - NULL | |
| 126 | - ); | |
| 127 | - */ | |
| 128 | - | |
| 129 | 120 | // Create accelerator render |
| 130 | 121 | GtkCellRenderer * accel_renderer[] = { gtk_cell_renderer_accel_new(), gtk_cell_renderer_accel_new() }; |
| 131 | 122 | |
| ... | ... | @@ -144,32 +135,43 @@ |
| 144 | 135 | g_signal_connect (G_OBJECT(accel_renderer[0]), "accel_edited", G_CALLBACK (accel_edited), widget); |
| 145 | 136 | g_signal_connect (G_OBJECT(accel_renderer[1]), "accel_edited", G_CALLBACK (alternative_edited), widget); |
| 146 | 137 | |
| 147 | - widget->store = GTK_LIST_STORE(gtk_list_store_new(COLUMNS, G_TYPE_POINTER, G_TYPE_STRING, G_TYPE_INT, G_TYPE_UINT, G_TYPE_INT, G_TYPE_UINT)); | |
| 138 | + widget->store = GTK_LIST_STORE(gtk_list_store_new(COLUMNS, G_TYPE_POINTER, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_UINT, G_TYPE_INT, G_TYPE_UINT)); | |
| 148 | 139 | |
| 149 | 140 | gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(widget->store),1,GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID); |
| 150 | 141 | |
| 151 | 142 | GtkWidget * view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(widget->store)); |
| 152 | 143 | g_signal_connect(G_OBJECT(widget),"realize",G_CALLBACK(realize),view); |
| 153 | 144 | |
| 154 | - /* | |
| 155 | - g_object_set( | |
| 156 | - view, | |
| 157 | - "horizontal-separator", 50, | |
| 158 | - "vertical-separator", 50, | |
| 159 | - NULL | |
| 160 | - ); | |
| 161 | - */ | |
| 162 | - | |
| 163 | 145 | gtk_widget_set_tooltip_markup(view,_("Keyboard accelerators")); |
| 164 | 146 | gtk_tree_view_set_fixed_height_mode(GTK_TREE_VIEW(view),FALSE); |
| 165 | 147 | |
| 166 | - // Description column | |
| 167 | - GtkTreeViewColumn * column = | |
| 148 | + GtkTreeViewColumn * column; | |
| 149 | + | |
| 150 | + // Name columns | |
| 151 | + column = | |
| 152 | + gtk_tree_view_column_new_with_attributes( | |
| 153 | + _("Name"), | |
| 154 | + text_renderer, | |
| 155 | + "text", | |
| 156 | + NAME, | |
| 157 | + NULL | |
| 158 | + ); | |
| 159 | + | |
| 160 | + gtk_tree_view_column_set_resizable(column, TRUE); | |
| 161 | + | |
| 162 | + gtk_tree_view_insert_column( | |
| 163 | + GTK_TREE_VIEW(view), | |
| 164 | + column, | |
| 165 | + -1 | |
| 166 | + ); | |
| 167 | + | |
| 168 | + // Summary column | |
| 169 | + column = | |
| 168 | 170 | gtk_tree_view_column_new_with_attributes( |
| 169 | - _("Action"), | |
| 171 | + _("Summary"), | |
| 170 | 172 | text_renderer, |
| 171 | 173 | "text", |
| 172 | - DESCRIPTION, | |
| 174 | + SUMMARY, | |
| 173 | 175 | NULL |
| 174 | 176 | ); |
| 175 | 177 | |
| ... | ... | @@ -205,7 +207,7 @@ |
| 205 | 207 | |
| 206 | 208 | for(ix = 1; ix < 3; ix++) |
| 207 | 209 | { |
| 208 | - GtkTreeViewColumn * column = gtk_tree_view_get_column(GTK_TREE_VIEW(view), ix); | |
| 210 | + column = gtk_tree_view_get_column(GTK_TREE_VIEW(view), ix); | |
| 209 | 211 | gtk_tree_view_column_set_min_width(column, 200); |
| 210 | 212 | gtk_tree_view_column_set_resizable(column, TRUE); |
| 211 | 213 | } |
| ... | ... | @@ -237,8 +239,6 @@ LIB3270_EXPORT GtkWidget * v3270_accelerator_settings_new() |
| 237 | 239 | settings->title = _("Keyboard accelerators"); |
| 238 | 240 | settings->label = _("Accelerators"); |
| 239 | 241 | |
| 240 | - debug("*********** [%s] [%s] [%s]",settings->title,gettext(settings->title),g_dgettext(GETTEXT_PACKAGE,settings->title)); | |
| 241 | - | |
| 242 | 242 | return GTK_WIDGET(settings); |
| 243 | 243 | } |
| 244 | 244 | |
| ... | ... | @@ -510,7 +510,8 @@ void load(GtkWidget *widget, GtkWidget *terminal) |
| 510 | 510 | store, |
| 511 | 511 | &iter, |
| 512 | 512 | ACTION, current, |
| 513 | - DESCRIPTION, v3270_accelerator_get_description(current), | |
| 513 | + NAME, v3270_accelerator_get_name(current), | |
| 514 | + SUMMARY, v3270_accelerator_get_summary(current), | |
| 514 | 515 | MAIN_MASK, keymaps[0].mods, |
| 515 | 516 | MAIN_VALUE, keymaps[0].key, |
| 516 | 517 | ALTERNATIVE_MASK, keymaps[1].mods, | ... | ... |
src/dialogs/settings/host.c
| ... | ... | @@ -517,12 +517,12 @@ static void V3270HostSelectWidget_init(V3270HostSelectWidget *widget) |
| 517 | 517 | |
| 518 | 518 | if(descriptor) |
| 519 | 519 | { |
| 520 | - widget->input.toggles[toggle] = GTK_TOGGLE_BUTTON(gtk_check_button_new_with_label(gettext(descriptor->label))); | |
| 520 | + widget->input.toggles[toggle] = GTK_TOGGLE_BUTTON(gtk_check_button_new_with_label(lib3270_toggle_get_label(descriptor))); | |
| 521 | 521 | |
| 522 | - if(descriptor->description && *descriptor->description) | |
| 523 | - gtk_widget_set_tooltip_text(GTK_WIDGET(widget->input.toggles[toggle]),gettext(descriptor->description)); | |
| 524 | - else if(descriptor->summary && *descriptor->summary) | |
| 525 | - gtk_widget_set_tooltip_text(GTK_WIDGET(widget->input.toggles[toggle]),gettext(descriptor->summary)); | |
| 522 | + const gchar *tooltip = lib3270_property_get_tooltip((const LIB3270_PROPERTY *) descriptor); | |
| 523 | + | |
| 524 | + if(tooltip && *tooltip) | |
| 525 | + gtk_widget_set_tooltip_text(GTK_WIDGET(widget->input.toggles[toggle]),tooltip); | |
| 526 | 526 | |
| 527 | 527 | gtk_widget_set_halign(GTK_WIDGET(widget->input.toggles[toggle]),GTK_ALIGN_START); |
| 528 | 528 | gtk_grid_attach(GTK_GRID(connection),GTK_WIDGET(widget->input.toggles[toggle]),toggleList[toggle].left,toggleList[toggle].top,1,1); | ... | ... |
src/dialogs/togglebutton.c
| ... | ... | @@ -30,6 +30,7 @@ |
| 30 | 30 | #include <internals.h> |
| 31 | 31 | #include <lib3270.h> |
| 32 | 32 | #include <lib3270/toggle.h> |
| 33 | + #include <lib3270/properties.h> | |
| 33 | 34 | |
| 34 | 35 | /*--[ Widget definition ]----------------------------------------------------------------------------*/ |
| 35 | 36 | |
| ... | ... | @@ -108,7 +109,7 @@ |
| 108 | 109 | |
| 109 | 110 | GtkWidget * v3270_toggle_button_new(LIB3270_TOGGLE_ID id) |
| 110 | 111 | { |
| 111 | - const LIB3270_TOGGLE * toggle = lib3270_toggle_get_from_id(id); | |
| 112 | + const LIB3270_PROPERTY * toggle = (const LIB3270_PROPERTY *) lib3270_toggle_get_from_id(id); | |
| 112 | 113 | |
| 113 | 114 | if(!toggle) |
| 114 | 115 | return NULL; |
| ... | ... | @@ -117,13 +118,13 @@ |
| 117 | 118 | |
| 118 | 119 | widget->id = id; |
| 119 | 120 | |
| 120 | - gtk_widget_set_name(GTK_WIDGET(widget),toggle->name); | |
| 121 | - gtk_button_set_label(GTK_BUTTON(widget),gettext(toggle->label)); | |
| 121 | + gtk_widget_set_name(GTK_WIDGET(widget),lib3270_property_get_name(toggle)); | |
| 122 | + gtk_button_set_label(GTK_BUTTON(widget),lib3270_property_get_label(toggle)); | |
| 122 | 123 | |
| 123 | - if(toggle->description) | |
| 124 | - gtk_widget_set_tooltip_text(GTK_WIDGET(widget),gettext(toggle->description)); | |
| 125 | - else if(toggle->summary) | |
| 126 | - gtk_widget_set_tooltip_text(GTK_WIDGET(widget),gettext(toggle->summary)); | |
| 124 | + const char * tooltip = lib3270_property_get_tooltip(toggle); | |
| 125 | + | |
| 126 | + if(tooltip && *tooltip) | |
| 127 | + gtk_widget_set_tooltip_text(GTK_WIDGET(widget),tooltip); | |
| 127 | 128 | |
| 128 | 129 | gtk_widget_set_sensitive(GTK_WIDGET(widget),FALSE); |
| 129 | 130 | ... | ... |
src/filetransfer/v3270ftprogress.c
| ... | ... | @@ -602,7 +602,7 @@ static void ft_failed(H3270 *hSession, unsigned long length,double kbytes_sec,co |
| 602 | 602 | while(*text && g_ascii_isspace(*text)) |
| 603 | 603 | text++; |
| 604 | 604 | |
| 605 | - delay_signal(hSession, V3270FTPROGRESS_SIGNAL_FAILED, text, gettext(ftmsg[f].text)); | |
| 605 | + delay_signal(hSession, V3270FTPROGRESS_SIGNAL_FAILED, text, g_dgettext(PACKAGE_NAME,ftmsg[f].text)); | |
| 606 | 606 | |
| 607 | 607 | return; |
| 608 | 608 | |
| ... | ... | @@ -664,7 +664,7 @@ static void ft_message(G_GNUC_UNUSED H3270 *hSession, const char *text, void *wi |
| 664 | 664 | debug("%s(%s,%p)",__FUNCTION__,text,widget); |
| 665 | 665 | |
| 666 | 666 | if(widget) { |
| 667 | - v3270ftprogress_set_header(GTK_WIDGET(widget),gettext(text)); | |
| 667 | + v3270ftprogress_set_header(GTK_WIDGET(widget),text); | |
| 668 | 668 | } |
| 669 | 669 | } |
| 670 | 670 | |
| ... | ... | @@ -691,7 +691,7 @@ static void ft_aborting(G_GNUC_UNUSED H3270 *hSession, const char *reason, void |
| 691 | 691 | static void ft_state_changed(G_GNUC_UNUSED H3270 *hSession, G_GNUC_UNUSED LIB3270_FT_STATE state, const char *text, void *widget) { |
| 692 | 692 | |
| 693 | 693 | if(widget) { |
| 694 | - v3270ftprogress_set_header(GTK_WIDGET(widget),gettext(text)); | |
| 694 | + v3270ftprogress_set_header(GTK_WIDGET(widget),text); | |
| 695 | 695 | } |
| 696 | 696 | |
| 697 | 697 | } |
| ... | ... | @@ -751,9 +751,9 @@ void v3270ftprogress_start_transfer(GtkWidget *widget) { |
| 751 | 751 | |
| 752 | 752 | if(!ft) { |
| 753 | 753 | |
| 754 | - if(message) { | |
| 754 | + if(message && *message) { | |
| 755 | 755 | |
| 756 | - g_signal_emit(GTK_WIDGET(widget),v3270ftprogress_signal[V3270FTPROGRESS_SIGNAL_FAILED], 0, gettext(message), NULL); | |
| 756 | + g_signal_emit(GTK_WIDGET(widget),v3270ftprogress_signal[V3270FTPROGRESS_SIGNAL_FAILED], 0, message, NULL); | |
| 757 | 757 | |
| 758 | 758 | } else { |
| 759 | 759 | ... | ... |
src/include/v3270/actions.h
| ... | ... | @@ -95,6 +95,7 @@ |
| 95 | 95 | LIB3270_EXPORT gboolean v3270_accelerator_compare(const V3270Accelerator * accel, const guint keyval, const GdkModifierType mods); |
| 96 | 96 | LIB3270_EXPORT const gchar * v3270_accelerator_get_name(const V3270Accelerator * accel); |
| 97 | 97 | LIB3270_EXPORT const gchar * v3270_accelerator_get_description(const V3270Accelerator * accel); |
| 98 | + LIB3270_EXPORT const gchar * v3270_accelerator_get_summary(const V3270Accelerator * accel); | |
| 98 | 99 | |
| 99 | 100 | /// @brief Converts the accelerator into a string which can be used to represent the accelerator to the user. |
| 100 | 101 | /// @return A newly-allocated string representing the accelerator. | ... | ... |
src/terminal/actions/lib3270.c
| ... | ... | @@ -100,6 +100,7 @@ |
| 100 | 100 | |
| 101 | 101 | void Lib3270Action_init(Lib3270Action *action) { |
| 102 | 102 | action->parent.activate = activate; |
| 103 | + action->parent.translation_domain = lib3270_get_translation_domain(); | |
| 103 | 104 | } |
| 104 | 105 | |
| 105 | 106 | GAction * g_action_new_from_lib3270(const LIB3270_ACTION * definition) { | ... | ... |
src/terminal/actions/save.c
| ... | ... | @@ -43,7 +43,7 @@ |
| 43 | 43 | debug("%s(%d)",__FUNCTION__,((int) action->flags)); |
| 44 | 44 | |
| 45 | 45 | if(((int) action->flags) < 0) |
| 46 | - mode = lib3270_has_selection(GTK_V3270(widget)->host) ? LIB3270_CONTENT_SELECTED : LIB3270_CONTENT_ALL; | |
| 46 | + mode = lib3270_get_has_selection(GTK_V3270(widget)->host) ? LIB3270_CONTENT_SELECTED : LIB3270_CONTENT_ALL; | |
| 47 | 47 | |
| 48 | 48 | GtkWidget *dialog = v3270_save_dialog_new(widget,mode,NULL); |
| 49 | 49 | gtk_widget_show_all(dialog); | ... | ... |
src/terminal/actions/table.c
| ... | ... | @@ -68,6 +68,8 @@ |
| 68 | 68 | .group = LIB3270_ACTION_GROUP_SELECTION, |
| 69 | 69 | .icon = "edit-copy", |
| 70 | 70 | .label = N_( "Copy" ), |
| 71 | + .summary = N_("Copy selection to clipboard"), | |
| 72 | + .description = N_("Replace current clipboard contents with the selected area"), | |
| 71 | 73 | .key = 'c', |
| 72 | 74 | .mods = GDK_CONTROL_MASK, |
| 73 | 75 | .activate = fire_copy_accelerator |
| ... | ... | @@ -78,6 +80,8 @@ |
| 78 | 80 | .group = LIB3270_ACTION_GROUP_SELECTION, |
| 79 | 81 | .name = "copy-append", |
| 80 | 82 | .label = N_( "Add to copy" ), |
| 83 | + .summary = N_("Append selection to clipboard"), | |
| 84 | + .description = N_("Append selected area to current clipboard contents"), | |
| 81 | 85 | .key = 'c', |
| 82 | 86 | .mods = GDK_ALT_MASK, |
| 83 | 87 | .activate = fire_copy_accelerator |
| ... | ... | @@ -159,6 +163,8 @@ |
| 159 | 163 | .name = "paste", |
| 160 | 164 | .icon = "edit-paste", |
| 161 | 165 | .label = N_("Paste"), |
| 166 | + .summary = N_("Paste clipboard contents"), | |
| 167 | + .description = N_("Input current clipboard contents to screen"), | |
| 162 | 168 | .key = 'v', |
| 163 | 169 | .mods = GDK_CONTROL_MASK, |
| 164 | 170 | .activate = fire_paste_accelerator |
| ... | ... | @@ -193,6 +199,7 @@ |
| 193 | 199 | .name = "zoom-in", |
| 194 | 200 | .icon = "zoom-in", |
| 195 | 201 | .label = N_("Zoom in"), |
| 202 | + .summary = N_("Increase the font size"), | |
| 196 | 203 | .key = GDK_KP_Add, |
| 197 | 204 | .mods = GDK_CONTROL_MASK, |
| 198 | 205 | .activate = fire_zoom_action |
| ... | ... | @@ -203,6 +210,7 @@ |
| 203 | 210 | .group = LIB3270_ACTION_GROUP_ONLINE, |
| 204 | 211 | .name = "zoom-out", |
| 205 | 212 | .label = N_("Zoom out"), |
| 213 | + .summary = N_("decrease the font size"), | |
| 206 | 214 | .icon = "zoom-out", |
| 207 | 215 | .key = GDK_KP_Subtract, |
| 208 | 216 | .mods = GDK_CONTROL_MASK, |
| ... | ... | @@ -214,7 +222,7 @@ |
| 214 | 222 | .group = LIB3270_ACTION_GROUP_ONLINE, |
| 215 | 223 | .name = "zoom-fit-best", |
| 216 | 224 | .label = N_("Fit best"), |
| 217 | - .summary = N_("Zoom to best size"), | |
| 225 | + .summary = N_("Set the font to the best size for window"), | |
| 218 | 226 | .icon = "zoom-fit-best", |
| 219 | 227 | .key = '0', |
| 220 | 228 | .mods = GDK_CONTROL_MASK, |
| ... | ... | @@ -288,6 +296,7 @@ |
| 288 | 296 | .name = "print-all", |
| 289 | 297 | .icon = "document-print", |
| 290 | 298 | .label = N_("Print screen"), |
| 299 | + .summary = N_("Print the entire screen"), | |
| 291 | 300 | .activate = fire_print_action |
| 292 | 301 | |
| 293 | 302 | }, | ... | ... |
src/terminal/actions/toggle.c
| ... | ... | @@ -117,6 +117,7 @@ |
| 117 | 117 | |
| 118 | 118 | void Lib3270ToggleAction_init(Lib3270ToggleAction *action) { |
| 119 | 119 | action->parent.activate = activate; |
| 120 | + action->parent.translation_domain = lib3270_get_translation_domain(); | |
| 120 | 121 | } |
| 121 | 122 | |
| 122 | 123 | GAction * g_action_new_from_toggle(const LIB3270_TOGGLE * definition) { | ... | ... |
src/terminal/keyboard/accelerator.c
| ... | ... | @@ -33,6 +33,7 @@ |
| 33 | 33 | #include <terminal.h> |
| 34 | 34 | #include <lib3270/actions.h> |
| 35 | 35 | #include <v3270/actions.h> |
| 36 | + #include <lib3270/properties.h> | |
| 36 | 37 | |
| 37 | 38 | /*--[ Implement ]------------------------------------------------------------------------------------*/ |
| 38 | 39 | |
| ... | ... | @@ -150,50 +151,86 @@ |
| 150 | 151 | |
| 151 | 152 | } |
| 152 | 153 | |
| 153 | - const gchar * v3270_accelerator_get_description(const V3270Accelerator * accel) | |
| 154 | - { | |
| 155 | - switch(accel->type) | |
| 156 | - { | |
| 157 | - case V3270_ACCELERATOR_TYPE_LIB3270_ACTION: | |
| 154 | + const gchar * v3270_accelerator_get_summary(const V3270Accelerator * accel) { | |
| 158 | 155 | |
| 159 | - if( ((LIB3270_ACTION *) accel->arg)->summary ) | |
| 160 | - return gettext(((LIB3270_ACTION *) accel->arg)->summary); | |
| 156 | + const gchar * description = NULL; | |
| 157 | + const LIB3270_PROPERTY * property = (const LIB3270_PROPERTY *) accel->arg; | |
| 161 | 158 | |
| 162 | - if( ((LIB3270_ACTION *) accel->arg)->description ) | |
| 163 | - return gettext(((LIB3270_ACTION *) accel->arg)->description); | |
| 159 | + switch(accel->type) { | |
| 160 | + case V3270_ACCELERATOR_TYPE_LIB3270_ACTION: | |
| 161 | + debug("%s","V3270_ACCELERATOR_TYPE_LIB3270_ACTION"); | |
| 162 | + description = lib3270_property_get_summary(property); | |
| 163 | + break; | |
| 164 | 164 | |
| 165 | + case V3270_ACCELERATOR_TYPE_LIB3270_TOGGLE: | |
| 166 | + debug("%s","V3270_ACCELERATOR_TYPE_LIB3270_TOGGLE"); | |
| 167 | + description = lib3270_property_get_summary(property); | |
| 165 | 168 | break; |
| 166 | 169 | |
| 167 | 170 | case V3270_ACCELERATOR_TYPE_INTERNAL: |
| 171 | + debug("%s","V3270_ACCELERATOR_TYPE_INTERNAL"); | |
| 172 | + if(property->summary) | |
| 173 | + description = g_dgettext(PACKAGE_NAME,property->summary); | |
| 174 | + break; | |
| 168 | 175 | |
| 169 | - if( ((V3270_ACTION *) accel->arg)->summary ) | |
| 170 | - return g_dgettext(PACKAGE_NAME,((V3270_ACTION *) accel->arg)->summary); | |
| 176 | + case V3270_ACCELERATOR_TYPE_PFKEY: | |
| 177 | + debug("%s","V3270_ACCELERATOR_TYPE_PFKEY"); | |
| 171 | 178 | |
| 172 | - if( ((V3270_ACTION *) accel->arg)->description ) | |
| 173 | - return g_dgettext(PACKAGE_NAME,((V3270_ACTION *) accel->arg)->description); | |
| 179 | + if( ((V3270PFKeyAccelerator *)accel)->description ) | |
| 180 | + description = g_dgettext(PACKAGE_NAME,((V3270PFKeyAccelerator *)accel)->description); | |
| 174 | 181 | |
| 175 | 182 | break; |
| 176 | 183 | |
| 177 | - case V3270_ACCELERATOR_TYPE_LIB3270_TOGGLE: | |
| 184 | + } | |
| 185 | + | |
| 186 | + debug("%s=%s",__FUNCTION__,description); | |
| 178 | 187 | |
| 179 | - if(((LIB3270_TOGGLE *) accel->arg)->summary) | |
| 180 | - return gettext(((LIB3270_TOGGLE *) accel->arg)->summary); | |
| 188 | + if(description && *description) | |
| 189 | + return description; | |
| 181 | 190 | |
| 182 | - if(((LIB3270_TOGGLE *) accel->arg)->description) | |
| 183 | - return gettext(((LIB3270_TOGGLE *) accel->arg)->description); | |
| 191 | + return ""; | |
| 192 | + } | |
| 184 | 193 | |
| 194 | + const gchar * v3270_accelerator_get_description(const V3270Accelerator * accel) { | |
| 195 | + | |
| 196 | + const gchar * description = NULL; | |
| 197 | + const LIB3270_PROPERTY * property = (const LIB3270_PROPERTY *) accel->arg; | |
| 198 | + | |
| 199 | + switch(accel->type) { | |
| 200 | + case V3270_ACCELERATOR_TYPE_LIB3270_ACTION: | |
| 201 | + debug("%s","V3270_ACCELERATOR_TYPE_LIB3270_ACTION"); | |
| 202 | + description = lib3270_property_get_description(property); | |
| 203 | + break; | |
| 204 | + | |
| 205 | + case V3270_ACCELERATOR_TYPE_LIB3270_TOGGLE: | |
| 206 | + debug("%s","V3270_ACCELERATOR_TYPE_LIB3270_TOGGLE"); | |
| 207 | + description = lib3270_property_get_description(property); | |
| 208 | + break; | |
| 209 | + | |
| 210 | + case V3270_ACCELERATOR_TYPE_INTERNAL: | |
| 211 | + debug("%s","V3270_ACCELERATOR_TYPE_INTERNAL"); | |
| 212 | + if(property->description) | |
| 213 | + description = g_dgettext(PACKAGE_NAME,property->description); | |
| 214 | + else if(property->summary) | |
| 215 | + description = g_dgettext(PACKAGE_NAME,property->summary); | |
| 185 | 216 | break; |
| 186 | 217 | |
| 187 | 218 | case V3270_ACCELERATOR_TYPE_PFKEY: |
| 219 | + debug("%s","V3270_ACCELERATOR_TYPE_PFKEY"); | |
| 188 | 220 | |
| 189 | 221 | if( ((V3270PFKeyAccelerator *)accel)->description ) |
| 190 | - return g_dgettext(PACKAGE_NAME,((V3270PFKeyAccelerator *)accel)->description); | |
| 222 | + description = g_dgettext(PACKAGE_NAME,((V3270PFKeyAccelerator *)accel)->description); | |
| 191 | 223 | |
| 192 | 224 | break; |
| 193 | 225 | |
| 194 | 226 | } |
| 195 | 227 | |
| 196 | - return v3270_accelerator_get_name(accel); | |
| 228 | + debug("%s=%s",__FUNCTION__,description); | |
| 229 | + | |
| 230 | + if(description && *description) | |
| 231 | + return description; | |
| 232 | + | |
| 233 | + return ""; | |
| 197 | 234 | } |
| 198 | 235 | |
| 199 | 236 | const gchar * v3270_accelerator_get_name(const V3270Accelerator * accel) |
| ... | ... | @@ -201,13 +238,9 @@ |
| 201 | 238 | switch(accel->type) |
| 202 | 239 | { |
| 203 | 240 | case V3270_ACCELERATOR_TYPE_LIB3270_ACTION: |
| 204 | - return ((LIB3270_ACTION *) accel->arg)->name; | |
| 205 | - | |
| 206 | 241 | case V3270_ACCELERATOR_TYPE_LIB3270_TOGGLE: |
| 207 | - return ((LIB3270_TOGGLE *) accel->arg)->name; | |
| 208 | - | |
| 209 | 242 | case V3270_ACCELERATOR_TYPE_INTERNAL: |
| 210 | - return ((V3270_ACTION *) accel->arg)->name; | |
| 243 | + return lib3270_property_get_name((const LIB3270_PROPERTY *) accel->arg); | |
| 211 | 244 | |
| 212 | 245 | case V3270_ACCELERATOR_TYPE_CUSTOM: |
| 213 | 246 | return ((V3270CustomAccelerator *) accel)->name; | ... | ... |
src/testprogram/testprogram.c