Commit e48617d5fac3a12348f62e6b375ed450ce8e81d8
1 parent
f9fc1c8d
Exists in
master
and in
1 other branch
Working on debug window.
Showing
2 changed files
with
48 additions
and
0 deletions
Show diff stats
src/testprogram/testprogram.c
... | ... | @@ -258,6 +258,10 @@ static GtkToolItem * create_tool_item(GtkWidget *terminal, const gchar *label, c |
258 | 258 | GtkToolItem * item = gtk_toggle_tool_button_new(); |
259 | 259 | gtk_tool_button_set_label(GTK_TOOL_BUTTON(item),label); |
260 | 260 | |
261 | + gtk_widget_set_can_focus(item,FALSE); | |
262 | + gtk_widget_set_can_default(item,FALSE); | |
263 | + gtk_widget_set_focus_on_click(item,FALSE); | |
264 | + | |
261 | 265 | g_signal_connect(GTK_WIDGET(item), "toggled", G_CALLBACK(callback), terminal); |
262 | 266 | |
263 | 267 | if(tooltip) | ... | ... |
src/trace/exec.c
... | ... | @@ -107,6 +107,42 @@ |
107 | 107 | |
108 | 108 | } |
109 | 109 | |
110 | + static int get_property(GtkWidget *widget, const gchar *name) | |
111 | + { | |
112 | + GParamSpec * spec = g_object_class_find_property(G_OBJECT_GET_CLASS(widget),name); | |
113 | + | |
114 | + if(!spec) { | |
115 | + return errno = ENOENT; | |
116 | + } | |
117 | + | |
118 | + GValue val = G_VALUE_INIT; | |
119 | + | |
120 | + g_value_init(&val, spec->value_type); | |
121 | + g_object_get_property(G_OBJECT(widget),name,&val); | |
122 | + | |
123 | + switch(spec->value_type) | |
124 | + { | |
125 | + case G_TYPE_STRING: | |
126 | + lib3270_write_trace(v3270_get_session(widget),"%s=%s",spec->name,g_value_get_string(&val)); | |
127 | + break; | |
128 | + | |
129 | + case G_TYPE_BOOLEAN: | |
130 | + lib3270_write_trace(v3270_get_session(widget),"%s=%s",spec->name,(g_value_get_boolean(&val) ? "true" : "false")); | |
131 | + break; | |
132 | + | |
133 | + case G_TYPE_INT: | |
134 | + lib3270_write_trace(v3270_get_session(widget),"%s=%d",spec->name,g_value_get_int(&val)); | |
135 | + break; | |
136 | + | |
137 | + default: | |
138 | + lib3270_write_trace(v3270_get_session(widget),"%s has an unexpected value type",spec->name); | |
139 | + | |
140 | + } | |
141 | + | |
142 | + g_value_unset(&val); | |
143 | + return 0; | |
144 | + } | |
145 | + | |
110 | 146 | int v3270_exec_command(GtkWidget *widget, const gchar *text) |
111 | 147 | { |
112 | 148 | size_t ix; |
... | ... | @@ -138,6 +174,14 @@ |
138 | 174 | return set_property(hSession,name,(*txtptr ? txtptr : "1")); |
139 | 175 | } |
140 | 176 | |
177 | + if(g_str_has_prefix(cmdline,"get")) | |
178 | + { | |
179 | + gchar *txtptr = cmdline+3; | |
180 | + const gchar * name = get_word(&txtptr); | |
181 | + g_strstrip(txtptr); | |
182 | + return get_property(widget,name); | |
183 | + } | |
184 | + | |
141 | 185 | if(g_str_has_prefix(cmdline,"reset")) |
142 | 186 | { |
143 | 187 | gchar *txtptr = cmdline+3; | ... | ... |