Commit 7a5b478653d76ea18c9f3e2cb23745e567c117b4

Authored by Perry Werneck
1 parent 828fe621
Exists in master and in 1 other branch develop

Widget properties are now get/set using lib3270's internal properties.

src/testprogram/testprogram.c
@@ -120,6 +120,21 @@ static void activate(GtkApplication* app, gpointer user_data) { @@ -120,6 +120,21 @@ static void activate(GtkApplication* app, gpointer user_data) {
120 g_message("URL=%s",g_value_get_string(&val)); 120 g_message("URL=%s",g_value_get_string(&val));
121 g_value_unset(&val); 121 g_value_unset(&val);
122 122
  123 + g_value_init(&val, G_TYPE_BOOLEAN);
  124 + g_object_get_property(G_OBJECT(terminal),"tso",&val);
  125 + g_message("TSO=%s",g_value_get_boolean(&val) ? "Yes" : "No");
  126 + g_value_unset(&val);
  127 +
  128 + g_value_init(&val, G_TYPE_BOOLEAN);
  129 + g_object_get_property(G_OBJECT(terminal),"monocase",&val);
  130 + g_message("monocase=%s",g_value_get_boolean(&val) ? "Yes" : "No");
  131 + g_value_unset(&val);
  132 +
  133 + g_value_init(&val, G_TYPE_INT);
  134 + g_object_get_property(G_OBJECT(terminal),"width",&val);
  135 + g_message("width=%d",(int) g_value_get_int(&val));
  136 + g_value_unset(&val);
  137 +
123 g_signal_connect(terminal,"popup",G_CALLBACK(popup_menu),NULL); 138 g_signal_connect(terminal,"popup",G_CALLBACK(popup_menu),NULL);
124 139
125 // Setup and show window 140 // Setup and show window
src/v3270/properties.c
@@ -47,10 +47,6 @@ @@ -47,10 +47,6 @@
47 47
48 #define PROP_BEGIN 2 48 #define PROP_BEGIN 2
49 49
50 -/*--[ Globals ]--------------------------------------------------------------------------------------*/  
51 -  
52 -// GParamSpec * v3270_properties[PROP_LAST] = { 0 };  
53 -  
54 /*--[ Implement ]------------------------------------------------------------------------------------*/ 50 /*--[ Implement ]------------------------------------------------------------------------------------*/
55 51
56 static void v3270_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) 52 static void v3270_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
@@ -59,11 +55,7 @@ @@ -59,11 +55,7 @@
59 55
60 debug("%s(%u,%s)",__FUNCTION__,prop_id,g_param_spec_get_name(pspec)); 56 debug("%s(%u,%s)",__FUNCTION__,prop_id,g_param_spec_get_name(pspec));
61 57
62 - if(prop_id < v3270_properties.type.toggle)  
63 - {  
64 - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);  
65 - }  
66 - else if(prop_id >= v3270_properties.type.str) 58 + if(prop_id >= v3270_properties.type.str)
67 { 59 {
68 const LIB3270_STRING_PROPERTY * prop = (lib3270_get_string_properties_list()+(prop_id - v3270_properties.type.str)); 60 const LIB3270_STRING_PROPERTY * prop = (lib3270_get_string_properties_list()+(prop_id - v3270_properties.type.str));
69 debug("%s.%s.%s=%s",__FUNCTION__,"string",prop->name,g_value_get_string(value)); 61 debug("%s.%s.%s=%s",__FUNCTION__,"string",prop->name,g_value_get_string(value));
@@ -93,6 +85,7 @@ @@ -93,6 +85,7 @@
93 else if(prop_id >= v3270_properties.type.toggle) 85 else if(prop_id >= v3270_properties.type.toggle)
94 { 86 {
95 debug("%s.%s",__FUNCTION__,"toggle"); 87 debug("%s.%s",__FUNCTION__,"toggle");
  88 + lib3270_set_toggle(window->host,prop_id - v3270_properties.type.toggle, (int) g_value_get_boolean (value));
96 89
97 } 90 }
98 else 91 else
@@ -100,36 +93,6 @@ @@ -100,36 +93,6 @@
100 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); 93 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
101 } 94 }
102 95
103 - /*  
104 -  
105 - switch (prop_id)  
106 - {  
107 - case PROP_MODEL:  
108 - lib3270_set_model(window->host,g_value_get_string(value));  
109 - break;  
110 -  
111 - case PROP_AUTO_DISCONNECT:  
112 - v3270_set_auto_disconnect(GTK_WIDGET(object),g_value_get_uint(value));  
113 - break;  
114 -  
115 - case PROP_URL:  
116 - v3270_set_url(GTK_WIDGET(object),g_value_get_string(value));  
117 - break;  
118 -  
119 - case PROP_SESSION_NAME:  
120 - v3270_set_session_name(GTK_WIDGET(object),g_value_get_string(value));  
121 - break;  
122 -  
123 - default:  
124 - if(prop_id < (PROP_TOGGLE + LIB3270_TOGGLE_COUNT))  
125 - {  
126 - lib3270_set_toggle(window->host,prop_id - PROP_TOGGLE, (int) g_value_get_boolean (value));  
127 - return;  
128 - }  
129 - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);  
130 - }  
131 - */  
132 -  
133 } 96 }
134 97
135 static void v3270_get_property(GObject *object,guint prop_id, GValue *value, GParamSpec *pspec) 98 static void v3270_get_property(GObject *object,guint prop_id, GValue *value, GParamSpec *pspec)
@@ -138,11 +101,7 @@ @@ -138,11 +101,7 @@
138 101
139 debug("%s(%u,%s)",__FUNCTION__,prop_id,g_param_spec_get_name(pspec)); 102 debug("%s(%u,%s)",__FUNCTION__,prop_id,g_param_spec_get_name(pspec));
140 103
141 - if(prop_id < v3270_properties.type.toggle)  
142 - {  
143 - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);  
144 - }  
145 - else if(prop_id >= v3270_properties.type.str) 104 + if(prop_id >= v3270_properties.type.str)
146 { 105 {
147 const LIB3270_STRING_PROPERTY * prop = (lib3270_get_string_properties_list()+(prop_id - v3270_properties.type.str)); 106 const LIB3270_STRING_PROPERTY * prop = (lib3270_get_string_properties_list()+(prop_id - v3270_properties.type.str));
148 debug("%s.%s.%s",__FUNCTION__,"string",prop->name); 107 debug("%s.%s.%s",__FUNCTION__,"string",prop->name);
@@ -156,6 +115,8 @@ @@ -156,6 +115,8 @@
156 const LIB3270_INT_PROPERTY * prop = (lib3270_get_int_properties_list()+(prop_id - v3270_properties.type.integer)); 115 const LIB3270_INT_PROPERTY * prop = (lib3270_get_int_properties_list()+(prop_id - v3270_properties.type.integer));
157 debug("%s.%s.%s",__FUNCTION__,"integer",prop->name); 116 debug("%s.%s.%s",__FUNCTION__,"integer",prop->name);
158 117
  118 + if(prop->get)
  119 + g_value_set_int(value,prop->get(window->host));
159 120
160 } 121 }
161 else if(prop_id >= v3270_properties.type.boolean) 122 else if(prop_id >= v3270_properties.type.boolean)
@@ -163,11 +124,14 @@ @@ -163,11 +124,14 @@
163 const LIB3270_INT_PROPERTY * prop = (lib3270_get_boolean_properties_list()+(prop_id - v3270_properties.type.boolean)); 124 const LIB3270_INT_PROPERTY * prop = (lib3270_get_boolean_properties_list()+(prop_id - v3270_properties.type.boolean));
164 debug("%s.%s.%s",__FUNCTION__,"boolean",prop->name); 125 debug("%s.%s.%s",__FUNCTION__,"boolean",prop->name);
165 126
  127 + if(prop->get)
  128 + g_value_set_boolean(value,prop->get(window->host) != 0 ? TRUE : FALSE);
166 129
167 } 130 }
168 else if(prop_id >= v3270_properties.type.toggle) 131 else if(prop_id >= v3270_properties.type.toggle)
169 { 132 {
170 - debug("%s.%s",__FUNCTION__,"toggle"); 133 + debug("%s.%s.%s",__FUNCTION__,"toggle",lib3270_get_toggle_name(prop_id - v3270_properties.type.toggle));
  134 + g_value_set_boolean(value,lib3270_get_toggle(window->host,prop_id - v3270_properties.type.toggle) ? TRUE : FALSE );
171 135
172 } 136 }
173 else 137 else
@@ -175,48 +139,6 @@ @@ -175,48 +139,6 @@
175 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); 139 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
176 } 140 }
177 141
178 - /*  
179 - v3270 *window = GTK_V3270(object);  
180 -  
181 - switch (prop_id)  
182 - {  
183 - case PROP_MODEL:  
184 - g_value_set_string(value,lib3270_get_model(window->host));  
185 - break;  
186 -  
187 - case PROP_AUTO_DISCONNECT:  
188 - g_value_set_uint(value,v3270_get_auto_disconnect(GTK_WIDGET(object)));  
189 - break;  
190 -  
191 - case PROP_LUNAME:  
192 - g_value_set_string(value,lib3270_get_luname(window->host));  
193 - break;  
194 -  
195 - case PROP_ONLINE:  
196 - g_value_set_boolean(value,lib3270_is_connected(window->host) ? TRUE : FALSE );  
197 - break;  
198 -  
199 - case PROP_SELECTION:  
200 - g_value_set_boolean(value,lib3270_has_selection(window->host) ? TRUE : FALSE );  
201 - break;  
202 -  
203 - case PROP_URL:  
204 - g_value_set_string(value,lib3270_get_url(window->host));  
205 - break;  
206 -  
207 - case PROP_SESSION_NAME:  
208 - g_value_set_string(value,v3270_get_session_name(GTK_WIDGET(object)));  
209 - break;  
210 -  
211 - default:  
212 - if(prop_id < (PROP_TOGGLE + LIB3270_TOGGLE_COUNT))  
213 - {  
214 - g_value_set_boolean(value,lib3270_get_toggle(window->host,prop_id - PROP_TOGGLE) ? TRUE : FALSE );  
215 - return;  
216 - }  
217 - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);  
218 - }  
219 - */  
220 } 142 }
221 143
222 void v3270_init_properties(GObjectClass * gobject_class) 144 void v3270_init_properties(GObjectClass * gobject_class)