Changes in uspace/app/uidemo/uidemo.c [08499f0:a977e37] in mainline
- File:
-
- 1 edited
-
uspace/app/uidemo/uidemo.c (modified) (32 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/uidemo/uidemo.c
r08499f0 ra977e37 1 1 /* 2 * Copyright (c) 202 6Jiri Svoboda2 * Copyright (c) 2021 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 33 33 */ 34 34 35 #include <fibril_synch.h>36 35 #include <gfx/bitmap.h> 37 36 #include <gfx/coord.h> … … 41 40 #include <str.h> 42 41 #include <ui/entry.h> 43 #include <ui/filedialog.h>44 42 #include <ui/fixed.h> 45 43 #include <ui/image.h> 46 44 #include <ui/label.h> 47 #include <ui/list.h> 45 #include <ui/menubar.h> 46 #include <ui/menuentry.h> 48 47 #include <ui/menu.h> 49 #include <ui/menubar.h>50 #include <ui/menudd.h>51 #include <ui/menuentry.h>52 48 #include <ui/msgdialog.h> 53 49 #include <ui/pbutton.h> 54 #include <ui/promptdialog.h>55 50 #include <ui/resource.h> 56 #include <ui/selectdialog.h>57 #include <ui/tab.h>58 #include <ui/tabset.h>59 51 #include <ui/ui.h> 60 52 #include <ui/window.h> 61 53 #include "uidemo.h" 62 54 63 enum {64 scrollbar_update_interval_ms = 1000,65 ui_demo_progress_step = 1766 };67 68 55 static errno_t bitmap_moire(gfx_bitmap_t *, gfx_coord_t, gfx_coord_t); 69 56 … … 98 85 }; 99 86 100 static void scrollbar_up(ui_scrollbar_t *, void *);101 static void scrollbar_down(ui_scrollbar_t *, void *);102 static void scrollbar_page_up(ui_scrollbar_t *, void *);103 static void scrollbar_page_down(ui_scrollbar_t *, void *);104 static void scrollbar_moved(ui_scrollbar_t *, void *, gfx_coord_t);105 106 static ui_scrollbar_cb_t scrollbar_cb = {107 .up = scrollbar_up,108 .down = scrollbar_down,109 .page_up = scrollbar_page_up,110 .page_down = scrollbar_page_down,111 .moved = scrollbar_moved112 };113 114 static void uidemo_file_load(ui_menu_entry_t *, void *);115 87 static void uidemo_file_message(ui_menu_entry_t *, void *); 116 static void uidemo_file_confirmation(ui_menu_entry_t *, void *);117 88 static void uidemo_file_exit(ui_menu_entry_t *, void *); 118 static void uidemo_edit_modify(ui_menu_entry_t *, void *);119 static void uidemo_edit_insert_character(ui_menu_entry_t *, void *);120 121 static void file_dialog_bok(ui_file_dialog_t *, void *, const char *);122 static void file_dialog_bcancel(ui_file_dialog_t *, void *);123 static void file_dialog_close(ui_file_dialog_t *, void *);124 125 static ui_file_dialog_cb_t file_dialog_cb = {126 .bok = file_dialog_bok,127 .bcancel = file_dialog_bcancel,128 .close = file_dialog_close129 };130 131 static void prompt_dialog_bok(ui_prompt_dialog_t *, void *, const char *);132 static void prompt_dialog_bcancel(ui_prompt_dialog_t *, void *);133 static void prompt_dialog_close(ui_prompt_dialog_t *, void *);134 135 static ui_prompt_dialog_cb_t prompt_dialog_cb = {136 .bok = prompt_dialog_bok,137 .bcancel = prompt_dialog_bcancel,138 .close = prompt_dialog_close139 };140 141 static void select_dialog_bok(ui_select_dialog_t *, void *, void *);142 static void select_dialog_bcancel(ui_select_dialog_t *, void *);143 static void select_dialog_close(ui_select_dialog_t *, void *);144 145 static ui_select_dialog_cb_t select_dialog_cb = {146 .bok = select_dialog_bok,147 .bcancel = select_dialog_bcancel,148 .close = select_dialog_close149 };150 89 151 90 static void msg_dialog_button(ui_msg_dialog_t *, void *, unsigned); … … 157 96 }; 158 97 159 /** Horizontal alignment selected by each radio button */160 static const gfx_halign_t uidemo_halign[3] = {161 gfx_halign_left,162 gfx_halign_center,163 gfx_halign_right164 };165 166 98 /** Window close button was clicked. 167 99 * … … 190 122 if (rc != EOK) 191 123 printf("Error changing entry text.\n"); 124 (void) ui_entry_paint(demo->entry); 192 125 } else { 193 126 rc = ui_entry_set_text(demo->entry, "Cancel pressed"); 194 127 if (rc != EOK) 195 128 printf("Error changing entry text.\n"); 129 (void) ui_entry_paint(demo->entry); 196 130 } 197 131 } … … 205 139 { 206 140 ui_demo_t *demo = (ui_demo_t *) arg; 207 208 ui_entry_set_read_only(demo->entry, enable); 141 errno_t rc; 142 143 if (enable) { 144 rc = ui_entry_set_text(demo->entry, "Checked"); 145 if (rc != EOK) 146 printf("Error changing entry text.\n"); 147 (void) ui_entry_paint(demo->entry); 148 } else { 149 rc = ui_entry_set_text(demo->entry, "Unchecked"); 150 if (rc != EOK) 151 printf("Error changing entry text.\n"); 152 (void) ui_entry_paint(demo->entry); 153 } 209 154 } 210 155 … … 218 163 { 219 164 ui_demo_t *demo = (ui_demo_t *) garg; 220 gfx_halign_t halign = *(gfx_halign_t *) barg; 221 222 ui_entry_set_halign(demo->entry, halign); 165 const char *text = (const char *) barg; 166 errno_t rc; 167 168 rc = ui_entry_set_text(demo->entry, text); 169 if (rc != EOK) 170 printf("Error changing entry text.\n"); 223 171 (void) ui_entry_paint(demo->entry); 224 172 } … … 252 200 } 253 201 254 /** Scrollbar up button pressed. 255 * 256 * @param scrollbar Scrollbar 257 * @param arg Argument (demo) 258 */ 259 static void scrollbar_up(ui_scrollbar_t *scrollbar, void *arg) 260 { 261 gfx_coord_t pos; 262 263 pos = ui_scrollbar_get_pos(scrollbar); 264 ui_scrollbar_set_pos(scrollbar, pos - 1); 265 266 pos = ui_scrollbar_get_pos(scrollbar); 267 scrollbar_moved(scrollbar, arg, pos); 268 } 269 270 /** Scrollbar down button pressed. 271 * 272 * @param scrollbar Scrollbar 273 * @param arg Argument (demo) 274 */ 275 static void scrollbar_down(ui_scrollbar_t *scrollbar, void *arg) 276 { 277 gfx_coord_t pos; 278 279 pos = ui_scrollbar_get_pos(scrollbar); 280 ui_scrollbar_set_pos(scrollbar, pos + 1); 281 282 pos = ui_scrollbar_get_pos(scrollbar); 283 scrollbar_moved(scrollbar, arg, pos); 284 } 285 286 /** Scrollbar page up event. 287 * 288 * @param scrollbar Scrollbar 289 * @param arg Argument (demo) 290 */ 291 static void scrollbar_page_up(ui_scrollbar_t *scrollbar, void *arg) 292 { 293 gfx_coord_t pos; 294 295 pos = ui_scrollbar_get_pos(scrollbar); 296 ui_scrollbar_set_pos(scrollbar, pos - 297 ui_scrollbar_trough_length(scrollbar) / 4); 298 299 pos = ui_scrollbar_get_pos(scrollbar); 300 scrollbar_moved(scrollbar, arg, pos); 301 } 302 303 /** Scrollbar page down event. 304 * 305 * @param scrollbar Scrollbar 306 * @param arg Argument (demo) 307 */ 308 static void scrollbar_page_down(ui_scrollbar_t *scrollbar, void *arg) 309 { 310 gfx_coord_t pos; 311 312 pos = ui_scrollbar_get_pos(scrollbar); 313 ui_scrollbar_set_pos(scrollbar, pos + 314 ui_scrollbar_trough_length(scrollbar) / 4); 315 316 pos = ui_scrollbar_get_pos(scrollbar); 317 scrollbar_moved(scrollbar, arg, pos); 318 } 319 320 /** Scrollbar was moved. 321 * 322 * @param scrollbar Scrollbar 323 * @param arg Argument (demo) 324 * @param pos Position 325 */ 326 static void scrollbar_moved(ui_scrollbar_t *scrollbar, void *arg, 327 gfx_coord_t pos) 328 { 329 ui_demo_t *demo = (ui_demo_t *) arg; 330 char *str; 331 errno_t rc; 332 int rv; 333 334 rv = asprintf(&str, "Scrollbar: %d of %d", (int) pos, 335 ui_scrollbar_move_length(scrollbar)); 336 if (rv < 0) { 337 printf("Out of memory.\n"); 338 return; 339 } 340 341 rc = ui_entry_set_text(demo->entry, str); 342 if (rc != EOK) 343 printf("Error changing entry text.\n"); 344 (void) ui_entry_paint(demo->entry); 345 346 free(str); 347 } 348 349 /** Display a message window with OK button. 350 * 351 * @param demo UI demo 352 * @param caption Window caption 353 * @param text Message text 354 */ 355 static void uidemo_show_message(ui_demo_t *demo, const char *caption, 356 const char *text) 357 { 358 ui_msg_dialog_params_t mdparams; 359 ui_msg_dialog_t *dialog; 360 errno_t rc; 361 362 ui_msg_dialog_params_init(&mdparams); 363 mdparams.caption = caption; 364 mdparams.text = text; 365 366 rc = ui_msg_dialog_create(demo->ui, &mdparams, &dialog); 367 if (rc != EOK) { 368 printf("Error creating message dialog.\n"); 369 return; 370 } 371 372 ui_msg_dialog_set_cb(dialog, &msg_dialog_cb, &demo); 373 } 374 375 /** File / Load menu entry selected. 376 * 377 * @param mentry Menu entry 378 * @param arg Argument (demo) 379 */ 380 static void uidemo_file_load(ui_menu_entry_t *mentry, void *arg) 381 { 382 ui_demo_t *demo = (ui_demo_t *) arg; 383 ui_file_dialog_params_t fdparams; 384 ui_file_dialog_t *dialog; 385 errno_t rc; 386 387 ui_file_dialog_params_init(&fdparams); 388 fdparams.caption = "Load File"; 389 390 rc = ui_file_dialog_create(demo->ui, &fdparams, &dialog); 391 if (rc != EOK) { 392 printf("Error creating message dialog.\n"); 393 return; 394 } 395 396 ui_file_dialog_set_cb(dialog, &file_dialog_cb, demo); 397 } 398 399 /** File / Message menu entry selected. 202 /** File/message menu entry selected. 400 203 * 401 204 * @param mentry Menu entry … … 420 223 421 224 ui_msg_dialog_set_cb(dialog, &msg_dialog_cb, &demo); 422 } 423 424 /** File / Confirmation menu entry selected. 225 226 } 227 228 /** File/exit menu entry selected. 425 229 * 426 230 * @param mentry Menu entry 427 231 * @param arg Argument (demo) 428 232 */ 429 static void uidemo_file_ confirmation(ui_menu_entry_t *mentry, void *arg)233 static void uidemo_file_exit(ui_menu_entry_t *mentry, void *arg) 430 234 { 431 235 ui_demo_t *demo = (ui_demo_t *) arg; 432 ui_msg_dialog_params_t mdparams;433 ui_msg_dialog_t *dialog;434 errno_t rc;435 436 ui_msg_dialog_params_init(&mdparams);437 mdparams.caption = "Confirmation";438 mdparams.text = "This will not actually do anything. Proceed?";439 mdparams.choice = umdc_ok_cancel;440 441 rc = ui_msg_dialog_create(demo->ui, &mdparams, &dialog);442 if (rc != EOK) {443 printf("Error creating message dialog.\n");444 return;445 }446 447 ui_msg_dialog_set_cb(dialog, &msg_dialog_cb, &demo);448 }449 450 /** File / Exit menu entry selected.451 *452 * @param mentry Menu entry453 * @param arg Argument (demo)454 */455 static void uidemo_file_exit(ui_menu_entry_t *mentry, void *arg)456 {457 ui_demo_t *demo = (ui_demo_t *) arg;458 236 459 237 ui_quit(demo->ui); 460 }461 462 /** Edit / Modify menu entry selected.463 *464 * @param mentry Menu entry465 * @param arg Argument (demo)466 */467 static void uidemo_edit_modify(ui_menu_entry_t *mentry, void *arg)468 {469 ui_demo_t *demo = (ui_demo_t *) arg;470 ui_prompt_dialog_params_t pdparams;471 ui_prompt_dialog_t *dialog;472 errno_t rc;473 474 ui_prompt_dialog_params_init(&pdparams);475 pdparams.caption = "Modify Entry Text";476 pdparams.prompt = "Enter New Text";477 478 rc = ui_prompt_dialog_create(demo->ui, &pdparams, &dialog);479 if (rc != EOK) {480 printf("Error creating prompt dialog.\n");481 return;482 }483 484 ui_prompt_dialog_set_cb(dialog, &prompt_dialog_cb, demo);485 }486 487 /** Edit / Insert Character menu entry selected.488 *489 * @param mentry Menu entry490 * @param arg Argument (demo)491 */492 static void uidemo_edit_insert_character(ui_menu_entry_t *mentry, void *arg)493 {494 ui_demo_t *demo = (ui_demo_t *) arg;495 ui_select_dialog_params_t sdparams;496 ui_select_dialog_t *dialog;497 ui_list_entry_attr_t attr;498 errno_t rc;499 500 ui_select_dialog_params_init(&sdparams);501 sdparams.caption = "Insert Character";502 sdparams.prompt = "Select character to insert";503 504 rc = ui_select_dialog_create(demo->ui, &sdparams, &dialog);505 if (rc != EOK) {506 printf("Error creating select dialog.\n");507 return;508 }509 510 ui_list_entry_attr_init(&attr);511 attr.caption = "Dollar sign ($)";512 attr.arg = (void *)'$';513 rc = ui_select_dialog_append(dialog, &attr);514 if (rc != EOK) {515 printf("Error appending entry to list.\n");516 return;517 }518 519 ui_list_entry_attr_init(&attr);520 attr.caption = "Hash sign (#)";521 attr.arg = (void *)'#';522 rc = ui_select_dialog_append(dialog, &attr);523 if (rc != EOK) {524 printf("Error appending entry to list.\n");525 return;526 }527 528 ui_list_entry_attr_init(&attr);529 attr.caption = "Question mark (?)";530 attr.arg = (void *)'?';531 rc = ui_select_dialog_append(dialog, &attr);532 if (rc != EOK) {533 printf("Error appending entry to list.\n");534 return;535 }536 537 ui_select_dialog_set_cb(dialog, &select_dialog_cb, demo);538 539 (void) ui_select_dialog_paint(dialog);540 }541 542 /** File dialog OK button press.543 *544 * @param dialog File dialog545 * @param arg Argument (ui_demo_t *)546 * @param fname File name547 */548 static void file_dialog_bok(ui_file_dialog_t *dialog, void *arg,549 const char *fname)550 {551 ui_demo_t *demo = (ui_demo_t *) arg;552 char buf[128];553 char *p;554 FILE *f;555 556 ui_file_dialog_destroy(dialog);557 558 f = fopen(fname, "rt");559 if (f == NULL) {560 uidemo_show_message(demo, "Error", "Error opening file.");561 return;562 }563 564 p = fgets(buf, sizeof(buf), f);565 if (p == NULL) {566 uidemo_show_message(demo, "Error", "Error reading file.");567 fclose(f);568 return;569 }570 571 /* Cut string off at the first non-printable character */572 p = buf;573 while (*p != '\0') {574 if (*p < ' ') {575 *p = '\0';576 break;577 }578 ++p;579 }580 581 ui_entry_set_text(demo->entry, buf);582 fclose(f);583 }584 585 /** File dialog cancel button press.586 *587 * @param dialog File dialog588 * @param arg Argument (ui_demo_t *)589 */590 static void file_dialog_bcancel(ui_file_dialog_t *dialog, void *arg)591 {592 ui_demo_t *demo = (ui_demo_t *) arg;593 594 (void) demo;595 ui_file_dialog_destroy(dialog);596 }597 598 /** File dialog close request.599 *600 * @param dialog File dialog601 * @param arg Argument (ui_demo_t *)602 */603 static void file_dialog_close(ui_file_dialog_t *dialog, void *arg)604 {605 ui_demo_t *demo = (ui_demo_t *) arg;606 607 (void) demo;608 ui_file_dialog_destroy(dialog);609 }610 611 /** Prompt dialog OK button press.612 *613 * @param dialog Prompt dialog614 * @param arg Argument (ui_demo_t *)615 * @param text Submitted text616 */617 static void prompt_dialog_bok(ui_prompt_dialog_t *dialog, void *arg,618 const char *text)619 {620 ui_demo_t *demo = (ui_demo_t *) arg;621 622 ui_prompt_dialog_destroy(dialog);623 ui_entry_set_text(demo->entry, text);624 }625 626 /** Prompt dialog cancel button press.627 *628 * @param dialog Prompt dialog629 * @param arg Argument (ui_demo_t *)630 */631 static void prompt_dialog_bcancel(ui_prompt_dialog_t *dialog, void *arg)632 {633 ui_demo_t *demo = (ui_demo_t *) arg;634 635 (void) demo;636 ui_prompt_dialog_destroy(dialog);637 }638 639 /** Prompt dialog close request.640 *641 * @param dialog Prompt dialog642 * @param arg Argument (ui_demo_t *)643 */644 static void prompt_dialog_close(ui_prompt_dialog_t *dialog, void *arg)645 {646 ui_demo_t *demo = (ui_demo_t *) arg;647 648 (void) demo;649 ui_prompt_dialog_destroy(dialog);650 }651 652 /** Select dialog OK button press.653 *654 * @param dialog Select dialog655 * @param arg Argument (ui_demo_t *)656 * @param text Submitted text657 */658 static void select_dialog_bok(ui_select_dialog_t *dialog, void *arg,659 void *earg)660 {661 ui_demo_t *demo = (ui_demo_t *) arg;662 char str[2];663 664 ui_select_dialog_destroy(dialog);665 str[0] = (char)(intptr_t)earg;666 str[1] = '\0';667 (void) ui_entry_insert_str(demo->entry, str);668 }669 670 /** Select dialog cancel button press.671 *672 * @param dialog Select dialog673 * @param arg Argument (ui_demo_t *)674 */675 static void select_dialog_bcancel(ui_select_dialog_t *dialog, void *arg)676 {677 ui_demo_t *demo = (ui_demo_t *) arg;678 679 (void) demo;680 ui_select_dialog_destroy(dialog);681 }682 683 /** Select dialog close request.684 *685 * @param dialog Select dialog686 * @param arg Argument (ui_demo_t *)687 */688 static void select_dialog_close(ui_select_dialog_t *dialog, void *arg)689 {690 ui_demo_t *demo = (ui_demo_t *) arg;691 692 (void) demo;693 ui_select_dialog_destroy(dialog);694 238 } 695 239 … … 720 264 (void) demo; 721 265 ui_msg_dialog_destroy(dialog); 722 }723 724 static void ui_demo_timer_fun(void *arg)725 {726 ui_demo_t *demo = (ui_demo_t *) arg;727 728 if (demo->progress_value < 100) {729 demo->progress_value += ui_demo_progress_step;730 if (demo->progress_value > 100)731 demo->progress_value = 100;732 } else {733 demo->progress_value = 0;734 }735 736 ui_progress_set_value(demo->progress, demo->progress_value);737 738 if (ui_tab_is_selected(demo->tbars)) {739 ui_lock(demo->ui);740 ui_progress_paint(demo->progress);741 ui_unlock(demo->ui);742 }743 744 fibril_timer_set(demo->timer, 1000 * scrollbar_update_interval_ms,745 ui_demo_timer_fun, (void *)demo);746 266 } 747 267 … … 760 280 gfx_coord2_t off; 761 281 ui_menu_entry_t *mmsg; 762 ui_menu_entry_t *mload;763 282 ui_menu_entry_t *mfoo; 764 283 ui_menu_entry_t *mbar; 765 284 ui_menu_entry_t *mfoobar; 766 ui_menu_entry_t *msep;767 285 ui_menu_entry_t *mexit; 768 ui_menu_entry_t *mmodify;769 ui_menu_entry_t *minsert_char;770 286 ui_menu_entry_t *mabout; 771 ui_list_entry_attr_t eattr;772 287 errno_t rc; 773 288 … … 783 298 ui_wnd_params_init(¶ms); 784 299 params.caption = "UI Demo"; 785 params.style |= ui_wds_ maximize_btn | ui_wds_resizable;300 params.style |= ui_wds_resizable; 786 301 787 302 /* FIXME: Auto layout */ … … 789 304 params.rect.p0.x = 0; 790 305 params.rect.p0.y = 0; 791 params.rect.p1.x = 46;306 params.rect.p1.x = 80; 792 307 params.rect.p1.y = 25; 793 308 } else { 794 309 params.rect.p0.x = 0; 795 310 params.rect.p0.y = 0; 796 params.rect.p1.x = 255; 797 params.rect.p1.y = 410; 798 } 799 800 /* Only allow making the window larger */ 801 gfx_rect_dims(¶ms.rect, ¶ms.min_size); 311 params.rect.p1.x = 220; 312 params.rect.p1.y = 350; 313 } 802 314 803 315 rc = ui_window_create(ui, ¶ms, &window); … … 825 337 } 826 338 827 rc = ui_menu_ dd_create(demo.mbar, "~F~ile", NULL, &demo.mfile);828 if (rc != EOK) { 829 printf("Error creating menu.\n"); 830 return rc; 831 } 832 833 rc = ui_menu_entry_create(demo.mfile, " ~M~essage", "", &mmsg);339 rc = ui_menu_create(demo.mbar, "File", &demo.mfile); 340 if (rc != EOK) { 341 printf("Error creating menu.\n"); 342 return rc; 343 } 344 345 rc = ui_menu_entry_create(demo.mfile, "Message", "", &mmsg); 834 346 if (rc != EOK) { 835 347 printf("Error creating menu.\n"); … … 839 351 ui_menu_entry_set_cb(mmsg, uidemo_file_message, (void *) &demo); 840 352 841 rc = ui_menu_entry_create(demo.mfile, "~C~onfirmation", "", &mmsg); 842 if (rc != EOK) { 843 printf("Error creating menu.\n"); 844 return rc; 845 } 846 847 ui_menu_entry_set_cb(mmsg, uidemo_file_confirmation, (void *) &demo); 848 849 rc = ui_menu_entry_create(demo.mfile, "~L~oad", "", &mload); 850 if (rc != EOK) { 851 printf("Error creating menu.\n"); 852 return rc; 853 } 854 855 ui_menu_entry_set_cb(mload, uidemo_file_load, (void *) &demo); 856 857 rc = ui_menu_entry_create(demo.mfile, "~F~oo", "Ctrl-Alt-Del", &mfoo); 858 if (rc != EOK) { 859 printf("Error creating menu.\n"); 860 return rc; 861 } 862 863 rc = ui_menu_entry_create(demo.mfile, "~B~ar", "", &mbar); 864 if (rc != EOK) { 865 printf("Error creating menu.\n"); 866 return rc; 867 } 868 869 rc = ui_menu_entry_create(demo.mfile, "F~o~obar", "", &mfoobar); 870 if (rc != EOK) { 871 printf("Error creating menu.\n"); 872 return rc; 873 } 874 875 ui_menu_entry_set_disabled(mfoobar, true); 876 877 rc = ui_menu_entry_sep_create(demo.mfile, &msep); 878 if (rc != EOK) { 879 printf("Error creating menu.\n"); 880 return rc; 881 } 882 883 rc = ui_menu_entry_create(demo.mfile, "E~x~it", "Alt-F4", &mexit); 353 rc = ui_menu_entry_create(demo.mfile, "Foo", "Ctrl-Alt-Del", &mfoo); 354 if (rc != EOK) { 355 printf("Error creating menu.\n"); 356 return rc; 357 } 358 359 rc = ui_menu_entry_create(demo.mfile, "Bar", "", &mbar); 360 if (rc != EOK) { 361 printf("Error creating menu.\n"); 362 return rc; 363 } 364 365 rc = ui_menu_entry_create(demo.mfile, "Foobar", "", &mfoobar); 366 if (rc != EOK) { 367 printf("Error creating menu.\n"); 368 return rc; 369 } 370 371 rc = ui_menu_entry_sep_create(demo.mfile, &mexit); 372 if (rc != EOK) { 373 printf("Error creating menu.\n"); 374 return rc; 375 } 376 377 rc = ui_menu_entry_create(demo.mfile, "Exit", "Alt-F4", &mexit); 884 378 if (rc != EOK) { 885 379 printf("Error creating menu.\n"); … … 889 383 ui_menu_entry_set_cb(mexit, uidemo_file_exit, (void *) &demo); 890 384 891 rc = ui_menu_dd_create(demo.mbar, "~E~dit", NULL, &demo.medit); 892 if (rc != EOK) { 893 printf("Error creating menu.\n"); 894 return rc; 895 } 896 897 rc = ui_menu_entry_create(demo.medit, "~M~odify", "", &mmodify); 898 if (rc != EOK) { 899 printf("Error creating menu.\n"); 900 return rc; 901 } 902 903 ui_menu_entry_set_cb(mmodify, uidemo_edit_modify, (void *) &demo); 904 905 rc = ui_menu_entry_create(demo.medit, "~I~nsert Character", 906 "", &minsert_char); 907 if (rc != EOK) { 908 printf("Error creating menu.\n"); 909 return rc; 910 } 911 912 ui_menu_entry_set_cb(minsert_char, uidemo_edit_insert_character, 913 (void *) &demo); 914 915 rc = ui_menu_dd_create(demo.mbar, "~P~references", NULL, 916 &demo.mpreferences); 917 if (rc != EOK) { 918 printf("Error creating menu.\n"); 919 return rc; 920 } 921 922 rc = ui_menu_dd_create(demo.mbar, "~H~elp", NULL, &demo.mhelp); 923 if (rc != EOK) { 924 printf("Error creating menu.\n"); 925 return rc; 926 } 927 928 rc = ui_menu_entry_create(demo.mhelp, "~A~bout", "Ctrl-H, F1", &mabout); 385 rc = ui_menu_create(demo.mbar, "Edit", &demo.medit); 386 if (rc != EOK) { 387 printf("Error creating menu.\n"); 388 return rc; 389 } 390 391 rc = ui_menu_create(demo.mbar, "Preferences", &demo.mpreferences); 392 if (rc != EOK) { 393 printf("Error creating menu.\n"); 394 return rc; 395 } 396 397 rc = ui_menu_create(demo.mbar, "Help", &demo.mhelp); 398 if (rc != EOK) { 399 printf("Error creating menu.\n"); 400 return rc; 401 } 402 403 rc = ui_menu_entry_create(demo.mhelp, "About", "Ctrl-H, F1", &mabout); 929 404 if (rc != EOK) { 930 405 printf("Error creating menu.\n"); … … 935 410 if (ui_is_textmode(ui)) { 936 411 rect.p0.x = 1; 937 rect.p0.y = 1;938 rect.p1.x = 43;939 rect.p1.y = 2;412 rect.p0.y = 2; 413 rect.p1.x = 79; 414 rect.p1.y = 3; 940 415 } else { 941 416 rect.p0.x = 4; 942 417 rect.p0.y = 30; 943 rect.p1.x = 2 51;418 rect.p1.x = 216; 944 419 rect.p1.y = 52; 945 420 } 946 947 421 ui_menu_bar_set_rect(demo.mbar, &rect); 948 422 … … 953 427 } 954 428 955 rc = ui_ tab_set_create(ui_res, &demo.tabset);956 if (rc != EOK) { 957 printf("Error creating tab set.\n");429 rc = ui_entry_create(window, "", &demo.entry); 430 if (rc != EOK) { 431 printf("Error creating entry.\n"); 958 432 return rc; 959 433 } … … 961 435 /* FIXME: Auto layout */ 962 436 if (ui_is_textmode(ui)) { 963 rect.p0.x = 2 ;964 rect.p0.y = 2;965 rect.p1.x = 44;966 rect.p1.y = 24;437 rect.p0.x = 20; 438 rect.p0.y = 4; 439 rect.p1.x = 60; 440 rect.p1.y = 5; 967 441 } else { 968 rect.p0.x = 8;442 rect.p0.x = 15; 969 443 rect.p0.y = 53; 970 rect.p1.x = 250; 971 rect.p1.y = 405; 972 } 973 974 ui_tab_set_set_rect(demo.tabset, &rect); 975 976 rc = ui_tab_create(demo.tabset, "Basic", &demo.tbasic); 977 if (rc != EOK) { 978 printf("Error creating tab.\n"); 979 return rc; 980 } 981 982 rc = ui_tab_create(demo.tabset, "Lists", &demo.tlists); 983 if (rc != EOK) { 984 printf("Error creating tab.\n"); 985 return rc; 986 } 987 988 rc = ui_tab_create(demo.tabset, "Bars", &demo.tbars); 989 if (rc != EOK) { 990 printf("Error creating tab.\n"); 991 return rc; 992 } 993 994 rc = ui_fixed_add(demo.fixed, ui_tab_set_ctl(demo.tabset)); 995 if (rc != EOK) { 996 printf("Error adding control to layout.\n"); 997 return rc; 998 } 999 1000 rc = ui_fixed_create(&demo.bfixed); 1001 if (rc != EOK) { 1002 printf("Error creating fixed layout.\n"); 1003 return rc; 1004 } 1005 1006 rc = ui_entry_create(window, "", &demo.entry); 1007 if (rc != EOK) { 1008 printf("Error creating entry.\n"); 444 rect.p1.x = 205; 445 rect.p1.y = 78; 446 } 447 448 ui_entry_set_rect(demo.entry, &rect); 449 ui_entry_set_halign(demo.entry, gfx_halign_center); 450 451 rc = ui_fixed_add(demo.fixed, ui_entry_ctl(demo.entry)); 452 if (rc != EOK) { 453 printf("Error adding control to layout.\n"); 454 return rc; 455 } 456 457 rc = ui_label_create(ui_res, "Text label", &demo.label); 458 if (rc != EOK) { 459 printf("Error creating label.\n"); 1009 460 return rc; 1010 461 } … … 1012 463 /* FIXME: Auto layout */ 1013 464 if (ui_is_textmode(ui)) { 1014 rect.p0.x = 4; 1015 rect.p0.y = 5; 1016 rect.p1.x = 41; 1017 rect.p1.y = 6; 465 rect.p0.x = 20; 466 rect.p0.y = 6; 467 rect.p1.x = 60; 468 rect.p1.y = 7; 469 } else { 470 rect.p0.x = 60; 471 rect.p0.y = 88; 472 rect.p1.x = 160; 473 rect.p1.y = 101; 474 } 475 476 ui_label_set_rect(demo.label, &rect); 477 ui_label_set_halign(demo.label, gfx_halign_center); 478 479 rc = ui_fixed_add(demo.fixed, ui_label_ctl(demo.label)); 480 if (rc != EOK) { 481 printf("Error adding control to layout.\n"); 482 return rc; 483 } 484 485 rc = ui_pbutton_create(ui_res, "OK", &demo.pb1); 486 if (rc != EOK) { 487 printf("Error creating button.\n"); 488 return rc; 489 } 490 491 ui_pbutton_set_cb(demo.pb1, &pbutton_cb, (void *) &demo); 492 493 /* FIXME: Auto layout */ 494 if (ui_is_textmode(ui)) { 495 rect.p0.x = 20; 496 rect.p0.y = 8; 497 rect.p1.x = 30; 498 rect.p1.y = 9; 1018 499 } else { 1019 500 rect.p0.x = 15; 1020 rect.p0.y = 88; 1021 rect.p1.x = 205; 1022 rect.p1.y = 113; 1023 } 1024 1025 ui_entry_set_rect(demo.entry, &rect); 1026 ui_entry_set_halign(demo.entry, gfx_halign_center); 1027 1028 rc = ui_fixed_add(demo.bfixed, ui_entry_ctl(demo.entry)); 1029 if (rc != EOK) { 1030 printf("Error adding control to layout.\n"); 1031 return rc; 1032 } 1033 1034 rc = ui_label_create(ui_res, "Text label", &demo.label); 1035 if (rc != EOK) { 1036 printf("Error creating label.\n"); 1037 return rc; 1038 } 1039 1040 /* FIXME: Auto layout */ 501 rect.p0.y = 111; 502 rect.p1.x = 105; 503 rect.p1.y = 139; 504 } 505 506 ui_pbutton_set_rect(demo.pb1, &rect); 507 508 ui_pbutton_set_default(demo.pb1, true); 509 510 rc = ui_fixed_add(demo.fixed, ui_pbutton_ctl(demo.pb1)); 511 if (rc != EOK) { 512 printf("Error adding control to layout.\n"); 513 return rc; 514 } 515 516 rc = ui_pbutton_create(ui_res, "Cancel", &demo.pb2); 517 if (rc != EOK) { 518 printf("Error creating button.\n"); 519 return rc; 520 } 521 522 ui_pbutton_set_cb(demo.pb2, &pbutton_cb, (void *) &demo); 523 1041 524 if (ui_is_textmode(ui)) { 1042 rect.p0.x = 4; 1043 rect.p0.y = 7; 1044 rect.p1.x = 41; 1045 rect.p1.y = 8; 1046 } else { 1047 rect.p0.x = 60; 1048 rect.p0.y = 123; 1049 rect.p1.x = 160; 1050 rect.p1.y = 136; 1051 } 1052 1053 ui_label_set_rect(demo.label, &rect); 1054 ui_label_set_halign(demo.label, gfx_halign_center); 1055 1056 rc = ui_fixed_add(demo.bfixed, ui_label_ctl(demo.label)); 1057 if (rc != EOK) { 1058 printf("Error adding control to layout.\n"); 1059 return rc; 1060 } 1061 1062 rc = ui_pbutton_create(ui_res, "OK", &demo.pb1); 1063 if (rc != EOK) { 1064 printf("Error creating button.\n"); 1065 return rc; 1066 } 1067 1068 ui_pbutton_set_cb(demo.pb1, &pbutton_cb, (void *) &demo); 1069 1070 /* FIXME: Auto layout */ 1071 if (ui_is_textmode(ui)) { 1072 rect.p0.x = 4; 1073 rect.p0.y = 9; 1074 rect.p1.x = 15; 1075 rect.p1.y = 10; 1076 } else { 1077 rect.p0.x = 15; 1078 rect.p0.y = 146; 1079 rect.p1.x = 105; 1080 rect.p1.y = 174; 1081 } 1082 1083 ui_pbutton_set_rect(demo.pb1, &rect); 1084 1085 ui_pbutton_set_default(demo.pb1, true); 1086 1087 rc = ui_fixed_add(demo.bfixed, ui_pbutton_ctl(demo.pb1)); 1088 if (rc != EOK) { 1089 printf("Error adding control to layout.\n"); 1090 return rc; 1091 } 1092 1093 rc = ui_pbutton_create(ui_res, "Cancel", &demo.pb2); 1094 if (rc != EOK) { 1095 printf("Error creating button.\n"); 1096 return rc; 1097 } 1098 1099 ui_pbutton_set_cb(demo.pb2, &pbutton_cb, (void *) &demo); 1100 1101 if (ui_is_textmode(ui)) { 1102 rect.p0.x = 30; 1103 rect.p0.y = 9; 1104 rect.p1.x = 41; 1105 rect.p1.y = 10; 525 rect.p0.x = 50; 526 rect.p0.y = 8; 527 rect.p1.x = 60; 528 rect.p1.y = 9; 1106 529 } else { 1107 530 rect.p0.x = 115; 1108 rect.p0.y = 1 46;531 rect.p0.y = 111; 1109 532 rect.p1.x = 205; 1110 rect.p1.y = 1 74;533 rect.p1.y = 139; 1111 534 } 1112 535 1113 536 ui_pbutton_set_rect(demo.pb2, &rect); 1114 537 1115 rc = ui_fixed_add(demo. bfixed, ui_pbutton_ctl(demo.pb2));538 rc = ui_fixed_add(demo.fixed, ui_pbutton_ctl(demo.pb2)); 1116 539 if (rc != EOK) { 1117 540 printf("Error adding control to layout.\n"); … … 1120 543 1121 544 gfx_bitmap_params_init(&bparams); 1122 if (ui_is_textmode(ui)) { 1123 bparams.rect.p0.x = 0; 1124 bparams.rect.p0.y = 0; 1125 bparams.rect.p1.x = 37; 1126 bparams.rect.p1.y = 2; 1127 } else { 1128 bparams.rect.p0.x = 0; 1129 bparams.rect.p0.y = 0; 1130 bparams.rect.p1.x = 188; 1131 bparams.rect.p1.y = 24; 1132 } 545 bparams.rect.p0.x = 0; 546 bparams.rect.p0.y = 0; 547 bparams.rect.p1.x = 188; 548 bparams.rect.p1.y = 24; 1133 549 1134 550 rc = gfx_bitmap_create(gc, &bparams, NULL, &bitmap); … … 1146 562 } 1147 563 1148 if (ui_is_textmode(ui)) { 1149 off.x = 4; 1150 off.y = 11; 1151 } else { 1152 off.x = 15; 1153 off.y = 190; 1154 } 1155 564 off.x = 15; 565 off.y = 155; 1156 566 gfx_rect_translate(&off, &bparams.rect, &rect); 1157 567 1158 568 /* Adjust for frame width (2 x 1 pixel) */ 1159 if (!ui_is_textmode(ui)) { 1160 ui_image_set_flags(demo.image, ui_imgf_frame); 1161 rect.p1.x += 2; 1162 rect.p1.y += 2; 1163 } 1164 569 rect.p1.x += 2; 570 rect.p1.y += 2; 1165 571 ui_image_set_rect(demo.image, &rect); 1166 1167 rc = ui_fixed_add(demo.bfixed, ui_image_ctl(demo.image)); 1168 if (rc != EOK) { 1169 printf("Error adding control to layout.\n"); 1170 return rc; 1171 } 1172 1173 rc = ui_checkbox_create(ui_res, "Read only", &demo.checkbox); 572 ui_image_set_flags(demo.image, ui_imgf_frame); 573 574 rc = ui_fixed_add(demo.fixed, ui_image_ctl(demo.image)); 575 if (rc != EOK) { 576 printf("Error adding control to layout.\n"); 577 return rc; 578 } 579 580 rc = ui_checkbox_create(ui_res, "Check me", &demo.checkbox); 1174 581 if (rc != EOK) { 1175 582 printf("Error creating check box.\n"); … … 1179 586 ui_checkbox_set_cb(demo.checkbox, &checkbox_cb, (void *) &demo); 1180 587 1181 /* FIXME: Auto layout */ 1182 if (ui_is_textmode(ui)) { 1183 rect.p0.x = 4; 1184 rect.p0.y = 14; 1185 rect.p1.x = 14; 1186 rect.p1.y = 15; 1187 } else { 1188 rect.p0.x = 15; 1189 rect.p0.y = 225; 1190 rect.p1.x = 140; 1191 rect.p1.y = 245; 1192 } 1193 588 rect.p0.x = 15; 589 rect.p0.y = 190; 590 rect.p1.x = 140; 591 rect.p1.y = 210; 1194 592 ui_checkbox_set_rect(demo.checkbox, &rect); 1195 593 1196 rc = ui_fixed_add(demo. bfixed, ui_checkbox_ctl(demo.checkbox));594 rc = ui_fixed_add(demo.fixed, ui_checkbox_ctl(demo.checkbox)); 1197 595 if (rc != EOK) { 1198 596 printf("Error adding control to layout.\n"); … … 1206 604 } 1207 605 1208 rc = ui_rbutton_create(demo.rbgroup, " Left", (void *) &uidemo_halign[0],1209 &demo.rb left);606 rc = ui_rbutton_create(demo.rbgroup, "Option 1", (void *) "First", 607 &demo.rb1); 1210 608 if (rc != EOK) { 1211 609 printf("Error creating radio button.\n"); … … 1216 614 (void *) &demo); 1217 615 1218 /* FIXME: Auto layout */ 1219 if (ui_is_textmode(ui)) { 1220 rect.p0.x = 4; 1221 rect.p0.y = 16; 1222 rect.p1.x = 14; 1223 rect.p1.y = 17; 1224 } else { 1225 rect.p0.x = 15; 1226 rect.p0.y = 255; 1227 rect.p1.x = 140; 1228 rect.p1.y = 275; 1229 } 1230 ui_rbutton_set_rect(demo.rbleft, &rect); 1231 1232 rc = ui_fixed_add(demo.bfixed, ui_rbutton_ctl(demo.rbleft)); 1233 if (rc != EOK) { 1234 printf("Error adding control to layout.\n"); 1235 return rc; 1236 } 1237 1238 rc = ui_rbutton_create(demo.rbgroup, "Center", (void *) &uidemo_halign[1], 1239 &demo.rbcenter); 616 rect.p0.x = 15; 617 rect.p0.y = 220; 618 rect.p1.x = 140; 619 rect.p1.y = 240; 620 ui_rbutton_set_rect(demo.rb1, &rect); 621 622 rc = ui_fixed_add(demo.fixed, ui_rbutton_ctl(demo.rb1)); 623 if (rc != EOK) { 624 printf("Error adding control to layout.\n"); 625 return rc; 626 } 627 628 rc = ui_rbutton_create(demo.rbgroup, "Option 2", (void *) "Second", 629 &demo.rb2); 1240 630 if (rc != EOK) { 1241 631 printf("Error creating radio button.\n"); … … 1243 633 } 1244 634 1245 /* FIXME: Auto layout */ 1246 if (ui_is_textmode(ui)) { 1247 rect.p0.x = 4; 1248 rect.p0.y = 17; 1249 rect.p1.x = 14; 1250 rect.p1.y = 18; 1251 } else { 1252 rect.p0.x = 15; 1253 rect.p0.y = 285; 1254 rect.p1.x = 140; 1255 rect.p1.y = 305; 1256 } 1257 ui_rbutton_set_rect(demo.rbcenter, &rect); 1258 ui_rbutton_select(demo.rbcenter); 1259 1260 rc = ui_fixed_add(demo.bfixed, ui_rbutton_ctl(demo.rbcenter)); 1261 if (rc != EOK) { 1262 printf("Error adding control to layout.\n"); 1263 return rc; 1264 } 1265 1266 rc = ui_rbutton_create(demo.rbgroup, "Right", (void *) &uidemo_halign[2], 1267 &demo.rbright); 635 rect.p0.x = 15; 636 rect.p0.y = 250; 637 rect.p1.x = 140; 638 rect.p1.y = 270; 639 ui_rbutton_set_rect(demo.rb2, &rect); 640 641 rc = ui_fixed_add(demo.fixed, ui_rbutton_ctl(demo.rb2)); 642 if (rc != EOK) { 643 printf("Error adding control to layout.\n"); 644 return rc; 645 } 646 647 rc = ui_rbutton_create(demo.rbgroup, "Option 3", (void *) "Third", 648 &demo.rb3); 1268 649 if (rc != EOK) { 1269 650 printf("Error creating radio button.\n"); … … 1271 652 } 1272 653 1273 /* FIXME: Auto layout */ 1274 if (ui_is_textmode(ui)) { 1275 rect.p0.x = 4; 1276 rect.p0.y = 18; 1277 rect.p1.x = 14; 1278 rect.p1.y = 19; 1279 } else { 1280 rect.p0.x = 15; 1281 rect.p0.y = 315; 1282 rect.p1.x = 140; 1283 rect.p1.y = 335; 1284 } 1285 ui_rbutton_set_rect(demo.rbright, &rect); 1286 1287 rc = ui_fixed_add(demo.bfixed, ui_rbutton_ctl(demo.rbright)); 1288 if (rc != EOK) { 1289 printf("Error adding control to layout.\n"); 1290 return rc; 1291 } 1292 1293 rc = ui_slider_create(ui_res, &demo.slider); 654 rect.p0.x = 15; 655 rect.p0.y = 280; 656 rect.p1.x = 140; 657 rect.p1.y = 300; 658 ui_rbutton_set_rect(demo.rb3, &rect); 659 660 rc = ui_fixed_add(demo.fixed, ui_rbutton_ctl(demo.rb3)); 661 if (rc != EOK) { 662 printf("Error adding control to layout.\n"); 663 return rc; 664 } 665 666 rc = ui_slider_create(ui_res, "Slide!", &demo.slider); 1294 667 if (rc != EOK) { 1295 668 printf("Error creating button.\n"); … … 1299 672 ui_slider_set_cb(demo.slider, &slider_cb, (void *) &demo); 1300 673 1301 /* FIXME: Auto layout */ 1302 if (ui_is_textmode(ui)) { 1303 rect.p0.x = 4; 1304 rect.p0.y = 20; 1305 rect.p1.x = 32; 1306 rect.p1.y = 21; 1307 } else { 1308 rect.p0.x = 15; 1309 rect.p0.y = 345; 1310 rect.p1.x = 130; 1311 rect.p1.y = 365; 1312 } 1313 674 rect.p0.x = 15; 675 rect.p0.y = 310; 676 rect.p1.x = 130; 677 rect.p1.y = 330; 1314 678 ui_slider_set_rect(demo.slider, &rect); 1315 679 1316 rc = ui_fixed_add(demo.bfixed, ui_slider_ctl(demo.slider)); 1317 if (rc != EOK) { 1318 printf("Error adding control to layout.\n"); 1319 return rc; 1320 } 1321 1322 rc = ui_scrollbar_create(ui, window, ui_sbd_horiz, &demo.hscrollbar); 1323 if (rc != EOK) { 1324 printf("Error creating scrollbar.\n"); 1325 return rc; 1326 } 1327 1328 ui_scrollbar_set_cb(demo.hscrollbar, &scrollbar_cb, (void *) &demo); 1329 1330 /* FIXME: Auto layout */ 1331 if (ui_is_textmode(ui)) { 1332 rect.p0.x = 4; 1333 rect.p0.y = 22; 1334 rect.p1.x = 42; 1335 rect.p1.y = 23; 1336 } else { 1337 rect.p0.x = 15; 1338 rect.p0.y = 375; 1339 rect.p1.x = 220; 1340 rect.p1.y = 398; 1341 } 1342 1343 ui_scrollbar_set_rect(demo.hscrollbar, &rect); 1344 1345 ui_scrollbar_set_thumb_length(demo.hscrollbar, 1346 ui_scrollbar_trough_length(demo.hscrollbar) / 4); 1347 1348 rc = ui_fixed_add(demo.bfixed, ui_scrollbar_ctl(demo.hscrollbar)); 1349 if (rc != EOK) { 1350 printf("Error adding control to layout.\n"); 1351 return rc; 1352 } 1353 1354 rc = ui_scrollbar_create(ui, window, ui_sbd_vert, &demo.vscrollbar); 1355 if (rc != EOK) { 1356 printf("Error creating button.\n"); 1357 return rc; 1358 } 1359 1360 ui_scrollbar_set_cb(demo.vscrollbar, &scrollbar_cb, (void *) &demo); 1361 1362 /* FIXME: Auto layout */ 1363 if (ui_is_textmode(ui)) { 1364 rect.p0.x = 42; 1365 rect.p0.y = 5; 1366 rect.p1.x = 43; 1367 rect.p1.y = 22; 1368 } else { 1369 rect.p0.x = 220; 1370 rect.p0.y = 88; 1371 rect.p1.x = 243; 1372 rect.p1.y = 375; 1373 } 1374 1375 ui_scrollbar_set_rect(demo.vscrollbar, &rect); 1376 1377 ui_scrollbar_set_thumb_length(demo.vscrollbar, 1378 ui_scrollbar_trough_length(demo.vscrollbar) / 4); 1379 1380 rc = ui_fixed_add(demo.bfixed, ui_scrollbar_ctl(demo.vscrollbar)); 1381 if (rc != EOK) { 1382 printf("Error adding control to layout.\n"); 1383 return rc; 1384 } 1385 1386 ui_tab_add(demo.tbasic, ui_fixed_ctl(demo.bfixed)); 1387 1388 rc = ui_fixed_create(&demo.lfixed); 1389 if (rc != EOK) { 1390 printf("Error creating fixed layout.\n"); 1391 return rc; 1392 } 1393 1394 rc = ui_list_create(window, false, &demo.list); 1395 if (rc != EOK) { 1396 printf("Error creating list.\n"); 1397 return rc; 1398 } 1399 1400 ui_list_entry_attr_init(&eattr); 1401 1402 eattr.caption = "One"; 1403 rc = ui_list_entry_append(demo.list, &eattr, NULL); 1404 if (rc != EOK) { 1405 printf("Error adding list entry.\n"); 1406 return rc; 1407 } 1408 1409 eattr.caption = "Two"; 1410 rc = ui_list_entry_append(demo.list, &eattr, NULL); 1411 if (rc != EOK) { 1412 printf("Error adding list entry.\n"); 1413 return rc; 1414 } 1415 1416 eattr.caption = "Three"; 1417 rc = ui_list_entry_append(demo.list, &eattr, NULL); 1418 if (rc != EOK) { 1419 printf("Error adding list entry.\n"); 1420 return rc; 1421 } 1422 1423 eattr.caption = "Four"; 1424 rc = ui_list_entry_append(demo.list, &eattr, NULL); 1425 if (rc != EOK) { 1426 printf("Error adding list entry.\n"); 1427 return rc; 1428 } 1429 1430 eattr.caption = "Five"; 1431 rc = ui_list_entry_append(demo.list, &eattr, NULL); 1432 if (rc != EOK) { 1433 printf("Error adding list entry.\n"); 1434 return rc; 1435 } 1436 1437 eattr.caption = "Six"; 1438 rc = ui_list_entry_append(demo.list, &eattr, NULL); 1439 if (rc != EOK) { 1440 printf("Error adding list entry.\n"); 1441 return rc; 1442 } 1443 1444 /* FIXME: Auto layout */ 1445 if (ui_is_textmode(ui)) { 1446 rect.p0.x = 4; 1447 rect.p0.y = 5; 1448 rect.p1.x = 41; 1449 rect.p1.y = 10; 1450 } else { 1451 rect.p0.x = 15; 1452 rect.p0.y = 88; 1453 rect.p1.x = 245; 1454 rect.p1.y = 173; 1455 } 1456 1457 ui_list_set_rect(demo.list, &rect); 1458 1459 rc = ui_fixed_add(demo.lfixed, ui_list_ctl(demo.list)); 1460 if (rc != EOK) { 1461 printf("Error adding control to layout.\n"); 1462 return rc; 1463 } 1464 1465 ui_tab_add(demo.tlists, ui_fixed_ctl(demo.lfixed)); 1466 1467 rc = ui_fixed_create(&demo.bars_fixed); 1468 if (rc != EOK) { 1469 printf("Error creating fixed layout.\n"); 1470 return rc; 1471 } 1472 1473 rc = ui_progress_create(ui_res, 0, &demo.progress); 1474 if (rc != EOK) { 1475 printf("Error creating entry.\n"); 1476 return rc; 1477 } 1478 1479 /* FIXME: Auto layout */ 1480 if (ui_is_textmode(ui)) { 1481 rect.p0.x = 4; 1482 rect.p0.y = 5; 1483 rect.p1.x = 42; 1484 rect.p1.y = 6; 1485 } else { 1486 rect.p0.x = 15; 1487 rect.p0.y = 88; 1488 rect.p1.x = 243; 1489 rect.p1.y = 113; 1490 } 1491 1492 ui_progress_set_rect(demo.progress, &rect); 1493 1494 rc = ui_fixed_add(demo.bars_fixed, ui_progress_ctl(demo.progress)); 1495 if (rc != EOK) { 1496 printf("Error adding control to layout.\n"); 1497 return rc; 1498 } 1499 1500 ui_tab_add(demo.tbars, ui_fixed_ctl(demo.bars_fixed)); 680 rc = ui_fixed_add(demo.fixed, ui_slider_ctl(demo.slider)); 681 if (rc != EOK) { 682 printf("Error adding control to layout.\n"); 683 return rc; 684 } 1501 685 1502 686 ui_window_add(window, ui_fixed_ctl(demo.fixed)); 1503 687 1504 demo.timer = fibril_timer_create(NULL);1505 if (demo.timer == NULL) {1506 printf("Error creating timer.\n");1507 return ENOMEM;1508 }1509 1510 fibril_timer_set(demo.timer, 1000 * scrollbar_update_interval_ms,1511 ui_demo_timer_fun, (void *)&demo);1512 1513 688 rc = ui_window_paint(window); 1514 689 if (rc != EOK) { … … 1518 693 1519 694 ui_run(ui); 1520 1521 fibril_timer_clear(demo.timer);1522 fibril_timer_destroy(demo.timer);1523 695 1524 696 ui_window_destroy(window); … … 1556 728 k = i * i + j * j; 1557 729 pixelmap_put_pixel(&pixelmap, i, j, 1558 PIXEL( 0, k, k, 255 - k));730 PIXEL(255, k, k, 255 - k)); 1559 731 } 1560 732 } … … 1570 742 int main(int argc, char *argv[]) 1571 743 { 1572 const char *display_spec = UI_ ANY_DEFAULT;744 const char *display_spec = UI_DISPLAY_DEFAULT; 1573 745 errno_t rc; 1574 746 int i;
Note:
See TracChangeset
for help on using the changeset viewer.
