Changeset 35cffea in mainline for uspace/srv/hid/display/dsops.c


Ignore:
Timestamp:
2022-05-19T08:02:31Z (2 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ad698f4
Parents:
fd05ea6
git-author:
Jiri Svoboda <jiri@…> (2022-05-18 17:02:12)
git-committer:
Jiri Svoboda <jiri@…> (2022-05-19 08:02:31)
Message:

Maximizing/unmaximizing a window

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/hid/display/dsops.c

    rfd05ea6 r35cffea  
    11/*
    2  * Copyright (c) 2021 Jiri Svoboda
     2 * Copyright (c) 2022 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    4949static errno_t disp_window_move(void *, sysarg_t, gfx_coord2_t *);
    5050static errno_t disp_window_get_pos(void *, sysarg_t, gfx_coord2_t *);
     51static errno_t disp_window_get_max_rect(void *, sysarg_t, gfx_rect_t *);
    5152static errno_t disp_window_resize_req(void *, sysarg_t,
    5253    display_wnd_rsztype_t, gfx_coord2_t *);
    5354static errno_t disp_window_resize(void *, sysarg_t, gfx_coord2_t *,
    5455    gfx_rect_t *);
     56static errno_t disp_window_maximize(void *, sysarg_t);
     57static errno_t disp_window_unmaximize(void *, sysarg_t);
    5558static errno_t disp_window_set_cursor(void *, sysarg_t, display_stock_cursor_t);
    5659static errno_t disp_get_event(void *, sysarg_t *, display_wnd_ev_t *);
     
    6366        .window_move = disp_window_move,
    6467        .window_get_pos = disp_window_get_pos,
     68        .window_get_max_rect = disp_window_get_max_rect,
    6569        .window_resize_req = disp_window_resize_req,
    6670        .window_resize = disp_window_resize,
     71        .window_maximize = disp_window_maximize,
     72        .window_unmaximize = disp_window_unmaximize,
    6773        .window_set_cursor = disp_window_set_cursor,
    6874        .get_event = disp_get_event,
     
    175181}
    176182
     183static errno_t disp_window_get_max_rect(void *arg, sysarg_t wnd_id,
     184    gfx_rect_t *rect)
     185{
     186        ds_client_t *client = (ds_client_t *) arg;
     187        ds_window_t *wnd;
     188
     189        ds_display_lock(client->display);
     190
     191        wnd = ds_client_find_window(client, wnd_id);
     192        if (wnd == NULL) {
     193                ds_display_unlock(client->display);
     194                return ENOENT;
     195        }
     196
     197        log_msg(LOG_DEFAULT, LVL_DEBUG, "disp_window_get_max_rect()");
     198        ds_window_get_max_rect(wnd, rect);
     199        ds_display_unlock(client->display);
     200        return EOK;
     201}
     202
    177203static errno_t disp_window_resize_req(void *arg, sysarg_t wnd_id,
    178204    display_wnd_rsztype_t rsztype, gfx_coord2_t *pos)
     
    219245}
    220246
     247static errno_t disp_window_maximize(void *arg, sysarg_t wnd_id)
     248{
     249        ds_client_t *client = (ds_client_t *) arg;
     250        ds_window_t *wnd;
     251        errno_t rc;
     252
     253        ds_display_lock(client->display);
     254
     255        wnd = ds_client_find_window(client, wnd_id);
     256        if (wnd == NULL) {
     257                ds_display_unlock(client->display);
     258                return ENOENT;
     259        }
     260
     261        log_msg(LOG_DEFAULT, LVL_DEBUG, "disp_window_maximize()");
     262        rc = ds_window_maximize(wnd);
     263        ds_display_unlock(client->display);
     264        return rc;
     265}
     266
     267static errno_t disp_window_unmaximize(void *arg, sysarg_t wnd_id)
     268{
     269        ds_client_t *client = (ds_client_t *) arg;
     270        ds_window_t *wnd;
     271        errno_t rc;
     272
     273        ds_display_lock(client->display);
     274
     275        wnd = ds_client_find_window(client, wnd_id);
     276        if (wnd == NULL) {
     277                ds_display_unlock(client->display);
     278                return ENOENT;
     279        }
     280
     281        log_msg(LOG_DEFAULT, LVL_DEBUG, "disp_window_unmaximize()");
     282        rc = ds_window_unmaximize(wnd);
     283        ds_display_unlock(client->display);
     284        return rc;
     285}
     286
    221287static errno_t disp_window_set_cursor(void *arg, sysarg_t wnd_id,
    222288    display_stock_cursor_t cursor)
Note: See TracChangeset for help on using the changeset viewer.