Changeset 3be5366 in mainline for uspace/lib/ui


Ignore:
Timestamp:
2023-01-19T12:09:34Z (3 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
6828a56
Parents:
aaa3b855
git-author:
Jiri Svoboda <jiri@…> (2023-01-19 18:09:23)
git-committer:
Jiri Svoboda <jiri@…> (2023-01-19 12:09:34)
Message:

Add pos_id information to move request, too

This will become useful momentarily.

Location:
uspace/lib/ui
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/ui/include/types/ui/wdecor.h

    raaa3b855 r3be5366  
    8585        void (*unmaximize)(ui_wdecor_t *, void *);
    8686        void (*close)(ui_wdecor_t *, void *);
    87         void (*move)(ui_wdecor_t *, void *, gfx_coord2_t *);
     87        void (*move)(ui_wdecor_t *, void *, gfx_coord2_t *, sysarg_t);
    8888        void (*resize)(ui_wdecor_t *, void *, ui_wdecor_rsztype_t,
    8989            gfx_coord2_t *, sysarg_t);
  • uspace/lib/ui/private/wdecor.h

    raaa3b855 r3be5366  
    9898extern void ui_wdecor_unmaximize(ui_wdecor_t *);
    9999extern void ui_wdecor_close(ui_wdecor_t *);
    100 extern void ui_wdecor_move(ui_wdecor_t *, gfx_coord2_t *);
     100extern void ui_wdecor_move(ui_wdecor_t *, gfx_coord2_t *, sysarg_t);
    101101extern void ui_wdecor_resize(ui_wdecor_t *, ui_wdecor_rsztype_t,
    102102    gfx_coord2_t *, sysarg_t);
  • uspace/lib/ui/src/wdecor.c

    raaa3b855 r3be5366  
    465465 * @param wdecor Window decoration
    466466 * @param pos Position where the title bar was pressed
    467  */
    468 void ui_wdecor_move(ui_wdecor_t *wdecor, gfx_coord2_t *pos)
     467 * @param pos_id Positioning device ID
     468 */
     469void ui_wdecor_move(ui_wdecor_t *wdecor, gfx_coord2_t *pos, sysarg_t pos_id)
    469470{
    470471        if (wdecor->cb != NULL && wdecor->cb->move != NULL)
    471                 wdecor->cb->move(wdecor, wdecor->arg, pos);
     472                wdecor->cb->move(wdecor, wdecor->arg, pos, pos_id);
    472473}
    473474
     
    812813{
    813814        gfx_coord2_t pos;
     815        sysarg_t pos_id;
    814816        ui_wdecor_rsztype_t rsztype;
    815817        ui_stock_cursor_t cursor;
     
    817819        pos.x = event->hpos;
    818820        pos.y = event->vpos;
     821        pos_id = event->pos_id;
    819822
    820823        /* Set appropriate resizing cursor, or set arrow cursor */
     
    827830        /* Press on window border? */
    828831        if (rsztype != ui_wr_none && event->type == POS_PRESS)
    829                 ui_wdecor_resize(wdecor, rsztype, &pos, event->pos_id);
     832                ui_wdecor_resize(wdecor, rsztype, &pos, pos_id);
    830833}
    831834
     
    839842{
    840843        gfx_coord2_t pos;
     844        sysarg_t pos_id;
    841845        ui_wdecor_geom_t geom;
    842846        ui_evclaim_t claim;
     
    844848        pos.x = event->hpos;
    845849        pos.y = event->vpos;
     850        pos_id = event->pos_id;
    846851
    847852        ui_wdecor_get_geom(wdecor, &geom);
     
    870875                if (event->type == POS_PRESS &&
    871876                    gfx_pix_inside_rect(&pos, &geom.title_bar_rect)) {
    872                         ui_wdecor_move(wdecor, &pos);
     877                        ui_wdecor_move(wdecor, &pos, pos_id);
    873878                        return ui_claimed;
    874879                }
  • uspace/lib/ui/src/window.c

    raaa3b855 r3be5366  
    7878static void wd_unmaximize(ui_wdecor_t *, void *);
    7979static void wd_close(ui_wdecor_t *, void *);
    80 static void wd_move(ui_wdecor_t *, void *, gfx_coord2_t *);
     80static void wd_move(ui_wdecor_t *, void *, gfx_coord2_t *, sysarg_t);
    8181static void wd_resize(ui_wdecor_t *, void *, ui_wdecor_rsztype_t,
    8282    gfx_coord2_t *, sysarg_t);
     
    973973 * @param arg Argument (window)
    974974 * @param pos Position where the title bar was pressed
    975  */
    976 static void wd_move(ui_wdecor_t *wdecor, void *arg, gfx_coord2_t *pos)
     975 * @param pos_id Positioning device ID
     976 */
     977static void wd_move(ui_wdecor_t *wdecor, void *arg, gfx_coord2_t *pos,
     978    sysarg_t pos_id)
    977979{
    978980        ui_window_t *window = (ui_window_t *) arg;
    979981
    980982        if (window->dwindow != NULL)
    981                 (void) display_window_move_req(window->dwindow, pos);
     983                (void) display_window_move_req(window->dwindow, pos, pos_id);
    982984}
    983985
  • uspace/lib/ui/test/wdecor.c

    raaa3b855 r3be5366  
    6666static void test_wdecor_unmaximize(ui_wdecor_t *, void *);
    6767static void test_wdecor_close(ui_wdecor_t *, void *);
    68 static void test_wdecor_move(ui_wdecor_t *, void *, gfx_coord2_t *);
     68static void test_wdecor_move(ui_wdecor_t *, void *, gfx_coord2_t *, sysarg_t);
    6969static void test_wdecor_resize(ui_wdecor_t *, void *, ui_wdecor_rsztype_t,
    7070    gfx_coord2_t *, sysarg_t);
     
    339339        test_cb_resp_t resp;
    340340        gfx_coord2_t pos;
     341        sysarg_t pos_id;
    341342
    342343        rc = ui_wdecor_create(NULL, "Hello", ui_wds_none, &wdecor);
     
    345346        pos.x = 3;
    346347        pos.y = 4;
     348        pos_id = 5;
    347349
    348350        /* Move callback with no callbacks set */
    349         ui_wdecor_move(wdecor, &pos);
     351        ui_wdecor_move(wdecor, &pos, pos_id);
    350352
    351353        /* Move callback with move callback not implemented */
    352354        ui_wdecor_set_cb(wdecor, &dummy_wdecor_cb, NULL);
    353         ui_wdecor_move(wdecor, &pos);
     355        ui_wdecor_move(wdecor, &pos, pos_id);
    354356
    355357        /* Move callback with real callback set */
     
    357359        resp.pos.x = 0;
    358360        resp.pos.y = 0;
     361        resp.pos_id = 0;
    359362        ui_wdecor_set_cb(wdecor, &test_wdecor_cb, &resp);
    360         ui_wdecor_move(wdecor, &pos);
     363        ui_wdecor_move(wdecor, &pos, pos_id);
    361364        PCUT_ASSERT_TRUE(resp.move);
    362365        PCUT_ASSERT_INT_EQUALS(pos.x, resp.pos.x);
    363366        PCUT_ASSERT_INT_EQUALS(pos.y, resp.pos.y);
     367        PCUT_ASSERT_INT_EQUALS(pos_id, resp.pos_id);
    364368
    365369        ui_wdecor_destroy(wdecor);
     
    10751079}
    10761080
    1077 static void test_wdecor_move(ui_wdecor_t *wdecor, void *arg, gfx_coord2_t *pos)
     1081static void test_wdecor_move(ui_wdecor_t *wdecor, void *arg, gfx_coord2_t *pos,
     1082    sysarg_t pos_id)
    10781083{
    10791084        test_cb_resp_t *resp = (test_cb_resp_t *) arg;
     
    10811086        resp->move = true;
    10821087        resp->pos = *pos;
     1088        resp->pos_id = pos_id;
    10831089}
    10841090
Note: See TracChangeset for help on using the changeset viewer.