diff --git a/src/dialogs/print/convenience.c b/src/dialogs/print/convenience.c index 5395cf4..49cc3c3 100644 --- a/src/dialogs/print/convenience.c +++ b/src/dialogs/print/convenience.c @@ -146,7 +146,7 @@ int v3270_print(GtkWidget *widget, GError **error) { - return v3270_print_dialog(widget,(lib3270_has_selection(GTK_V3270(widget)->host) ? LIB3270_CONTENT_SELECTED : LIB3270_CONTENT_ALL),error); + return v3270_print_dialog(widget,(lib3270_get_has_selection(GTK_V3270(widget)->host) ? LIB3270_CONTENT_SELECTED : LIB3270_CONTENT_ALL),error); } diff --git a/src/dialogs/settings/accelerator.c b/src/dialogs/settings/accelerator.c index 6d47939..4caa2a6 100644 --- a/src/dialogs/settings/accelerator.c +++ b/src/dialogs/settings/accelerator.c @@ -95,7 +95,8 @@ enum { ACTION, ///< @brief The action object. - DESCRIPTION, ///< @brief The action description. + NAME, ///< @brief The action name. + SUMMARY, ///< @brief The action summary. MAIN_MASK, ///< @brief The mask for the main accelerator. MAIN_VALUE, ///< @brief The value for the main accelerator. ALTERNATIVE_MASK, ///< @brief The mask for the alternative accelerator. @@ -116,16 +117,6 @@ // Create description list GtkCellRenderer * text_renderer = gtk_cell_renderer_text_new(); - /* - g_object_set( - text_renderer, - "alignment", PANGO_ALIGN_LEFT, - "wrap-width", 100, - "wrap-mode", PANGO_WRAP_WORD_CHAR, - NULL - ); - */ - // Create accelerator render GtkCellRenderer * accel_renderer[] = { gtk_cell_renderer_accel_new(), gtk_cell_renderer_accel_new() }; @@ -144,32 +135,43 @@ g_signal_connect (G_OBJECT(accel_renderer[0]), "accel_edited", G_CALLBACK (accel_edited), widget); g_signal_connect (G_OBJECT(accel_renderer[1]), "accel_edited", G_CALLBACK (alternative_edited), widget); - 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)); + 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)); gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(widget->store),1,GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID); GtkWidget * view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(widget->store)); g_signal_connect(G_OBJECT(widget),"realize",G_CALLBACK(realize),view); - /* - g_object_set( - view, - "horizontal-separator", 50, - "vertical-separator", 50, - NULL - ); - */ - gtk_widget_set_tooltip_markup(view,_("Keyboard accelerators")); gtk_tree_view_set_fixed_height_mode(GTK_TREE_VIEW(view),FALSE); - // Description column - GtkTreeViewColumn * column = + GtkTreeViewColumn * column; + + // Name columns + column = + gtk_tree_view_column_new_with_attributes( + _("Name"), + text_renderer, + "text", + NAME, + NULL + ); + + gtk_tree_view_column_set_resizable(column, TRUE); + + gtk_tree_view_insert_column( + GTK_TREE_VIEW(view), + column, + -1 + ); + + // Summary column + column = gtk_tree_view_column_new_with_attributes( - _("Action"), + _("Summary"), text_renderer, "text", - DESCRIPTION, + SUMMARY, NULL ); @@ -205,7 +207,7 @@ for(ix = 1; ix < 3; ix++) { - GtkTreeViewColumn * column = gtk_tree_view_get_column(GTK_TREE_VIEW(view), ix); + column = gtk_tree_view_get_column(GTK_TREE_VIEW(view), ix); gtk_tree_view_column_set_min_width(column, 200); gtk_tree_view_column_set_resizable(column, TRUE); } @@ -237,8 +239,6 @@ LIB3270_EXPORT GtkWidget * v3270_accelerator_settings_new() settings->title = _("Keyboard accelerators"); settings->label = _("Accelerators"); - debug("*********** [%s] [%s] [%s]",settings->title,gettext(settings->title),g_dgettext(GETTEXT_PACKAGE,settings->title)); - return GTK_WIDGET(settings); } @@ -510,7 +510,8 @@ void load(GtkWidget *widget, GtkWidget *terminal) store, &iter, ACTION, current, - DESCRIPTION, v3270_accelerator_get_description(current), + NAME, v3270_accelerator_get_name(current), + SUMMARY, v3270_accelerator_get_summary(current), MAIN_MASK, keymaps[0].mods, MAIN_VALUE, keymaps[0].key, ALTERNATIVE_MASK, keymaps[1].mods, diff --git a/src/dialogs/settings/host.c b/src/dialogs/settings/host.c index 3d1065d..0cc22b8 100644 --- a/src/dialogs/settings/host.c +++ b/src/dialogs/settings/host.c @@ -517,12 +517,12 @@ static void V3270HostSelectWidget_init(V3270HostSelectWidget *widget) if(descriptor) { - widget->input.toggles[toggle] = GTK_TOGGLE_BUTTON(gtk_check_button_new_with_label(gettext(descriptor->label))); + widget->input.toggles[toggle] = GTK_TOGGLE_BUTTON(gtk_check_button_new_with_label(lib3270_toggle_get_label(descriptor))); - if(descriptor->description && *descriptor->description) - gtk_widget_set_tooltip_text(GTK_WIDGET(widget->input.toggles[toggle]),gettext(descriptor->description)); - else if(descriptor->summary && *descriptor->summary) - gtk_widget_set_tooltip_text(GTK_WIDGET(widget->input.toggles[toggle]),gettext(descriptor->summary)); + const gchar *tooltip = lib3270_property_get_tooltip((const LIB3270_PROPERTY *) descriptor); + + if(tooltip && *tooltip) + gtk_widget_set_tooltip_text(GTK_WIDGET(widget->input.toggles[toggle]),tooltip); gtk_widget_set_halign(GTK_WIDGET(widget->input.toggles[toggle]),GTK_ALIGN_START); gtk_grid_attach(GTK_GRID(connection),GTK_WIDGET(widget->input.toggles[toggle]),toggleList[toggle].left,toggleList[toggle].top,1,1); diff --git a/src/dialogs/togglebutton.c b/src/dialogs/togglebutton.c index 287ce50..c092a71 100644 --- a/src/dialogs/togglebutton.c +++ b/src/dialogs/togglebutton.c @@ -30,6 +30,7 @@ #include #include #include + #include /*--[ Widget definition ]----------------------------------------------------------------------------*/ @@ -108,7 +109,7 @@ GtkWidget * v3270_toggle_button_new(LIB3270_TOGGLE_ID id) { - const LIB3270_TOGGLE * toggle = lib3270_toggle_get_from_id(id); + const LIB3270_PROPERTY * toggle = (const LIB3270_PROPERTY *) lib3270_toggle_get_from_id(id); if(!toggle) return NULL; @@ -117,13 +118,13 @@ widget->id = id; - gtk_widget_set_name(GTK_WIDGET(widget),toggle->name); - gtk_button_set_label(GTK_BUTTON(widget),gettext(toggle->label)); + gtk_widget_set_name(GTK_WIDGET(widget),lib3270_property_get_name(toggle)); + gtk_button_set_label(GTK_BUTTON(widget),lib3270_property_get_label(toggle)); - if(toggle->description) - gtk_widget_set_tooltip_text(GTK_WIDGET(widget),gettext(toggle->description)); - else if(toggle->summary) - gtk_widget_set_tooltip_text(GTK_WIDGET(widget),gettext(toggle->summary)); + const char * tooltip = lib3270_property_get_tooltip(toggle); + + if(tooltip && *tooltip) + gtk_widget_set_tooltip_text(GTK_WIDGET(widget),tooltip); gtk_widget_set_sensitive(GTK_WIDGET(widget),FALSE); diff --git a/src/filetransfer/v3270ftprogress.c b/src/filetransfer/v3270ftprogress.c index 1db1bb5..4380f70 100644 --- a/src/filetransfer/v3270ftprogress.c +++ b/src/filetransfer/v3270ftprogress.c @@ -602,7 +602,7 @@ static void ft_failed(H3270 *hSession, unsigned long length,double kbytes_sec,co while(*text && g_ascii_isspace(*text)) text++; - delay_signal(hSession, V3270FTPROGRESS_SIGNAL_FAILED, text, gettext(ftmsg[f].text)); + delay_signal(hSession, V3270FTPROGRESS_SIGNAL_FAILED, text, g_dgettext(PACKAGE_NAME,ftmsg[f].text)); return; @@ -664,7 +664,7 @@ static void ft_message(G_GNUC_UNUSED H3270 *hSession, const char *text, void *wi debug("%s(%s,%p)",__FUNCTION__,text,widget); if(widget) { - v3270ftprogress_set_header(GTK_WIDGET(widget),gettext(text)); + v3270ftprogress_set_header(GTK_WIDGET(widget),text); } } @@ -691,7 +691,7 @@ static void ft_aborting(G_GNUC_UNUSED H3270 *hSession, const char *reason, void static void ft_state_changed(G_GNUC_UNUSED H3270 *hSession, G_GNUC_UNUSED LIB3270_FT_STATE state, const char *text, void *widget) { if(widget) { - v3270ftprogress_set_header(GTK_WIDGET(widget),gettext(text)); + v3270ftprogress_set_header(GTK_WIDGET(widget),text); } } @@ -751,9 +751,9 @@ void v3270ftprogress_start_transfer(GtkWidget *widget) { if(!ft) { - if(message) { + if(message && *message) { - g_signal_emit(GTK_WIDGET(widget),v3270ftprogress_signal[V3270FTPROGRESS_SIGNAL_FAILED], 0, gettext(message), NULL); + g_signal_emit(GTK_WIDGET(widget),v3270ftprogress_signal[V3270FTPROGRESS_SIGNAL_FAILED], 0, message, NULL); } else { diff --git a/src/include/v3270/actions.h b/src/include/v3270/actions.h index 32a77b6..af950f1 100644 --- a/src/include/v3270/actions.h +++ b/src/include/v3270/actions.h @@ -95,6 +95,7 @@ LIB3270_EXPORT gboolean v3270_accelerator_compare(const V3270Accelerator * accel, const guint keyval, const GdkModifierType mods); LIB3270_EXPORT const gchar * v3270_accelerator_get_name(const V3270Accelerator * accel); LIB3270_EXPORT const gchar * v3270_accelerator_get_description(const V3270Accelerator * accel); + LIB3270_EXPORT const gchar * v3270_accelerator_get_summary(const V3270Accelerator * accel); /// @brief Converts the accelerator into a string which can be used to represent the accelerator to the user. /// @return A newly-allocated string representing the accelerator. diff --git a/src/terminal/actions/lib3270.c b/src/terminal/actions/lib3270.c index 9fe4055..59b1f5b 100644 --- a/src/terminal/actions/lib3270.c +++ b/src/terminal/actions/lib3270.c @@ -100,6 +100,7 @@ void Lib3270Action_init(Lib3270Action *action) { action->parent.activate = activate; + action->parent.translation_domain = lib3270_get_translation_domain(); } GAction * g_action_new_from_lib3270(const LIB3270_ACTION * definition) { diff --git a/src/terminal/actions/save.c b/src/terminal/actions/save.c index c7ebfb3..c4d968c 100644 --- a/src/terminal/actions/save.c +++ b/src/terminal/actions/save.c @@ -43,7 +43,7 @@ debug("%s(%d)",__FUNCTION__,((int) action->flags)); if(((int) action->flags) < 0) - mode = lib3270_has_selection(GTK_V3270(widget)->host) ? LIB3270_CONTENT_SELECTED : LIB3270_CONTENT_ALL; + mode = lib3270_get_has_selection(GTK_V3270(widget)->host) ? LIB3270_CONTENT_SELECTED : LIB3270_CONTENT_ALL; GtkWidget *dialog = v3270_save_dialog_new(widget,mode,NULL); gtk_widget_show_all(dialog); diff --git a/src/terminal/actions/table.c b/src/terminal/actions/table.c index 7b9f04b..736443d 100644 --- a/src/terminal/actions/table.c +++ b/src/terminal/actions/table.c @@ -68,6 +68,8 @@ .group = LIB3270_ACTION_GROUP_SELECTION, .icon = "edit-copy", .label = N_( "Copy" ), + .summary = N_("Copy selection to clipboard"), + .description = N_("Replace current clipboard contents with the selected area"), .key = 'c', .mods = GDK_CONTROL_MASK, .activate = fire_copy_accelerator @@ -78,6 +80,8 @@ .group = LIB3270_ACTION_GROUP_SELECTION, .name = "copy-append", .label = N_( "Add to copy" ), + .summary = N_("Append selection to clipboard"), + .description = N_("Append selected area to current clipboard contents"), .key = 'c', .mods = GDK_ALT_MASK, .activate = fire_copy_accelerator @@ -159,6 +163,8 @@ .name = "paste", .icon = "edit-paste", .label = N_("Paste"), + .summary = N_("Paste clipboard contents"), + .description = N_("Input current clipboard contents to screen"), .key = 'v', .mods = GDK_CONTROL_MASK, .activate = fire_paste_accelerator @@ -193,6 +199,7 @@ .name = "zoom-in", .icon = "zoom-in", .label = N_("Zoom in"), + .summary = N_("Increase the font size"), .key = GDK_KP_Add, .mods = GDK_CONTROL_MASK, .activate = fire_zoom_action @@ -203,6 +210,7 @@ .group = LIB3270_ACTION_GROUP_ONLINE, .name = "zoom-out", .label = N_("Zoom out"), + .summary = N_("decrease the font size"), .icon = "zoom-out", .key = GDK_KP_Subtract, .mods = GDK_CONTROL_MASK, @@ -214,7 +222,7 @@ .group = LIB3270_ACTION_GROUP_ONLINE, .name = "zoom-fit-best", .label = N_("Fit best"), - .summary = N_("Zoom to best size"), + .summary = N_("Set the font to the best size for window"), .icon = "zoom-fit-best", .key = '0', .mods = GDK_CONTROL_MASK, @@ -288,6 +296,7 @@ .name = "print-all", .icon = "document-print", .label = N_("Print screen"), + .summary = N_("Print the entire screen"), .activate = fire_print_action }, diff --git a/src/terminal/actions/toggle.c b/src/terminal/actions/toggle.c index 0dedb2e..2f743df 100644 --- a/src/terminal/actions/toggle.c +++ b/src/terminal/actions/toggle.c @@ -117,6 +117,7 @@ void Lib3270ToggleAction_init(Lib3270ToggleAction *action) { action->parent.activate = activate; + action->parent.translation_domain = lib3270_get_translation_domain(); } GAction * g_action_new_from_toggle(const LIB3270_TOGGLE * definition) { diff --git a/src/terminal/keyboard/accelerator.c b/src/terminal/keyboard/accelerator.c index 44130cc..66bda79 100644 --- a/src/terminal/keyboard/accelerator.c +++ b/src/terminal/keyboard/accelerator.c @@ -33,6 +33,7 @@ #include #include #include + #include /*--[ Implement ]------------------------------------------------------------------------------------*/ @@ -150,50 +151,86 @@ } - const gchar * v3270_accelerator_get_description(const V3270Accelerator * accel) - { - switch(accel->type) - { - case V3270_ACCELERATOR_TYPE_LIB3270_ACTION: + const gchar * v3270_accelerator_get_summary(const V3270Accelerator * accel) { - if( ((LIB3270_ACTION *) accel->arg)->summary ) - return gettext(((LIB3270_ACTION *) accel->arg)->summary); + const gchar * description = NULL; + const LIB3270_PROPERTY * property = (const LIB3270_PROPERTY *) accel->arg; - if( ((LIB3270_ACTION *) accel->arg)->description ) - return gettext(((LIB3270_ACTION *) accel->arg)->description); + switch(accel->type) { + case V3270_ACCELERATOR_TYPE_LIB3270_ACTION: + debug("%s","V3270_ACCELERATOR_TYPE_LIB3270_ACTION"); + description = lib3270_property_get_summary(property); + break; + case V3270_ACCELERATOR_TYPE_LIB3270_TOGGLE: + debug("%s","V3270_ACCELERATOR_TYPE_LIB3270_TOGGLE"); + description = lib3270_property_get_summary(property); break; case V3270_ACCELERATOR_TYPE_INTERNAL: + debug("%s","V3270_ACCELERATOR_TYPE_INTERNAL"); + if(property->summary) + description = g_dgettext(PACKAGE_NAME,property->summary); + break; - if( ((V3270_ACTION *) accel->arg)->summary ) - return g_dgettext(PACKAGE_NAME,((V3270_ACTION *) accel->arg)->summary); + case V3270_ACCELERATOR_TYPE_PFKEY: + debug("%s","V3270_ACCELERATOR_TYPE_PFKEY"); - if( ((V3270_ACTION *) accel->arg)->description ) - return g_dgettext(PACKAGE_NAME,((V3270_ACTION *) accel->arg)->description); + if( ((V3270PFKeyAccelerator *)accel)->description ) + description = g_dgettext(PACKAGE_NAME,((V3270PFKeyAccelerator *)accel)->description); break; - case V3270_ACCELERATOR_TYPE_LIB3270_TOGGLE: + } + + debug("%s=%s",__FUNCTION__,description); - if(((LIB3270_TOGGLE *) accel->arg)->summary) - return gettext(((LIB3270_TOGGLE *) accel->arg)->summary); + if(description && *description) + return description; - if(((LIB3270_TOGGLE *) accel->arg)->description) - return gettext(((LIB3270_TOGGLE *) accel->arg)->description); + return ""; + } + const gchar * v3270_accelerator_get_description(const V3270Accelerator * accel) { + + const gchar * description = NULL; + const LIB3270_PROPERTY * property = (const LIB3270_PROPERTY *) accel->arg; + + switch(accel->type) { + case V3270_ACCELERATOR_TYPE_LIB3270_ACTION: + debug("%s","V3270_ACCELERATOR_TYPE_LIB3270_ACTION"); + description = lib3270_property_get_description(property); + break; + + case V3270_ACCELERATOR_TYPE_LIB3270_TOGGLE: + debug("%s","V3270_ACCELERATOR_TYPE_LIB3270_TOGGLE"); + description = lib3270_property_get_description(property); + break; + + case V3270_ACCELERATOR_TYPE_INTERNAL: + debug("%s","V3270_ACCELERATOR_TYPE_INTERNAL"); + if(property->description) + description = g_dgettext(PACKAGE_NAME,property->description); + else if(property->summary) + description = g_dgettext(PACKAGE_NAME,property->summary); break; case V3270_ACCELERATOR_TYPE_PFKEY: + debug("%s","V3270_ACCELERATOR_TYPE_PFKEY"); if( ((V3270PFKeyAccelerator *)accel)->description ) - return g_dgettext(PACKAGE_NAME,((V3270PFKeyAccelerator *)accel)->description); + description = g_dgettext(PACKAGE_NAME,((V3270PFKeyAccelerator *)accel)->description); break; } - return v3270_accelerator_get_name(accel); + debug("%s=%s",__FUNCTION__,description); + + if(description && *description) + return description; + + return ""; } const gchar * v3270_accelerator_get_name(const V3270Accelerator * accel) @@ -201,13 +238,9 @@ switch(accel->type) { case V3270_ACCELERATOR_TYPE_LIB3270_ACTION: - return ((LIB3270_ACTION *) accel->arg)->name; - case V3270_ACCELERATOR_TYPE_LIB3270_TOGGLE: - return ((LIB3270_TOGGLE *) accel->arg)->name; - case V3270_ACCELERATOR_TYPE_INTERNAL: - return ((V3270_ACTION *) accel->arg)->name; + return lib3270_property_get_name((const LIB3270_PROPERTY *) accel->arg); case V3270_ACCELERATOR_TYPE_CUSTOM: return ((V3270CustomAccelerator *) accel)->name; diff --git a/src/testprogram/testprogram.c b/src/testprogram/testprogram.c index ef11acd..0d6a9ff 100644 --- a/src/testprogram/testprogram.c +++ b/src/testprogram/testprogram.c @@ -44,6 +44,8 @@ #include #include #include + #include + /*---[ Implement ]----------------------------------------------------------------------------------*/ -- libgit2 0.21.2