Changeset 3c54869 in mainline for uspace/lib/ui
- Timestamp:
- 2023-01-04T20:24:44Z (3 years ago)
- Branches:
- master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 5d86797
- Parents:
- cdd6fc9
- Location:
- uspace/lib/ui
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ui/include/ui/pbutton.h
rcdd6fc9 r3c54869 1 1 /* 2 * Copyright (c) 202 2Jiri Svoboda2 * Copyright (c) 2023 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 56 56 extern void ui_pbutton_set_rect(ui_pbutton_t *, gfx_rect_t *); 57 57 extern void ui_pbutton_set_default(ui_pbutton_t *, bool); 58 extern bool ui_pbutton_get_light(ui_pbutton_t *); 59 extern void ui_pbutton_set_light(ui_pbutton_t *, bool); 58 60 extern errno_t ui_pbutton_set_caption(ui_pbutton_t *, const char *); 59 61 extern errno_t ui_pbutton_paint(ui_pbutton_t *); -
uspace/lib/ui/private/pbutton.h
rcdd6fc9 r3c54869 1 1 /* 2 * Copyright (c) 202 2Jiri Svoboda2 * Copyright (c) 2023 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 65 65 /** Button is selected as default */ 66 66 bool isdefault; 67 /** Button light is on */ 68 bool light; 67 69 /** Button is currently held down */ 68 70 bool held; -
uspace/lib/ui/private/resource.h
rcdd6fc9 r3c54869 1 1 /* 2 * Copyright (c) 202 2Jiri Svoboda2 * Copyright (c) 2023 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 66 66 /** Button face color */ 67 67 gfx_color_t *btn_face_color; 68 /** Lit button face color */ 69 gfx_color_t *btn_face_lit_color; 68 70 /** Button text color */ 69 71 gfx_color_t *btn_text_color; -
uspace/lib/ui/src/pbutton.c
rcdd6fc9 r3c54869 1 1 /* 2 * Copyright (c) 202 2Jiri Svoboda2 * Copyright (c) 2023 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 188 188 } 189 189 190 /** Get button light status. 191 * 192 * @param pbutton Button 193 * @return @c true iff light is on 194 */ 195 bool ui_pbutton_get_light(ui_pbutton_t *pbutton) 196 { 197 return pbutton->light; 198 } 199 200 /** Turn button light on or off. 201 * 202 * @param pbutton Button 203 * @param light @c true iff button should be lit 204 */ 205 void ui_pbutton_set_light(ui_pbutton_t *pbutton, bool light) 206 { 207 pbutton->light = light; 208 } 209 190 210 /** Set push button caption. 191 211 * … … 327 347 gfx_rect_t irect; 328 348 gfx_coord_t thickness; 349 gfx_color_t *color; 329 350 bool depressed; 330 351 errno_t rc; … … 338 359 rect.p1.y = pbutton->rect.p1.y - thickness; 339 360 340 rc = gfx_set_color(pbutton->res->gc, pbutton->res->btn_face_color); 361 color = pbutton->light ? pbutton->res->btn_face_lit_color : 362 pbutton->res->btn_face_color; 363 364 rc = gfx_set_color(pbutton->res->gc, color); 341 365 if (rc != EOK) 342 366 goto error; -
uspace/lib/ui/src/resource.c
rcdd6fc9 r3c54869 1 1 /* 2 * Copyright (c) 202 2Jiri Svoboda2 * Copyright (c) 2023 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 62 62 gfx_color_t *btn_frame_color = NULL; 63 63 gfx_color_t *btn_face_color = NULL; 64 gfx_color_t *btn_face_lit_color = NULL; 64 65 gfx_color_t *btn_text_color = NULL; 65 66 gfx_color_t *btn_highlight_color = NULL; … … 114 115 goto error; 115 116 117 rc = gfx_color_new_rgb_i16(0xe8e8, 0xe8e8, 0xe8e8, &btn_face_lit_color); 118 if (rc != EOK) 119 goto error; 120 116 121 rc = gfx_color_new_rgb_i16(0, 0, 0, &btn_text_color); 117 122 if (rc != EOK) … … 227 232 resource->btn_frame_color = btn_frame_color; 228 233 resource->btn_face_color = btn_face_color; 234 resource->btn_face_lit_color = btn_face_lit_color; 229 235 resource->btn_text_color = btn_text_color; 230 236 resource->btn_highlight_color = btn_highlight_color; … … 263 269 if (btn_face_color != NULL) 264 270 gfx_color_delete(btn_face_color); 271 if (btn_face_lit_color != NULL) 272 gfx_color_delete(btn_face_lit_color); 265 273 if (btn_text_color != NULL) 266 274 gfx_color_delete(btn_text_color); … … 336 344 gfx_color_t *btn_frame_color = NULL; 337 345 gfx_color_t *btn_face_color = NULL; 346 gfx_color_t *btn_face_lit_color = NULL; 338 347 gfx_color_t *btn_text_color = NULL; 339 348 gfx_color_t *btn_highlight_color = NULL; … … 383 392 goto error; 384 393 394 rc = gfx_color_new_ega(0x30, &btn_face_lit_color); 395 if (rc != EOK) 396 goto error; 397 385 398 rc = gfx_color_new_ega(0x20, &btn_text_color); 386 399 if (rc != EOK) … … 486 499 resource->btn_frame_color = btn_frame_color; 487 500 resource->btn_face_color = btn_face_color; 501 resource->btn_face_lit_color = btn_face_lit_color; 488 502 resource->btn_text_color = btn_text_color; 489 503 resource->btn_highlight_color = btn_highlight_color; … … 522 536 if (btn_face_color != NULL) 523 537 gfx_color_delete(btn_face_color); 538 if (btn_face_lit_color != NULL) 539 gfx_color_delete(btn_face_lit_color); 524 540 if (btn_text_color != NULL) 525 541 gfx_color_delete(btn_text_color); … … 607 623 gfx_color_delete(resource->btn_frame_color); 608 624 gfx_color_delete(resource->btn_face_color); 625 gfx_color_delete(resource->btn_face_lit_color); 609 626 gfx_color_delete(resource->btn_text_color); 610 627 gfx_color_delete(resource->btn_highlight_color); -
uspace/lib/ui/test/pbutton.c
rcdd6fc9 r3c54869 1 1 /* 2 * Copyright (c) 202 2Jiri Svoboda2 * Copyright (c) 2023 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 190 190 } 191 191 192 /** Get light gets internal field */ 193 PCUT_TEST(get_light) 194 { 195 ui_pbutton_t *pbutton; 196 errno_t rc; 197 198 rc = ui_pbutton_create(NULL, "Hello", &pbutton); 199 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 200 201 pbutton->light = true; 202 PCUT_ASSERT_TRUE(ui_pbutton_get_light(pbutton)); 203 204 pbutton->light = false; 205 PCUT_ASSERT_FALSE(ui_pbutton_get_light(pbutton)); 206 207 ui_pbutton_destroy(pbutton); 208 } 209 210 /** Set light sets internal field */ 211 PCUT_TEST(set_light) 212 { 213 ui_pbutton_t *pbutton; 214 errno_t rc; 215 216 rc = ui_pbutton_create(NULL, "Hello", &pbutton); 217 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 218 219 ui_pbutton_set_light(pbutton, true); 220 PCUT_ASSERT_TRUE(pbutton->light); 221 222 ui_pbutton_set_light(pbutton, false); 223 PCUT_ASSERT_FALSE(pbutton->light); 224 225 ui_pbutton_destroy(pbutton); 226 } 227 192 228 /** Set caption sets internal field */ 193 229 PCUT_TEST(set_caption)
Note:
See TracChangeset
for help on using the changeset viewer.