Changeset bc52b5b in mainline for uspace/lib/ui/src/resource.c
- Timestamp:
- 2021-08-15T10:02:32Z (4 years ago)
- Branches:
- master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 99589a9
- Parents:
- de0c55a
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ui/src/resource.c
rde0c55a rbc52b5b 47 47 static const char *ui_typeface_path = "/data/font/helena.tpf"; 48 48 49 /** Create new UI resource .49 /** Create new UI resource in graphics mode. 50 50 * 51 51 * @param gc Graphic context 52 * @param textmode @c true if running in text mode53 52 * @param rresource Place to store pointer to new UI resource 54 53 * @return EOK on success, ENOMEM if out of memory 55 54 */ 56 errno_t ui_resource_create(gfx_context_t *gc, bool textmode,55 static errno_t ui_resource_create_gfx(gfx_context_t *gc, 57 56 ui_resource_t **rresource) 58 57 { … … 87 86 return ENOMEM; 88 87 89 if (textmode) { 90 /* Create dummy font for text mode */ 91 rc = gfx_typeface_create(gc, &tface); 92 if (rc != EOK) 93 goto error; 94 95 rc = gfx_font_create_textmode(tface, &font); 96 if (rc != EOK) 97 goto error; 98 } else { 99 rc = gfx_typeface_open(gc, ui_typeface_path, &tface); 100 if (rc != EOK) 101 goto error; 102 103 finfo = gfx_typeface_first_font(tface); 104 if (finfo == NULL) { 105 rc = EIO; 106 goto error; 107 } 108 109 rc = gfx_font_open(finfo, &font); 110 if (rc != EOK) 111 goto error; 88 rc = gfx_typeface_open(gc, ui_typeface_path, &tface); 89 if (rc != EOK) 90 goto error; 91 92 finfo = gfx_typeface_first_font(tface); 93 if (finfo == NULL) { 94 rc = EIO; 95 goto error; 112 96 } 97 98 rc = gfx_font_open(finfo, &font); 99 if (rc != EOK) 100 goto error; 113 101 114 102 rc = gfx_color_new_rgb_i16(0, 0, 0, &btn_frame_color); … … 201 189 resource->tface = tface; 202 190 resource->font = font; 203 resource->textmode = textmode;191 resource->textmode = false; 204 192 205 193 resource->btn_frame_color = btn_frame_color; … … 280 268 } 281 269 270 /** Create new UI resource in text mode. 271 * 272 * @param gc Graphic context 273 * @param rresource Place to store pointer to new UI resource 274 * @return EOK on success, ENOMEM if out of memory 275 */ 276 static errno_t ui_resource_create_text(gfx_context_t *gc, 277 ui_resource_t **rresource) 278 { 279 ui_resource_t *resource; 280 gfx_typeface_t *tface = NULL; 281 gfx_font_t *font = NULL; 282 gfx_color_t *btn_frame_color = NULL; 283 gfx_color_t *btn_face_color = NULL; 284 gfx_color_t *btn_text_color = NULL; 285 gfx_color_t *btn_highlight_color = NULL; 286 gfx_color_t *btn_shadow_color = NULL; 287 gfx_color_t *wnd_face_color = NULL; 288 gfx_color_t *wnd_text_color = NULL; 289 gfx_color_t *wnd_sel_text_color = NULL; 290 gfx_color_t *wnd_sel_text_bg_color = NULL; 291 gfx_color_t *wnd_frame_hi_color = NULL; 292 gfx_color_t *wnd_frame_sh_color = NULL; 293 gfx_color_t *wnd_highlight_color = NULL; 294 gfx_color_t *wnd_shadow_color = NULL; 295 gfx_color_t *tbar_act_bg_color = NULL; 296 gfx_color_t *tbar_inact_bg_color = NULL; 297 gfx_color_t *tbar_act_text_color = NULL; 298 gfx_color_t *tbar_inact_text_color = NULL; 299 gfx_color_t *entry_fg_color = NULL; 300 gfx_color_t *entry_bg_color = NULL; 301 gfx_color_t *entry_act_bg_color = NULL; 302 errno_t rc; 303 304 resource = calloc(1, sizeof(ui_resource_t)); 305 if (resource == NULL) 306 return ENOMEM; 307 308 /* Create dummy font for text mode */ 309 rc = gfx_typeface_create(gc, &tface); 310 if (rc != EOK) 311 goto error; 312 313 rc = gfx_font_create_textmode(tface, &font); 314 if (rc != EOK) 315 goto error; 316 317 rc = gfx_color_new_ega(0x07, &btn_frame_color); 318 if (rc != EOK) 319 goto error; 320 321 rc = gfx_color_new_ega(0x20, &btn_face_color); 322 if (rc != EOK) 323 goto error; 324 325 rc = gfx_color_new_ega(0x20, &btn_text_color); 326 if (rc != EOK) 327 goto error; 328 329 rc = gfx_color_new_rgb_i16(0xffff, 0xffff, 0xffff, 330 &btn_highlight_color); 331 if (rc != EOK) 332 goto error; 333 334 rc = gfx_color_new_ega(0x01, &btn_shadow_color); 335 if (rc != EOK) 336 goto error; 337 338 rc = gfx_color_new_ega(0x70, &wnd_face_color); 339 if (rc != EOK) 340 goto error; 341 342 rc = gfx_color_new_ega(0x70, &wnd_text_color); 343 if (rc != EOK) 344 goto error; 345 346 rc = gfx_color_new_ega(0x07, &wnd_sel_text_color); 347 if (rc != EOK) 348 goto error; 349 350 rc = gfx_color_new_ega(0x07, &wnd_sel_text_bg_color); 351 if (rc != EOK) 352 goto error; 353 354 rc = gfx_color_new_ega(0x70, &wnd_frame_hi_color); 355 if (rc != EOK) 356 goto error; 357 358 rc = gfx_color_new_ega(0x01, &wnd_frame_sh_color); 359 if (rc != EOK) 360 goto error; 361 362 rc = gfx_color_new_ega(0x70, &wnd_highlight_color); 363 if (rc != EOK) 364 goto error; 365 366 rc = gfx_color_new_ega(0x01, &wnd_shadow_color); 367 if (rc != EOK) 368 goto error; 369 370 rc = gfx_color_new_ega(0x1f, &tbar_act_bg_color); 371 if (rc != EOK) 372 goto error; 373 374 rc = gfx_color_new_ega(0x1e, &tbar_act_text_color); 375 if (rc != EOK) 376 goto error; 377 378 rc = gfx_color_new_ega(0x07, &tbar_inact_bg_color); 379 if (rc != EOK) 380 goto error; 381 382 rc = gfx_color_new_ega(0x07, &tbar_inact_text_color); 383 if (rc != EOK) 384 goto error; 385 386 rc = gfx_color_new_ega(0x1b, &entry_fg_color); 387 if (rc != EOK) 388 goto error; 389 390 rc = gfx_color_new_ega(0x1b, &entry_bg_color); 391 if (rc != EOK) 392 goto error; 393 394 rc = gfx_color_new_ega(0x37, &entry_act_bg_color); 395 if (rc != EOK) 396 goto error; 397 398 resource->gc = gc; 399 resource->tface = tface; 400 resource->font = font; 401 resource->textmode = true; 402 403 resource->btn_frame_color = btn_frame_color; 404 resource->btn_face_color = btn_face_color; 405 resource->btn_text_color = btn_text_color; 406 resource->btn_highlight_color = btn_highlight_color; 407 resource->btn_shadow_color = btn_shadow_color; 408 409 resource->wnd_face_color = wnd_face_color; 410 resource->wnd_text_color = wnd_text_color; 411 resource->wnd_sel_text_color = wnd_sel_text_color; 412 resource->wnd_sel_text_bg_color = wnd_sel_text_bg_color; 413 resource->wnd_frame_hi_color = wnd_frame_hi_color; 414 resource->wnd_frame_sh_color = wnd_frame_sh_color; 415 resource->wnd_highlight_color = wnd_highlight_color; 416 resource->wnd_shadow_color = wnd_shadow_color; 417 418 resource->tbar_act_bg_color = tbar_act_bg_color; 419 resource->tbar_act_text_color = tbar_act_text_color; 420 resource->tbar_inact_bg_color = tbar_inact_bg_color; 421 resource->tbar_inact_text_color = tbar_inact_text_color; 422 423 resource->entry_fg_color = entry_fg_color; 424 resource->entry_bg_color = entry_bg_color; 425 resource->entry_act_bg_color = entry_act_bg_color; 426 427 *rresource = resource; 428 return EOK; 429 error: 430 if (btn_frame_color != NULL) 431 gfx_color_delete(btn_frame_color); 432 if (btn_face_color != NULL) 433 gfx_color_delete(btn_face_color); 434 if (btn_text_color != NULL) 435 gfx_color_delete(btn_text_color); 436 if (btn_highlight_color != NULL) 437 gfx_color_delete(btn_highlight_color); 438 if (btn_shadow_color != NULL) 439 gfx_color_delete(btn_shadow_color); 440 441 if (wnd_face_color != NULL) 442 gfx_color_delete(wnd_face_color); 443 if (wnd_text_color != NULL) 444 gfx_color_delete(wnd_text_color); 445 if (wnd_sel_text_color != NULL) 446 gfx_color_delete(wnd_sel_text_color); 447 if (wnd_sel_text_bg_color != NULL) 448 gfx_color_delete(wnd_sel_text_bg_color); 449 if (wnd_frame_hi_color != NULL) 450 gfx_color_delete(wnd_frame_hi_color); 451 if (wnd_frame_sh_color != NULL) 452 gfx_color_delete(wnd_frame_sh_color); 453 if (wnd_highlight_color != NULL) 454 gfx_color_delete(wnd_highlight_color); 455 if (wnd_shadow_color != NULL) 456 gfx_color_delete(wnd_shadow_color); 457 458 if (tbar_act_bg_color != NULL) 459 gfx_color_delete(tbar_act_bg_color); 460 if (tbar_act_text_color != NULL) 461 gfx_color_delete(tbar_act_text_color); 462 if (tbar_inact_bg_color != NULL) 463 gfx_color_delete(tbar_inact_bg_color); 464 if (tbar_inact_text_color != NULL) 465 gfx_color_delete(tbar_inact_text_color); 466 467 if (entry_fg_color != NULL) 468 gfx_color_delete(entry_fg_color); 469 if (entry_bg_color != NULL) 470 gfx_color_delete(entry_bg_color); 471 if (entry_act_bg_color != NULL) 472 gfx_color_delete(entry_act_bg_color); 473 474 if (tface != NULL) 475 gfx_typeface_destroy(tface); 476 free(resource); 477 return rc; 478 } 479 480 /** Create new UI resource. 481 * 482 * @param gc Graphic context 483 * @param textmode @c true if running in text mode 484 * @param rresource Place to store pointer to new UI resource 485 * @return EOK on success, ENOMEM if out of memory 486 */ 487 errno_t ui_resource_create(gfx_context_t *gc, bool textmode, 488 ui_resource_t **rresource) 489 { 490 if (textmode) 491 return ui_resource_create_text(gc, rresource); 492 else 493 return ui_resource_create_gfx(gc, rresource); 494 } 495 282 496 /** Destroy UI resource. 283 497 *
Note:
See TracChangeset
for help on using the changeset viewer.