Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/uidemo/uidemo.c

    r08499f0 r80d4aea  
    11/*
    2  * Copyright (c) 2026 Jiri Svoboda
     2 * Copyright (c) 2021 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    3333 */
    3434
    35 #include <fibril_synch.h>
    3635#include <gfx/bitmap.h>
    3736#include <gfx/coord.h>
     
    4544#include <ui/image.h>
    4645#include <ui/label.h>
    47 #include <ui/list.h>
     46#include <ui/menubar.h>
     47#include <ui/menuentry.h>
    4848#include <ui/menu.h>
    49 #include <ui/menubar.h>
    50 #include <ui/menudd.h>
    51 #include <ui/menuentry.h>
    5249#include <ui/msgdialog.h>
    5350#include <ui/pbutton.h>
    5451#include <ui/promptdialog.h>
    5552#include <ui/resource.h>
    56 #include <ui/selectdialog.h>
    57 #include <ui/tab.h>
    58 #include <ui/tabset.h>
    5953#include <ui/ui.h>
    6054#include <ui/window.h>
    6155#include "uidemo.h"
    6256
    63 enum {
    64         scrollbar_update_interval_ms = 1000,
    65         ui_demo_progress_step = 17
    66 };
    67 
    6857static errno_t bitmap_moire(gfx_bitmap_t *, gfx_coord_t, gfx_coord_t);
    6958
     
    9887};
    9988
    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_moved
    112 };
    113 
    11489static void uidemo_file_load(ui_menu_entry_t *, void *);
    11590static void uidemo_file_message(ui_menu_entry_t *, void *);
    116 static void uidemo_file_confirmation(ui_menu_entry_t *, void *);
    11791static void uidemo_file_exit(ui_menu_entry_t *, void *);
    11892static void uidemo_edit_modify(ui_menu_entry_t *, void *);
    119 static void uidemo_edit_insert_character(ui_menu_entry_t *, void *);
    12093
    12194static void file_dialog_bok(ui_file_dialog_t *, void *, const char *);
     
    137110        .bcancel = prompt_dialog_bcancel,
    138111        .close = prompt_dialog_close
    139 };
    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_close
    149112};
    150113
     
    252215}
    253216
    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.
     217/** Display a message window.
    350218 *
    351219 * @param demo UI demo
     
    422290}
    423291
    424 /** File / Confirmation menu entry selected.
    425  *
    426  * @param mentry Menu entry
    427  * @param arg Argument (demo)
    428  */
    429 static void uidemo_file_confirmation(ui_menu_entry_t *mentry, void *arg)
    430 {
    431         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 
    450292/** File / Exit menu entry selected.
    451293 *
     
    478320        rc = ui_prompt_dialog_create(demo->ui, &pdparams, &dialog);
    479321        if (rc != EOK) {
    480                 printf("Error creating prompt dialog.\n");
     322                printf("Error creating message dialog.\n");
    481323                return;
    482324        }
    483325
    484326        ui_prompt_dialog_set_cb(dialog, &prompt_dialog_cb, demo);
    485 }
    486 
    487 /** Edit / Insert Character menu entry selected.
    488  *
    489  * @param mentry Menu entry
    490  * @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);
    540327}
    541328
     
    626413/** Prompt dialog cancel button press.
    627414 *
    628  * @param dialog Prompt dialog
     415 * @param dialog File dialog
    629416 * @param arg Argument (ui_demo_t *)
    630417 */
     
    639426/** Prompt dialog close request.
    640427 *
    641  * @param dialog Prompt dialog
     428 * @param dialog File dialog
    642429 * @param arg Argument (ui_demo_t *)
    643430 */
     
    648435        (void) demo;
    649436        ui_prompt_dialog_destroy(dialog);
    650 }
    651 
    652 /** Select dialog OK button press.
    653  *
    654  * @param dialog Select dialog
    655  * @param arg Argument (ui_demo_t *)
    656  * @param text Submitted text
    657  */
    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 dialog
    673  * @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 dialog
    686  * @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);
    694437}
    695438
     
    720463        (void) demo;
    721464        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);
    746465}
    747466
     
    767486        ui_menu_entry_t *mexit;
    768487        ui_menu_entry_t *mmodify;
    769         ui_menu_entry_t *minsert_char;
    770488        ui_menu_entry_t *mabout;
    771         ui_list_entry_attr_t eattr;
    772489        errno_t rc;
    773490
     
    783500        ui_wnd_params_init(&params);
    784501        params.caption = "UI Demo";
    785         params.style |= ui_wds_maximize_btn | ui_wds_resizable;
     502        params.style |= ui_wds_resizable;
    786503
    787504        /* FIXME: Auto layout */
     
    789506                params.rect.p0.x = 0;
    790507                params.rect.p0.y = 0;
    791                 params.rect.p1.x = 46;
    792                 params.rect.p1.y = 25;
     508                params.rect.p1.x = 44;
     509                params.rect.p1.y = 21;
    793510        } else {
    794511                params.rect.p0.x = 0;
    795512                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(&params.rect, &params.min_size);
     513                params.rect.p1.x = 220;
     514                params.rect.p1.y = 350;
     515        }
    802516
    803517        rc = ui_window_create(ui, &params, &window);
     
    825539        }
    826540
    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);
     541        rc = ui_menu_create(demo.mbar, "File", &demo.mfile);
     542        if (rc != EOK) {
     543                printf("Error creating menu.\n");
     544                return rc;
     545        }
     546
     547        rc = ui_menu_entry_create(demo.mfile, "Message", "", &mmsg);
    834548        if (rc != EOK) {
    835549                printf("Error creating menu.\n");
     
    839553        ui_menu_entry_set_cb(mmsg, uidemo_file_message, (void *) &demo);
    840554
    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);
     555        rc = ui_menu_entry_create(demo.mfile, "Load", "", &mload);
    850556        if (rc != EOK) {
    851557                printf("Error creating menu.\n");
     
    855561        ui_menu_entry_set_cb(mload, uidemo_file_load, (void *) &demo);
    856562
    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);
     563        rc = ui_menu_entry_create(demo.mfile, "Foo", "Ctrl-Alt-Del", &mfoo);
     564        if (rc != EOK) {
     565                printf("Error creating menu.\n");
     566                return rc;
     567        }
     568
     569        rc = ui_menu_entry_create(demo.mfile, "Bar", "", &mbar);
     570        if (rc != EOK) {
     571                printf("Error creating menu.\n");
     572                return rc;
     573        }
     574
     575        rc = ui_menu_entry_create(demo.mfile, "Foobar", "", &mfoobar);
     576        if (rc != EOK) {
     577                printf("Error creating menu.\n");
     578                return rc;
     579        }
    876580
    877581        rc = ui_menu_entry_sep_create(demo.mfile, &msep);
     
    881585        }
    882586
    883         rc = ui_menu_entry_create(demo.mfile, "E~x~it", "Alt-F4", &mexit);
     587        rc = ui_menu_entry_create(demo.mfile, "Exit", "Alt-F4", &mexit);
    884588        if (rc != EOK) {
    885589                printf("Error creating menu.\n");
     
    889593        ui_menu_entry_set_cb(mexit, uidemo_file_exit, (void *) &demo);
    890594
    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);
     595        rc = ui_menu_create(demo.mbar, "Edit", &demo.medit);
     596        if (rc != EOK) {
     597                printf("Error creating menu.\n");
     598                return rc;
     599        }
     600
     601        rc = ui_menu_entry_create(demo.medit, "Modify", "", &mmodify);
    898602        if (rc != EOK) {
    899603                printf("Error creating menu.\n");
     
    903607        ui_menu_entry_set_cb(mmodify, uidemo_edit_modify, (void *) &demo);
    904608
    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);
     609        rc = ui_menu_create(demo.mbar, "Preferences", &demo.mpreferences);
     610        if (rc != EOK) {
     611                printf("Error creating menu.\n");
     612                return rc;
     613        }
     614
     615        rc = ui_menu_create(demo.mbar, "Help", &demo.mhelp);
     616        if (rc != EOK) {
     617                printf("Error creating menu.\n");
     618                return rc;
     619        }
     620
     621        rc = ui_menu_entry_create(demo.mhelp, "About", "Ctrl-H, F1", &mabout);
    929622        if (rc != EOK) {
    930623                printf("Error creating menu.\n");
     
    941634                rect.p0.x = 4;
    942635                rect.p0.y = 30;
    943                 rect.p1.x = 251;
     636                rect.p1.x = 216;
    944637                rect.p1.y = 52;
    945638        }
    946 
    947639        ui_menu_bar_set_rect(demo.mbar, &rect);
    948640
     
    953645        }
    954646
    955         rc = ui_tab_set_create(ui_res, &demo.tabset);
    956         if (rc != EOK) {
    957                 printf("Error creating tab set.\n");
     647        rc = ui_entry_create(window, "", &demo.entry);
     648        if (rc != EOK) {
     649                printf("Error creating entry.\n");
    958650                return rc;
    959651        }
     
    962654        if (ui_is_textmode(ui)) {
    963655                rect.p0.x = 2;
    964                 rect.p0.y = 2;
    965                 rect.p1.x = 44;
    966                 rect.p1.y = 24;
    967         } else {
    968                 rect.p0.x = 8;
     656                rect.p0.y = 3;
     657                rect.p1.x = 42;
     658                rect.p1.y = 4;
     659        } else {
     660                rect.p0.x = 15;
    969661                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");
    1009                 return rc;
    1010         }
    1011 
    1012         /* FIXME: Auto layout */
    1013         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;
    1018         } else {
    1019                 rect.p0.x = 15;
    1020                 rect.p0.y = 88;
    1021662                rect.p1.x = 205;
    1022                 rect.p1.y = 113;
     663                rect.p1.y = 78;
    1023664        }
    1024665
     
    1026667        ui_entry_set_halign(demo.entry, gfx_halign_center);
    1027668
    1028         rc = ui_fixed_add(demo.bfixed, ui_entry_ctl(demo.entry));
     669        rc = ui_fixed_add(demo.fixed, ui_entry_ctl(demo.entry));
    1029670        if (rc != EOK) {
    1030671                printf("Error adding control to layout.\n");
     
    1040681        /* FIXME: Auto layout */
    1041682        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;
     683                rect.p0.x = 2;
     684                rect.p0.y = 5;
     685                rect.p1.x = 42;
     686                rect.p1.y = 6;
    1046687        } else {
    1047688                rect.p0.x = 60;
    1048                 rect.p0.y = 123;
     689                rect.p0.y = 88;
    1049690                rect.p1.x = 160;
    1050                 rect.p1.y = 136;
     691                rect.p1.y = 101;
    1051692        }
    1052693
     
    1054695        ui_label_set_halign(demo.label, gfx_halign_center);
    1055696
    1056         rc = ui_fixed_add(demo.bfixed, ui_label_ctl(demo.label));
     697        rc = ui_fixed_add(demo.fixed, ui_label_ctl(demo.label));
    1057698        if (rc != EOK) {
    1058699                printf("Error adding control to layout.\n");
     
    1070711        /* FIXME: Auto layout */
    1071712        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;
     713                rect.p0.x = 2;
     714                rect.p0.y = 7;
     715                rect.p1.x = 12;
     716                rect.p1.y = 8;
    1076717        } else {
    1077718                rect.p0.x = 15;
    1078                 rect.p0.y = 146;
     719                rect.p0.y = 111;
    1079720                rect.p1.x = 105;
    1080                 rect.p1.y = 174;
     721                rect.p1.y = 139;
    1081722        }
    1082723
     
    1085726        ui_pbutton_set_default(demo.pb1, true);
    1086727
    1087         rc = ui_fixed_add(demo.bfixed, ui_pbutton_ctl(demo.pb1));
     728        rc = ui_fixed_add(demo.fixed, ui_pbutton_ctl(demo.pb1));
    1088729        if (rc != EOK) {
    1089730                printf("Error adding control to layout.\n");
     
    1100741
    1101742        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;
     743                rect.p0.x = 32;
     744                rect.p0.y = 7;
     745                rect.p1.x = 42;
     746                rect.p1.y = 8;
    1106747        } else {
    1107748                rect.p0.x = 115;
    1108                 rect.p0.y = 146;
     749                rect.p0.y = 111;
    1109750                rect.p1.x = 205;
    1110                 rect.p1.y = 174;
     751                rect.p1.y = 139;
    1111752        }
    1112753
    1113754        ui_pbutton_set_rect(demo.pb2, &rect);
    1114755
    1115         rc = ui_fixed_add(demo.bfixed, ui_pbutton_ctl(demo.pb2));
     756        rc = ui_fixed_add(demo.fixed, ui_pbutton_ctl(demo.pb2));
    1116757        if (rc != EOK) {
    1117758                printf("Error adding control to layout.\n");
     
    1123764                bparams.rect.p0.x = 0;
    1124765                bparams.rect.p0.y = 0;
    1125                 bparams.rect.p1.x = 37;
     766                bparams.rect.p1.x = 40;
    1126767                bparams.rect.p1.y = 2;
    1127768        } else {
     
    1147788
    1148789        if (ui_is_textmode(ui)) {
    1149                 off.x = 4;
    1150                 off.y = 11;
     790                off.x = 2;
     791                off.y = 9;
    1151792        } else {
    1152793                off.x = 15;
    1153                 off.y = 190;
     794                off.y = 155;
    1154795        }
    1155796
     
    1165806        ui_image_set_rect(demo.image, &rect);
    1166807
    1167         rc = ui_fixed_add(demo.bfixed, ui_image_ctl(demo.image));
     808        rc = ui_fixed_add(demo.fixed, ui_image_ctl(demo.image));
    1168809        if (rc != EOK) {
    1169810                printf("Error adding control to layout.\n");
     
    1181822        /* FIXME: Auto layout */
    1182823        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;
     824                rect.p0.x = 2;
     825                rect.p0.y = 12;
     826                rect.p1.x = 12;
     827                rect.p1.y = 13;
    1187828        } else {
    1188829                rect.p0.x = 15;
    1189                 rect.p0.y = 225;
     830                rect.p0.y = 190;
    1190831                rect.p1.x = 140;
    1191                 rect.p1.y = 245;
     832                rect.p1.y = 210;
    1192833        }
    1193834
    1194835        ui_checkbox_set_rect(demo.checkbox, &rect);
    1195836
    1196         rc = ui_fixed_add(demo.bfixed, ui_checkbox_ctl(demo.checkbox));
     837        rc = ui_fixed_add(demo.fixed, ui_checkbox_ctl(demo.checkbox));
    1197838        if (rc != EOK) {
    1198839                printf("Error adding control to layout.\n");
     
    1218859        /* FIXME: Auto layout */
    1219860        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;
     861                rect.p0.x = 2;
     862                rect.p0.y = 14;
     863                rect.p1.x = 12;
     864                rect.p1.y = 15;
    1224865        } else {
    1225866                rect.p0.x = 15;
    1226                 rect.p0.y = 255;
     867                rect.p0.y = 220;
    1227868                rect.p1.x = 140;
    1228                 rect.p1.y = 275;
     869                rect.p1.y = 240;
    1229870        }
    1230871        ui_rbutton_set_rect(demo.rbleft, &rect);
    1231872
    1232         rc = ui_fixed_add(demo.bfixed, ui_rbutton_ctl(demo.rbleft));
     873        rc = ui_fixed_add(demo.fixed, ui_rbutton_ctl(demo.rbleft));
    1233874        if (rc != EOK) {
    1234875                printf("Error adding control to layout.\n");
     
    1245886        /* FIXME: Auto layout */
    1246887        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;
     888                rect.p0.x = 2;
     889                rect.p0.y = 15;
     890                rect.p1.x = 12;
     891                rect.p1.y = 16;
    1251892        } else {
    1252893                rect.p0.x = 15;
    1253                 rect.p0.y = 285;
     894                rect.p0.y = 250;
    1254895                rect.p1.x = 140;
    1255                 rect.p1.y = 305;
     896                rect.p1.y = 270;
    1256897        }
    1257898        ui_rbutton_set_rect(demo.rbcenter, &rect);
    1258899        ui_rbutton_select(demo.rbcenter);
    1259900
    1260         rc = ui_fixed_add(demo.bfixed, ui_rbutton_ctl(demo.rbcenter));
     901        rc = ui_fixed_add(demo.fixed, ui_rbutton_ctl(demo.rbcenter));
    1261902        if (rc != EOK) {
    1262903                printf("Error adding control to layout.\n");
     
    1273914        /* FIXME: Auto layout */
    1274915        if (ui_is_textmode(ui)) {
    1275                 rect.p0.x = 4;
     916                rect.p0.x = 2;
     917                rect.p0.y = 16;
     918                rect.p1.x = 12;
     919                rect.p1.y = 17;
     920        } else {
     921                rect.p0.x = 15;
     922                rect.p0.y = 280;
     923                rect.p1.x = 140;
     924                rect.p1.y = 300;
     925        }
     926        ui_rbutton_set_rect(demo.rbright, &rect);
     927
     928        rc = ui_fixed_add(demo.fixed, ui_rbutton_ctl(demo.rbright));
     929        if (rc != EOK) {
     930                printf("Error adding control to layout.\n");
     931                return rc;
     932        }
     933
     934        rc = ui_slider_create(ui_res, "Slide!", &demo.slider);
     935        if (rc != EOK) {
     936                printf("Error creating button.\n");
     937                return rc;
     938        }
     939
     940        ui_slider_set_cb(demo.slider, &slider_cb, (void *) &demo);
     941
     942        /* FIXME: Auto layout */
     943        if (ui_is_textmode(ui)) {
     944                rect.p0.x = 2;
    1276945                rect.p0.y = 18;
    1277                 rect.p1.x = 14;
     946                rect.p1.x = 12;
    1278947                rect.p1.y = 19;
    1279948        } else {
    1280949                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));
     950                rect.p0.y = 310;
     951                rect.p1.x = 130;
     952                rect.p1.y = 330;
     953        }
     954
     955        ui_slider_set_rect(demo.slider, &rect);
     956
     957        rc = ui_fixed_add(demo.fixed, ui_slider_ctl(demo.slider));
    1288958        if (rc != EOK) {
    1289959                printf("Error adding control to layout.\n");
     
    1291961        }
    1292962
    1293         rc = ui_slider_create(ui_res, &demo.slider);
    1294         if (rc != EOK) {
    1295                 printf("Error creating button.\n");
    1296                 return rc;
    1297         }
    1298 
    1299         ui_slider_set_cb(demo.slider, &slider_cb, (void *) &demo);
    1300 
    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 
    1314         ui_slider_set_rect(demo.slider, &rect);
    1315 
    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));
    1501 
    1502963        ui_window_add(window, ui_fixed_ctl(demo.fixed));
    1503964
    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 
    1513965        rc = ui_window_paint(window);
    1514966        if (rc != EOK) {
     
    1518970
    1519971        ui_run(ui);
    1520 
    1521         fibril_timer_clear(demo.timer);
    1522         fibril_timer_destroy(demo.timer);
    1523972
    1524973        ui_window_destroy(window);
     
    15701019int main(int argc, char *argv[])
    15711020{
    1572         const char *display_spec = UI_ANY_DEFAULT;
     1021        const char *display_spec = UI_DISPLAY_DEFAULT;
    15731022        errno_t rc;
    15741023        int i;
Note: See TracChangeset for help on using the changeset viewer.