Commit 9b7d6abd2cf522e417d441f42d3e8ae887bf35eb

Authored by perry.werneck@gmail.com
1 parent 0e86747c

Separando função de desenho de caractere já preparando para a desativação da "cairo-toy"

Showing 1 changed file with 13 additions and 13 deletions   Show diff stats
src/pw3270/v3270/draw.c
... ... @@ -142,6 +142,13 @@ void v3270_draw_element(cairo_t *cr, unsigned char chr, unsigned short attr, H32
142 142  
143 143 }
144 144  
  145 +void v3270_draw_text(cairo_t *cr, const GdkRectangle *rect, guint height, const char *str) {
  146 +
  147 + cairo_move_to(cr,rect->x,rect->y+height);
  148 + cairo_show_text(cr, str);
  149 +
  150 +}
  151 +
145 152 void v3270_draw_char(cairo_t *cr, unsigned char chr, unsigned short attr, H3270 *session, guint height, GdkRectangle *rect, GdkRGBA *fg, GdkRGBA *bg)
146 153 {
147 154 // Clear element area
... ... @@ -167,7 +174,6 @@ void v3270_draw_char(cairo_t *cr, unsigned char chr, unsigned short attr, H3270
167 174 cairo_scale(cr, sz, sz);
168 175 cairo_arc(cr, 0., 0., 1., 0., 2 * M_PI);
169 176  
170   -
171 177 cairo_restore(cr);
172 178 }
173 179 else if(attr & LIB3270_ATTR_CG)
... ... @@ -244,28 +250,23 @@ void v3270_draw_char(cairo_t *cr, unsigned char chr, unsigned short attr, H3270
244 250 break;
245 251  
246 252 case 0x8c: // CG 0xf7, less or equal "≤"
247   - cairo_move_to(cr,rect->x,rect->y+height);
248   - cairo_show_text(cr, "≤");
  253 + v3270_draw_text(cr,rect,height,"≤");
249 254 break;
250 255  
251 256 case 0xae: // CG 0xd9, greater or equal "≥"
252   - cairo_move_to(cr,rect->x,rect->y+height);
253   - cairo_show_text(cr, "≥");
  257 + v3270_draw_text(cr,rect,height,"≥");
254 258 break;
255 259  
256 260 case 0xbe: // CG 0x3e, not equal "≠"
257   - cairo_move_to(cr,rect->x,rect->y+height);
258   - cairo_show_text(cr, "≠");
  261 + v3270_draw_text(cr,rect,height,"≠");
259 262 break;
260 263  
261 264 case 0xad: // "["
262   - cairo_move_to(cr,rect->x,rect->y+height);
263   - cairo_show_text(cr, "[");
  265 + v3270_draw_text(cr,rect,height,"[");
264 266 break;
265 267  
266 268 case 0xbd: // "]"
267   - cairo_move_to(cr,rect->x,rect->y+height);
268   - cairo_show_text(cr, "]");
  269 + v3270_draw_text(cr,rect,height,"]");
269 270 break;
270 271  
271 272 default:
... ... @@ -278,8 +279,7 @@ void v3270_draw_char(cairo_t *cr, unsigned char chr, unsigned short attr, H3270
278 279  
279 280 if(utf)
280 281 {
281   - cairo_move_to(cr,rect->x,rect->y+height);
282   - cairo_show_text(cr, utf);
  282 + v3270_draw_text(cr,rect,height,utf);
283 283 g_free(utf);
284 284 }
285 285 }
... ...