Commit 7a5b478653d76ea18c9f3e2cb23745e567c117b4
1 parent
828fe621
Exists in
master
and in
1 other branch
Widget properties are now get/set using lib3270's internal properties.
Showing
2 changed files
with
24 additions
and
87 deletions
Show diff stats
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) |