From 6dced93caaf71b9294527608f74a27872d7b5b9d Mon Sep 17 00:00:00 2001 From: perry.werneck@gmail.com Date: Tue, 17 Dec 2013 19:02:12 +0000 Subject: [PATCH] Implementando propriedades no widget 3270 --- widget.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+), 0 deletions(-) diff --git a/widget.c b/widget.c index 3c68c87..9c40f1f 100644 --- a/widget.c +++ b/widget.c @@ -68,6 +68,21 @@ /*--[ Widget definition ]----------------------------------------------------------------------------*/ + enum + { + PROP_0, + + /* Construct */ + PROP_TYPE, + + /* Normal Props */ + PROP_FULLSCREEN, + + + /* Toggle - always the last one, the real values are PROP_TOGGLE+LIB3270_TOGGLE */ + PROP_TOGGLE + }; + G_DEFINE_TYPE(v3270, v3270, GTK_TYPE_WIDGET); /*--[ Globals ]--------------------------------------------------------------------------------------*/ @@ -296,6 +311,25 @@ gboolean v3270_query_tooltip(GtkWidget *widget, gint x, gint y, gboolean keyboa return FALSE; } +static void v3270_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) +{ + v3270 *window = GTK_V3270(object); + + switch (prop_id) + { + case PROP_FULLSCREEN: + if(g_value_get_boolean (value)) + gtk_window_fullscreen(GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(object)))); + else + gtk_window_unfullscreen(GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(object)))); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } + +} + static void v3270_class_init(v3270Class *klass) { GObjectClass * gobject_class = G_OBJECT_CLASS(klass); @@ -561,6 +595,36 @@ static void v3270_class_init(v3270Class *klass) v3270_VOID__VOID, G_TYPE_NONE, 0); + + // Properties + gobject_class->set_property = v3270_set_property; + + g_object_class_install_property( + gobject_class, + PROP_FULLSCREEN, + g_param_spec_boolean("fullscreen", + "Fullscreen","If TRUE, the toplevel window was set to fullscreen", + FALSE, + G_PARAM_WRITABLE|G_PARAM_READABLE)); + + + // Toggle properties + int f; + + for(f=0;f