diff --git a/src/pw3270/v3270/private.h b/src/pw3270/v3270/private.h index 51549b7..a27e6e1 100644 --- a/src/pw3270/v3270/private.h +++ b/src/pw3270/v3270/private.h @@ -298,6 +298,7 @@ void v3270_update_oia(H3270 *session, LIB3270_FLAG id, unsigned char on); void v3270_update_ssl(H3270 *session, LIB3270_SSL_STATE state); G_GNUC_INTERNAL void v3270_update_luname(GtkWidget *widget,const gchar *name); +G_GNUC_INTERNAL void v3270_init_properties(GObjectClass * gobject_class); // Keyboard & Mouse gboolean v3270_key_press_event(GtkWidget *widget, GdkEventKey *event); diff --git a/src/pw3270/v3270/properties.c b/src/pw3270/v3270/properties.c index a961aed..91b2cc1 100644 --- a/src/pw3270/v3270/properties.c +++ b/src/pw3270/v3270/properties.c @@ -96,7 +96,7 @@ } } - void v3270_init_properties(GObjectClass * gobject_class) + void v3270_init_properties(GObjectClass * gobject_class) { gobject_class->set_property = v3270_set_property; gobject_class->get_property = v3270_get_property; diff --git a/src/pw3270/v3270/widget.c b/src/pw3270/v3270/widget.c index bbccaf5..f04778f 100644 --- a/src/pw3270/v3270/widget.c +++ b/src/pw3270/v3270/widget.c @@ -115,37 +115,9 @@ static void v3270_cursor_draw(v3270 *widget) } + static void v3270_toggle_changed(v3270 *widget,LIB3270_TOGGLE toggle_id, gboolean toggle_state,const gchar *toggle_name) { - trace("%s: toggle %d (%s)=%s",__FUNCTION__,toggle_id,toggle_name,toggle_state ? "Yes" : "No"); - - switch(toggle_id) - { - case LIB3270_TOGGLE_CURSOR_POS: - case LIB3270_TOGGLE_CROSSHAIR: - v3270_reload(GTK_WIDGET(widget)); - gtk_widget_queue_draw(GTK_WIDGET(widget)); - break; - - case LIB3270_TOGGLE_CURSOR_BLINK: - widget->cursor.show |= 1; - break; - - case LIB3270_TOGGLE_INSERT: - v3270_draw_ins_status(widget); - v3270_cursor_draw(widget); - break; - - case LIB3270_TOGGLE_BOLD: - v3270_reload(GTK_WIDGET(widget)); - gtk_widget_queue_draw(GTK_WIDGET(widget)); - break; - - default: - return; - - } - } static void loghandler(H3270 *session, const char *module, int rc, const char *fmt, va_list args) @@ -688,8 +660,31 @@ static void set_timer(H3270 *session, unsigned char on) static void update_toggle(H3270 *session, LIB3270_TOGGLE ix, unsigned char value, LIB3270_TOGGLE_TYPE reason, const char *name) { - if(ix == LIB3270_TOGGLE_FULL_SCREEN) + trace("Toggle %s is %s",name,value ? "ON" : "OFF"); + + switch(ix) { + case LIB3270_TOGGLE_CURSOR_POS: + case LIB3270_TOGGLE_CROSSHAIR: + v3270_reload(GTK_WIDGET(session->widget)); + gtk_widget_queue_draw(GTK_WIDGET(session->widget)); + break; + + case LIB3270_TOGGLE_CURSOR_BLINK: + GTK_V3270(session->widget)->cursor.show |= 1; + break; + + case LIB3270_TOGGLE_INSERT: + v3270_draw_ins_status(GTK_WIDGET(session->widget)); + v3270_cursor_draw(GTK_WIDGET(session->widget)); + break; + + case LIB3270_TOGGLE_BOLD: + v3270_reload(GTK_WIDGET(session->widget)); + gtk_widget_queue_draw(GTK_WIDGET(session->widget)); + break; + + case LIB3270_TOGGLE_FULL_SCREEN: if(value) gtk_window_fullscreen(GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(session->widget)))); else @@ -698,8 +693,9 @@ static void update_toggle(H3270 *session, LIB3270_TOGGLE ix, unsigned char value #if GTK_CHECK_VERSION(2,26,0) g_object_notify_by_pspec(G_OBJECT(session->widget), v3270_properties[PROP_TOGGLE+ix]); #else - g_object_notify(G_OBJECT(session->widget),lib3270_get_toggle_name(ix)); + g_object_notify(G_OBJECT(session->widget),name); #endif // GTK_CHECK_VERSION + g_signal_emit(GTK_WIDGET(session->widget), v3270_widget_signal[SIGNAL_TOGGLE_CHANGED], 0, (guint) ix, (gboolean) (value != 0), (gchar *) name); } -- libgit2 0.21.2