diff --git a/src/gtk/actions.c b/src/gtk/actions.c index 6b01747..da5e6a8 100644 --- a/src/gtk/actions.c +++ b/src/gtk/actions.c @@ -201,7 +201,7 @@ static void lib3270_toggle_action(GtkToggleAction *action,GtkWidget *widget) static void selection_move_action(GtkAction *action, GtkWidget *widget) { - trace("Action %s activated on widget %p dir=%s",gtk_action_get_name(action),widget,(const gchar *) g_object_get_data(G_OBJECT(action),"direction")); + trace("Action %s activated on widget %p",gtk_action_get_name(action),widget); lib3270_move_selection(GTK_V3270(widget)->host,(LIB3270_DIRECTION) g_object_get_data(G_OBJECT(action),"direction")); } @@ -266,6 +266,26 @@ static void action_reset_toggle(GtkAction *action, GtkWidget *widget) lib3270_set_toggle(GTK_V3270(widget)->host,id,0); } +static void action_select_all(GtkAction *action, GtkWidget *widget) +{ + lib3270_selectall(GTK_V3270(widget)->host); +} + +static void action_select_field(GtkAction *action, GtkWidget *widget) +{ + lib3270_selectfield(GTK_V3270(widget)->host); +} + +static void action_select_none(GtkAction *action, GtkWidget *widget) +{ + lib3270_unselect(GTK_V3270(widget)->host); +} + +static void action_select_last(GtkAction *action, GtkWidget *widget) +{ + lib3270_reselect(GTK_V3270(widget)->host); +} + static int id_from_array(const gchar *key, const gchar **array, GError **error) { int f; @@ -452,6 +472,26 @@ GtkAction * ui_get_action(GtkWidget *widget, const gchar *name, GHashTable *hash if(id < 0) return NULL; } + else if(!g_strcasecmp(name,"select")) + { + static const gchar * src[] = { "all", + "field", + "none", + "last", + NULL + }; + + static const GCallback cbk[] = { G_CALLBACK(action_select_all), + G_CALLBACK(action_select_field), + G_CALLBACK(action_select_none), + G_CALLBACK(action_select_last) + }; + callback = cbk; + action_type = ACTION_TYPE_TABLE; + id = get_attribute_id(name,"target",&nm,src,names,values,error); + if(id < 0) + return NULL; + } else if(!g_strcasecmp(name,"save")) { static const GCallback cbk[] = { G_CALLBACK(save_all_action), diff --git a/src/gtk/main.c b/src/gtk/main.c index d5cf924..0077be6 100644 --- a/src/gtk/main.c +++ b/src/gtk/main.c @@ -73,10 +73,44 @@ static int popup_handler(H3270 *session, LIB3270_NOTIFY type, const char *title, return 0; } +static int initialize(void) +{ + const gchar * msg = gtk_check_version(GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); + + if(msg) + { + // Invalid GTK version, notify user + int rc; + GtkWidget *dialog = gtk_message_dialog_new( NULL, + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_OK_CANCEL, + _( "This program requires GTK version %d.%d.%d" ),GTK_MAJOR_VERSION,GTK_MINOR_VERSION,GTK_MICRO_VERSION ); + + + gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),"%s",msg); + gtk_window_set_title(GTK_WINDOW(dialog),_( "GTK Version mismatch" )); + +#if GTK_CHECK_VERSION(2,10,0) + gtk_window_set_deletable(GTK_WINDOW(dialog),FALSE); +#endif + + rc = gtk_dialog_run(GTK_DIALOG (dialog)); + gtk_widget_destroy(dialog); + + if(rc != GTK_RESPONSE_OK) + return EINVAL; + } + +} + int main (int argc, char *argv[]) { gtk_init(&argc, &argv); + if(!initialize()) + return -1; + configuration_init(); lib3270_set_popup_handler(popup_handler); diff --git a/src/gtk/v3270/draw.c b/src/gtk/v3270/draw.c index ee8a2fb..c8a309c 100644 --- a/src/gtk/v3270/draw.c +++ b/src/gtk/v3270/draw.c @@ -18,7 +18,7 @@ * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple * Place, Suite 330, Boston, MA, 02111-1307, USA * - * Este programa está nomeado como widget.c e possui - linhas de código. + * Este programa está nomeado como draw.c e possui - linhas de código. * * Contatos: * diff --git a/src/gtk/v3270/widget.c b/src/gtk/v3270/widget.c index 730c09e..2be7c6b 100644 --- a/src/gtk/v3270/widget.c +++ b/src/gtk/v3270/widget.c @@ -115,6 +115,12 @@ static void v3270_toggle_changed(v3270 *widget,LIB3270_TOGGLE toggle_id, gboolea v3270_cursor_draw(widget); break; + case LIB3270_TOGGLE_BOLD: + widget->font_weight = lib3270_get_toggle(widget->host,LIB3270_TOGGLE_BOLD) ? CAIRO_FONT_WEIGHT_BOLD : CAIRO_FONT_WEIGHT_NORMAL; + v3270_reload(GTK_WIDGET(widget)); + gtk_widget_queue_draw(GTK_WIDGET(widget)); + break; + default: return; @@ -860,7 +866,7 @@ void v3270_set_font_family(GtkWidget *widget, const gchar *name) trace("%s(%s)",__FUNCTION__,name); terminal->font_family = g_strdup(name); - terminal->font_weight = CAIRO_FONT_WEIGHT_NORMAL; + terminal->font_weight = lib3270_get_toggle(terminal->host,LIB3270_TOGGLE_BOLD) ? CAIRO_FONT_WEIGHT_BOLD : CAIRO_FONT_WEIGHT_NORMAL; g_signal_emit(widget,v3270_widget_signal[SIGNAL_UPDATE_CONFIG], 0, "font-family", name); diff --git a/src/include/lib3270.h b/src/include/lib3270.h index 2b09dbe..ec31e2f 100644 --- a/src/include/lib3270.h +++ b/src/include/lib3270.h @@ -18,7 +18,7 @@ * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple * Place, Suite 330, Boston, MA, 02111-1307, USA * - * Este programa está nomeado como lib3270.h e possui 38 linhas de código. + * Este programa está nomeado como lib3270.h e possui - linhas de código. * * Contatos: * diff --git a/src/include/lib3270/config.h.in b/src/include/lib3270/config.h.in index 5d3afc7..e73f20e 100644 --- a/src/include/lib3270/config.h.in +++ b/src/include/lib3270/config.h.in @@ -40,6 +40,8 @@ #undef HAVE_GNUC_VISIBILITY #undef HAVE_LIBM + #undef HAVE_GNOME + #undef HAVE_LIBSSL /* Optional parts. */ diff --git a/ui/00default.xml b/ui/00default.xml index 5492118..02330e2 100644 --- a/ui/00default.xml +++ b/ui/00default.xml @@ -25,7 +25,6 @@ erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) licinio@bb.com.br (Licínio Luis Branco) kraucer@bb.com.br (Kraucer Fernandes Mazuco) - macmiranda@bb.com.br (Marco Aurélio Caldas Miranda) ------------------------------------------------------------------------------> @@ -50,19 +49,20 @@