Commit 26ff334a71b62e1eaab41fada8595b9973bb9789

Authored by perry.werneck@gmail.com
1 parent aedb9f0e

Objeto GdkColor foi "deprecado" substituindo por GdkRGBA

src/include/pw3270/v3270.h
... ... @@ -46,6 +46,18 @@
46 46 #define GTK_IS_V3270_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_V3270))
47 47 #define GTK_V3270_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_V3270, v3270Class))
48 48  
  49 +#if ! GTK_CHECK_VERSION(3,0,0)
  50 + #define GdkRGBA GdkColor
  51 + #define gdk_cairo_set_source_rgba(cr,cl) gdk_cairo_set_source_color(cr,cl)
  52 + #define gdk_rgba_to_string(c) gdk_color_to_string(c)
  53 + #define gdk_rgba_equal(a,b) gdk_color_equal(a,b)
  54 + #define gdk_rgba_to_string(c) gdk_color_to_string(c)
  55 + #define gtk_color_selection_set_current_rgba(w,c) gtk_color_selection_set_current_color(w,c)
  56 + #define gtk_color_selection_get_current_rgba(w,c) gtk_color_selection_get_current_color(w,c)
  57 + #define gtk_color_selection_set_previous_rgba(w,c) gtk_color_selection_set_previous_color(w,c)
  58 + #define gtk_color_selection_set_current_rgba(w,c) gtk_color_selection_set_current_color(w,c)
  59 +#endif // !GTK(3,0,0)
  60 +
49 61  
50 62 typedef struct _v3270 v3270;
51 63 typedef struct _v3270Class v3270Class;
... ... @@ -178,12 +190,12 @@
178 190  
179 191 // Colors
180 192 LIB3270_EXPORT void v3270_set_colors(GtkWidget *widget, const gchar *);
181   - LIB3270_EXPORT void v3270_set_color_table(GdkColor *table, const gchar *colors);
182   - LIB3270_EXPORT const GdkColor * v3270_get_color_table(GtkWidget *widget);
183   - LIB3270_EXPORT void v3270_set_mono_color_table(GdkColor *table, const gchar *fg, const gchar *bg);
184   - LIB3270_EXPORT void v3270_draw_element(cairo_t *cr, unsigned char chr, unsigned short attr, H3270 *session, guint height, GdkRectangle *rect, GdkColor *color);
185   - LIB3270_EXPORT void v3270_set_color(GtkWidget *widget, enum V3270_COLOR id, GdkColor *color);
186   - LIB3270_EXPORT GdkColor * v3270_get_color(GtkWidget *widget, enum V3270_COLOR id);
  193 + LIB3270_EXPORT void v3270_set_color_table(GdkRGBA *table, const gchar *colors);
  194 + LIB3270_EXPORT const GdkRGBA * v3270_get_color_table(GtkWidget *widget);
  195 + LIB3270_EXPORT void v3270_set_mono_color_table(GdkRGBA *table, const gchar *fg, const gchar *bg);
  196 + LIB3270_EXPORT void v3270_draw_element(cairo_t *cr, unsigned char chr, unsigned short attr, H3270 *session, guint height, GdkRectangle *rect, GdkRGBA *color);
  197 + LIB3270_EXPORT void v3270_set_color(GtkWidget *widget, enum V3270_COLOR id, GdkRGBA *color);
  198 + LIB3270_EXPORT GdkRGBA * v3270_get_color(GtkWidget *widget, enum V3270_COLOR id);
187 199  
188 200 // Misc
189 201 LIB3270_EXPORT GtkIMContext * v3270_get_im_context(GtkWidget *widget);
... ...
src/pw3270/colors.c
... ... @@ -32,7 +32,7 @@
32 32  
33 33 /*--[ Implement ]------------------------------------------------------------------------------------*/
34 34  
35   -static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkColor *clr)
  35 +static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkRGBA *clr)
36 36 {
37 37 #define V3270_COLOR_BASE V3270_COLOR_GRAY+1
38 38  
... ... @@ -54,7 +54,7 @@ static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkColor *clr)
54 54  
55 55 case V3270_COLOR_BASE: // All colors, update it
56 56 for(f=0;f<V3270_COLOR_BASE;f++)
57   - gdk_color_parse(str[f],clr+f);
  57 + gdk_rgba_parse(clr+f,str[f]);
58 58 break;
59 59  
60 60 default:
... ... @@ -62,8 +62,8 @@ static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkColor *clr)
62 62 // Unexpected size, load new colors over the defaults
63 63 g_warning("base color list in %s has %d elements, should have %d",group,g_strv_length(str),V3270_COLOR_GRAY);
64 64  
65   - gdk_color_parse(str[0],clr);
66   - gdk_color_parse(str[1],clr+1);
  65 + gdk_rgba_parse(clr,str[0]);
  66 + gdk_rgba_parse(clr+1,str[1]);
67 67  
68 68 for(f=2;f<V3270_COLOR_BASE;f++)
69 69 clr[f] = clr[1];
... ... @@ -71,7 +71,7 @@ static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkColor *clr)
71 71 clr[V3270_COLOR_BLACK] = *clr;
72 72  
73 73 for(f=2;f<MIN(g_strv_length(str),V3270_COLOR_BASE-1);f++)
74   - gdk_color_parse(str[f],clr+f);
  74 + gdk_rgba_parse(clr+f,str[f]);
75 75  
76 76 }
77 77 g_strfreev(str);
... ... @@ -81,8 +81,8 @@ static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkColor *clr)
81 81 {
82 82 g_warning("Color scheme [%s] has no \"base\" entry, using green on black",group);
83 83  
84   - gdk_color_parse("black",clr);
85   - gdk_color_parse("green",clr+1);
  84 + gdk_rgba_parse(clr,"black");
  85 + gdk_rgba_parse(clr+1,"green");
86 86  
87 87 for(f=2;f<V3270_COLOR_BASE;f++)
88 88 clr[f] = clr[1];
... ... @@ -101,7 +101,7 @@ static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkColor *clr)
101 101 gchar **str = g_strsplit(val,",",5);
102 102  
103 103 for(f=0;f< MIN(g_strv_length(str),4); f++)
104   - gdk_color_parse(str[f],clr+V3270_COLOR_FIELD+f);
  104 + gdk_rgba_parse(clr+V3270_COLOR_FIELD+f,str[f]);
105 105  
106 106 g_strfreev(str);
107 107 }
... ... @@ -115,7 +115,7 @@ static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkColor *clr)
115 115 gchar **str = g_strsplit(val,",",3);
116 116  
117 117 for(f=0;f< MIN(g_strv_length(str),2); f++)
118   - gdk_color_parse(str[f],clr+V3270_COLOR_SELECTED_BG+f);
  118 + gdk_rgba_parse(clr+V3270_COLOR_SELECTED_BG+f,str[f]);
119 119  
120 120 g_strfreev(str);
121 121 }
... ... @@ -143,13 +143,13 @@ static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkColor *clr)
143 143 if(g_strv_length(str) == 5)
144 144 {
145 145 for(f=0;f < 5; f++)
146   - gdk_color_parse(str[f],clr+V3270_COLOR_OIA_BACKGROUND+f);
  146 + gdk_rgba_parse(clr+V3270_COLOR_OIA_BACKGROUND+f,str[f]);
147 147 clr[V3270_COLOR_OIA_STATUS_INVALID] = clr[V3270_COLOR_OIA_STATUS_WARNING];
148 148 }
149 149 else
150 150 {
151 151 for(f=0;f< MIN(g_strv_length(str),6); f++)
152   - gdk_color_parse(str[f],clr+V3270_COLOR_OIA_BACKGROUND+f);
  152 + gdk_rgba_parse(clr+V3270_COLOR_OIA_BACKGROUND+f,str[f]);
153 153 }
154 154  
155 155 g_strfreev(str);
... ... @@ -160,7 +160,7 @@ static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkColor *clr)
160 160  
161 161 val = g_key_file_get_string(conf,group,"cross-hair",NULL);
162 162 if(val)
163   - gdk_color_parse(val,clr+V3270_COLOR_CROSS_HAIR);
  163 + gdk_rgba_parse(clr+V3270_COLOR_CROSS_HAIR,val);
164 164  
165 165 }
166 166  
... ... @@ -168,7 +168,7 @@ static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkColor *clr)
168 168 {
169 169 GtkWidget * terminal = (GtkWidget *) g_object_get_data(G_OBJECT(combo),"terminal_widget");
170 170 GtkWidget * colorsel = (GtkWidget *) g_object_get_data(G_OBJECT(combo),"color_selection_widget");
171   - GdkColor * clr = NULL;
  171 + GdkRGBA * clr = NULL;
172 172 GValue value = { 0, };
173 173 GtkTreeIter iter;
174 174  
... ... @@ -196,18 +196,18 @@ static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkColor *clr)
196 196 // Update color selection widget
197 197 int id = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(colorsel),"colorid"));
198 198 if(id >= 0 && id < V3270_COLOR_COUNT)
199   - gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(colorsel),clr+id);
  199 + gtk_color_selection_set_current_rgba(GTK_COLOR_SELECTION(colorsel),clr+id);
200 200 }
201 201  
202 202 }
203 203  
204   - static gboolean compare_colors(const GdkColor *colora, const GdkColor *colorb)
  204 + static gboolean compare_colors(const GdkRGBA *colora, const GdkRGBA *colorb)
205 205 {
206 206 int f;
207 207  
208 208 for(f=0;f<V3270_COLOR_COUNT;f++)
209 209 {
210   - if(!gdk_color_equal(colora+f,colorb+f))
  210 + if(!gdk_rgba_equal(colora+f,colorb+f))
211 211 return FALSE;
212 212 }
213 213  
... ... @@ -222,7 +222,7 @@ static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkColor *clr)
222 222 * @return Combobox widget with colors.conf loaded and set
223 223 *
224 224 */
225   - GtkWidget * color_scheme_new(const GdkColor *current)
  225 + GtkWidget * color_scheme_new(const GdkRGBA *current)
226 226 {
227 227 gchar * filename = build_data_filename("colors.conf",NULL);
228 228 GtkTreeModel * model = (GtkTreeModel *) gtk_list_store_new(2,G_TYPE_STRING,G_TYPE_POINTER);
... ... @@ -254,7 +254,7 @@ static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkColor *clr)
254 254 {
255 255 gsize len = 0;
256 256 gchar **group = g_key_file_get_groups(conf,&len);
257   - GdkColor * table = g_new0(GdkColor,(len*V3270_COLOR_COUNT));
  257 + GdkRGBA * table = g_new0(GdkRGBA,(len*V3270_COLOR_COUNT));
258 258 int pos = 0;
259 259 int g;
260 260 gboolean found = FALSE;
... ... @@ -266,7 +266,7 @@ static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkColor *clr)
266 266 for(g=0;g<len;g++)
267 267 {
268 268 // Setup colors for current entry
269   - GdkColor * clr = table+pos;
  269 + GdkRGBA * clr = table+pos;
270 270 const gchar * label = g_key_file_get_locale_string(conf,group[g],"label",NULL,NULL);
271 271  
272 272 load_color_scheme(conf,group[g],clr);
... ... @@ -296,7 +296,7 @@ static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkColor *clr)
296 296 {
297 297 // Custom color table, save it as a new dropdown entry.
298 298  
299   - GdkColor * clr = g_new0(GdkColor,V3270_COLOR_COUNT);
  299 + GdkRGBA * clr = g_new0(GdkRGBA,V3270_COLOR_COUNT);
300 300 int f;
301 301  
302 302 for(f=0;f<V3270_COLOR_COUNT;f++)
... ... @@ -330,13 +330,13 @@ static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkColor *clr)
330 330  
331 331 static void color_changed(GtkColorSelection *colorselection, GtkWidget *widget)
332 332 {
333   - GdkColor clr;
  333 + GdkRGBA clr;
334 334 int id = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(colorselection),"colorid"));
335 335  
336 336 if(id < 0 || id >= V3270_COLOR_COUNT)
337 337 return;
338 338  
339   - gtk_color_selection_get_current_color(colorselection,&clr);
  339 + gtk_color_selection_get_current_rgba(colorselection,&clr);
340 340 v3270_set_color(widget,id,&clr);
341 341 v3270_reload(widget);
342 342 gtk_widget_queue_draw(widget);
... ... @@ -345,11 +345,11 @@ static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkColor *clr)
345 345 static void color_selected(GtkTreeSelection *selection, GtkWidget *color)
346 346 {
347 347 GtkWidget * widget = g_object_get_data(G_OBJECT(selection),"v3270");
348   - GdkColor * saved = g_object_get_data(G_OBJECT(selection),"lastcolors");
  348 + GdkRGBA * saved = g_object_get_data(G_OBJECT(selection),"lastcolors");
349 349 GValue value = { 0, };
350 350 GtkTreeModel * model;
351 351 GtkTreeIter iter;
352   - GdkColor * clr;
  352 + GdkRGBA * clr;
353 353 int id;
354 354  
355 355 gtk_widget_set_sensitive(color,FALSE);
... ... @@ -367,8 +367,8 @@ static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkColor *clr)
367 367 g_object_set_data(G_OBJECT(color),"colorid",GINT_TO_POINTER(id));
368 368 clr = v3270_get_color(widget,id);
369 369  
370   - gtk_color_selection_set_previous_color(GTK_COLOR_SELECTION(color),saved+id);
371   - gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(color),clr);
  370 + gtk_color_selection_set_previous_rgba(GTK_COLOR_SELECTION(color),saved+id);
  371 + gtk_color_selection_set_current_rgba(GTK_COLOR_SELECTION(color),clr);
372 372  
373 373 gtk_widget_set_sensitive(color,TRUE);
374 374 }
... ... @@ -442,7 +442,7 @@ static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkColor *clr)
442 442  
443 443 GtkWidget * tree;
444 444 GtkWidget * color;
445   - GdkColor saved[V3270_COLOR_COUNT];
  445 + GdkRGBA saved[V3270_COLOR_COUNT];
446 446  
447 447 // Color dialog setup
448 448 {
... ... @@ -539,7 +539,7 @@ static void load_color_scheme(GKeyFile *conf, const gchar *group, GdkColor *clr)
539 539 {
540 540 if(f)
541 541 g_string_append_c(str,',');
542   - g_string_append_printf(str,"%s",gdk_color_to_string(v3270_get_color(widget,f)));
  542 + g_string_append_printf(str,"%s",gdk_rgba_to_string(v3270_get_color(widget,f)));
543 543 }
544 544 set_string_to_config("terminal","colors","%s",str->str);
545 545 g_string_free(str,TRUE);
... ...
src/pw3270/globals.h
... ... @@ -60,7 +60,7 @@
60 60 G_GNUC_INTERNAL GtkWidget * create_main_window(const gchar *uri);
61 61 G_GNUC_INTERNAL void setup_font_list(GtkWidget *widget, GtkWidget *obj);
62 62 G_GNUC_INTERNAL void load_color_schemes(GtkWidget *widget, gchar *active);
63   - G_GNUC_INTERNAL GtkWidget * color_scheme_new(const GdkColor *current);
  63 + G_GNUC_INTERNAL GtkWidget * color_scheme_new(const GdkRGBA *current);
64 64 G_GNUC_INTERNAL LIB3270_OPTION pw3270_options_by_hosttype(const gchar *systype);
65 65 G_GNUC_INTERNAL void run_security_dialog(GtkWidget *widget);
66 66  
... ...
src/pw3270/print.c
... ... @@ -47,7 +47,7 @@
47 47  
48 48 typedef struct _print_info
49 49 {
50   - GdkColor color[V3270_COLOR_COUNT];
  50 + GdkRGBA color[V3270_COLOR_COUNT];
51 51 int show_selection : 1;
52 52 PW3270_SRC src;
53 53  
... ... @@ -160,7 +160,7 @@
160 160 rect.width = info->extents.max_x_advance;
161 161  
162 162 // Clear page
163   - gdk_cairo_set_source_color(cr,info->color+V3270_COLOR_BACKGROUND);
  163 + gdk_cairo_set_source_rgba(cr,info->color+V3270_COLOR_BACKGROUND);
164 164 cairo_rectangle(cr, info->left-2, 0, (rect.width*info->cols)+4, (rect.height*info->rows)+4);
165 165 cairo_fill(cr);
166 166 cairo_stroke(cr);
... ... @@ -517,7 +517,7 @@ static gchar * enum_to_string(GType type, guint enum_value)
517 517 static void custom_widget_apply(GtkPrintOperation *prt, GtkWidget *widget, PRINT_INFO *info)
518 518 {
519 519 GtkWidget * combo = g_object_get_data(G_OBJECT(widget),"combo");
520   - GdkColor * clr = g_object_get_data(G_OBJECT(combo),"selected");
  520 + GdkRGBA * clr = g_object_get_data(G_OBJECT(combo),"selected");
521 521  
522 522 trace("%s starts combo=%p clr=%p widget=%p",__FUNCTION__,combo,clr,widget);
523 523  
... ... @@ -533,7 +533,7 @@ static gchar * enum_to_string(GType type, guint enum_value)
533 533 info->color[f] = clr[f];
534 534 if(f)
535 535 g_string_append_c(str,',');
536   - g_string_append_printf(str,"%s",gdk_color_to_string(clr+f));
  536 + g_string_append_printf(str,"%s",gdk_rgba_to_string(clr+f));
537 537 }
538 538 set_string_to_config("print","colors","%s",str->str);
539 539 g_string_free(str,TRUE);
... ...
src/pw3270/v3270/draw.c
... ... @@ -49,7 +49,7 @@ gboolean v3270_draw(GtkWidget * widget, cairo_t * cr)
49 49 GtkAllocation allocation;
50 50 gtk_widget_get_allocation(widget, &allocation);
51 51  
52   - gdk_cairo_set_source_color(cr,terminal->color+V3270_COLOR_CROSS_HAIR);
  52 + gdk_cairo_set_source_rgba(cr,terminal->color+V3270_COLOR_CROSS_HAIR);
53 53  
54 54 cairo_rectangle(cr, 0,terminal->cursor.rect.y+terminal->metrics.height,allocation.width,1);
55 55 cairo_fill(cr);
... ... @@ -94,7 +94,7 @@ gboolean v3270_expose(GtkWidget *widget, GdkEventExpose *event)
94 94 #endif // GTk3
95 95  
96 96  
97   -static void get_element_colors(unsigned short attr, GdkColor **fg, GdkColor **bg, GdkColor *color)
  97 +static void get_element_colors(unsigned short attr, GdkRGBA **fg, GdkRGBA **bg, GdkRGBA *color)
98 98 {
99 99 if(attr & LIB3270_ATTR_SELECTED)
100 100 {
... ... @@ -112,10 +112,10 @@ static void get_element_colors(unsigned short attr, GdkColor **fg, GdkColor **bg
112 112 }
113 113 }
114 114  
115   -void v3270_draw_element(cairo_t *cr, unsigned char chr, unsigned short attr, H3270 *session, guint height, GdkRectangle *rect, GdkColor *color)
  115 +void v3270_draw_element(cairo_t *cr, unsigned char chr, unsigned short attr, H3270 *session, guint height, GdkRectangle *rect, GdkRGBA *color)
116 116 {
117   - GdkColor *fg;
118   - GdkColor *bg;
  117 + GdkRGBA *fg;
  118 + GdkRGBA *bg;
119 119  
120 120 get_element_colors(attr,&fg,&bg,color);
121 121 v3270_draw_char(cr,chr,attr,session,height,rect,fg,bg);
... ... @@ -132,7 +132,7 @@ void v3270_draw_element(cairo_t *cr, unsigned char chr, unsigned short attr, H32
132 132 if(sl < 1)
133 133 sl = 1;
134 134  
135   - gdk_cairo_set_source_color(cr,fg);
  135 + gdk_cairo_set_source_rgba(cr,fg);
136 136  
137 137 cairo_rectangle(cr,rect->x,rect->y+sl+extents.ascent+(extents.descent/2),rect->width,sl);
138 138 cairo_fill(cr);
... ... @@ -143,15 +143,15 @@ void v3270_draw_element(cairo_t *cr, unsigned char chr, unsigned short attr, H32
143 143  
144 144 }
145 145  
146   -void v3270_draw_char(cairo_t *cr, unsigned char chr, unsigned short attr, H3270 *session, guint height, GdkRectangle *rect, GdkColor *fg, GdkColor *bg)
  146 +void v3270_draw_char(cairo_t *cr, unsigned char chr, unsigned short attr, H3270 *session, guint height, GdkRectangle *rect, GdkRGBA *fg, GdkRGBA *bg)
147 147 {
148 148 // Clear element area
149   - gdk_cairo_set_source_color(cr,bg);
  149 + gdk_cairo_set_source_rgba(cr,bg);
150 150 cairo_rectangle(cr, rect->x, rect->y, rect->width, rect->height);
151 151 cairo_fill(cr);
152 152  
153 153 // Set foreground color
154   - gdk_cairo_set_source_color(cr,fg);
  154 + gdk_cairo_set_source_rgba(cr,fg);
155 155  
156 156 // Draw char
157 157 if( (attr & LIB3270_ATTR_MARKER) && lib3270_get_toggle(session,LIB3270_TOGGLE_VIEW_FIELD) )
... ... @@ -329,7 +329,7 @@ void v3270_reload(GtkWidget *widget)
329 329 cr = cairo_create(terminal->surface);
330 330 v3270_update_font_metrics(terminal, cr, width, height);
331 331  
332   - gdk_cairo_set_source_color(cr,terminal->color+V3270_COLOR_BACKGROUND);
  332 + gdk_cairo_set_source_rgba(cr,terminal->color+V3270_COLOR_BACKGROUND);
333 333 cairo_rectangle(cr, 0, 0, width, height);
334 334 cairo_fill(cr);
335 335 cairo_stroke(cr);
... ... @@ -422,8 +422,8 @@ void v3270_update_cursor_surface(v3270 *widget,unsigned char chr,unsigned short
422 422 {
423 423 GdkRectangle rect = widget->cursor.rect;
424 424 cairo_t * cr = cairo_create(widget->cursor.surface);
425   - GdkColor * fg;
426   - GdkColor * bg;
  425 + GdkRGBA * fg;
  426 + GdkRGBA * bg;
427 427  
428 428 get_element_colors(attr,&fg,&bg,widget->color);
429 429  
... ...
src/pw3270/v3270/oia.c
... ... @@ -70,7 +70,7 @@ static void short2string(char *ptr, unsigned short vlr, size_t sz)
70 70  
71 71  
72 72 #ifdef HAVE_LIBM
73   -static gint draw_spinner(cairo_t *cr, GdkRectangle *r, GdkColor *color, gint step)
  73 +static gint draw_spinner(cairo_t *cr, GdkRectangle *r, GdkRGBA *color, gint step)
74 74 {
75 75 static const guint num_steps = 10;
76 76  
... ... @@ -123,7 +123,7 @@ static gint draw_spinner(cairo_t *cr, GdkRectangle *r, GdkColor *color, gint ste
123 123 }
124 124 #endif // HAVE_LIBM
125 125  
126   -static void setup_cursor_position(GdkRectangle *rect, struct v3270_metrics *metrics, cairo_t *cr, H3270 *host, int cols, GdkColor *color)
  126 +static void setup_cursor_position(GdkRectangle *rect, struct v3270_metrics *metrics, cairo_t *cr, H3270 *host, int cols, GdkRGBA *color)
127 127 {
128 128 rect->width = metrics->width * 8;
129 129 rect->x -= rect->width;
... ... @@ -135,7 +135,7 @@ static void setup_cursor_position(GdkRectangle *rect, struct v3270_metrics *metr
135 135 }
136 136 }
137 137  
138   -static void setup_timer_position(GdkRectangle *rect, struct v3270_metrics *metrics, cairo_t *cr, H3270 *host, int cols, GdkColor *color)
  138 +static void setup_timer_position(GdkRectangle *rect, struct v3270_metrics *metrics, cairo_t *cr, H3270 *host, int cols, GdkRGBA *color)
139 139 {
140 140 char buffer[7];
141 141 cairo_text_extents_t extents;
... ... @@ -150,14 +150,14 @@ static void setup_timer_position(GdkRectangle *rect, struct v3270_metrics *metri
150 150 rect->x -= rect->width;
151 151 }
152 152  
153   -static void setup_spinner_position(GdkRectangle *rect, struct v3270_metrics *metrics, cairo_t *cr, H3270 *host, int cols, GdkColor *color)
  153 +static void setup_spinner_position(GdkRectangle *rect, struct v3270_metrics *metrics, cairo_t *cr, H3270 *host, int cols, GdkRGBA *color)
154 154 {
155 155 rect->width = rect->height;
156 156 rect->x -= rect->width;
157 157 // draw_spinner(cr,rect,color,0);
158 158 }
159 159  
160   -static void setup_luname_position(GdkRectangle *rect, struct v3270_metrics *metrics, cairo_t *cr, H3270 *host, int cols, GdkColor *color)
  160 +static void setup_luname_position(GdkRectangle *rect, struct v3270_metrics *metrics, cairo_t *cr, H3270 *host, int cols, GdkRGBA *color)
161 161 {
162 162 const char *luname = lib3270_get_luname(host);
163 163  
... ... @@ -171,7 +171,7 @@ static void setup_luname_position(GdkRectangle *rect, struct v3270_metrics *metr
171 171 #ifdef DEBUG
172 172 cairo_set_source_rgb(cr,0.1,0.1,0.1);
173 173 #else
174   - gdk_cairo_set_source_color(cr,color+V3270_COLOR_OIA_BACKGROUND);
  174 + gdk_cairo_set_source_rgba(cr,color+V3270_COLOR_OIA_BACKGROUND);
175 175 #endif
176 176  
177 177 cairo_rectangle(cr, rect->x, rect->y, rect->width, rect->height);
... ... @@ -180,7 +180,7 @@ static void setup_luname_position(GdkRectangle *rect, struct v3270_metrics *metr
180 180 if(luname)
181 181 {
182 182 cairo_move_to(cr,rect->x,rect->y+metrics->height);
183   - gdk_cairo_set_source_color(cr,color+V3270_COLOR_OIA_LUNAME);
  183 + gdk_cairo_set_source_rgba(cr,color+V3270_COLOR_OIA_LUNAME);
184 184 cairo_show_text(cr,luname);
185 185 cairo_stroke(cr);
186 186 }
... ... @@ -189,7 +189,7 @@ static void setup_luname_position(GdkRectangle *rect, struct v3270_metrics *metr
189 189  
190 190 }
191 191  
192   -static void setup_single_char_right(GdkRectangle *rect, struct v3270_metrics *metrics, cairo_t *cr, H3270 *host, int cols, GdkColor *color)
  192 +static void setup_single_char_right(GdkRectangle *rect, struct v3270_metrics *metrics, cairo_t *cr, H3270 *host, int cols, GdkRGBA *color)
193 193 {
194 194 rect->x -= rect->width;
195 195  
... ... @@ -201,7 +201,7 @@ static void setup_single_char_right(GdkRectangle *rect, struct v3270_metrics *me
201 201  
202 202 }
203 203  
204   -static void setup_insert_position(GdkRectangle *rect, struct v3270_metrics *metrics, cairo_t *cr, H3270 *host, int cols, GdkColor *color)
  204 +static void setup_insert_position(GdkRectangle *rect, struct v3270_metrics *metrics, cairo_t *cr, H3270 *host, int cols, GdkRGBA *color)
205 205 {
206 206 if(rect->width > rect->height)
207 207 {
... ... @@ -225,7 +225,7 @@ static void setup_insert_position(GdkRectangle *rect, struct v3270_metrics *metr
225 225  
226 226  
227 227  
228   -static void setup_double_char_position(GdkRectangle *rect, struct v3270_metrics *metrics, cairo_t *cr, H3270 *host, int cols, GdkColor *color)
  228 +static void setup_double_char_position(GdkRectangle *rect, struct v3270_metrics *metrics, cairo_t *cr, H3270 *host, int cols, GdkRGBA *color)
229 229 {
230 230 rect->width <<= 1;
231 231 rect->x -= rect->width;
... ... @@ -238,12 +238,12 @@ static void setup_double_char_position(GdkRectangle *rect, struct v3270_metrics
238 238  
239 239 }
240 240  
241   -static void draw_undera(cairo_t *cr, H3270 *host, struct v3270_metrics *metrics, GdkColor *color, GdkRectangle *rect)
  241 +static void draw_undera(cairo_t *cr, H3270 *host, struct v3270_metrics *metrics, GdkRGBA *color, GdkRectangle *rect)
242 242 {
243 243 #ifdef DEBUG
244 244 cairo_set_source_rgb(cr,0.1,0.1,0.1);
245 245 #else
246   - gdk_cairo_set_source_color(cr,color+V3270_COLOR_OIA_BACKGROUND);
  246 + gdk_cairo_set_source_rgba(cr,color+V3270_COLOR_OIA_BACKGROUND);
247 247 #endif
248 248  
249 249 cairo_rectangle(cr, rect->x, rect->y, rect->width, rect->height);
... ... @@ -255,11 +255,11 @@ static void draw_undera(cairo_t *cr, H3270 *host, struct v3270_metrics *metrics,
255 255 cairo_text_extents_t extents;
256 256 int x,y;
257 257  
258   - gdk_cairo_set_source_color(cr,color+V3270_COLOR_OIA_BACKGROUND);
  258 + gdk_cairo_set_source_rgba(cr,color+V3270_COLOR_OIA_BACKGROUND);
259 259 cairo_rectangle(cr, rect->x, rect->y, rect->width, rect->height);
260 260 cairo_fill(cr);
261 261  
262   - gdk_cairo_set_source_color(cr,color+V3270_COLOR_OIA_FOREGROUND);
  262 + gdk_cairo_set_source_rgba(cr,color+V3270_COLOR_OIA_FOREGROUND);
263 263  
264 264 cairo_text_extents(cr,chr,&extents);
265 265  
... ... @@ -286,15 +286,15 @@ static void draw_centered_text(cairo_t *cr, struct v3270_metrics *metrics, int x
286 286 cairo_show_text(cr,str);
287 287 }
288 288  
289   -void v3270_draw_connection(cairo_t *cr, H3270 *host, struct v3270_metrics *metrics, GdkColor *color, const GdkRectangle *rect)
  289 +void v3270_draw_connection(cairo_t *cr, H3270 *host, struct v3270_metrics *metrics, GdkRGBA *color, const GdkRectangle *rect)
290 290 {
291 291 const gchar *str;
292 292  
293   - gdk_cairo_set_source_color(cr,color+V3270_COLOR_OIA_BACKGROUND);
  293 + gdk_cairo_set_source_rgba(cr,color+V3270_COLOR_OIA_BACKGROUND);
294 294 cairo_rectangle(cr, rect->x, rect->y, rect->width, rect->height);
295 295 cairo_fill(cr);
296 296  
297   - gdk_cairo_set_source_color(cr,color+V3270_COLOR_OIA_FOREGROUND);
  297 + gdk_cairo_set_source_rgba(cr,color+V3270_COLOR_OIA_FOREGROUND);
298 298 cairo_rectangle(cr, rect->x, rect->y, rect->width, rect->height);
299 299 cairo_stroke(cr);
300 300  
... ... @@ -337,12 +337,12 @@ static void draw_xbm(cairo_t *cr, GdkRectangle *rect, int width, int height, uns
337 337 cairo_restore(cr);
338 338 }
339 339  
340   -void v3270_draw_ssl_status(cairo_t *cr, H3270 *host, struct v3270_metrics *metrics, GdkColor *color, GdkRectangle *rect)
  340 +void v3270_draw_ssl_status(cairo_t *cr, H3270 *host, struct v3270_metrics *metrics, GdkRGBA *color, GdkRectangle *rect)
341 341 {
342 342 #ifdef DEBUG
343 343 cairo_set_source_rgb(cr,0.1,0.1,0.1);
344 344 #else
345   - gdk_cairo_set_source_color(cr,color+V3270_COLOR_OIA_BACKGROUND);
  345 + gdk_cairo_set_source_rgba(cr,color+V3270_COLOR_OIA_BACKGROUND);
346 346 #endif
347 347  
348 348 cairo_translate(cr, rect->x, rect->y);
... ... @@ -352,24 +352,24 @@ void v3270_draw_ssl_status(cairo_t *cr, H3270 *host, struct v3270_metrics *metri
352 352 switch(lib3270_get_secure(host))
353 353 {
354 354 case LIB3270_SSL_UNSECURE: /**< No secure connection */
355   - gdk_cairo_set_source_color(cr,color+V3270_COLOR_OIA_FOREGROUND);
  355 + gdk_cairo_set_source_rgba(cr,color+V3270_COLOR_OIA_FOREGROUND);
356 356 draw_xbm(cr,rect,unlocked_width,unlocked_height,unlocked_bits);
357 357 break;
358 358  
359 359 case LIB3270_SSL_NEGOTIATING: /**< Negotiating SSL */
360   - gdk_cairo_set_source_color(cr,color+V3270_COLOR_OIA_STATUS_WARNING);
  360 + gdk_cairo_set_source_rgba(cr,color+V3270_COLOR_OIA_STATUS_WARNING);
361 361 draw_xbm(cr,rect,negotiated_width,negotiated_height,negotiated_bits);
362 362 break;
363 363  
364 364 case LIB3270_SSL_NEGOTIATED: /**< Connection secure, no CA or self-signed */
365   - gdk_cairo_set_source_color(cr,color+V3270_COLOR_OIA_STATUS_OK);
  365 + gdk_cairo_set_source_rgba(cr,color+V3270_COLOR_OIA_STATUS_OK);
366 366 draw_xbm(cr,rect,locked_width,locked_height,locked_bits);
367   - gdk_cairo_set_source_color(cr,color+V3270_COLOR_OIA_STATUS_WARNING);
  367 + gdk_cairo_set_source_rgba(cr,color+V3270_COLOR_OIA_STATUS_WARNING);
368 368 draw_xbm(cr,rect,warning_width,warning_height,warning_bits);
369 369 break;
370 370  
371 371 case LIB3270_SSL_SECURE: /**< Connection secure with CA check */
372   - gdk_cairo_set_source_color(cr,color+V3270_COLOR_OIA_STATUS_OK);
  372 + gdk_cairo_set_source_rgba(cr,color+V3270_COLOR_OIA_STATUS_OK);
373 373 draw_xbm(cr,rect,locked_width,locked_height,locked_bits);
374 374 break;
375 375  
... ... @@ -381,7 +381,7 @@ void v3270_draw_ssl_status(cairo_t *cr, H3270 *host, struct v3270_metrics *metri
381 381  
382 382 }
383 383  
384   -static void draw_status_message(cairo_t *cr, LIB3270_MESSAGE id, struct v3270_metrics *metrics, GdkColor *color, GdkRectangle *rect)
  384 +static void draw_status_message(cairo_t *cr, LIB3270_MESSAGE id, struct v3270_metrics *metrics, GdkRGBA *color, GdkRectangle *rect)
385 385 {
386 386 #ifdef DEBUG
387 387 #define OIA_MESSAGE(x,c,y) { #x, c, y }
... ... @@ -477,14 +477,14 @@ static void draw_status_message(cairo_t *cr, LIB3270_MESSAGE id, struct v3270_me
477 477  
478 478 if(msg)
479 479 {
480   - gdk_cairo_set_source_color(cr,color+message[id].color);
  480 + gdk_cairo_set_source_rgba(cr,color+message[id].color);
481 481 cairo_move_to(cr,rect->x,rect->y+metrics->height);
482 482 cairo_show_text(cr,gettext(msg));
483 483 }
484 484  
485 485 }
486 486  
487   -static void draw_insert(cairo_t *cr, H3270 *host, GdkColor *color, GdkRectangle *rect)
  487 +static void draw_insert(cairo_t *cr, H3270 *host, GdkRGBA *color, GdkRectangle *rect)
488 488 {
489 489 if(lib3270_get_toggle(host,LIB3270_TOGGLE_INSERT))
490 490 {
... ... @@ -493,7 +493,7 @@ static void draw_insert(cairo_t *cr, H3270 *host, GdkColor *color, GdkRectangle
493 493 cairo_rectangle(cr, rect->x, rect->y, rect->width, rect->height);
494 494 cairo_clip(cr);
495 495  
496   - gdk_cairo_set_source_color(cr,color+V3270_COLOR_OIA_FOREGROUND);
  496 + gdk_cairo_set_source_rgba(cr,color+V3270_COLOR_OIA_FOREGROUND);
497 497  
498 498 cairo_move_to(cr,rect->x,y);
499 499 cairo_rel_line_to(cr,rect->width/2,-(rect->height/1.7));
... ... @@ -503,12 +503,12 @@ static void draw_insert(cairo_t *cr, H3270 *host, GdkColor *color, GdkRectangle
503 503  
504 504 }
505 505  
506   -void v3270_draw_oia(cairo_t *cr, H3270 *host, int row, int cols, struct v3270_metrics *metrics, GdkColor *color, GdkRectangle *rect)
  506 +void v3270_draw_oia(cairo_t *cr, H3270 *host, int row, int cols, struct v3270_metrics *metrics, GdkRGBA *color, GdkRectangle *rect)
507 507 {
508 508 static const struct _right_fields
509 509 {
510 510 V3270_OIA_FIELD id;
511   - void (*draw)(GdkRectangle *rect, struct v3270_metrics *metrics, cairo_t *cr, H3270 *host, int cols, GdkColor *color);
  511 + void (*draw)(GdkRectangle *rect, struct v3270_metrics *metrics, cairo_t *cr, H3270 *host, int cols, GdkRGBA *color);
512 512 } right[] =
513 513 {
514 514 { V3270_OIA_CURSOR_POSITION, setup_cursor_position },
... ... @@ -532,13 +532,13 @@ void v3270_draw_oia(cairo_t *cr, H3270 *host, int row, int cols, struct v3270_me
532 532 int lCol = metrics->left+1;
533 533  
534 534 row += OIA_TOP_MARGIN;
535   - gdk_cairo_set_source_color(cr,color+V3270_COLOR_OIA_SEPARATOR);
  535 + gdk_cairo_set_source_rgba(cr,color+V3270_COLOR_OIA_SEPARATOR);
536 536 cairo_rectangle(cr, metrics->left, row, cols*metrics->width, 1);
537 537 cairo_fill(cr);
538 538  
539 539 row += 2;
540 540  
541   - gdk_cairo_set_source_color(cr,color+V3270_COLOR_OIA_BACKGROUND);
  541 + gdk_cairo_set_source_rgba(cr,color+V3270_COLOR_OIA_BACKGROUND);
542 542 cairo_rectangle(cr, metrics->left, row, cols*metrics->width, metrics->spacing);
543 543 cairo_fill(cr);
544 544  
... ... @@ -551,12 +551,12 @@ void v3270_draw_oia(cairo_t *cr, H3270 *host, int row, int cols, struct v3270_me
551 551 r->y = row;
552 552 r->width = metrics->width;
553 553 r->height = metrics->spacing;
554   - gdk_cairo_set_source_color(cr,color+V3270_COLOR_OIA_FOREGROUND);
  554 + gdk_cairo_set_source_rgba(cr,color+V3270_COLOR_OIA_FOREGROUND);
555 555 right[f].draw(r,metrics,cr,host,cols,color);
556 556 rCol = r->x - (metrics->width/3);
557 557 }
558 558  
559   - gdk_cairo_set_source_color(cr,color+V3270_COLOR_OIA_FOREGROUND);
  559 + gdk_cairo_set_source_rgba(cr,color+V3270_COLOR_OIA_FOREGROUND);
560 560  
561 561 draw_centered_text(cr,metrics,lCol,row,"4");
562 562  
... ... @@ -630,13 +630,13 @@ static cairo_t * set_update_region(v3270 * terminal, GdkRectangle **r, V3270_OIA
630 630 #ifdef DEBUG
631 631 cairo_set_source_rgb(cr,0.1,0.1,0.1);
632 632 #else
633   - gdk_cairo_set_source_color(cr,terminal->color+V3270_COLOR_OIA_BACKGROUND);
  633 + gdk_cairo_set_source_rgba(cr,terminal->color+V3270_COLOR_OIA_BACKGROUND);
634 634 #endif
635 635  
636 636 cairo_rectangle(cr, rect->x, rect->y, rect->width, rect->height);
637 637 cairo_fill(cr);
638 638  
639   - gdk_cairo_set_source_color(cr,terminal->color+V3270_COLOR_OIA_FOREGROUND);
  639 + gdk_cairo_set_source_rgba(cr,terminal->color+V3270_COLOR_OIA_FOREGROUND);
640 640  
641 641 return cr;
642 642 }
... ... @@ -655,7 +655,7 @@ void v3270_update_luname(GtkWidget *widget,const gchar *name)
655 655 if(name)
656 656 {
657 657 cairo_move_to(cr,rect->x,rect->y+terminal->metrics.height);
658   - gdk_cairo_set_source_color(cr,terminal->color+V3270_COLOR_OIA_LUNAME);
  658 + gdk_cairo_set_source_rgba(cr,terminal->color+V3270_COLOR_OIA_LUNAME);
659 659 cairo_show_text(cr,name);
660 660 cairo_stroke(cr);
661 661 }
... ... @@ -793,7 +793,7 @@ static void release_timer(struct timer_info *info)
793 793 #ifdef DEBUG
794 794 cairo_set_source_rgb(cr,0.1,0.1,0.1);
795 795 #else
796   - gdk_cairo_set_source_color(cr,info->terminal->color+V3270_COLOR_OIA_BACKGROUND);
  796 + gdk_cairo_set_source_rgba(cr,info->terminal->color+V3270_COLOR_OIA_BACKGROUND);
797 797 #endif
798 798  
799 799 for(f=0;f<G_N_ELEMENTS(id);f++)
... ... @@ -928,13 +928,13 @@ static gboolean update_timer(struct timer_info *info)
928 928 #ifdef DEBUG
929 929 cairo_set_source_rgb(cr,0.1,0.1,0.1);
930 930 #else
931   - gdk_cairo_set_source_color(cr,info->terminal->color+V3270_COLOR_OIA_BACKGROUND);
  931 + gdk_cairo_set_source_rgba(cr,info->terminal->color+V3270_COLOR_OIA_BACKGROUND);
932 932 #endif
933 933  
934 934 cairo_rectangle(cr, rect->x, rect->y, rect->width, rect->height);
935 935 cairo_fill(cr);
936 936  
937   - gdk_cairo_set_source_color(cr,info->terminal->color+V3270_COLOR_OIA_FOREGROUND);
  937 + gdk_cairo_set_source_rgba(cr,info->terminal->color+V3270_COLOR_OIA_FOREGROUND);
938 938  
939 939 short2string(buffer,seconds/60,2);
940 940 buffer[2] = ':';
... ... @@ -956,12 +956,12 @@ static gboolean update_timer(struct timer_info *info)
956 956 #ifdef DEBUG
957 957 cairo_set_source_rgb(cr,0.1,0.1,0.1);
958 958 #else
959   - gdk_cairo_set_source_color(cr,info->terminal->color+V3270_COLOR_OIA_BACKGROUND);
  959 + gdk_cairo_set_source_rgba(cr,info->terminal->color+V3270_COLOR_OIA_BACKGROUND);
960 960 #endif
961 961 cairo_rectangle(cr, rect->x, rect->y, rect->width, rect->height);
962 962 cairo_fill(cr);
963 963  
964   - gdk_cairo_set_source_color(cr,info->terminal->color+V3270_COLOR_OIA_FOREGROUND);
  964 + gdk_cairo_set_source_rgba(cr,info->terminal->color+V3270_COLOR_OIA_FOREGROUND);
965 965  
966 966 info->step = draw_spinner(cr, rect, info->terminal->color, info->step);
967 967 gtk_widget_queue_draw_area(GTK_WIDGET(info->terminal),rect->x,rect->y,rect->width,rect->height);
... ...
src/pw3270/v3270/private.h
... ... @@ -176,7 +176,7 @@ G_BEGIN_DECLS
176 176 gint minimum_height;
177 177  
178 178 // Colors
179   - GdkColor color[V3270_COLOR_COUNT]; /**< Terminal widget colors */
  179 + GdkRGBA color[V3270_COLOR_COUNT]; /**< Terminal widget colors */
180 180  
181 181 // Regions
182 182 GdkRectangle oia_rect[V3270_OIA_FIELD_COUNT];
... ... @@ -219,7 +219,7 @@ G_BEGIN_DECLS
219 219 const GtkWidgetClass * v3270_get_parent_class(void);
220 220  
221 221 gboolean v3270_draw(GtkWidget * widget, cairo_t * cr);
222   -void v3270_draw_oia(cairo_t *cr, H3270 *host, int row, int cols, struct v3270_metrics *metrics, GdkColor *color, GdkRectangle *rect);
  222 +void v3270_draw_oia(cairo_t *cr, H3270 *host, int row, int cols, struct v3270_metrics *metrics, GdkRGBA *color, GdkRectangle *rect);
223 223 void v3270_update_mouse_pointer(GtkWidget *widget);
224 224  
225 225 #if ! GTK_CHECK_VERSION(2,18,0)
... ... @@ -241,7 +241,9 @@ void v3270_update_mouse_pointer(GtkWidget *widget);
241 241  
242 242  
243 243 #if ! GTK_CHECK_VERSION(3,0,0)
244   - gboolean v3270_expose(GtkWidget * widget, GdkEventExpose *event);
  244 +
  245 +#define GdkRGBA
  246 +gboolean v3270_expose(GtkWidget * widget, GdkEventExpose *event);
245 247 #endif // GTK 3
246 248  
247 249 void v3270_draw_shift_status(v3270 *terminal);
... ... @@ -254,13 +256,13 @@ void v3270_update_cursor_surface(v3270 *widget,unsigned char chr,unsigned sho
254 256  
255 257 void v3270_register_io_handlers(v3270Class *cls);
256 258  
257   -void v3270_draw_char(cairo_t *cr, unsigned char chr, unsigned short attr, H3270 *session, guint height, GdkRectangle *rect, GdkColor *fg, GdkColor *bg);
  259 +void v3270_draw_char(cairo_t *cr, unsigned char chr, unsigned short attr, H3270 *session, guint height, GdkRectangle *rect, GdkRGBA *fg, GdkRGBA *bg);
258 260  
259 261 void v3270_start_timer(GtkWidget *terminal);
260 262 void v3270_stop_timer(GtkWidget *terminal);
261 263  
262   -void v3270_draw_connection(cairo_t *cr, H3270 *host, struct v3270_metrics *metrics, GdkColor *color, const GdkRectangle *rect);
263   -void v3270_draw_ssl_status(cairo_t *cr, H3270 *host, struct v3270_metrics *metrics, GdkColor *color, GdkRectangle *rect);
  264 +void v3270_draw_connection(cairo_t *cr, H3270 *host, struct v3270_metrics *metrics, GdkRGBA *color, const GdkRectangle *rect);
  265 +void v3270_draw_ssl_status(cairo_t *cr, H3270 *host, struct v3270_metrics *metrics, GdkRGBA *color, GdkRectangle *rect);
264 266  
265 267 void v3270_update_char(H3270 *session, int addr, unsigned char chr, unsigned short attr, unsigned char cursor);
266 268  
... ...
src/pw3270/v3270/widget.c
... ... @@ -1227,7 +1227,7 @@ void v3270_set_colors(GtkWidget *widget, const gchar *colors)
1227 1227  
1228 1228 }
1229 1229  
1230   -void v3270_set_color(GtkWidget *widget, enum V3270_COLOR id, GdkColor *color)
  1230 +void v3270_set_color(GtkWidget *widget, enum V3270_COLOR id, GdkRGBA *color)
1231 1231 {
1232 1232 g_return_if_fail(GTK_IS_V3270(widget));
1233 1233  
... ... @@ -1238,24 +1238,24 @@ void v3270_set_color(GtkWidget *widget, enum V3270_COLOR id, GdkColor *color)
1238 1238 #endif // !GTK(3,0,0)
1239 1239  
1240 1240 }
1241   -GdkColor * v3270_get_color(GtkWidget *widget, enum V3270_COLOR id)
  1241 +GdkRGBA * v3270_get_color(GtkWidget *widget, enum V3270_COLOR id)
1242 1242 {
1243 1243 g_return_val_if_fail(GTK_IS_V3270(widget),NULL);
1244 1244 return GTK_V3270(widget)->color+id;
1245 1245 }
1246 1246  
1247   -const GdkColor * v3270_get_color_table(GtkWidget *widget)
  1247 +const GdkRGBA * v3270_get_color_table(GtkWidget *widget)
1248 1248 {
1249 1249 g_return_val_if_fail(GTK_IS_V3270(widget),NULL);
1250 1250 return GTK_V3270(widget)->color;
1251 1251 }
1252 1252  
1253   -void v3270_set_mono_color_table(GdkColor *clr, const gchar *fg, const gchar *bg)
  1253 +void v3270_set_mono_color_table(GdkRGBA *clr, const gchar *fg, const gchar *bg)
1254 1254 {
1255 1255 int f;
1256 1256  
1257   - gdk_color_parse(bg,clr);
1258   - gdk_color_parse(fg,clr+1);
  1257 + gdk_rgba_parse(clr,bg);
  1258 + gdk_rgba_parse(clr+1,fg);
1259 1259  
1260 1260 for(f=2;f<V3270_COLOR_COUNT;f++)
1261 1261 clr[f] = clr[1];
... ... @@ -1268,12 +1268,14 @@ void v3270_set_mono_color_table(GdkColor *clr, const gchar *fg, const gchar *bg)
1268 1268  
1269 1269 }
1270 1270  
1271   -void v3270_set_color_table(GdkColor *table, const gchar *colors)
  1271 +void v3270_set_color_table(GdkRGBA *table, const gchar *colors)
1272 1272 {
1273 1273 gchar **clr;
1274 1274 guint cnt;
1275 1275 int f;
1276 1276  
  1277 + trace("colors=[%s]",colors);
  1278 +
1277 1279 clr = g_strsplit(colors,",",V3270_COLOR_COUNT+1);
1278 1280 cnt = g_strv_length(clr);
1279 1281  
... ... @@ -1281,13 +1283,13 @@ void v3270_set_color_table(GdkColor *table, const gchar *colors)
1281 1283 {
1282 1284 case 28: // Version 4 string
1283 1285 for(f=0;f < 28;f++)
1284   - gdk_color_parse(clr[f],table+f);
  1286 + gdk_rgba_parse(table+f,clr[f]);
1285 1287 table[V3270_COLOR_OIA_STATUS_INVALID] = table[V3270_COLOR_OIA_STATUS_WARNING];
1286 1288 break;
1287 1289  
1288 1290 case V3270_COLOR_COUNT: // Complete string
1289 1291 for(f=0;f < V3270_COLOR_COUNT;f++)
1290   - gdk_color_parse(clr[f],table+f);
  1292 + gdk_rgba_parse(table+f,clr[f]);
1291 1293 break;
1292 1294  
1293 1295 default:
... ... @@ -1295,10 +1297,10 @@ void v3270_set_color_table(GdkColor *table, const gchar *colors)
1295 1297 g_warning("Color table has %d elements; should be %d.",cnt,V3270_COLOR_COUNT);
1296 1298  
1297 1299 for(f=0;f < cnt;f++)
1298   - gdk_color_parse(clr[f],table+f);
  1300 + gdk_rgba_parse(table+f,clr[f]);
1299 1301  
1300 1302 for(f=cnt; f < V3270_COLOR_COUNT;f++)
1301   - gdk_color_parse(clr[cnt-1],table+f);
  1303 + gdk_rgba_parse(table+f,clr[cnt-1]);
1302 1304  
1303 1305 clr[V3270_COLOR_OIA_BACKGROUND] = clr[0];
1304 1306 clr[V3270_COLOR_SELECTED_BG] = clr[0];
... ...