Changeset a57c70c in mainline for uspace/app/fontedit/fontedit.c
- Timestamp:
- 2020-09-11T13:38:00Z (4 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 414020d9
- Parents:
- e2776ff
- git-author:
- Jiri Svoboda <jiri@…> (2020-09-10 17:37:41)
- git-committer:
- Jiri Svoboda <jiri@…> (2020-09-11 13:38:00)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/fontedit/fontedit.c
re2776ff ra57c70c 120 120 } 121 121 122 /** Handle font editor keyboard event. 123 * 124 * @param widget Canvas widget 125 * @param data Position event 126 */ 127 static void font_edit_kbd_event(widget_t *widget, void *data) 128 { 129 kbd_event_t *event = (kbd_event_t *) data; 130 font_edit_t *fedit; 131 132 fedit = (font_edit_t *) widget_get_data(widget); 133 134 if (event->type == KEY_PRESS) { 135 if (event->key == KC_S) { 136 printf("Save!\n"); 137 (void) gfx_glyph_bmp_save(fedit->gbmp); 138 font_edit_paint(fedit); 139 } 140 } 141 } 142 122 143 /** Convert glyph pixel coordinates to displayed rectangle. 123 144 * … … 139 160 drect->p1.x = glyph_orig_x + (x + 1) * glyph_scale; 140 161 drect->p1.y = glyph_orig_y + (y + 1) * glyph_scale; 162 } 163 164 /** Paint font preview. 165 * 166 * @param fedit Font editor 167 */ 168 static errno_t font_edit_paint_preview(font_edit_t *fedit) 169 { 170 gfx_glyph_metrics_t gmetrics; 171 size_t stradv; 172 const char *cp; 173 gfx_glyph_t *glyph; 174 gfx_coord2_t pos; 175 errno_t rc; 176 177 cp = "ABCD"; 178 pos.x = 20; 179 pos.y = 20; 180 181 while (*cp != '\0') { 182 rc = gfx_font_search_glyph(fedit->font, cp, &glyph, &stradv); 183 if (rc != EOK) { 184 ++cp; 185 continue; 186 } 187 188 gfx_glyph_get_metrics(glyph, &gmetrics); 189 190 rc = gfx_glyph_render(glyph, &pos); 191 if (rc != EOK) 192 return rc; 193 194 cp += stradv; 195 pos.x += gmetrics.advance; 196 } 197 198 return EOK; 141 199 } 142 200 … … 224 282 225 283 rc = font_edit_paint_gbmp(fedit); 284 if (rc != EOK) 285 return rc; 286 287 rc = font_edit_paint_preview(fedit); 226 288 if (rc != EOK) 227 289 return rc; … … 334 396 } 335 397 398 rc = gfx_glyph_set_pattern(glyph, "A"); 399 if (rc != EOK) { 400 printf("Error setting glyph pattern.\n"); 401 goto error; 402 } 403 336 404 rc = gfx_glyph_bmp_open(glyph, &bmp); 337 405 if (rc != EOK) { … … 342 410 sig_connect(&canvas->position_event, &canvas->widget, 343 411 font_edit_pos_event); 412 sig_connect(&canvas->keyboard_event, &canvas->widget, 413 font_edit_kbd_event); 344 414 345 415 fedit->cgc = cgc; … … 348 418 fedit->height = vh; 349 419 fedit->typeface = tface; 420 fedit->font = font; 350 421 fedit->glyph = glyph; 351 422 fedit->gbmp = bmp;
Note:
See TracChangeset
for help on using the changeset viewer.