Commit 81d108b9fe3d31177c3f7fcea77dc12d8b780609

Authored by perry.werneck@gmail.com
1 parent 9b7d6abd

Iniciando substituição da cairo toy

Showing 1 changed file with 27 additions and 0 deletions   Show diff stats
src/pw3270/v3270/draw.c
... ... @@ -144,8 +144,35 @@ void v3270_draw_element(cairo_t *cr, unsigned char chr, unsigned short attr, H32
144 144  
145 145 void v3270_draw_text(cairo_t *cr, const GdkRectangle *rect, guint height, const char *str) {
146 146  
  147 + cairo_status_t status;
  148 + cairo_glyph_t * glyphs = NULL;
  149 + int num_glyphs = 0;
  150 + cairo_text_cluster_t * clusters = NULL;
  151 + int num_clusters = 0;
  152 + cairo_text_cluster_flags_t cluster_flags;
  153 + cairo_scaled_font_t * scaled_font = cairo_get_scaled_font (cr);
  154 +
  155 + status = cairo_scaled_font_text_to_glyphs(
  156 + scaled_font,
  157 + (double) rect->x, (double) (rect->y+height),
  158 + str, strlen(str),
  159 + &glyphs, &num_glyphs,
  160 + &clusters, &num_clusters, &cluster_flags );
  161 +
  162 + if (status == CAIRO_STATUS_SUCCESS) {
  163 + cairo_show_text_glyphs (cr,str,strlen(str),glyphs, num_glyphs,clusters, num_clusters, cluster_flags);
  164 + }
  165 +
  166 + if(glyphs)
  167 + cairo_glyph_free(glyphs);
  168 +
  169 + if(clusters)
  170 + cairo_text_cluster_free(clusters);
  171 +
  172 +/*
147 173 cairo_move_to(cr,rect->x,rect->y+height);
148 174 cairo_show_text(cr, str);
  175 +*/
149 176  
150 177 }
151 178  
... ...