Changeset 8965860c in mainline for uspace/lib/ui/src/ui.c
- Timestamp:
- 2022-03-23T18:35:16Z (2 years ago)
- Branches:
- master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 7ca7215
- Parents:
- d4ea1f6
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ui/src/ui.c
rd4ea1f6 r8965860c 1 1 /* 2 * Copyright (c) 202 1Jiri Svoboda2 * Copyright (c) 2022 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 39 39 #include <errno.h> 40 40 #include <fibril.h> 41 #include <fibril_synch.h> 41 42 #include <gfx/color.h> 42 43 #include <gfx/cursor.h> … … 47 48 #include <str.h> 48 49 #include <task.h> 50 #include <ui/clickmatic.h> 49 51 #include <ui/ui.h> 50 52 #include <ui/wdecor.h> … … 198 200 { 199 201 ui_t *ui; 202 errno_t rc; 200 203 201 204 ui = calloc(1, sizeof(ui_t)); … … 203 206 return ENOMEM; 204 207 208 rc = ui_clickmatic_create(ui, &ui->clickmatic); 209 if (rc != EOK) { 210 free(ui); 211 return rc; 212 } 213 205 214 ui->console = console; 206 215 list_initialize(&ui->windows); 216 fibril_mutex_initialize(&ui->lock); 207 217 *rui = ui; 208 218 return EOK; … … 218 228 { 219 229 ui_t *ui; 230 errno_t rc; 220 231 221 232 ui = calloc(1, sizeof(ui_t)); … … 223 234 return ENOMEM; 224 235 236 rc = ui_clickmatic_create(ui, &ui->clickmatic); 237 if (rc != EOK) { 238 free(ui); 239 return rc; 240 } 241 225 242 ui->display = disp; 226 243 list_initialize(&ui->windows); 244 fibril_mutex_initialize(&ui->lock); 227 245 *rui = ui; 228 246 return EOK; … … 443 461 } 444 462 463 /** Lock UI. 464 * 465 * Block UI from calling window callbacks. @c ui_lock() and @c ui_unlock() 466 * must be used when accessing UI resources from a fibril (as opposed to 467 * from a window callback). 468 * 469 * @param ui UI 470 */ 471 void ui_lock(ui_t *ui) 472 { 473 fibril_mutex_lock(&ui->lock); 474 } 475 476 /** Unlock UI. 477 * 478 * Allow UI to call window callbacks. @c ui_lock() and @c ui_unlock() 479 * must be used when accessing window resources from a fibril (as opposed to 480 * from a window callback). 481 * 482 * @param ui UI 483 */ 484 void ui_unlock(ui_t *ui) 485 { 486 fibril_mutex_unlock(&ui->lock); 487 } 488 445 489 /** Terminate user interface. 446 490 * … … 480 524 } 481 525 526 /** Get clickmatic from UI. 527 * 528 * @pararm ui UI 529 * @return Clickmatic 530 */ 531 ui_clickmatic_t *ui_get_clickmatic(ui_t *ui) 532 { 533 return ui->clickmatic; 534 } 535 482 536 /** @} 483 537 */
Note:
See TracChangeset
for help on using the changeset viewer.