Commit 0054c1c31cca45424ce6f3afec83a961c3b58014
1 parent
f1894934
Exists in
master
and in
1 other branch
Rewriting color scheme selection widget
Showing
8 changed files
with
376 additions
and
11 deletions
Show diff stats
Makefile.in
... | ... | @@ -313,6 +313,13 @@ install-shared: \ |
313 | 313 | $(DESTDIR)$(libdir)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@ |
314 | 314 | |
315 | 315 | |
316 | + # Install default configs | |
317 | + @mkdir -p $(datarootdir)/pw3270 | |
318 | + | |
319 | + @$(INSTALL_DATA) \ | |
320 | + colors.conf \ | |
321 | + $(datarootdir)/pw3270 | |
322 | + | |
316 | 323 | install-static: \ |
317 | 324 | $(BINRLS)/static/$(LIBNAME).a |
318 | 325 | ... | ... |
... | ... | @@ -0,0 +1,103 @@ |
1 | +# | |
2 | +# Software pw3270; desenvolvido com base nos códigos fontes do WC3270 e X3270 | |
3 | +# (Paul Mattes Paul.Mattes@usa.net); de emulação de terminal 3270 para acesso a | |
4 | +# aplicativos mainframe. Registro no INPI sob o nome G3270. | |
5 | +# | |
6 | +# Copyright (C) <2008> <Banco do Brasil S.A.> | |
7 | +# | |
8 | +# Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | |
9 | +# os termos da GPL v.2 - Licença Pública Geral GNU; conforme publicado pela | |
10 | +# Free Software Foundation. | |
11 | +# | |
12 | +# Este programa é distribuído na expectativa de ser útil; mas SEM QUALQUER | |
13 | +# GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | |
14 | +# A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | |
15 | +# obter mais detalhes. | |
16 | +# | |
17 | +# Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | |
18 | +# programa; se não; escreva para a Free Software Foundation; Inc.; 51 Franklin | |
19 | +# St; Fifth Floor; Boston; MA 02110-1301 USA | |
20 | +# | |
21 | +# | |
22 | +# Contatos: | |
23 | +# | |
24 | +# perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | |
25 | +# erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | |
26 | +# | |
27 | + | |
28 | +[default] | |
29 | +label=PW3270 default | |
30 | + | |
31 | +base=#000000;#7890F0;#FF0000;#FF00FF;#00FF00;#00FFFF;#FFFF00;#FFFFFF;#000000;#000080;#FFA200;#800080;#008000;#008080;#A0A000;#C0C0C0 | |
32 | +field=#00FF00;#FF0000;#00FFFF;#FFFFFF | |
33 | +selection=#404040;#ffffff | |
34 | +OIA=#000000;#00FF00;#7890F0;#FFFFFF;#FF0000 | |
35 | + | |
36 | +cross-hair=#00FF00 | |
37 | + | |
38 | +[X3270] | |
39 | +label=X3270 | |
40 | + | |
41 | +base=black;deepSkyBlue;red;pink;green;turquoise;yellow;white;black;blue3;orange;purple;paleGreen;paleTurquoise2;grey;white | |
42 | +field=green;red;deepSkyBlue;white | |
43 | +selection=dimGrey;black | |
44 | +OIA=black;turquoise;turquoise;white;red | |
45 | + | |
46 | +cross-hair=white | |
47 | + | |
48 | +[Reverse] | |
49 | +label=Reverse | |
50 | +label[pt_BR]=Invertido | |
51 | + | |
52 | +base=white;blue;firebrick;pink;green4;cadetBlue;goldenrod;black;white;blue3;orange;purple;paleGreen;darkTurquoise;grey;black | |
53 | +selection=dimGrey;black | |
54 | +OIA=white;blue;blue;black;black | |
55 | + | |
56 | +cross-hair=black | |
57 | + | |
58 | +[Bright] | |
59 | +label=Bright | |
60 | +label[pt_BR]=Cores fortes | |
61 | + | |
62 | +base=black;blue;red;magenta;green;turquoise;yellow;white;black;blue3;orange;purple;paleGreen;cyan;grey;white | |
63 | +selection=dimGrey;black | |
64 | +OIA=black;blue;blue;white;red | |
65 | + | |
66 | +cross-hair=white | |
67 | + | |
68 | +[CPE] | |
69 | +label=CPE | |
70 | +base=black;LightBlue1;PaleVioletRed1;pink;green;turquoise;yellow;white;black;LightBlue3;orange;MediumPurple1;paleGreen;paleTurquoise2;grey80;white | |
71 | +selection=dimGrey;black | |
72 | +OIA=black;turquoise;turquoise;white;red | |
73 | + | |
74 | +cross-hair=white | |
75 | + | |
76 | +[Green] | |
77 | +label=Green | |
78 | +label[pt_BR]=Verde | |
79 | + | |
80 | +base=black;green | |
81 | + | |
82 | +[WB] | |
83 | +label=White on Black | |
84 | +label[pt_BR]=Branco com fundo preto | |
85 | + | |
86 | +base=black;white | |
87 | + | |
88 | +[BW] | |
89 | +label=Black on White | |
90 | +label[pt_BR]=Preto com fundo branco | |
91 | +base=white;black | |
92 | + | |
93 | +[selenized] | |
94 | + | |
95 | +# https://github.com/jan-warchol/selenized | |
96 | +label=Selenized color palette by Jan Warchoł | |
97 | + | |
98 | +base=rgb(24,24,24);rgb(79,156,254);rgb(237,74,70);rgb(235,110,183);rgb(131,199,70);rgb(86,216,201);rgb(239,197,65);rgb(222,222,222);rgb(59,59,59);rgb(54,142,171);rgb(250,145,83);rgb(165,128,226);rgb(112,180,51);rgb(65,199,185);rgb(219,179,45);rgb(119,119,119) | |
99 | +field=rgb(131,199,70);rgb(237,74,70);rgb(65,199,185);rgb(250,145,83) | |
100 | +selection=rgb(37,37,37);rgb(222,222,222) | |
101 | +OIA=rgb(24,24,24);rgb(222,222,222);rgb(79,156,254);rgb(131,199,70);rgb(239,197,65) | |
102 | +cross-hair=rgb(222,222,222) | |
103 | + | ... | ... |
src/dialogs/colorscheme.c
... | ... | @@ -38,7 +38,9 @@ |
38 | 38 | #include <glib/gi18n.h> |
39 | 39 | |
40 | 40 | #include <v3270.h> |
41 | + #include <lib3270/log.h> | |
41 | 42 | #include <v3270/colorscheme.h> |
43 | + #include "../v3270/marshal.h" | |
42 | 44 | |
43 | 45 | #define V3270_COLOR_BASE V3270_COLOR_GRAY+1 |
44 | 46 | |
... | ... | @@ -48,33 +50,260 @@ |
48 | 50 | { |
49 | 51 | GtkComboBoxClass parent_class; |
50 | 52 | |
51 | - | |
52 | 53 | }; |
53 | 54 | |
54 | 55 | struct _V3270ColorScheme |
55 | 56 | { |
56 | - GtkComboBox parent; | |
57 | + GtkComboBox parent; | |
58 | + GdkRGBA * schemes; | |
59 | + | |
60 | + | |
61 | + }; | |
57 | 62 | |
63 | + enum | |
64 | + { | |
65 | + CHANGED, | |
66 | + LAST_SIGNAL | |
58 | 67 | }; |
59 | 68 | |
69 | + static guint color_signal[LAST_SIGNAL] = { 0 }; | |
70 | + | |
60 | 71 | G_DEFINE_TYPE(V3270ColorScheme, V3270ColorScheme, GTK_TYPE_COMBO_BOX); |
61 | 72 | |
62 | 73 | /*--[ Implement ]------------------------------------------------------------------------------------*/ |
63 | 74 | |
75 | + static void changed(GtkComboBox *widget) | |
76 | + { | |
77 | + GdkRGBA * clr = NULL; | |
78 | + GValue value = { 0, }; | |
79 | + GtkTreeIter iter; | |
80 | + | |
81 | + if(!gtk_combo_box_get_active_iter(widget,&iter)) | |
82 | + return; | |
83 | + | |
84 | + gtk_tree_model_get_value(gtk_combo_box_get_model(widget),&iter,1,&value); | |
85 | + clr = g_value_get_pointer(&value); | |
86 | + | |
87 | + debug("%s=%p",__FUNCTION__,clr); | |
88 | + g_signal_emit(widget, color_signal[CHANGED], 0, clr); | |
89 | + | |
90 | + } | |
91 | + | |
64 | 92 | static void V3270ColorScheme_class_init(G_GNUC_UNUSED V3270ColorSchemeClass *klass) |
65 | 93 | { |
94 | + GObjectClass * gobject_class = G_OBJECT_CLASS(klass); | |
95 | + | |
96 | + klass->parent_class.changed = changed; | |
97 | + | |
98 | + color_signal[CHANGED] = | |
99 | + g_signal_new( | |
100 | + "update-colors", | |
101 | + G_OBJECT_CLASS_TYPE (gobject_class), | |
102 | + G_SIGNAL_RUN_FIRST, | |
103 | + 0, | |
104 | + NULL, NULL, | |
105 | + v3270_VOID__VOID_POINTER, | |
106 | + G_TYPE_NONE, 1, G_TYPE_POINTER, 0 | |
107 | + ); | |
108 | + | |
109 | + debug("changed_signal=%d",(int) color_signal[CHANGED]); | |
66 | 110 | |
67 | 111 | } |
68 | 112 | |
69 | 113 | static void V3270ColorScheme_init(V3270ColorScheme *widget) |
70 | 114 | { |
71 | 115 | |
116 | + GtkTreeModel * model = (GtkTreeModel *) gtk_list_store_new(2,G_TYPE_STRING,G_TYPE_POINTER); | |
117 | + GtkCellRenderer * renderer = gtk_cell_renderer_text_new(); | |
118 | + | |
119 | + gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(widget), renderer, TRUE); | |
120 | + gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(widget), renderer, "text", 0, NULL); | |
121 | + | |
122 | + gtk_combo_box_set_model(GTK_COMBO_BOX(widget), model); | |
123 | + | |
72 | 124 | } |
73 | 125 | |
74 | - LIB3270_EXPORT GtkWidget * v3270_color_scheme_new(GdkRGBA *colors) | |
126 | + static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkRGBA *clr) | |
75 | 127 | { |
76 | - GtkWidget *widget = GTK_WIDGET(g_object_new(GTK_TYPE_V3270_COLOR_SCHEME, NULL)); | |
128 | + const gchar * val; | |
129 | + size_t f; | |
130 | + | |
131 | + // Load base colors | |
132 | + val = g_key_file_get_string(conf,group,"base",NULL); | |
133 | + if(val) | |
134 | + { | |
135 | + // Process base colors | |
136 | + gchar **str = g_strsplit(val,";",V3270_COLOR_BASE); | |
137 | + | |
138 | + switch(g_strv_length(str)) | |
139 | + { | |
140 | + case 2: // Only 2 colors, create monocromatic table | |
141 | + v3270_set_mono_color_table(clr,str[1],str[0]); | |
142 | + break; | |
143 | + | |
144 | + case V3270_COLOR_BASE: // All colors, update it | |
145 | + for(f=0;f<V3270_COLOR_BASE;f++) | |
146 | + gdk_rgba_parse(clr+f,str[f]); | |
147 | + break; | |
148 | + | |
149 | + default: | |
150 | + | |
151 | + // Unexpected size, load new colors over the defaults | |
152 | + g_warning("base color list in %s has %d elements, should have %d",group,g_strv_length(str),V3270_COLOR_GRAY); | |
153 | + | |
154 | + gdk_rgba_parse(clr,str[0]); | |
155 | + gdk_rgba_parse(clr+1,str[1]); | |
156 | + | |
157 | + for(f=2;f<V3270_COLOR_BASE;f++) | |
158 | + clr[f] = clr[1]; | |
159 | + | |
160 | + clr[V3270_COLOR_BLACK] = *clr; | |
161 | + | |
162 | + for(f=2;f<MIN(g_strv_length(str),V3270_COLOR_BASE-1);f++) | |
163 | + gdk_rgba_parse(clr+f,str[f]); | |
164 | + | |
165 | + } | |
166 | + g_strfreev(str); | |
167 | + | |
168 | + } | |
169 | + else | |
170 | + { | |
171 | + g_warning("Color scheme [%s] has no \"base\" entry, using green on black",group); | |
172 | + | |
173 | + gdk_rgba_parse(clr,"black"); | |
174 | + gdk_rgba_parse(clr+1,"green"); | |
175 | + | |
176 | + for(f=2;f<V3270_COLOR_BASE;f++) | |
177 | + clr[f] = clr[1]; | |
178 | + clr[V3270_COLOR_BLACK] = *clr; | |
179 | + } | |
180 | + | |
181 | + // Load field colors | |
182 | + clr[V3270_COLOR_FIELD] = clr[V3270_COLOR_GREEN]; | |
183 | + clr[V3270_COLOR_FIELD_INTENSIFIED] = clr[V3270_COLOR_RED]; | |
184 | + clr[V3270_COLOR_FIELD_PROTECTED] = clr[V3270_COLOR_BLUE]; | |
185 | + clr[V3270_COLOR_FIELD_PROTECTED_INTENSIFIED] = clr[V3270_COLOR_WHITE]; | |
186 | + | |
187 | + val = g_key_file_get_string(conf,group,"field",NULL); | |
188 | + if(val) | |
189 | + { | |
190 | + gchar **str = g_strsplit(val,";",5); | |
191 | + | |
192 | + for(f=0;f< MIN(g_strv_length(str),4); f++) | |
193 | + gdk_rgba_parse(clr+V3270_COLOR_FIELD+f,str[f]); | |
194 | + | |
195 | + g_strfreev(str); | |
196 | + } | |
197 | + | |
198 | + // Load selection colors | |
199 | + clr[V3270_COLOR_SELECTED_BG] = clr[V3270_COLOR_WHITE]; | |
200 | + clr[V3270_COLOR_SELECTED_FG] = clr[V3270_COLOR_BLACK]; | |
201 | + val = g_key_file_get_string(conf,group,"selection",NULL); | |
202 | + if(val) | |
203 | + { | |
204 | + gchar **str = g_strsplit(val,";",3); | |
205 | + | |
206 | + for(f=0;f< MIN(g_strv_length(str),2); f++) | |
207 | + gdk_rgba_parse(clr+V3270_COLOR_SELECTED_BG+f,str[f]); | |
208 | + | |
209 | + g_strfreev(str); | |
210 | + } | |
211 | + | |
212 | + // Load OIA colors | |
213 | + clr[V3270_COLOR_OIA_BACKGROUND] = clr[V3270_COLOR_BACKGROUND]; | |
214 | + clr[V3270_COLOR_OIA_FOREGROUND] = clr[V3270_COLOR_GREEN]; | |
215 | + clr[V3270_COLOR_OIA_SEPARATOR] = clr[V3270_COLOR_GREEN]; | |
216 | + clr[V3270_COLOR_OIA_STATUS_OK] = clr[V3270_COLOR_GREEN]; | |
217 | + clr[V3270_COLOR_OIA_STATUS_INVALID] = clr[V3270_COLOR_RED]; | |
218 | + clr[V3270_COLOR_OIA_STATUS_WARNING] = clr[V3270_COLOR_YELLOW]; | |
219 | + | |
220 | + val = g_key_file_get_string(conf,group,"OIA",NULL); | |
221 | + if(val) | |
222 | + { | |
223 | + gchar **str = g_strsplit(val,";",6); | |
224 | + | |
225 | + // 0 = V3270_COLOR_OIA_BACKGROUND, | |
226 | + // 1 = V3270_COLOR_OIA_FOREGROUND, | |
227 | + // 2 = V3270_COLOR_OIA_SEPARATOR, | |
228 | + // 3 = V3270_COLOR_OIA_STATUS_OK, | |
229 | + // 4 = V3270_COLOR_OIA_STATUS_WARNING, | |
230 | + // 5 = V3270_COLOR_OIA_STATUS_INVALID, | |
231 | + | |
232 | + if(g_strv_length(str) == 5) | |
233 | + { | |
234 | + for(f=0;f < 5; f++) | |
235 | + gdk_rgba_parse(clr+V3270_COLOR_OIA_BACKGROUND+f,str[f]); | |
236 | + clr[V3270_COLOR_OIA_STATUS_INVALID] = clr[V3270_COLOR_OIA_STATUS_WARNING]; | |
237 | + } | |
238 | + else | |
239 | + { | |
240 | + for(f=0;f< MIN(g_strv_length(str),6); f++) | |
241 | + gdk_rgba_parse(clr+V3270_COLOR_OIA_BACKGROUND+f,str[f]); | |
242 | + } | |
243 | + | |
244 | + g_strfreev(str); | |
245 | + } | |
246 | + | |
247 | + // Setup extended elements | |
248 | + clr[V3270_COLOR_CROSS_HAIR] = clr[V3270_COLOR_GREEN]; | |
249 | + | |
250 | + val = g_key_file_get_string(conf,group,"cross-hair",NULL); | |
251 | + if(val) | |
252 | + gdk_rgba_parse(clr+V3270_COLOR_CROSS_HAIR,val); | |
253 | + | |
254 | + } | |
255 | + | |
256 | + LIB3270_EXPORT GtkWidget * v3270_color_scheme_new() | |
257 | + { | |
258 | + GtkWidget * widget = GTK_WIDGET(g_object_new(GTK_TYPE_V3270_COLOR_SCHEME, NULL)); | |
259 | + GtkTreeModel * model = gtk_combo_box_get_model(GTK_COMBO_BOX(widget)); | |
260 | + | |
261 | +#ifdef DEBUG | |
262 | + lib3270_autoptr(char) filename = lib3270_strdup_printf("%s/%s",".","colors.conf"); | |
263 | +#else | |
264 | + lib3270_autoptr(char) filename = lib3270_build_data_filename("colors.conf"); | |
265 | +#endif // DEBUG | |
266 | + | |
267 | + if(!g_file_test(filename,G_FILE_TEST_IS_REGULAR)) | |
268 | + { | |
269 | + g_warning("Unable to load color schemes in \"%s\"",filename); | |
270 | + gtk_widget_set_sensitive(widget,FALSE); | |
271 | + return widget; | |
272 | + } | |
273 | + | |
274 | + // Load color schemes. | |
275 | + g_autoptr(GKeyFile) conf = g_key_file_new(); | |
276 | + g_autoptr(GError) err = NULL; | |
277 | + int index = 0; | |
278 | + gsize len; | |
279 | + gsize g; | |
280 | + | |
281 | + g_key_file_load_from_file(conf,filename,G_KEY_FILE_NONE,&err); | |
282 | + | |
283 | + gchar **group = g_key_file_get_groups(conf,&len); | |
284 | + GTK_V3270_COLOR_SCHEME(widget)->schemes = g_new0(GdkRGBA,(len*V3270_COLOR_COUNT)); | |
285 | + | |
286 | + for(g=0;g<len;g++) | |
287 | + { | |
288 | + // Setup colors for current entry | |
289 | + GtkTreeIter iter; | |
290 | + GdkRGBA * clr = GTK_V3270_COLOR_SCHEME(widget)->schemes+index; | |
291 | + const gchar * label = g_key_file_get_locale_string(conf,group[g],"label",NULL,NULL); | |
292 | + | |
293 | + load_color_scheme(conf,group[g],clr); | |
294 | + | |
295 | + // Set it in the combobox | |
296 | + gtk_list_store_append((GtkListStore *) model,&iter); | |
297 | + gtk_list_store_set((GtkListStore *) model, &iter, | |
298 | + 0, label ? label : group[g], | |
299 | + 1, clr, | |
300 | + -1); | |
301 | + | |
302 | + // move to next color list | |
303 | + index += V3270_COLOR_COUNT; | |
304 | + } | |
77 | 305 | |
306 | + g_strfreev(group); | |
78 | 307 | |
79 | 308 | return widget; |
80 | 309 | } | ... | ... |
src/include/v3270.h
... | ... | @@ -215,7 +215,7 @@ |
215 | 215 | LIB3270_EXPORT const GdkRGBA * v3270_get_color_table(GtkWidget *widget); |
216 | 216 | LIB3270_EXPORT void v3270_set_mono_color_table(GdkRGBA *table, const gchar *fg, const gchar *bg); |
217 | 217 | LIB3270_EXPORT void v3270_draw_element(cairo_t *cr, unsigned char chr, unsigned short attr, H3270 *session, v3270FontInfo *font, GdkRectangle *rect, GdkRGBA *color); |
218 | - LIB3270_EXPORT void v3270_set_color(GtkWidget *widget, enum V3270_COLOR id, GdkRGBA *color); | |
218 | + LIB3270_EXPORT void v3270_set_color(GtkWidget *widget, enum V3270_COLOR id, const GdkRGBA *color); | |
219 | 219 | LIB3270_EXPORT GdkRGBA * v3270_get_color(GtkWidget *widget, enum V3270_COLOR id); |
220 | 220 | |
221 | 221 | // Misc | ... | ... |
src/include/v3270/colorscheme.h
... | ... | @@ -47,7 +47,7 @@ |
47 | 47 | |
48 | 48 | /*--[ Prototipes ]-----------------------------------------------------------------------------------*/ |
49 | 49 | |
50 | - LIB3270_EXPORT GtkWidget * v3270_color_scheme_new(GdkRGBA *colors); | |
50 | + LIB3270_EXPORT GtkWidget * v3270_color_scheme_new(); | |
51 | 51 | |
52 | 52 | G_END_DECLS |
53 | 53 | ... | ... |
src/testprogram/testprogram.c
... | ... | @@ -36,6 +36,8 @@ |
36 | 36 | #include <v3270.h> |
37 | 37 | #include <v3270/filetransfer.h> |
38 | 38 | #include <v3270/ftprogress.h> |
39 | + #include <v3270/colorscheme.h> | |
40 | + #include <lib3270/log.h> | |
39 | 41 | #include <stdlib.h> |
40 | 42 | |
41 | 43 | /*---[ Implement ]----------------------------------------------------------------------------------*/ |
... | ... | @@ -88,6 +90,19 @@ static void trace_window_destroy(G_GNUC_UNUSED GtkWidget *widget, H3270 *hSessio |
88 | 90 | lib3270_set_toggle(hSession,LIB3270_TOGGLE_NETWORK_TRACE,0); |
89 | 91 | } |
90 | 92 | |
93 | +static void color_scheme_changed(GtkWidget *widget, const GdkRGBA *colors, GtkWidget *terminal) { | |
94 | + | |
95 | + debug("%s=%p",__FUNCTION__,colors); | |
96 | + | |
97 | + int f; | |
98 | + for(f=0;f<V3270_COLOR_COUNT;f++) | |
99 | + v3270_set_color(terminal,f,colors+f); | |
100 | + | |
101 | + v3270_reload(terminal); | |
102 | + gtk_widget_queue_draw(terminal); | |
103 | + | |
104 | +} | |
105 | + | |
91 | 106 | static void activate(GtkApplication* app, G_GNUC_UNUSED gpointer user_data) { |
92 | 107 | |
93 | 108 | /* |
... | ... | @@ -153,17 +168,29 @@ static void activate(GtkApplication* app, G_GNUC_UNUSED gpointer user_data) { |
153 | 168 | |
154 | 169 | g_signal_connect(terminal,"popup",G_CALLBACK(popup_menu),NULL); |
155 | 170 | |
171 | + // Create box | |
172 | + GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL,2); | |
173 | + GtkWidget *grid = gtk_grid_new(); | |
174 | + GtkWidget *color = v3270_color_scheme_new(); | |
175 | + | |
176 | + g_signal_connect(G_OBJECT(color),"update-colors",G_CALLBACK(color_scheme_changed),terminal); | |
177 | + | |
178 | + gtk_grid_attach(GTK_GRID(grid),color,0,0,1,1); | |
179 | + | |
180 | + gtk_box_pack_start(GTK_BOX(box),grid,FALSE,TRUE,0); | |
181 | + gtk_box_pack_start(GTK_BOX(box),terminal,TRUE,TRUE,0); | |
182 | + | |
156 | 183 | // Setup and show window |
157 | 184 | gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER); |
158 | 185 | gtk_window_set_default_size (GTK_WINDOW (window), 800, 500); |
159 | - gtk_container_add(GTK_CONTAINER(window),terminal); | |
186 | + gtk_container_add(GTK_CONTAINER(window),box); | |
160 | 187 | gtk_widget_show_all (window); |
161 | 188 | |
162 | - v3270_set_toggle(terminal,LIB3270_TOGGLE_RECONNECT,1); | |
189 | + // v3270_set_toggle(terminal,LIB3270_TOGGLE_RECONNECT,1); | |
163 | 190 | |
164 | 191 | // v3270_set_script(terminal,'R'); |
165 | 192 | |
166 | - v3270_print_all(terminal); | |
193 | + // v3270_print_all(terminal); | |
167 | 194 | |
168 | 195 | |
169 | 196 | } | ... | ... |
src/v3270/colors.c
... | ... | @@ -90,7 +90,7 @@ LIB3270_EXPORT void v3270_set_colors(GtkWidget *widget, const gchar *colors) |
90 | 90 | |
91 | 91 | } |
92 | 92 | |
93 | -LIB3270_EXPORT void v3270_set_color(GtkWidget *widget, enum V3270_COLOR id, GdkRGBA *color) | |
93 | +LIB3270_EXPORT void v3270_set_color(GtkWidget *widget, enum V3270_COLOR id, const GdkRGBA *color) | |
94 | 94 | { |
95 | 95 | g_return_if_fail(GTK_IS_V3270(widget)); |
96 | 96 | ... | ... |
src/v3270/print.c
... | ... | @@ -210,7 +210,6 @@ |
210 | 210 | debug("%s(%p)",__FUNCTION__,info->widget); |
211 | 211 | g_signal_emit(info->widget, v3270_widget_signal[SIGNAL_PRINT_DONE], 0, prt, (guint) result); |
212 | 212 | |
213 | - | |
214 | 213 | debug("%s",__FUNCTION__); |
215 | 214 | if(info->font.scaled) |
216 | 215 | cairo_scaled_font_destroy(info->font.scaled); | ... | ... |