Changes in uspace/app/fontviewer/fontviewer.c [5a6cc679:a35b458] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/fontviewer/fontviewer.c
r5a6cc679 ra35b458 68 68 { 69 69 kbd_event_t *event = (kbd_event_t *) data; 70 70 71 71 if (event->type == KEY_PRESS) { 72 72 if (event->c == 'q') 73 73 exit(0); 74 74 75 75 if (event->key == KC_UP || event->key == KC_DOWN) { 76 76 uint16_t increment = (event->mods & KM_SHIFT) ? 10 : 1; … … 78 78 if (event->key == KC_UP) 79 79 points += increment; 80 80 81 81 if (event->key == KC_DOWN) { 82 82 if (points <= increment) { … … 87 87 } 88 88 } 89 89 90 90 if (points < 1) 91 91 points = 1; 92 92 } 93 93 94 94 if (event->c == 'm') 95 95 show_metrics = !show_metrics; 96 96 } 97 97 98 98 errno_t rc = draw(); 99 99 if (rc != EOK) { … … 109 109 return embedded_font_create(font, points); 110 110 } 111 111 112 112 return pcf_font_create(font, font_path, points); 113 113 } … … 127 127 if (y2 < y1) 128 128 return; 129 129 130 130 drawctx_set_source(drawctx, source); 131 131 drawctx_transfer(drawctx, x1, y1, x2 - x1 + 1, y2 - y1 + 1); … … 139 139 140 140 static int text(drawctx_t *, font_t *, source_t *, surface_coord_t x, 141 surface_coord_t , const char *, ...) PRINTF_ATTRIBUTE(6, 7);141 surface_coord_t , const char *, ...) _HELENOS_PRINTF_ATTRIBUTE(6, 7); 142 142 static int text(drawctx_t *drawctx, font_t *font, source_t *source, 143 143 surface_coord_t x, surface_coord_t y, const char *fmt, ...) … … 148 148 int ret = vasprintf(&str, fmt, args); 149 149 va_end(args); 150 150 151 151 if (ret >= 0) { 152 152 drawctx_set_source(drawctx, source); … … 156 156 free(str); 157 157 } 158 158 159 159 return ret; 160 160 } … … 172 172 source_t leading_bg = rgb(170, 238, 255); 173 173 source_t leading_fg = rgb(0, 170, 212); 174 174 175 175 font_t *font; 176 176 errno_t rc = create_font(&font, points); … … 179 179 return rc; 180 180 } 181 181 182 182 font_t *info_font; 183 183 rc = embedded_font_create(&info_font, 16); … … 186 186 return rc; 187 187 } 188 188 189 189 font_metrics_t font_metrics; 190 190 rc = font_get_metrics(font, &font_metrics); 191 191 if (rc != EOK) 192 192 return rc; 193 193 194 194 surface_coord_t top = 50; 195 195 metric_t ascender_top = top; … … 200 200 drawctx_t drawctx; 201 201 drawctx_init(&drawctx, surface); 202 202 203 203 drawctx_set_source(&drawctx, &background); 204 204 drawctx_transfer(&drawctx, 0, 0, 205 205 width, height); 206 206 207 207 if (show_metrics) { 208 208 horizontal_rectangle(&drawctx, 0, ascender_top, width, … … 210 210 horizontal_line(&drawctx, ascender_top, 0, width, 211 211 &ascender_fg); 212 212 213 213 horizontal_rectangle(&drawctx, 0, descender_top, width, 214 214 leading_top - 1, &descender_bg); 215 215 horizontal_line(&drawctx, descender_top, 0, width, 216 216 &descender_fg); 217 217 218 218 horizontal_rectangle(&drawctx, 0, leading_top, 219 219 width, line_bottom - 1, &leading_bg); … … 221 221 &leading_fg); 222 222 } 223 223 224 224 drawctx_set_source(&drawctx, &glyphs); 225 225 drawctx_set_font(&drawctx, font); 226 226 drawctx_print(&drawctx, "Čaj'_", 0, top); 227 227 228 228 if (show_metrics) { 229 229 surface_coord_t infos_top = line_bottom + 10; … … 239 239 240 240 } 241 241 242 242 font_release(font); 243 243 return EOK; … … 250 250 return 1; 251 251 } 252 252 253 253 if (argc < 3) { 254 254 font_path = NULL; … … 257 257 font_path = argv[2]; 258 258 } 259 259 260 260 main_window = window_open(argv[1], NULL, WINDOW_MAIN, "fontviewer"); 261 261 if (!main_window) { … … 263 263 return 2; 264 264 } 265 265 266 266 surface = surface_create(WINDOW_WIDTH, WINDOW_HEIGHT, NULL, 267 267 SURFACE_FLAG_NONE); … … 270 270 return 2; 271 271 } 272 272 273 273 width = WINDOW_WIDTH; 274 274 height = WINDOW_HEIGHT; 275 275 276 276 errno_t rc = draw(); 277 277 if (rc != EOK) { … … 279 279 return 2; 280 280 } 281 281 282 282 canvas = create_canvas(window_root(main_window), NULL, 283 283 WINDOW_WIDTH, WINDOW_HEIGHT, surface); … … 287 287 } 288 288 sig_connect(&canvas->keyboard_event, NULL, on_keyboard_event); 289 289 290 290 window_resize(main_window, 200, 200, WINDOW_WIDTH, WINDOW_HEIGHT, 291 291 WINDOW_PLACEMENT_ABSOLUTE); 292 292 window_exec(main_window); 293 293 294 294 task_retval(0); 295 295 async_manager(); 296 296 297 297 return 0; 298 298 }
Note:
See TracChangeset
for help on using the changeset viewer.