Changes in / [56a3c29e:4f6368c] in mainline
- Files:
-
- 45 added
- 33 deleted
- 65 edited
Legend:
- Unmodified
- Added
- Removed
-
meson/arch/ia64/meson.build
r56a3c29e r4f6368c 36 36 arch_boot_c_args = [ '-D__LE__', '-fno-unwind-tables', '-mfixed-range=f32-f127', '-mno-pic', '-mno-sdata' ] 37 37 38 # work around GCC bug 112604 39 arch_uspace_c_args += ['-fno-unswitch-loops'] 40 38 41 arch_uspace_link_args = [ '-nostdlib', '-lgcc' ] 39 42 arch_kernel_link_args = [ '-nostdlib', '-Wl,-EL', '-Wl,--no-warn-rwx-segments'] -
uspace/app/corecfg/meson.build
r56a3c29e r4f6368c 1 1 # 2 # Copyright (c) 20 13 Jiri Svoboda2 # Copyright (c) 2023 Jiri Svoboda 3 3 # All rights reserved. 4 4 # … … 27 27 # 28 28 29 deps = [ 'corecfg' ] 29 30 src = files('corecfg.c') -
uspace/app/hbench/meson.build
r56a3c29e r4f6368c 1 1 # 2 # Copyright (c) 20 18Jiri Svoboda2 # Copyright (c) 2023 Jiri Svoboda 3 3 # All rights reserved. 4 4 # … … 27 27 # 28 28 29 deps = [ 'math' ]29 deps = [ 'math', 'ipctest' ] 30 30 src = files( 31 31 'benchlist.c', -
uspace/app/mkbd/meson.build
r56a3c29e r4f6368c 27 27 # 28 28 29 deps = [ 'usb', 'usbdev', 'usbhid', 'drv' ]29 deps = [ 'usb', 'usbdev', 'usbhid', 'drv', 'console' ] 30 30 src = files('main.c') -
uspace/app/modplay/meson.build
r56a3c29e r4f6368c 27 27 # 28 28 29 deps = [ 'trackmod', 'hound', 'pcm' ]29 deps = [ 'trackmod', 'hound', 'pcm', 'console' ] 30 30 src = files('modplay.c') 31 31 -
uspace/app/netecho/meson.build
r56a3c29e r4f6368c 27 27 # 28 28 29 deps = [ 'inet' ]29 deps = [ 'inet', 'console' ] 30 30 src = files('comm.c', 'netecho.c') -
uspace/app/nterm/meson.build
r56a3c29e r4f6368c 27 27 # 28 28 29 deps = [ 'inet' ]29 deps = [ 'inet', 'console' ] 30 30 src = files('conn.c', 'nterm.c') -
uspace/app/ping/meson.build
r56a3c29e r4f6368c 27 27 # 28 28 29 deps = [ 'inet' ]29 deps = [ 'inet', 'console' ] 30 30 src = files('ping.c') -
uspace/app/taskbar-cfg/smeedit.c
r56a3c29e r4f6368c 41 41 #include "taskbar-cfg.h" 42 42 #include "smeedit.h" 43 #include "startmenu.h" 43 44 44 45 static void wnd_close(ui_window_t *, void *); … … 111 112 } 112 113 114 smee->startmenu = smenu; 113 115 smee->smentry = smentry; 114 116 … … 361 363 362 364 (void)smenu_entry_save(smee->smentry->entry); 363 365 startmenu_entry_update(smee->smentry); 364 366 smeedit_destroy(smee); 365 367 } -
uspace/app/taskbar-cfg/startmenu.c
r56a3c29e r4f6368c 349 349 smentry->entry = entry; 350 350 351 printf("startmenu_insert: smentry=%p entry=%p\n",352 smentry, entry);353 351 ui_list_entry_attr_init(&attr); 354 352 attr.caption = smenu_entry_get_caption(entry); … … 390 388 smentry = startmenu_get_selected(smenu); 391 389 392 printf("smeedit_create:entry=%p\n", smentry);393 390 rc = smeedit_create(smenu, smentry, &smee); 394 391 if (rc != EOK) … … 398 395 } 399 396 397 /** Update start menu entry caption. 398 * 399 * When editing an entry the entry's label might change. We need 400 * to update the list entry caption to reflect that. 401 * 402 * @param entry Start menu entry 403 */ 404 errno_t startmenu_entry_update(startmenu_entry_t *entry) 405 { 406 return ui_list_entry_set_caption(entry->lentry, 407 smenu_entry_get_caption(entry->entry)); 408 } 409 400 410 /** Entry in entry list is selected. 401 411 * -
uspace/app/taskbar-cfg/startmenu.h
r56a3c29e r4f6368c 48 48 extern startmenu_entry_t *startmenu_get_selected(startmenu_t *); 49 49 extern void startmenu_edit(startmenu_t *); 50 extern errno_t startmenu_entry_update(startmenu_entry_t *); 50 51 51 52 #endif -
uspace/app/tester/meson.build
r56a3c29e r4f6368c 1 1 # 2 # Copyright (c) 202 1Jiri Svoboda2 # Copyright (c) 2023 Jiri Svoboda 3 3 # Copyright (c) 2005 Martin Decky 4 4 # Copyright (c) 2007 Jakub Jermar … … 29 29 # 30 30 31 deps = [ 'block', 'codepage', 'drv', 'math' ]31 deps = [ 'block', 'codepage', 'drv', 'math', 'ipctest', 'console' ] 32 32 src = files( 33 33 'tester.c', -
uspace/app/tetris/meson.build
r56a3c29e r4f6368c 28 28 # 29 29 30 deps = [ 'console' ] 30 31 src = files( 31 32 'shapes.c', -
uspace/app/top/meson.build
r56a3c29e r4f6368c 28 28 # 29 29 30 deps = [ 'console' ] 30 31 src = files( 31 32 'top.c', -
uspace/app/trace/meson.build
r56a3c29e r4f6368c 28 28 # 29 29 30 deps = [ 'console' ] 30 31 src = files( 31 32 'trace.c', -
uspace/app/uidemo/uidemo.c
r56a3c29e r4f6368c 288 288 pos = ui_scrollbar_get_pos(scrollbar); 289 289 ui_scrollbar_set_pos(scrollbar, pos - 290 ui_scrollbar_t hrough_length(scrollbar) / 4);290 ui_scrollbar_trough_length(scrollbar) / 4); 291 291 292 292 pos = ui_scrollbar_get_pos(scrollbar); … … 305 305 pos = ui_scrollbar_get_pos(scrollbar); 306 306 ui_scrollbar_set_pos(scrollbar, pos + 307 ui_scrollbar_t hrough_length(scrollbar) / 4);307 ui_scrollbar_trough_length(scrollbar) / 4); 308 308 309 309 pos = ui_scrollbar_get_pos(scrollbar); … … 1270 1270 1271 1271 ui_scrollbar_set_thumb_length(demo.hscrollbar, 1272 ui_scrollbar_t hrough_length(demo.hscrollbar) / 4);1272 ui_scrollbar_trough_length(demo.hscrollbar) / 4); 1273 1273 1274 1274 rc = ui_fixed_add(demo.bfixed, ui_scrollbar_ctl(demo.hscrollbar)); … … 1302 1302 1303 1303 ui_scrollbar_set_thumb_length(demo.vscrollbar, 1304 ui_scrollbar_t hrough_length(demo.vscrollbar) / 4);1304 ui_scrollbar_trough_length(demo.vscrollbar) / 4); 1305 1305 1306 1306 rc = ui_fixed_add(demo.bfixed, ui_scrollbar_ctl(demo.vscrollbar)); -
uspace/drv/hid/adb-kbd/adb-kbd.c
r56a3c29e r4f6368c 34 34 #include <ddf/log.h> 35 35 #include <errno.h> 36 #include <io/ console.h>36 #include <io/kbd_event.h> 37 37 #include <ipc/adb.h> 38 38 #include <ipc/kbdev.h> -
uspace/drv/hid/adb-kbd/ctl.c
r56a3c29e r4f6368c 33 33 34 34 #include <errno.h> 35 #include <io/ console.h>35 #include <io/kbd_event.h> 36 36 #include <io/keycode.h> 37 37 -
uspace/drv/hid/adb-kbd/meson.build
r56a3c29e r4f6368c 27 27 # 28 28 29 deps = [ 'input' ] 29 30 src = files( 30 31 'main.c', -
uspace/drv/hid/adb-mouse/meson.build
r56a3c29e r4f6368c 27 27 # 28 28 29 deps = [ 'input' ] 29 30 src = files('main.c', 'adb-mouse.c') -
uspace/drv/hid/atkbd/atkbd.c
r56a3c29e r4f6368c 38 38 #include <errno.h> 39 39 #include <ddf/log.h> 40 #include <io/kbd_event.h> 40 41 #include <io/keycode.h> 41 42 #include <io/chardev.h> 42 #include <io/console.h>43 43 #include <ipc/kbdev.h> 44 44 #include <abi/ipc/methods.h> -
uspace/drv/hid/atkbd/meson.build
r56a3c29e r4f6368c 27 27 # 28 28 29 deps = [ 'input' ] 29 30 src = files('main.c', 'atkbd.c') -
uspace/drv/hid/ps2mouse/meson.build
r56a3c29e r4f6368c 27 27 # 28 28 29 deps = [ 'input' ] 29 30 src = files('main.c', 'ps2mouse.c') -
uspace/drv/hid/ps2mouse/ps2mouse.c
r56a3c29e r4f6368c 40 40 #include <io/keycode.h> 41 41 #include <io/chardev.h> 42 #include <io/console.h>43 42 #include <ipc/mouseev.h> 44 43 #include <abi/ipc/methods.h> -
uspace/drv/hid/usbhid/kbd/kbddev.c
r56a3c29e r4f6368c 41 41 42 42 #include <io/keycode.h> 43 #include <io/ console.h>43 #include <io/kbd_event.h> 44 44 #include <abi/ipc/methods.h> 45 45 #include <ipc/kbdev.h> -
uspace/drv/hid/usbhid/kbd/kbdrepeat.c
r56a3c29e r4f6368c 36 36 37 37 #include <fibril_synch.h> 38 #include <io/kbd_event.h> 38 39 #include <io/keycode.h> 39 #include <io/console.h>40 40 #include <errno.h> 41 41 -
uspace/drv/hid/usbhid/meson.build
r56a3c29e r4f6368c 27 27 # 28 28 29 deps = [ 'usbhid', 'usbdev', 'usb' ]29 deps = [ 'usbhid', 'usbdev', 'usb', 'input' ] 30 30 includes += [ include_directories('.') ] 31 31 src = files( -
uspace/drv/hid/usbhid/mouse/mousedev.c
r56a3c29e r4f6368c 46 46 #include <str_error.h> 47 47 #include <ipc/mouseev.h> 48 #include <io/console.h>49 48 50 49 #include <ipc/kbdev.h> -
uspace/drv/hid/usbhid/multimedia/multimedia.c
r56a3c29e r4f6368c 51 51 52 52 #include <ipc/kbdev.h> 53 #include <io/ console.h>53 #include <io/kbd_event.h> 54 54 55 55 #define NAME "multimedia-keys" -
uspace/drv/hid/xtkbd/meson.build
r56a3c29e r4f6368c 27 27 # 28 28 29 deps = [ 'input' ] 29 30 src = files('main.c', 'xtkbd.c') -
uspace/drv/hid/xtkbd/xtkbd.c
r56a3c29e r4f6368c 39 39 #include <io/keycode.h> 40 40 #include <io/chardev.h> 41 #include <io/ console.h>41 #include <io/kbd_event.h> 42 42 #include <ipc/kbdev.h> 43 43 #include <abi/ipc/methods.h> -
uspace/lib/c/meson.build
r56a3c29e r4f6368c 49 49 allow_shared = true 50 50 51 # FIXME: symlinks from uspace to kernel will break in future Meson version52 # we should instead move the duplicated library parts into a shared location.53 54 51 uspace_lib_devel_install_script_text += 'mkdir -p "${DESTDIR}include/libc"' 55 52 foreach idir : incdirs … … 66 63 'common/adt/hash_table.c', 67 64 'common/adt/odict.c', 68 'common/adt/prodcons.c',69 65 'common/printf/printf_core.c', 70 66 'common/stdc/ctype.c', … … 79 75 80 76 'generic/libc.c', 77 'generic/adt/prodcons.c', 81 78 'generic/as.c', 82 79 'generic/ddi.c', 83 80 'generic/perm.c', 84 81 'generic/capa.c', 85 'generic/clipboard.c',86 82 'generic/config.c', 87 83 'generic/context.c', 88 'generic/corecfg.c',89 84 'generic/device/clock_dev.c', 90 85 'generic/device/hw_res.c', … … 99 94 'generic/errno.c', 100 95 'generic/inttypes.c', 101 'generic/ipc_test.c',102 96 'generic/loc.c', 103 97 'generic/string.c', … … 109 103 'generic/imath.c', 110 104 'generic/io/asprintf.c', 111 'generic/io/input.c',112 105 'generic/io/io.c', 113 'generic/io/chargrid.c',114 'generic/io/output.c',115 106 'generic/io/printf.c', 116 107 'generic/io/log.c', … … 121 112 'generic/io/vprintf.c', 122 113 'generic/io/vsnprintf.c', 123 'generic/io/con_srv.c',124 'generic/io/console.c',125 114 'generic/io/table.c', 126 115 'generic/irq.c', -
uspace/lib/clui/meson.build
r56a3c29e r4f6368c 1 1 # 2 # Copyright (c) 20 10Jiri Svoboda2 # Copyright (c) 2023 Jiri Svoboda 3 3 # All rights reserved. 4 4 # … … 27 27 # 28 28 29 deps = [ 'clipboard', 'console' ] 29 30 src = files( 30 31 'nchoice.c', -
uspace/lib/congfx/meson.build
r56a3c29e r4f6368c 27 27 # 28 28 29 deps = [ 'gfx' ]29 deps = [ 'gfx', 'console' ] 30 30 src = files( 31 31 'src/console.c', -
uspace/lib/display/meson.build
r56a3c29e r4f6368c 27 27 # 28 28 29 deps = [ 'gfx', 'ipcgfx' ]29 deps = [ 'gfx', 'ipcgfx', 'input' ] 30 30 src = files( 31 31 'src/display.c', -
uspace/lib/fmtutil/meson.build
r56a3c29e r4f6368c 27 27 # 28 28 29 deps = [ 'console' ] 29 30 src = files('fmtutil.c') -
uspace/lib/meson.build
r56a3c29e r4f6368c 53 53 'inet', 54 54 55 'input', 56 'output', 57 'console', 55 58 'device', 56 59 57 60 'block', 61 'clipboard', 58 62 'clui', 59 63 'codepage', 60 64 'compress', 65 'corecfg', 61 66 'cpp', 62 67 'crypto', … … 68 73 'gfx', 69 74 'http', 75 'ipctest', 70 76 'label', 71 77 'math', -
uspace/lib/posix/meson.build
r56a3c29e r4f6368c 66 66 uspace_lib_devel_install_script_text += 'mkdir -p "${DESTDIR}include/libposix"' 67 67 uspace_lib_devel_install_script_text += 'cp -R -L -T "@0@" "${DESTDIR}include/libposix"'.format(_sdir) 68 69 # TODO: exports 68 uspace_lib_devel_install_script_text += 'ln -s -r "${DESTDIR}include/libc" "${DESTDIR}/include/common"' -
uspace/lib/tbarcfg/include/tbarcfg/tbarcfg.h
r56a3c29e r4f6368c 38 38 39 39 #include <errno.h> 40 #include <sif.h> 40 41 #include <types/tbarcfg/tbarcfg.h> 41 42 43 extern errno_t tbarcfg_create(const char *, tbarcfg_t **); 42 44 extern errno_t tbarcfg_open(const char *, tbarcfg_t **); 43 45 extern void tbarcfg_close(tbarcfg_t *); … … 49 51 extern errno_t smenu_entry_set_cmd(smenu_entry_t *, const char *); 50 52 extern errno_t smenu_entry_save(smenu_entry_t *); 53 extern errno_t smenu_entry_create(tbarcfg_t *, const char *, const char *); 54 extern errno_t smenu_entry_destroy(smenu_entry_t *); 51 55 52 56 #endif -
uspace/lib/tbarcfg/private/tbarcfg.h
r56a3c29e r4f6368c 48 48 /** List of start menu entries (smenu_entry_t) */ 49 49 list_t entries; 50 /** Entries SIF node */ 51 sif_node_t *nentries; 50 52 }; 51 53 … … 64 66 }; 65 67 66 extern errno_t smenu_entry_ create(tbarcfg_t *, sif_node_t *, const char *,68 extern errno_t smenu_entry_new(tbarcfg_t *, sif_node_t *, const char *, 67 69 const char *); 70 extern void smenu_entry_delete(smenu_entry_t *); 68 71 69 72 #endif -
uspace/lib/tbarcfg/src/tbarcfg.c
r56a3c29e r4f6368c 41 41 #include "../private/tbarcfg.h" 42 42 43 /** Create taskbar configuration. 44 * 45 * @param repopath Pathname of the new menu repository 46 * @param rtbcfg Place to store pointer to taskbar configuration 47 * @return EOK on success or an error code 48 */ 49 errno_t tbarcfg_create(const char *repopath, tbarcfg_t **rtbcfg) 50 { 51 tbarcfg_t *tbcfg; 52 sif_sess_t *repo = NULL; 53 sif_node_t *rnode; 54 errno_t rc; 55 sif_trans_t *trans = NULL; 56 57 tbcfg = calloc(1, sizeof(tbarcfg_t)); 58 if (tbcfg == NULL) { 59 rc = ENOMEM; 60 goto error; 61 } 62 63 list_initialize(&tbcfg->entries); 64 65 rc = sif_create(repopath, &repo); 66 if (rc != EOK) 67 goto error; 68 69 tbcfg->repo = repo; 70 71 rnode = sif_get_root(repo); 72 73 rc = sif_trans_begin(repo, &trans); 74 if (rc != EOK) 75 goto error; 76 77 rc = sif_node_append_child(trans, rnode, "entries", &tbcfg->nentries); 78 if (rc != EOK) 79 goto error; 80 81 rc = sif_trans_end(trans); 82 if (rc != EOK) 83 goto error; 84 85 *rtbcfg = tbcfg; 86 return EOK; 87 error: 88 if (trans != NULL) 89 sif_trans_abort(trans); 90 if (repo != NULL) 91 sif_close(repo); 92 if (tbcfg != NULL) 93 free(tbcfg); 94 return rc; 95 } 96 43 97 /** Open taskbar configuration. 44 98 * … … 52 106 sif_sess_t *repo = NULL; 53 107 sif_node_t *rnode; 54 sif_node_t *nentries;55 108 sif_node_t *nentry; 56 109 const char *ntype; … … 74 127 75 128 rnode = sif_get_root(repo); 76 nentries = sif_node_first_child(rnode);77 ntype = sif_node_get_type( nentries);129 tbcfg->nentries = sif_node_first_child(rnode); 130 ntype = sif_node_get_type(tbcfg->nentries); 78 131 if (str_cmp(ntype, "entries") != 0) { 79 132 rc = EIO; … … 81 134 } 82 135 83 nentry = sif_node_first_child( nentries);136 nentry = sif_node_first_child(tbcfg->nentries); 84 137 while (nentry != NULL) { 85 138 ntype = sif_node_get_type(nentry); … … 101 154 } 102 155 103 rc = smenu_entry_ create(tbcfg, nentry, caption, cmd);156 rc = smenu_entry_new(tbcfg, nentry, caption, cmd); 104 157 if (rc != EOK) 105 158 goto error; … … 124 177 void tbarcfg_close(tbarcfg_t *tbcfg) 125 178 { 179 smenu_entry_t *entry; 180 181 entry = tbarcfg_smenu_first(tbcfg); 182 while (entry != NULL) { 183 smenu_entry_delete(entry); 184 entry = tbarcfg_smenu_first(tbcfg); 185 } 186 126 187 (void)sif_close(tbcfg->repo); 188 free(tbcfg); 127 189 } 128 190 … … 229 291 errno_t smenu_entry_save(smenu_entry_t *entry) 230 292 { 231 sif_trans_t *trans ;293 sif_trans_t *trans = NULL; 232 294 errno_t rc; 233 295 … … 255 317 } 256 318 257 /** Create a start menu entry and append it to the start menu (internal).319 /** Allocate a start menu entry and append it to the start menu (internal). 258 320 * 259 321 * This only creates the entry in memory, but does not update the repository. … … 264 326 * @param cmd Command to run 265 327 */ 266 errno_t smenu_entry_ create(tbarcfg_t *smenu, sif_node_t *nentry,328 errno_t smenu_entry_new(tbarcfg_t *smenu, sif_node_t *nentry, 267 329 const char *caption, const char *cmd) 268 330 { … … 305 367 } 306 368 369 /** Delete start menu entry. 370 * 371 * This only deletes the entry from, but does not update the 372 * repository. 373 * 374 * @param entry Start menu entry 375 */ 376 void smenu_entry_delete(smenu_entry_t *entry) 377 { 378 list_remove(&entry->lentries); 379 free(entry->caption); 380 free(entry->cmd); 381 free(entry); 382 } 383 384 /** Create new start menu entry. 385 * 386 * @param smenu Start menu 387 * @param nentry Backing SIF node 388 * @param caption Caption 389 * @param cmd Command to run 390 */ 391 errno_t smenu_entry_create(tbarcfg_t *smenu, const char *caption, 392 const char *cmd) 393 { 394 sif_node_t *nentry; 395 errno_t rc; 396 sif_trans_t *trans = NULL; 397 398 rc = sif_trans_begin(smenu->repo, &trans); 399 if (rc != EOK) 400 goto error; 401 402 rc = sif_node_append_child(trans, smenu->nentries, "entry", 403 &nentry); 404 if (rc != EOK) 405 goto error; 406 407 rc = smenu_entry_new(smenu, nentry, caption, cmd); 408 if (rc != EOK) 409 goto error; 410 411 rc = sif_trans_end(trans); 412 if (rc != EOK) 413 goto error; 414 415 return EOK; 416 error: 417 if (trans != NULL) 418 sif_trans_abort(trans); 419 return rc; 420 } 421 422 /** Destroy start menu entry.. 423 * 424 * @param entry Start menu entry 425 * @return EOK on success or an error code 426 */ 427 errno_t smenu_entry_destroy(smenu_entry_t *entry) 428 { 429 errno_t rc; 430 sif_trans_t *trans = NULL; 431 432 rc = sif_trans_begin(entry->smenu->repo, &trans); 433 if (rc != EOK) 434 goto error; 435 436 sif_node_destroy(trans, entry->nentry); 437 438 rc = sif_trans_end(trans); 439 if (rc != EOK) 440 goto error; 441 442 smenu_entry_delete(entry); 443 error: 444 if (trans != NULL) 445 sif_trans_abort(trans); 446 return rc; 447 } 448 307 449 /** @} 308 450 */ -
uspace/lib/tbarcfg/test/tbarcfg.c
r56a3c29e r4f6368c 36 36 PCUT_TEST_SUITE(tbarcfg); 37 37 38 /** Opening and closing taskbar configuration */ 39 PCUT_TEST(open_close) 40 { 41 errno_t rc; 42 tbarcfg_t *tbcfg; 43 FILE *f; 44 int rv; 45 46 f = fopen("/tmp/test", "wt"); 47 PCUT_ASSERT_NOT_NULL(f); 48 49 rv = fputs("[sif](){[entries](){}}", f); 50 PCUT_ASSERT_TRUE(rv >= 0); 51 52 rv = fclose(f); 53 PCUT_ASSERT_INT_EQUALS(0, rv); 54 55 rc = tbarcfg_open("/tmp/test", &tbcfg); 56 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 57 58 tbarcfg_close(tbcfg); 38 /** Creating, opening and closing taskbar configuration */ 39 PCUT_TEST(create_open_close) 40 { 41 errno_t rc; 42 tbarcfg_t *tbcfg; 43 char fname[L_tmpnam], *p; 44 45 p = tmpnam(fname); 46 PCUT_ASSERT_NOT_NULL(p); 47 48 /* Create new repository */ 49 rc = tbarcfg_create(fname, &tbcfg); 50 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 51 52 tbarcfg_close(tbcfg); 53 54 /* Re-open the repository */ 55 56 rc = tbarcfg_open(fname, &tbcfg); 57 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 58 59 tbarcfg_close(tbcfg); 60 remove(fname); 59 61 } 60 62 … … 64 66 errno_t rc; 65 67 tbarcfg_t *tbcfg; 66 smenu_entry_t *e; 67 FILE *f; 68 int rv; 69 70 f = fopen("/tmp/test", "wt"); 71 PCUT_ASSERT_NOT_NULL(f); 72 73 rv = fputs("[sif](){[entries](){" 74 "[entry]([caption]=[A][cmd]=[a]){}" 75 "[entry]([caption]=[B][cmd]=[b]){}" 76 "}}", f); 77 PCUT_ASSERT_TRUE(rv >= 0); 78 79 rv = fclose(f); 80 PCUT_ASSERT_INT_EQUALS(0, rv); 81 82 rc = tbarcfg_open("/tmp/test", &tbcfg); 68 char fname[L_tmpnam], *p; 69 smenu_entry_t *e; 70 71 p = tmpnam(fname); 72 PCUT_ASSERT_NOT_NULL(p); 73 74 rc = tbarcfg_create(fname, &tbcfg); 75 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 76 77 rc = smenu_entry_create(tbcfg, "A", "a"); 78 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 79 80 rc = smenu_entry_create(tbcfg, "B", "b"); 83 81 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 84 82 … … 91 89 92 90 tbarcfg_close(tbcfg); 91 remove(fname); 93 92 } 94 93 … … 98 97 errno_t rc; 99 98 tbarcfg_t *tbcfg; 99 char fname[L_tmpnam], *p; 100 100 smenu_entry_t *e; 101 101 const char *caption; 102 102 const char *cmd; 103 FILE *f; 104 int rv; 105 106 f = fopen("/tmp/test", "wt"); 107 PCUT_ASSERT_NOT_NULL(f); 108 109 rv = fputs("[sif](){[entries](){" 110 "[entry]([caption]=[A][cmd]=[a]){}" 111 "}}", f); 112 PCUT_ASSERT_TRUE(rv >= 0); 113 114 rv = fclose(f); 115 PCUT_ASSERT_INT_EQUALS(0, rv); 116 117 rc = tbarcfg_open("/tmp/test", &tbcfg); 103 104 p = tmpnam(fname); 105 PCUT_ASSERT_NOT_NULL(p); 106 107 rc = tbarcfg_create(fname, &tbcfg); 108 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 109 110 rc = smenu_entry_create(tbcfg, "A", "a"); 118 111 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 119 112 … … 127 120 128 121 tbarcfg_close(tbcfg); 122 remove(fname); 123 } 124 125 /** Setting menu entry properties */ 126 PCUT_TEST(set_caption_cmd) 127 { 128 errno_t rc; 129 tbarcfg_t *tbcfg; 130 char fname[L_tmpnam], *p; 131 smenu_entry_t *e; 132 const char *caption; 133 const char *cmd; 134 135 p = tmpnam(fname); 136 PCUT_ASSERT_NOT_NULL(p); 137 138 rc = tbarcfg_create(fname, &tbcfg); 139 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 140 141 rc = smenu_entry_create(tbcfg, "A", "a"); 142 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 143 144 e = tbarcfg_smenu_first(tbcfg); 145 PCUT_ASSERT_NOT_NULL(e); 146 147 caption = smenu_entry_get_caption(e); 148 PCUT_ASSERT_STR_EQUALS("A", caption); 149 cmd = smenu_entry_get_cmd(e); 150 PCUT_ASSERT_STR_EQUALS("a", cmd); 151 152 /* Set properties */ 153 rc = smenu_entry_set_caption(e, "B"); 154 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 155 rc = smenu_entry_set_cmd(e, "b"); 156 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 157 158 rc = smenu_entry_save(e); 159 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 160 161 /* Check that properties have been set */ 162 caption = smenu_entry_get_caption(e); 163 PCUT_ASSERT_STR_EQUALS("B", caption); 164 cmd = smenu_entry_get_cmd(e); 165 PCUT_ASSERT_STR_EQUALS("b", cmd); 166 167 tbarcfg_close(tbcfg); 168 169 /* Re-open repository */ 170 171 rc = tbarcfg_open(fname, &tbcfg); 172 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 173 174 e = tbarcfg_smenu_first(tbcfg); 175 PCUT_ASSERT_NOT_NULL(e); 176 177 /* Check that new values of properties have persisted */ 178 caption = smenu_entry_get_caption(e); 179 PCUT_ASSERT_STR_EQUALS("B", caption); 180 cmd = smenu_entry_get_cmd(e); 181 PCUT_ASSERT_STR_EQUALS("b", cmd); 182 183 tbarcfg_close(tbcfg); 184 remove(fname); 185 } 186 187 /** Create start menu entry */ 188 PCUT_TEST(entry_create) 189 { 190 errno_t rc; 191 tbarcfg_t *tbcfg; 192 char fname[L_tmpnam], *p; 193 smenu_entry_t *e; 194 const char *caption; 195 const char *cmd; 196 197 p = tmpnam(fname); 198 PCUT_ASSERT_NOT_NULL(p); 199 200 rc = tbarcfg_create(fname, &tbcfg); 201 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 202 203 rc = smenu_entry_create(tbcfg, "A", "a"); 204 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 205 206 e = tbarcfg_smenu_first(tbcfg); 207 PCUT_ASSERT_NOT_NULL(e); 208 209 caption = smenu_entry_get_caption(e); 210 PCUT_ASSERT_STR_EQUALS("A", caption); 211 cmd = smenu_entry_get_cmd(e); 212 PCUT_ASSERT_STR_EQUALS("a", cmd); 213 214 tbarcfg_close(tbcfg); 215 remove(fname); 129 216 } 130 217 -
uspace/lib/ui/include/ui/list.h
r56a3c29e r4f6368c 60 60 extern void *ui_list_entry_get_arg(ui_list_entry_t *); 61 61 extern ui_list_t *ui_list_entry_get_list(ui_list_entry_t *); 62 extern errno_t ui_list_entry_set_caption(ui_list_entry_t *, const char *); 62 63 extern size_t ui_list_entries_cnt(ui_list_t *); 63 64 extern errno_t ui_list_sort(ui_list_t *); -
uspace/lib/ui/include/ui/scrollbar.h
r56a3c29e r4f6368c 1 1 /* 2 * Copyright (c) 202 2Jiri Svoboda2 * Copyright (c) 2023 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 54 54 extern void ui_scrollbar_set_rect(ui_scrollbar_t *, gfx_rect_t *); 55 55 extern errno_t ui_scrollbar_paint(ui_scrollbar_t *); 56 extern gfx_coord_t ui_scrollbar_t hrough_length(ui_scrollbar_t *);56 extern gfx_coord_t ui_scrollbar_trough_length(ui_scrollbar_t *); 57 57 extern gfx_coord_t ui_scrollbar_move_length(ui_scrollbar_t *); 58 58 extern gfx_coord_t ui_scrollbar_get_pos(ui_scrollbar_t *); … … 60 60 extern void ui_scrollbar_set_pos(ui_scrollbar_t *, gfx_coord_t); 61 61 extern void ui_scrollbar_thumb_press(ui_scrollbar_t *, gfx_coord2_t *); 62 extern void ui_scrollbar_up _through_press(ui_scrollbar_t *);63 extern void ui_scrollbar_ down_through_press(ui_scrollbar_t *);62 extern void ui_scrollbar_upper_trough_press(ui_scrollbar_t *); 63 extern void ui_scrollbar_lower_trough_press(ui_scrollbar_t *); 64 64 extern void ui_scrollbar_release(ui_scrollbar_t *, gfx_coord2_t *); 65 65 extern void ui_scrollbar_update(ui_scrollbar_t *, gfx_coord2_t *); 66 extern void ui_scrollbar_t hroughs_update(ui_scrollbar_t *, gfx_coord2_t *);66 extern void ui_scrollbar_troughs_update(ui_scrollbar_t *, gfx_coord2_t *); 67 67 extern void ui_scrollbar_up(ui_scrollbar_t *); 68 68 extern void ui_scrollbar_down(ui_scrollbar_t *); -
uspace/lib/ui/meson.build
r56a3c29e r4f6368c 27 27 # 28 28 29 deps = [ 'gfx', 'gfxfont', 'memgfx', 'display', 'congfx' ]29 deps = [ 'gfx', 'gfxfont', 'memgfx', 'display', 'congfx', 'clipboard' ] 30 30 src = files( 31 31 'src/accel.c', -
uspace/lib/ui/private/resource.h
r56a3c29e r4f6368c 118 118 gfx_color_t *entry_sel_text_bg_color; 119 119 120 /** Scrollbar t hrough color */121 gfx_color_t *sbar_t hrough_color;122 /** Scrollbar active t hrough color */123 gfx_color_t *sbar_act_t hrough_color;120 /** Scrollbar trough color */ 121 gfx_color_t *sbar_trough_color; 122 /** Scrollbar active trough color */ 123 gfx_color_t *sbar_act_trough_color; 124 124 125 125 /** Expose callback or @c NULL */ -
uspace/lib/ui/private/scrollbar.h
r56a3c29e r4f6368c 1 1 /* 2 * Copyright (c) 202 2Jiri Svoboda2 * Copyright (c) 2023 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 69 69 /** Thumb is currently held down */ 70 70 bool thumb_held; 71 /** Up through is currently held down */72 bool up _through_held;73 /** Pointer is inside up through */74 bool up _through_inside;75 /** Down through is currently held down */76 bool down_through_held;77 /** Pointer is inside down through */78 bool down_through_inside;71 /** Upper trough is currently held down */ 72 bool upper_trough_held; 73 /** Pointer is inside upper trough */ 74 bool upper_trough_inside; 75 /** Lower trough is currently held down */ 76 bool lower_trough_held; 77 /** Pointer is inside lower trough */ 78 bool lower_trough_inside; 79 79 /** Position where thumb was pressed */ 80 80 gfx_coord2_t press_pos; … … 83 83 /** Thumb position */ 84 84 gfx_coord_t pos; 85 /** Last cursor position (when t hrough is held) */85 /** Last cursor position (when trough is held) */ 86 86 gfx_coord2_t last_curs_pos; 87 87 }; … … 94 94 /** Up button rectangle */ 95 95 gfx_rect_t up_btn_rect; 96 /** T hrough rectangle */97 gfx_rect_t t hrough_rect;98 /** Up through rectangle */99 gfx_rect_t up _through_rect;96 /** Trough rectangle */ 97 gfx_rect_t trough_rect; 98 /** Upper trough rectangle */ 99 gfx_rect_t upper_trough_rect; 100 100 /** Thumb rectangle */ 101 101 gfx_rect_t thumb_rect; 102 /** Down through rectangle */103 gfx_rect_t down_through_rect;102 /** Lower trough rectangle */ 103 gfx_rect_t lower_trough_rect; 104 104 /** Down button rectangle */ 105 105 gfx_rect_t down_btn_rect; -
uspace/lib/ui/src/clickmatic.c
r56a3c29e r4f6368c 1 1 /* 2 * Copyright (c) 202 2Jiri Svoboda2 * Copyright (c) 2023 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 35 35 * Clickmatic is used to periodically generate events in particular cases 36 36 * when a mouse button is held down, such as when holding the button or 37 * t hrough of a scrollbar.37 * trough of a scrollbar. 38 38 */ 39 39 -
uspace/lib/ui/src/list.c
r56a3c29e r4f6368c 800 800 } 801 801 802 /** Change list entry caption. 803 * 804 * @param entry UI list entry 805 * @param caption New caption 806 * 807 * @return EOK on success, ENOMEM if out of memory 808 */ 809 errno_t ui_list_entry_set_caption(ui_list_entry_t *entry, const char *caption) 810 { 811 char *dcaption; 812 813 dcaption = str_dup(caption); 814 if (dcaption == NULL) 815 return ENOMEM; 816 817 free(entry->caption); 818 entry->caption = dcaption; 819 820 (void)ui_list_entry_paint(entry, ui_list_entry_get_idx(entry)); 821 return EOK; 822 } 823 802 824 /** Clear UI list entry list. 803 825 * -
uspace/lib/ui/src/resource.c
r56a3c29e r4f6368c 86 86 gfx_color_t *entry_sel_text_fg_color = NULL; 87 87 gfx_color_t *entry_sel_text_bg_color = NULL; 88 gfx_color_t *sbar_t hrough_color = NULL;89 gfx_color_t *sbar_act_t hrough_color = NULL;88 gfx_color_t *sbar_trough_color = NULL; 89 gfx_color_t *sbar_act_trough_color = NULL; 90 90 errno_t rc; 91 91 … … 221 221 222 222 rc = gfx_color_new_rgb_i16(0xe4e4, 0xe4e4, 0xe4e4, 223 &sbar_t hrough_color);223 &sbar_trough_color); 224 224 if (rc != EOK) 225 225 goto error; 226 226 227 227 rc = gfx_color_new_rgb_i16(0x5858, 0x5858, 0x5858, 228 &sbar_act_t hrough_color);228 &sbar_act_trough_color); 229 229 if (rc != EOK) 230 230 goto error; … … 265 265 resource->entry_sel_text_bg_color = entry_sel_text_bg_color; 266 266 267 resource->sbar_t hrough_color = sbar_through_color;268 resource->sbar_act_t hrough_color = sbar_act_through_color;267 resource->sbar_trough_color = sbar_trough_color; 268 resource->sbar_act_trough_color = sbar_act_trough_color; 269 269 270 270 *rresource = resource; … … 327 327 gfx_color_delete(entry_act_bg_color); 328 328 329 if (sbar_t hrough_color != NULL)330 gfx_color_delete(sbar_t hrough_color);331 if (sbar_act_t hrough_color != NULL)332 gfx_color_delete(sbar_act_t hrough_color);329 if (sbar_trough_color != NULL) 330 gfx_color_delete(sbar_trough_color); 331 if (sbar_act_trough_color != NULL) 332 gfx_color_delete(sbar_act_trough_color); 333 333 334 334 if (tface != NULL) … … 376 376 gfx_color_t *entry_sel_text_bg_color = NULL; 377 377 gfx_color_t *entry_act_bg_color = NULL; 378 gfx_color_t *sbar_t hrough_color = NULL;379 gfx_color_t *sbar_act_t hrough_color = NULL;378 gfx_color_t *sbar_trough_color = NULL; 379 gfx_color_t *sbar_act_trough_color = NULL; 380 380 errno_t rc; 381 381 … … 497 497 goto error; 498 498 499 rc = gfx_color_new_ega(0x07, &sbar_t hrough_color);500 if (rc != EOK) 501 goto error; 502 503 rc = gfx_color_new_ega(0x07, &sbar_act_t hrough_color);499 rc = gfx_color_new_ega(0x07, &sbar_trough_color); 500 if (rc != EOK) 501 goto error; 502 503 rc = gfx_color_new_ega(0x07, &sbar_act_trough_color); 504 504 if (rc != EOK) 505 505 goto error; … … 540 540 resource->entry_sel_text_bg_color = entry_sel_text_bg_color; 541 541 542 resource->sbar_t hrough_color = sbar_through_color;543 resource->sbar_act_t hrough_color = sbar_act_through_color;542 resource->sbar_trough_color = sbar_trough_color; 543 resource->sbar_act_trough_color = sbar_act_trough_color; 544 544 545 545 *rresource = resource; … … 601 601 if (entry_sel_text_bg_color != NULL) 602 602 gfx_color_delete(entry_sel_text_bg_color); 603 if (sbar_t hrough_color != NULL)604 gfx_color_delete(sbar_t hrough_color);605 if (sbar_act_t hrough_color != NULL)606 gfx_color_delete(sbar_act_t hrough_color);603 if (sbar_trough_color != NULL) 604 gfx_color_delete(sbar_trough_color); 605 if (sbar_act_trough_color != NULL) 606 gfx_color_delete(sbar_act_trough_color); 607 607 608 608 if (tface != NULL) … … 665 665 gfx_color_delete(resource->entry_sel_text_bg_color); 666 666 667 gfx_color_delete(resource->sbar_t hrough_color);668 gfx_color_delete(resource->sbar_act_t hrough_color);667 gfx_color_delete(resource->sbar_trough_color); 668 gfx_color_delete(resource->sbar_act_trough_color); 669 669 670 670 gfx_font_close(resource->font); -
uspace/lib/ui/src/scrollbar.c
r56a3c29e r4f6368c 1 1 /* 2 * Copyright (c) 202 2Jiri Svoboda2 * Copyright (c) 2023 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 35 35 * Anatomy of a horizontal scrollbar: 36 36 * 37 * Up Down38 * through through39 * +---+------+--------+---------+---+40 * | < | | ||| | | > |41 * +---+------+--------+---------+---+42 * Up Thumb Down43 * button button44 * 45 * +-------- T hrough --------+37 * Upper Lower 38 * trough trough 39 * +---+------+--------+---------+---+ 40 * | < | | ||| | | > | 41 * +---+------+--------+---------+---+ 42 * Up Thumb Down 43 * button button 44 * 45 * +-------- Trough --------+ 46 46 * 47 47 * Scrollbar uses the same terminology whether it is running in horizontal … … 51 51 * The thumb can be dragged to a specific position, resulting in a move 52 52 * event. The up/down buttons generate up/down events. Pressing a mouse 53 * button on the up /down through generates page up / page down events.54 * 55 * Pressing and holding down mouse button on up / down button or up / down56 * through will auto-scroll (using clickmatic).53 * button on the upper/lower trough generates page up / page down events. 54 * 55 * Pressing and holding down mouse button on up / down button or upper / 56 * lower trough will auto-scroll (using clickmatic). 57 57 */ 58 58 … … 360 360 } 361 361 362 /** Determine scrollbar t hrough length.362 /** Determine scrollbar trough length. 363 363 * 364 364 * Return the size of the space within which the thumb can move … … 366 366 * 367 367 * @param scrollbar Scrollbar 368 * @return Scrollbar t hrough length in pixels369 */ 370 gfx_coord_t ui_scrollbar_t hrough_length(ui_scrollbar_t *scrollbar)368 * @return Scrollbar trough length in pixels 369 */ 370 gfx_coord_t ui_scrollbar_trough_length(ui_scrollbar_t *scrollbar) 371 371 { 372 372 ui_resource_t *resource; … … 396 396 gfx_coord_t ui_scrollbar_move_length(ui_scrollbar_t *scrollbar) 397 397 { 398 return ui_scrollbar_t hrough_length(scrollbar) -398 return ui_scrollbar_trough_length(scrollbar) - 399 399 scrollbar->thumb_len; 400 400 } … … 417 417 ui_scrollbar_min_thumb_len; 418 418 419 max_len = ui_scrollbar_t hrough_length(scrollbar);419 max_len = ui_scrollbar_trough_length(scrollbar); 420 420 if (len < min_len) 421 421 len = min_len; … … 459 459 scrollbar->pos = pos; 460 460 (void) ui_scrollbar_paint(scrollbar); 461 ui_scrollbar_t hroughs_update(scrollbar,461 ui_scrollbar_troughs_update(scrollbar, 462 462 &scrollbar->last_curs_pos); 463 463 } … … 487 487 goto error; 488 488 489 /* Paint scrollbar up through */489 /* Paint scrollbar upper trough */ 490 490 rc = gfx_set_color(resource->gc, 491 scrollbar->up _through_held && scrollbar->up_through_inside ?492 resource->sbar_act_t hrough_color :493 resource->sbar_t hrough_color);494 if (rc != EOK) 495 goto error; 496 497 rc = gfx_fill_rect(resource->gc, &geom.up _through_rect);498 if (rc != EOK) 499 goto error; 500 501 /* Paint scrollbar down through */491 scrollbar->upper_trough_held && scrollbar->upper_trough_inside ? 492 resource->sbar_act_trough_color : 493 resource->sbar_trough_color); 494 if (rc != EOK) 495 goto error; 496 497 rc = gfx_fill_rect(resource->gc, &geom.upper_trough_rect); 498 if (rc != EOK) 499 goto error; 500 501 /* Paint scrollbar lower trough */ 502 502 503 503 rc = gfx_set_color(resource->gc, 504 scrollbar-> down_through_held && scrollbar->down_through_inside ?505 resource->sbar_act_t hrough_color :506 resource->sbar_t hrough_color);507 if (rc != EOK) 508 goto error; 509 510 rc = gfx_fill_rect(resource->gc, &geom. down_through_rect);504 scrollbar->lower_trough_held && scrollbar->lower_trough_inside ? 505 resource->sbar_act_trough_color : 506 resource->sbar_trough_color); 507 if (rc != EOK) 508 goto error; 509 510 rc = gfx_fill_rect(resource->gc, &geom.lower_trough_rect); 511 511 if (rc != EOK) 512 512 goto error; … … 561 561 ui_scrollbar_get_geom(scrollbar, &geom); 562 562 563 /* Paint scrollbar t hrough */564 565 rc = ui_paint_text_rect(resource, &geom.t hrough_rect,566 resource->sbar_t hrough_color, "\u2592");563 /* Paint scrollbar trough */ 564 565 rc = ui_paint_text_rect(resource, &geom.trough_rect, 566 resource->sbar_trough_color, "\u2592"); 567 567 if (rc != EOK) 568 568 goto error; … … 571 571 572 572 rc = ui_paint_text_rect(resource, &geom.thumb_rect, 573 resource->sbar_t hrough_color, "\u25a0");573 resource->sbar_trough_color, "\u25a0"); 574 574 if (rc != EOK) 575 575 goto error; … … 647 647 geom->up_btn_rect.p1.y = orect.p1.y; 648 648 649 /* T hrough */650 geom->t hrough_rect.p0.x = geom->up_btn_rect.p1.x;651 geom->t hrough_rect.p0.y = irect.p0.y;652 geom->t hrough_rect.p1.x = orect.p1.x - btn_len;653 geom->t hrough_rect.p1.y = irect.p1.y;649 /* Trough */ 650 geom->trough_rect.p0.x = geom->up_btn_rect.p1.x; 651 geom->trough_rect.p0.y = irect.p0.y; 652 geom->trough_rect.p1.x = orect.p1.x - btn_len; 653 geom->trough_rect.p1.y = irect.p1.y; 654 654 655 655 /* Thumb */ … … 661 661 geom->thumb_rect.p1.y = orect.p1.y; 662 662 663 /* Up through */664 geom->up _through_rect.p0 = geom->through_rect.p0;665 geom->up _through_rect.p1.x = geom->thumb_rect.p0.x;666 geom->up _through_rect.p1.y = geom->through_rect.p1.y;667 668 /* Down through */669 geom-> down_through_rect.p0.x = geom->thumb_rect.p1.x;670 geom-> down_through_rect.p0.y = geom->through_rect.p0.y;671 geom-> down_through_rect.p1 = geom->through_rect.p1;663 /* Upper trough */ 664 geom->upper_trough_rect.p0 = geom->trough_rect.p0; 665 geom->upper_trough_rect.p1.x = geom->thumb_rect.p0.x; 666 geom->upper_trough_rect.p1.y = geom->trough_rect.p1.y; 667 668 /* Lower trough */ 669 geom->lower_trough_rect.p0.x = geom->thumb_rect.p1.x; 670 geom->lower_trough_rect.p0.y = geom->trough_rect.p0.y; 671 geom->lower_trough_rect.p1 = geom->trough_rect.p1; 672 672 673 673 /* Down button */ 674 geom->down_btn_rect.p0.x = geom->t hrough_rect.p1.x;674 geom->down_btn_rect.p0.x = geom->trough_rect.p1.x; 675 675 geom->down_btn_rect.p0.y = orect.p0.y; 676 676 geom->down_btn_rect.p1.x = orect.p1.x; … … 683 683 geom->up_btn_rect.p1.y = orect.p0.y + btn_len; 684 684 685 /* T hrough */686 geom->t hrough_rect.p0.x = irect.p0.x;687 geom->t hrough_rect.p0.y = geom->up_btn_rect.p1.y;688 geom->t hrough_rect.p1.x = irect.p1.x;689 geom->t hrough_rect.p1.y = orect.p1.y - btn_len;685 /* Trough */ 686 geom->trough_rect.p0.x = irect.p0.x; 687 geom->trough_rect.p0.y = geom->up_btn_rect.p1.y; 688 geom->trough_rect.p1.x = irect.p1.x; 689 geom->trough_rect.p1.y = orect.p1.y - btn_len; 690 690 691 691 /* Thumb */ … … 697 697 scrollbar->thumb_len; 698 698 699 /* Up through */700 geom->up _through_rect.p0 = geom->through_rect.p0;701 geom->up _through_rect.p1.x = geom->through_rect.p1.x;702 geom->up _through_rect.p1.y = geom->thumb_rect.p0.y;703 704 /* Down through */705 geom-> down_through_rect.p0.x = geom->through_rect.p0.x;706 geom-> down_through_rect.p0.y = geom->thumb_rect.p1.y;707 geom-> down_through_rect.p1 = geom->through_rect.p1;699 /* Upper trough */ 700 geom->upper_trough_rect.p0 = geom->trough_rect.p0; 701 geom->upper_trough_rect.p1.x = geom->trough_rect.p1.x; 702 geom->upper_trough_rect.p1.y = geom->thumb_rect.p0.y; 703 704 /* Lower trough */ 705 geom->lower_trough_rect.p0.x = geom->trough_rect.p0.x; 706 geom->lower_trough_rect.p0.y = geom->thumb_rect.p1.y; 707 geom->lower_trough_rect.p1 = geom->trough_rect.p1; 708 708 709 709 /* Down button */ 710 710 geom->down_btn_rect.p0.x = orect.p0.x; 711 geom->down_btn_rect.p0.y = geom->t hrough_rect.p1.y;711 geom->down_btn_rect.p0.y = geom->trough_rect.p1.y; 712 712 geom->down_btn_rect.p1.x = orect.p1.x; 713 713 geom->down_btn_rect.p1.y = orect.p1.y; … … 732 732 } 733 733 734 /** Press down scrollbar up through.735 * 736 * @param scrollbar Scrollbar 737 */ 738 void ui_scrollbar_up _through_press(ui_scrollbar_t *scrollbar)734 /** Press down scrollbar upper trough. 735 * 736 * @param scrollbar Scrollbar 737 */ 738 void ui_scrollbar_upper_trough_press(ui_scrollbar_t *scrollbar) 739 739 { 740 740 ui_clickmatic_t *clickmatic = ui_get_clickmatic(scrollbar->ui); 741 741 742 scrollbar->up _through_held = true;743 scrollbar->up _through_inside = true;742 scrollbar->upper_trough_held = true; 743 scrollbar->upper_trough_inside = true; 744 744 745 745 ui_clickmatic_set_cb(clickmatic, &ui_scrollbar_clickmatic_page_up_cb, … … 748 748 } 749 749 750 /** Press down scrollbar down through.751 * 752 * @param scrollbar Scrollbar 753 */ 754 void ui_scrollbar_ down_through_press(ui_scrollbar_t *scrollbar)750 /** Press down scrollbar lower trough. 751 * 752 * @param scrollbar Scrollbar 753 */ 754 void ui_scrollbar_lower_trough_press(ui_scrollbar_t *scrollbar) 755 755 { 756 756 ui_clickmatic_t *clickmatic = ui_get_clickmatic(scrollbar->ui); 757 757 758 scrollbar-> down_through_held = true;759 scrollbar-> down_through_inside = true;758 scrollbar->lower_trough_held = true; 759 scrollbar->lower_trough_inside = true; 760 760 761 761 ui_clickmatic_set_cb(clickmatic, &ui_scrollbar_clickmatic_page_down_cb, … … 778 778 } 779 779 780 if (scrollbar->up _through_held || scrollbar->down_through_held) {780 if (scrollbar->upper_trough_held || scrollbar->lower_trough_held) { 781 781 clickmatic = ui_get_clickmatic(scrollbar->ui); 782 782 ui_clickmatic_release(clickmatic); 783 783 ui_clickmatic_set_cb(clickmatic, NULL, NULL); 784 784 785 scrollbar->up _through_held = false;786 scrollbar-> down_through_held = false;785 scrollbar->upper_trough_held = false; 786 scrollbar->lower_trough_held = false; 787 787 (void) ui_scrollbar_paint(scrollbar); 788 788 } … … 791 791 /** Update state of scrollbar throuhgs. 792 792 * 793 * Update state of scrollbar t hroughs after mouse cursor or thumb has moved.793 * Update state of scrollbar troughs after mouse cursor or thumb has moved. 794 794 * 795 795 * @param scrollbar Scrollbar 796 796 * @param pos Mouse cursor position 797 797 */ 798 void ui_scrollbar_t hroughs_update(ui_scrollbar_t *scrollbar, gfx_coord2_t *pos)798 void ui_scrollbar_troughs_update(ui_scrollbar_t *scrollbar, gfx_coord2_t *pos) 799 799 { 800 800 ui_scrollbar_geom_t geom; … … 804 804 ui_scrollbar_get_geom(scrollbar, &geom); 805 805 806 inside_up = gfx_pix_inside_rect(pos, &geom.up _through_rect);807 inside_down = gfx_pix_inside_rect(pos, &geom. down_through_rect);808 809 if (inside_up && !scrollbar->up _through_inside) {810 scrollbar->up _through_inside = true;806 inside_up = gfx_pix_inside_rect(pos, &geom.upper_trough_rect); 807 inside_down = gfx_pix_inside_rect(pos, &geom.lower_trough_rect); 808 809 if (inside_up && !scrollbar->upper_trough_inside) { 810 scrollbar->upper_trough_inside = true; 811 811 (void) ui_scrollbar_paint(scrollbar); 812 } else if (!inside_up && scrollbar->up _through_inside) {813 scrollbar->up _through_inside = false;812 } else if (!inside_up && scrollbar->upper_trough_inside) { 813 scrollbar->upper_trough_inside = false; 814 814 (void) ui_scrollbar_paint(scrollbar); 815 815 } 816 816 817 if (inside_down && !scrollbar-> down_through_inside) {818 scrollbar-> down_through_inside = true;817 if (inside_down && !scrollbar->lower_trough_inside) { 818 scrollbar->lower_trough_inside = true; 819 819 (void) ui_scrollbar_paint(scrollbar); 820 } else if (!inside_down && scrollbar-> down_through_inside) {821 scrollbar-> down_through_inside = false;820 } else if (!inside_down && scrollbar->lower_trough_inside) { 821 scrollbar->lower_trough_inside = false; 822 822 (void) ui_scrollbar_paint(scrollbar); 823 823 } … … 843 843 } 844 844 845 ui_scrollbar_t hroughs_update(scrollbar, pos);845 ui_scrollbar_troughs_update(scrollbar, pos); 846 846 } 847 847 … … 866 866 } 867 867 868 /** Scrollbar up through was pressed.868 /** Scrollbar upper trough was pressed. 869 869 * 870 870 * @param scrollbar Scrollbar … … 876 876 } 877 877 878 /** Scrollbar down through was pressed.878 /** Scrollbar lower trough was pressed. 879 879 * 880 880 * @param scrollbar Scrollbar … … 927 927 return ui_claimed; 928 928 } 929 if (gfx_pix_inside_rect(&pos, &geom.up _through_rect)) {930 ui_scrollbar_up _through_press(scrollbar);929 if (gfx_pix_inside_rect(&pos, &geom.upper_trough_rect)) { 930 ui_scrollbar_upper_trough_press(scrollbar); 931 931 return ui_claimed; 932 932 } 933 if (gfx_pix_inside_rect(&pos, &geom. down_through_rect)) {934 ui_scrollbar_ down_through_press(scrollbar);933 if (gfx_pix_inside_rect(&pos, &geom.lower_trough_rect)) { 934 ui_scrollbar_lower_trough_press(scrollbar); 935 935 return ui_claimed; 936 936 } 937 937 break; 938 938 case POS_RELEASE: 939 if (scrollbar->thumb_held || scrollbar->up _through_held ||940 scrollbar-> down_through_held) {939 if (scrollbar->thumb_held || scrollbar->upper_trough_held || 940 scrollbar->lower_trough_held) { 941 941 ui_scrollbar_release(scrollbar, &pos); 942 942 return ui_claimed; … … 1118 1118 } 1119 1119 1120 /** Scrollbar clickmatic up through click event.1120 /** Scrollbar clickmatic upper trough click event. 1121 1121 * 1122 1122 * @param clickmatic Clickmatic … … 1127 1127 ui_scrollbar_t *scrollbar = (ui_scrollbar_t *)arg; 1128 1128 1129 if (scrollbar->up _through_inside)1129 if (scrollbar->upper_trough_inside) 1130 1130 ui_scrollbar_page_up(scrollbar); 1131 1131 } 1132 1132 1133 /** Scrollbar clickmatic down through click event.1133 /** Scrollbar clickmatic lower trough click event. 1134 1134 * 1135 1135 * @param clickmatic Clickmatic … … 1140 1140 ui_scrollbar_t *scrollbar = (ui_scrollbar_t *)arg; 1141 1141 1142 if (scrollbar-> down_through_inside)1142 if (scrollbar->lower_trough_inside) 1143 1143 ui_scrollbar_page_down(scrollbar); 1144 1144 } -
uspace/lib/ui/test/list.c
r56a3c29e r4f6368c 1039 1039 } 1040 1040 1041 /** ui_list_entry_set_caption() sets entry captino */ 1042 PCUT_TEST(entry_set_caption) 1043 { 1044 ui_t *ui; 1045 ui_window_t *window; 1046 ui_wnd_params_t params; 1047 ui_list_t *list; 1048 ui_list_entry_attr_t attr; 1049 ui_list_entry_t *entry; 1050 errno_t rc; 1051 1052 rc = ui_create_disp(NULL, &ui); 1053 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1054 1055 ui_wnd_params_init(¶ms); 1056 params.caption = "Test"; 1057 1058 rc = ui_window_create(ui, ¶ms, &window); 1059 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1060 1061 rc = ui_list_create(window, true, &list); 1062 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1063 1064 ui_list_entry_attr_init(&attr); 1065 1066 /* Append entry and get pointer to it */ 1067 attr.caption = "a"; 1068 attr.arg = (void *)1; 1069 entry = NULL; 1070 rc = ui_list_entry_append(list, &attr, &entry); 1071 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1072 PCUT_ASSERT_NOT_NULL(entry); 1073 1074 /* Change caption */ 1075 rc = ui_list_entry_set_caption(entry, "b"); 1076 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1077 PCUT_ASSERT_STR_EQUALS("b", entry->caption); 1078 1079 ui_list_destroy(list); 1080 ui_window_destroy(window); 1081 ui_destroy(ui); 1082 } 1083 1041 1084 /** ui_list_entries_cnt() returns the number of entries */ 1042 1085 PCUT_TEST(entries_cnt) -
uspace/lib/ui/test/scrollbar.c
r56a3c29e r4f6368c 1 1 /* 2 * Copyright (c) 202 2Jiri Svoboda2 * Copyright (c) 2023 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 284 284 } 285 285 286 /** ui_scrollbar_t hrough_length() gives correct scrollbar through length */287 PCUT_TEST(t hrough_length)286 /** ui_scrollbar_trough_length() gives correct scrollbar trough length */ 287 PCUT_TEST(trough_length) 288 288 { 289 289 ui_t *ui = NULL; … … 316 316 ui_scrollbar_set_rect(scrollbar, &rect); 317 317 318 length = ui_scrollbar_t hrough_length(scrollbar);318 length = ui_scrollbar_trough_length(scrollbar); 319 319 320 320 /* Total length minus buttons */ … … 620 620 } 621 621 622 /** Press and release up through */623 PCUT_TEST(up _through_press_release)622 /** Press and release upper trough */ 623 PCUT_TEST(upper_trough_press_release) 624 624 { 625 625 ui_t *ui = NULL; … … 654 654 ui_scrollbar_set_cb(scrollbar, &test_scrollbar_cb, &resp); 655 655 656 PCUT_ASSERT_FALSE(scrollbar->up _through_held);657 658 ui_scrollbar_up _through_press(scrollbar);659 PCUT_ASSERT_TRUE(scrollbar->up _through_held);656 PCUT_ASSERT_FALSE(scrollbar->upper_trough_held); 657 658 ui_scrollbar_upper_trough_press(scrollbar); 659 PCUT_ASSERT_TRUE(scrollbar->upper_trough_held); 660 660 PCUT_ASSERT_TRUE(resp.page_up); 661 661 … … 665 665 666 666 ui_scrollbar_release(scrollbar, &pos); 667 PCUT_ASSERT_FALSE(scrollbar->up _through_held);668 669 ui_scrollbar_destroy(scrollbar); 670 ui_window_destroy(window); 671 ui_destroy(ui); 672 } 673 674 /** Press and release down through */675 PCUT_TEST( down_through_press_release)667 PCUT_ASSERT_FALSE(scrollbar->upper_trough_held); 668 669 ui_scrollbar_destroy(scrollbar); 670 ui_window_destroy(window); 671 ui_destroy(ui); 672 } 673 674 /** Press and release lower trough */ 675 PCUT_TEST(lower_trough_press_release) 676 676 { 677 677 ui_t *ui = NULL; … … 706 706 ui_scrollbar_set_cb(scrollbar, &test_scrollbar_cb, &resp); 707 707 708 PCUT_ASSERT_FALSE(scrollbar-> down_through_held);709 710 ui_scrollbar_ down_through_press(scrollbar);711 PCUT_ASSERT_TRUE(scrollbar-> down_through_held);708 PCUT_ASSERT_FALSE(scrollbar->lower_trough_held); 709 710 ui_scrollbar_lower_trough_press(scrollbar); 711 PCUT_ASSERT_TRUE(scrollbar->lower_trough_held); 712 712 PCUT_ASSERT_TRUE(resp.page_down); 713 713 … … 717 717 718 718 ui_scrollbar_release(scrollbar, &pos); 719 PCUT_ASSERT_FALSE(scrollbar-> down_through_held);720 721 ui_scrollbar_destroy(scrollbar); 722 ui_window_destroy(window); 723 ui_destroy(ui); 724 } 725 726 /** Updating state of t hroughs when cursor or thumb moves */727 PCUT_TEST(t hroughs_update)719 PCUT_ASSERT_FALSE(scrollbar->lower_trough_held); 720 721 ui_scrollbar_destroy(scrollbar); 722 ui_window_destroy(window); 723 ui_destroy(ui); 724 } 725 726 /** Updating state of troughs when cursor or thumb moves */ 727 PCUT_TEST(troughs_update) 728 728 { 729 729 ui_t *ui = NULL; … … 754 754 ui_scrollbar_set_rect(scrollbar, &rect); 755 755 756 PCUT_ASSERT_FALSE(scrollbar-> down_through_inside);756 PCUT_ASSERT_FALSE(scrollbar->lower_trough_inside); 757 757 758 758 pos.x = 60; 759 759 pos.y = 22; 760 760 761 ui_scrollbar_t hroughs_update(scrollbar, &pos);762 PCUT_ASSERT_TRUE(scrollbar-> down_through_inside);761 ui_scrollbar_troughs_update(scrollbar, &pos); 762 PCUT_ASSERT_TRUE(scrollbar->lower_trough_inside); 763 763 764 764 ui_scrollbar_destroy(scrollbar); … … 1082 1082 } 1083 1083 1084 /** ui_scrollbar_pos_event() detects up through press/release */1085 PCUT_TEST(pos_event_press_release_up _through)1084 /** ui_scrollbar_pos_event() detects upper trough press/release */ 1085 PCUT_TEST(pos_event_press_release_upper_trough) 1086 1086 { 1087 1087 ui_t *ui = NULL; … … 1107 1107 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1108 1108 1109 PCUT_ASSERT_FALSE(scrollbar->up _through_held);1109 PCUT_ASSERT_FALSE(scrollbar->upper_trough_held); 1110 1110 1111 1111 rect.p0.x = 20; … … 1115 1115 ui_scrollbar_set_rect(scrollbar, &rect); 1116 1116 1117 /* Need to move thumb so that up through can be accessed */1117 /* Need to move thumb so that upper trough can be accessed */ 1118 1118 ui_scrollbar_set_pos(scrollbar, 42); 1119 1119 1120 /* Press inside up through is claimed and depresses it */1120 /* Press inside upper trough is claimed and depresses it */ 1121 1121 event.type = POS_PRESS; 1122 1122 event.hpos = 50; 1123 1123 event.vpos = 20; 1124 1124 claim = ui_scrollbar_pos_event(scrollbar, &event); 1125 PCUT_ASSERT_TRUE(scrollbar->up _through_held);1125 PCUT_ASSERT_TRUE(scrollbar->upper_trough_held); 1126 1126 PCUT_ASSERT_EQUALS(ui_claimed, claim); 1127 1127 1128 /* Release outside (or anywhere) is claimed and relases up through */1128 /* Release outside (or anywhere) is claimed and relases upper trough */ 1129 1129 event.type = POS_RELEASE; 1130 1130 event.hpos = 41; 1131 1131 event.vpos = 32; 1132 1132 claim = ui_scrollbar_pos_event(scrollbar, &event); 1133 PCUT_ASSERT_FALSE(scrollbar->up _through_held);1133 PCUT_ASSERT_FALSE(scrollbar->upper_trough_held); 1134 1134 PCUT_ASSERT_EQUALS(ui_claimed, claim); 1135 1135 … … 1139 1139 } 1140 1140 1141 /** ui_scrollbar_pos_event() detects down through press/release */1142 PCUT_TEST(pos_event_press_release_ down_through)1141 /** ui_scrollbar_pos_event() detects lower trough press/release */ 1142 PCUT_TEST(pos_event_press_release_lower_trough) 1143 1143 { 1144 1144 ui_t *ui = NULL; … … 1164 1164 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1165 1165 1166 PCUT_ASSERT_FALSE(scrollbar->up _through_held);1166 PCUT_ASSERT_FALSE(scrollbar->upper_trough_held); 1167 1167 1168 1168 rect.p0.x = 20; … … 1172 1172 ui_scrollbar_set_rect(scrollbar, &rect); 1173 1173 1174 /* Press inside down through is claimed and depresses it */1174 /* Press inside lower trough is claimed and depresses it */ 1175 1175 event.type = POS_PRESS; 1176 1176 event.hpos = 70; 1177 1177 event.vpos = 20; 1178 1178 claim = ui_scrollbar_pos_event(scrollbar, &event); 1179 PCUT_ASSERT_TRUE(scrollbar-> down_through_held);1179 PCUT_ASSERT_TRUE(scrollbar->lower_trough_held); 1180 1180 PCUT_ASSERT_EQUALS(ui_claimed, claim); 1181 1181 1182 /* Release outside (or anywhere) is claimed and relases up through */1182 /* Release outside (or anywhere) is claimed and relases upper trough */ 1183 1183 event.type = POS_RELEASE; 1184 1184 event.hpos = 41; 1185 1185 event.vpos = 32; 1186 1186 claim = ui_scrollbar_pos_event(scrollbar, &event); 1187 PCUT_ASSERT_FALSE(scrollbar-> down_through_held);1187 PCUT_ASSERT_FALSE(scrollbar->lower_trough_held); 1188 1188 PCUT_ASSERT_EQUALS(ui_claimed, claim); 1189 1189 -
uspace/srv/clipboard/meson.build
r56a3c29e r4f6368c 1 1 # 2 # Copyright (c) 2023 Jiri Svoboda 2 3 # Copyright (c) 2005 Martin Decky 3 4 # Copyright (c) 2007 Jakub Jermar … … 28 29 # 29 30 31 deps = [ 'clipboard' ] 30 32 src = files('clipboard.c') -
uspace/srv/hid/console/console.c
r56a3c29e r4f6368c 37 37 #include <stdio.h> 38 38 #include <adt/prodcons.h> 39 #include <io/console.h> 39 40 #include <io/input.h> 40 41 #include <ipc/vfs.h> -
uspace/srv/hid/console/meson.build
r56a3c29e r4f6368c 28 28 # 29 29 30 deps = [ 'console', 'input', 'output' ] 30 31 src = files('console.c') -
uspace/srv/hid/display/meson.build
r56a3c29e r4f6368c 27 27 # 28 28 29 deps = [ 'ipcgfx', 'memgfx', 'display', 'ddev', 'dispcfg', 'wndmgt' ]29 deps = [ 'ipcgfx', 'memgfx', 'display', 'ddev', 'dispcfg', 'wndmgt', 'input' ] 30 30 31 31 src = files( -
uspace/srv/hid/input/meson.build
r56a3c29e r4f6368c 28 28 # 29 29 30 deps = [ 'drv' ]30 deps = [ 'drv', 'console', 'input' ] 31 31 src = files( 32 32 'layout/cz.c', -
uspace/srv/hid/isdv4_tablet/meson.build
r56a3c29e r4f6368c 27 27 # 28 28 29 deps = [ 'drv' ]29 deps = [ 'drv', 'input' ] 30 30 src = files('main.c', 'isdv4.c') -
uspace/srv/hid/output/meson.build
r56a3c29e r4f6368c 28 28 # 29 29 30 deps = [ 'codepage', ' drv', 'fbfont', 'pixconv', 'ddev' ]30 deps = [ 'codepage', 'console', 'drv', 'fbfont', 'pixconv', 'ddev', 'output' ] 31 31 src = files( 32 32 'ctl/serial.c', -
uspace/srv/hid/remcons/meson.build
r56a3c29e r4f6368c 28 28 # 29 29 30 deps = [ 'inet' ]30 deps = [ 'inet', 'console' ] 31 31 src = files('remcons.c', 'user.c') -
uspace/srv/hid/s3c24xx_ts/meson.build
r56a3c29e r4f6368c 27 27 # 28 28 29 deps = [ 'input' ] 29 30 src = files('s3c24xx_ts.c') -
uspace/srv/hid/s3c24xx_ts/s3c24xx_ts.c
r56a3c29e r4f6368c 39 39 #include <ddi.h> 40 40 #include <loc.h> 41 #include <io/console.h>42 41 #include <vfs/vfs.h> 43 42 #include <ipc/mouseev.h> -
uspace/srv/taskmon/meson.build
r56a3c29e r4f6368c 1 1 # 2 # Copyright (c) 20 10Jiri Svoboda2 # Copyright (c) 2023 Jiri Svoboda 3 3 # All rights reserved. 4 4 # … … 27 27 # 28 28 29 deps = [ 'corecfg' ] 29 30 src = files('taskmon.c') -
uspace/srv/test/ipc-test/meson.build
r56a3c29e r4f6368c 1 1 # 2 # Copyright (c) 20 18Jiri Svoboda2 # Copyright (c) 2023 Jiri Svoboda 3 3 # All rights reserved. 4 4 # … … 27 27 # 28 28 29 deps = [ 'ipctest' ] 29 30 src = files('main.c')
Note:
See TracChangeset
for help on using the changeset viewer.