Changeset ef4d684 in mainline


Ignore:
Timestamp:
2023-11-29T12:39:32Z (5 months ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master, topic/simplify-dev-export
Children:
0e2eee1
Parents:
84d29a2
Message:

It should be 'trough', not 'through', dummy! (thx thepinballroom)

Who said watching a guy making a pinball machine was a waste of time?

Location:
uspace
Files:
8 edited

Legend:

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

    r84d29a2 ref4d684  
    288288        pos = ui_scrollbar_get_pos(scrollbar);
    289289        ui_scrollbar_set_pos(scrollbar, pos -
    290             ui_scrollbar_through_length(scrollbar) / 4);
     290            ui_scrollbar_trough_length(scrollbar) / 4);
    291291
    292292        pos = ui_scrollbar_get_pos(scrollbar);
     
    305305        pos = ui_scrollbar_get_pos(scrollbar);
    306306        ui_scrollbar_set_pos(scrollbar, pos +
    307             ui_scrollbar_through_length(scrollbar) / 4);
     307            ui_scrollbar_trough_length(scrollbar) / 4);
    308308
    309309        pos = ui_scrollbar_get_pos(scrollbar);
     
    12701270
    12711271        ui_scrollbar_set_thumb_length(demo.hscrollbar,
    1272             ui_scrollbar_through_length(demo.hscrollbar) / 4);
     1272            ui_scrollbar_trough_length(demo.hscrollbar) / 4);
    12731273
    12741274        rc = ui_fixed_add(demo.bfixed, ui_scrollbar_ctl(demo.hscrollbar));
     
    13021302
    13031303        ui_scrollbar_set_thumb_length(demo.vscrollbar,
    1304             ui_scrollbar_through_length(demo.vscrollbar) / 4);
     1304            ui_scrollbar_trough_length(demo.vscrollbar) / 4);
    13051305
    13061306        rc = ui_fixed_add(demo.bfixed, ui_scrollbar_ctl(demo.vscrollbar));
  • uspace/lib/ui/include/ui/scrollbar.h

    r84d29a2 ref4d684  
    11/*
    2  * Copyright (c) 2022 Jiri Svoboda
     2 * Copyright (c) 2023 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    5454extern void ui_scrollbar_set_rect(ui_scrollbar_t *, gfx_rect_t *);
    5555extern errno_t ui_scrollbar_paint(ui_scrollbar_t *);
    56 extern gfx_coord_t ui_scrollbar_through_length(ui_scrollbar_t *);
     56extern gfx_coord_t ui_scrollbar_trough_length(ui_scrollbar_t *);
    5757extern gfx_coord_t ui_scrollbar_move_length(ui_scrollbar_t *);
    5858extern gfx_coord_t ui_scrollbar_get_pos(ui_scrollbar_t *);
     
    6060extern void ui_scrollbar_set_pos(ui_scrollbar_t *, gfx_coord_t);
    6161extern 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 *);
     62extern void ui_scrollbar_upper_trough_press(ui_scrollbar_t *);
     63extern void ui_scrollbar_lower_trough_press(ui_scrollbar_t *);
    6464extern void ui_scrollbar_release(ui_scrollbar_t *, gfx_coord2_t *);
    6565extern void ui_scrollbar_update(ui_scrollbar_t *, gfx_coord2_t *);
    66 extern void ui_scrollbar_throughs_update(ui_scrollbar_t *, gfx_coord2_t *);
     66extern void ui_scrollbar_troughs_update(ui_scrollbar_t *, gfx_coord2_t *);
    6767extern void ui_scrollbar_up(ui_scrollbar_t *);
    6868extern void ui_scrollbar_down(ui_scrollbar_t *);
  • uspace/lib/ui/private/resource.h

    r84d29a2 ref4d684  
    118118        gfx_color_t *entry_sel_text_bg_color;
    119119
    120         /** Scrollbar through color */
    121         gfx_color_t *sbar_through_color;
    122         /** Scrollbar active through color */
    123         gfx_color_t *sbar_act_through_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;
    124124
    125125        /** Expose callback or @c NULL */
  • uspace/lib/ui/private/scrollbar.h

    r84d29a2 ref4d684  
    11/*
    2  * Copyright (c) 2022 Jiri Svoboda
     2 * Copyright (c) 2023 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    6969        /** Thumb is currently held down */
    7070        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;
    7979        /** Position where thumb was pressed */
    8080        gfx_coord2_t press_pos;
     
    8383        /** Thumb position */
    8484        gfx_coord_t pos;
    85         /** Last cursor position (when through is held) */
     85        /** Last cursor position (when trough is held) */
    8686        gfx_coord2_t last_curs_pos;
    8787};
     
    9494        /** Up button rectangle */
    9595        gfx_rect_t up_btn_rect;
    96         /** Through rectangle */
    97         gfx_rect_t through_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;
    100100        /** Thumb rectangle */
    101101        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;
    104104        /** Down button rectangle */
    105105        gfx_rect_t down_btn_rect;
  • uspace/lib/ui/src/clickmatic.c

    r84d29a2 ref4d684  
    11/*
    2  * Copyright (c) 2022 Jiri Svoboda
     2 * Copyright (c) 2023 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    3535 * Clickmatic is used to periodically generate events in particular cases
    3636 * when a mouse button is held down, such as when holding the button or
    37  * through of a scrollbar.
     37 * trough of a scrollbar.
    3838 */
    3939
  • uspace/lib/ui/src/resource.c

    r84d29a2 ref4d684  
    8686        gfx_color_t *entry_sel_text_fg_color = NULL;
    8787        gfx_color_t *entry_sel_text_bg_color = NULL;
    88         gfx_color_t *sbar_through_color = NULL;
    89         gfx_color_t *sbar_act_through_color = NULL;
     88        gfx_color_t *sbar_trough_color = NULL;
     89        gfx_color_t *sbar_act_trough_color = NULL;
    9090        errno_t rc;
    9191
     
    221221
    222222        rc = gfx_color_new_rgb_i16(0xe4e4, 0xe4e4, 0xe4e4,
    223             &sbar_through_color);
     223            &sbar_trough_color);
    224224        if (rc != EOK)
    225225                goto error;
    226226
    227227        rc = gfx_color_new_rgb_i16(0x5858, 0x5858, 0x5858,
    228             &sbar_act_through_color);
     228            &sbar_act_trough_color);
    229229        if (rc != EOK)
    230230                goto error;
     
    265265        resource->entry_sel_text_bg_color = entry_sel_text_bg_color;
    266266
    267         resource->sbar_through_color = sbar_through_color;
    268         resource->sbar_act_through_color = sbar_act_through_color;
     267        resource->sbar_trough_color = sbar_trough_color;
     268        resource->sbar_act_trough_color = sbar_act_trough_color;
    269269
    270270        *rresource = resource;
     
    327327                gfx_color_delete(entry_act_bg_color);
    328328
    329         if (sbar_through_color != NULL)
    330                 gfx_color_delete(sbar_through_color);
    331         if (sbar_act_through_color != NULL)
    332                 gfx_color_delete(sbar_act_through_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);
    333333
    334334        if (tface != NULL)
     
    376376        gfx_color_t *entry_sel_text_bg_color = NULL;
    377377        gfx_color_t *entry_act_bg_color = NULL;
    378         gfx_color_t *sbar_through_color = NULL;
    379         gfx_color_t *sbar_act_through_color = NULL;
     378        gfx_color_t *sbar_trough_color = NULL;
     379        gfx_color_t *sbar_act_trough_color = NULL;
    380380        errno_t rc;
    381381
     
    497497                goto error;
    498498
    499         rc = gfx_color_new_ega(0x07, &sbar_through_color);
    500         if (rc != EOK)
    501                 goto error;
    502 
    503         rc = gfx_color_new_ega(0x07, &sbar_act_through_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);
    504504        if (rc != EOK)
    505505                goto error;
     
    540540        resource->entry_sel_text_bg_color = entry_sel_text_bg_color;
    541541
    542         resource->sbar_through_color = sbar_through_color;
    543         resource->sbar_act_through_color = sbar_act_through_color;
     542        resource->sbar_trough_color = sbar_trough_color;
     543        resource->sbar_act_trough_color = sbar_act_trough_color;
    544544
    545545        *rresource = resource;
     
    601601        if (entry_sel_text_bg_color != NULL)
    602602                gfx_color_delete(entry_sel_text_bg_color);
    603         if (sbar_through_color != NULL)
    604                 gfx_color_delete(sbar_through_color);
    605         if (sbar_act_through_color != NULL)
    606                 gfx_color_delete(sbar_act_through_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);
    607607
    608608        if (tface != NULL)
     
    665665        gfx_color_delete(resource->entry_sel_text_bg_color);
    666666
    667         gfx_color_delete(resource->sbar_through_color);
    668         gfx_color_delete(resource->sbar_act_through_color);
     667        gfx_color_delete(resource->sbar_trough_color);
     668        gfx_color_delete(resource->sbar_act_trough_color);
    669669
    670670        gfx_font_close(resource->font);
  • uspace/lib/ui/src/scrollbar.c

    r84d29a2 ref4d684  
    11/*
    2  * Copyright (c) 2022 Jiri Svoboda
     2 * Copyright (c) 2023 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    3535 * Anatomy of a horizontal scrollbar:
    3636 *
    37  *       Up                Down
    38  *      through           through
    39  * +---+------+--------+---------+---+
    40  * | < |      |   |||  |         | > |
    41  * +---+------+--------+---------+---+
    42  *  Up           Thumb           Down
    43  * button                       button
    44  *
    45  *     +-------- Through --------+
     37 *        Upper             Lower
     38 *       trough            trough
     39 *  +---+------+--------+---------+---+
     40 *  | < |      |   |||  |         | > |
     41 *  +---+------+--------+---------+---+
     42 *   Up           Thumb           Down
     43 * button                        button
     44 *
     45 *     +-------- Trough --------+
    4646 *
    4747 * Scrollbar uses the same terminology whether it is running in horizontal
     
    5151 * The thumb can be dragged to a specific position, resulting in a move
    5252 * 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 / down
    56  * 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).
    5757 */
    5858
     
    360360}
    361361
    362 /** Determine scrollbar through length.
     362/** Determine scrollbar trough length.
    363363 *
    364364 * Return the size of the space within which the thumb can move
     
    366366 *
    367367 * @param scrollbar Scrollbar
    368  * @return Scrollbar through length in pixels
    369  */
    370 gfx_coord_t ui_scrollbar_through_length(ui_scrollbar_t *scrollbar)
     368 * @return Scrollbar trough length in pixels
     369 */
     370gfx_coord_t ui_scrollbar_trough_length(ui_scrollbar_t *scrollbar)
    371371{
    372372        ui_resource_t *resource;
     
    396396gfx_coord_t ui_scrollbar_move_length(ui_scrollbar_t *scrollbar)
    397397{
    398         return ui_scrollbar_through_length(scrollbar) -
     398        return ui_scrollbar_trough_length(scrollbar) -
    399399            scrollbar->thumb_len;
    400400}
     
    417417            ui_scrollbar_min_thumb_len;
    418418
    419         max_len = ui_scrollbar_through_length(scrollbar);
     419        max_len = ui_scrollbar_trough_length(scrollbar);
    420420        if (len < min_len)
    421421                len = min_len;
     
    459459                scrollbar->pos = pos;
    460460                (void) ui_scrollbar_paint(scrollbar);
    461                 ui_scrollbar_throughs_update(scrollbar,
     461                ui_scrollbar_troughs_update(scrollbar,
    462462                    &scrollbar->last_curs_pos);
    463463        }
     
    487487                goto error;
    488488
    489         /* Paint scrollbar up through */
     489        /* Paint scrollbar upper trough */
    490490        rc = gfx_set_color(resource->gc,
    491             scrollbar->up_through_held && scrollbar->up_through_inside ?
    492             resource->sbar_act_through_color :
    493             resource->sbar_through_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 */
    502502
    503503        rc = gfx_set_color(resource->gc,
    504             scrollbar->down_through_held && scrollbar->down_through_inside ?
    505             resource->sbar_act_through_color :
    506             resource->sbar_through_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);
    511511        if (rc != EOK)
    512512                goto error;
     
    561561        ui_scrollbar_get_geom(scrollbar, &geom);
    562562
    563         /* Paint scrollbar through */
    564 
    565         rc = ui_paint_text_rect(resource, &geom.through_rect,
    566             resource->sbar_through_color, "\u2592");
     563        /* Paint scrollbar trough */
     564
     565        rc = ui_paint_text_rect(resource, &geom.trough_rect,
     566            resource->sbar_trough_color, "\u2592");
    567567        if (rc != EOK)
    568568                goto error;
     
    571571
    572572        rc = ui_paint_text_rect(resource, &geom.thumb_rect,
    573             resource->sbar_through_color, "\u25a0");
     573            resource->sbar_trough_color, "\u25a0");
    574574        if (rc != EOK)
    575575                goto error;
     
    647647                geom->up_btn_rect.p1.y = orect.p1.y;
    648648
    649                 /* Through */
    650                 geom->through_rect.p0.x = geom->up_btn_rect.p1.x;
    651                 geom->through_rect.p0.y = irect.p0.y;
    652                 geom->through_rect.p1.x = orect.p1.x - btn_len;
    653                 geom->through_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;
    654654
    655655                /* Thumb */
     
    661661                geom->thumb_rect.p1.y = orect.p1.y;
    662662
    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;
    672672
    673673                /* Down button */
    674                 geom->down_btn_rect.p0.x = geom->through_rect.p1.x;
     674                geom->down_btn_rect.p0.x = geom->trough_rect.p1.x;
    675675                geom->down_btn_rect.p0.y = orect.p0.y;
    676676                geom->down_btn_rect.p1.x = orect.p1.x;
     
    683683                geom->up_btn_rect.p1.y = orect.p0.y + btn_len;
    684684
    685                 /* Through */
    686                 geom->through_rect.p0.x = irect.p0.x;
    687                 geom->through_rect.p0.y = geom->up_btn_rect.p1.y;
    688                 geom->through_rect.p1.x = irect.p1.x;
    689                 geom->through_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;
    690690
    691691                /* Thumb */
     
    697697                    scrollbar->thumb_len;
    698698
    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;
    708708
    709709                /* Down button */
    710710                geom->down_btn_rect.p0.x = orect.p0.x;
    711                 geom->down_btn_rect.p0.y = geom->through_rect.p1.y;
     711                geom->down_btn_rect.p0.y = geom->trough_rect.p1.y;
    712712                geom->down_btn_rect.p1.x = orect.p1.x;
    713713                geom->down_btn_rect.p1.y = orect.p1.y;
     
    732732}
    733733
    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 */
     738void ui_scrollbar_upper_trough_press(ui_scrollbar_t *scrollbar)
    739739{
    740740        ui_clickmatic_t *clickmatic = ui_get_clickmatic(scrollbar->ui);
    741741
    742         scrollbar->up_through_held = true;
    743         scrollbar->up_through_inside = true;
     742        scrollbar->upper_trough_held = true;
     743        scrollbar->upper_trough_inside = true;
    744744
    745745        ui_clickmatic_set_cb(clickmatic, &ui_scrollbar_clickmatic_page_up_cb,
     
    748748}
    749749
    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 */
     754void ui_scrollbar_lower_trough_press(ui_scrollbar_t *scrollbar)
    755755{
    756756        ui_clickmatic_t *clickmatic = ui_get_clickmatic(scrollbar->ui);
    757757
    758         scrollbar->down_through_held = true;
    759         scrollbar->down_through_inside = true;
     758        scrollbar->lower_trough_held = true;
     759        scrollbar->lower_trough_inside = true;
    760760
    761761        ui_clickmatic_set_cb(clickmatic, &ui_scrollbar_clickmatic_page_down_cb,
     
    778778        }
    779779
    780         if (scrollbar->up_through_held || scrollbar->down_through_held) {
     780        if (scrollbar->upper_trough_held || scrollbar->lower_trough_held) {
    781781                clickmatic = ui_get_clickmatic(scrollbar->ui);
    782782                ui_clickmatic_release(clickmatic);
    783783                ui_clickmatic_set_cb(clickmatic, NULL, NULL);
    784784
    785                 scrollbar->up_through_held = false;
    786                 scrollbar->down_through_held = false;
     785                scrollbar->upper_trough_held = false;
     786                scrollbar->lower_trough_held = false;
    787787                (void) ui_scrollbar_paint(scrollbar);
    788788        }
     
    791791/** Update state of scrollbar throuhgs.
    792792 *
    793  * Update state of scrollbar throughs after mouse cursor or thumb has moved.
     793 * Update state of scrollbar troughs after mouse cursor or thumb has moved.
    794794 *
    795795 * @param scrollbar Scrollbar
    796796 * @param pos Mouse cursor position
    797797 */
    798 void ui_scrollbar_throughs_update(ui_scrollbar_t *scrollbar, gfx_coord2_t *pos)
     798void ui_scrollbar_troughs_update(ui_scrollbar_t *scrollbar, gfx_coord2_t *pos)
    799799{
    800800        ui_scrollbar_geom_t geom;
     
    804804        ui_scrollbar_get_geom(scrollbar, &geom);
    805805
    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;
    811811                (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;
    814814                (void) ui_scrollbar_paint(scrollbar);
    815815        }
    816816
    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;
    819819                (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;
    822822                (void) ui_scrollbar_paint(scrollbar);
    823823        }
     
    843843        }
    844844
    845         ui_scrollbar_throughs_update(scrollbar, pos);
     845        ui_scrollbar_troughs_update(scrollbar, pos);
    846846}
    847847
     
    866866}
    867867
    868 /** Scrollbar up through was pressed.
     868/** Scrollbar upper trough was pressed.
    869869 *
    870870 * @param scrollbar Scrollbar
     
    876876}
    877877
    878 /** Scrollbar down through was pressed.
     878/** Scrollbar lower trough was pressed.
    879879 *
    880880 * @param scrollbar Scrollbar
     
    927927                        return ui_claimed;
    928928                }
    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);
    931931                        return ui_claimed;
    932932                }
    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);
    935935                        return ui_claimed;
    936936                }
    937937                break;
    938938        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) {
    941941                        ui_scrollbar_release(scrollbar, &pos);
    942942                        return ui_claimed;
     
    11181118}
    11191119
    1120 /** Scrollbar clickmatic up through click event.
     1120/** Scrollbar clickmatic upper trough click event.
    11211121 *
    11221122 * @param clickmatic Clickmatic
     
    11271127        ui_scrollbar_t *scrollbar = (ui_scrollbar_t *)arg;
    11281128
    1129         if (scrollbar->up_through_inside)
     1129        if (scrollbar->upper_trough_inside)
    11301130                ui_scrollbar_page_up(scrollbar);
    11311131}
    11321132
    1133 /** Scrollbar clickmatic down through click event.
     1133/** Scrollbar clickmatic lower trough click event.
    11341134 *
    11351135 * @param clickmatic Clickmatic
     
    11401140        ui_scrollbar_t *scrollbar = (ui_scrollbar_t *)arg;
    11411141
    1142         if (scrollbar->down_through_inside)
     1142        if (scrollbar->lower_trough_inside)
    11431143                ui_scrollbar_page_down(scrollbar);
    11441144}
  • uspace/lib/ui/test/scrollbar.c

    r84d29a2 ref4d684  
    11/*
    2  * Copyright (c) 2022 Jiri Svoboda
     2 * Copyright (c) 2023 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    284284}
    285285
    286 /** ui_scrollbar_through_length() gives correct scrollbar through length */
    287 PCUT_TEST(through_length)
     286/** ui_scrollbar_trough_length() gives correct scrollbar trough length */
     287PCUT_TEST(trough_length)
    288288{
    289289        ui_t *ui = NULL;
     
    316316        ui_scrollbar_set_rect(scrollbar, &rect);
    317317
    318         length = ui_scrollbar_through_length(scrollbar);
     318        length = ui_scrollbar_trough_length(scrollbar);
    319319
    320320        /* Total length minus buttons */
     
    620620}
    621621
    622 /** Press and release up through */
    623 PCUT_TEST(up_through_press_release)
     622/** Press and release upper trough */
     623PCUT_TEST(upper_trough_press_release)
    624624{
    625625        ui_t *ui = NULL;
     
    654654        ui_scrollbar_set_cb(scrollbar, &test_scrollbar_cb, &resp);
    655655
    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);
    660660        PCUT_ASSERT_TRUE(resp.page_up);
    661661
     
    665665
    666666        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 */
     675PCUT_TEST(lower_trough_press_release)
    676676{
    677677        ui_t *ui = NULL;
     
    706706        ui_scrollbar_set_cb(scrollbar, &test_scrollbar_cb, &resp);
    707707
    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);
    712712        PCUT_ASSERT_TRUE(resp.page_down);
    713713
     
    717717
    718718        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 throughs when cursor or thumb moves */
    727 PCUT_TEST(throughs_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 */
     727PCUT_TEST(troughs_update)
    728728{
    729729        ui_t *ui = NULL;
     
    754754        ui_scrollbar_set_rect(scrollbar, &rect);
    755755
    756         PCUT_ASSERT_FALSE(scrollbar->down_through_inside);
     756        PCUT_ASSERT_FALSE(scrollbar->lower_trough_inside);
    757757
    758758        pos.x = 60;
    759759        pos.y = 22;
    760760
    761         ui_scrollbar_throughs_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);
    763763
    764764        ui_scrollbar_destroy(scrollbar);
     
    10821082}
    10831083
    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 */
     1085PCUT_TEST(pos_event_press_release_upper_trough)
    10861086{
    10871087        ui_t *ui = NULL;
     
    11071107        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    11081108
    1109         PCUT_ASSERT_FALSE(scrollbar->up_through_held);
     1109        PCUT_ASSERT_FALSE(scrollbar->upper_trough_held);
    11101110
    11111111        rect.p0.x = 20;
     
    11151115        ui_scrollbar_set_rect(scrollbar, &rect);
    11161116
    1117         /* Need to move thumb so that up through can be accessed */
     1117        /* Need to move thumb so that upper trough can be accessed */
    11181118        ui_scrollbar_set_pos(scrollbar, 42);
    11191119
    1120         /* Press inside up through is claimed and depresses it */
     1120        /* Press inside upper trough is claimed and depresses it */
    11211121        event.type = POS_PRESS;
    11221122        event.hpos = 50;
    11231123        event.vpos = 20;
    11241124        claim = ui_scrollbar_pos_event(scrollbar, &event);
    1125         PCUT_ASSERT_TRUE(scrollbar->up_through_held);
     1125        PCUT_ASSERT_TRUE(scrollbar->upper_trough_held);
    11261126        PCUT_ASSERT_EQUALS(ui_claimed, claim);
    11271127
    1128         /* Release outside (or anywhere) is claimed and relases up through */
     1128        /* Release outside (or anywhere) is claimed and relases upper trough */
    11291129        event.type = POS_RELEASE;
    11301130        event.hpos = 41;
    11311131        event.vpos = 32;
    11321132        claim = ui_scrollbar_pos_event(scrollbar, &event);
    1133         PCUT_ASSERT_FALSE(scrollbar->up_through_held);
     1133        PCUT_ASSERT_FALSE(scrollbar->upper_trough_held);
    11341134        PCUT_ASSERT_EQUALS(ui_claimed, claim);
    11351135
     
    11391139}
    11401140
    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 */
     1142PCUT_TEST(pos_event_press_release_lower_trough)
    11431143{
    11441144        ui_t *ui = NULL;
     
    11641164        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    11651165
    1166         PCUT_ASSERT_FALSE(scrollbar->up_through_held);
     1166        PCUT_ASSERT_FALSE(scrollbar->upper_trough_held);
    11671167
    11681168        rect.p0.x = 20;
     
    11721172        ui_scrollbar_set_rect(scrollbar, &rect);
    11731173
    1174         /* Press inside down through is claimed and depresses it */
     1174        /* Press inside lower trough is claimed and depresses it */
    11751175        event.type = POS_PRESS;
    11761176        event.hpos = 70;
    11771177        event.vpos = 20;
    11781178        claim = ui_scrollbar_pos_event(scrollbar, &event);
    1179         PCUT_ASSERT_TRUE(scrollbar->down_through_held);
     1179        PCUT_ASSERT_TRUE(scrollbar->lower_trough_held);
    11801180        PCUT_ASSERT_EQUALS(ui_claimed, claim);
    11811181
    1182         /* Release outside (or anywhere) is claimed and relases up through */
     1182        /* Release outside (or anywhere) is claimed and relases upper trough */
    11831183        event.type = POS_RELEASE;
    11841184        event.hpos = 41;
    11851185        event.vpos = 32;
    11861186        claim = ui_scrollbar_pos_event(scrollbar, &event);
    1187         PCUT_ASSERT_FALSE(scrollbar->down_through_held);
     1187        PCUT_ASSERT_FALSE(scrollbar->lower_trough_held);
    11881188        PCUT_ASSERT_EQUALS(ui_claimed, claim);
    11891189
Note: See TracChangeset for help on using the changeset viewer.