Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/ui/private/window.h

    r8ce56a6 ra927af7a  
    11/*
    2  * Copyright (c) 2021 Jiri Svoboda
     2 * Copyright (c) 2026 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    4747#include <memgfx/memgc.h>
    4848#include <memgfx/xlategc.h>
     49#include <types/common.h>
    4950#include <types/ui/cursor.h>
    5051#include <types/ui/window.h>
     52
     53/** UI window flags. */
     54typedef enum {
     55        /** Window is maximized */
     56        uiwf_maximized = 0x1
     57} ui_window_flags_t;
    5158
    5259/** Actual structure of window.
     
    7784        /** Window rectangle */
    7885        gfx_rect_t rect;
     86        /** Normal window rectangle (when not maximized) */
     87        gfx_rect_t normal_rect;
    7988        /** Display position (if fullscreen mode) */
    8089        gfx_coord2_t dpos;
     90        /** Normal display position when not maximized (if fullscreen mode) */
     91        gfx_coord2_t normal_dpos;
    8192        /** Application area bitmap */
    8293        gfx_bitmap_t *app_bmp;
     
    91102        /** Window decoration */
    92103        struct ui_wdecor *wdecor;
     104        /** System menu */
     105        struct ui_menu *sysmenu;
     106        /** System menu restore entry */
     107        struct ui_menu_entry *sysmenu_restore;
     108        /** System menu minimize entry */
     109        struct ui_menu_entry *sysmenu_minimize;
     110        /** System menu maximize entry */
     111        struct ui_menu_entry *sysmenu_maximize;
     112        /** Menu bar */
     113        struct ui_menu_bar *mbar;
    93114        /** Top-level control in the application area */
    94115        struct ui_control *control;
    95116        /** Current cursor */
    96117        ui_stock_cursor_t cursor;
     118        /** Window placement */
     119        ui_wnd_placement_t placement;
     120        /** Window flags */
     121        ui_wnd_flags_t flags;
    97122};
    98123
     124/** Size change operation */
     125typedef enum {
     126        /** Resize window */
     127        ui_wsc_resize,
     128        /** Maximize window */
     129        ui_wsc_maximize,
     130        /** Unmaximize window */
     131        ui_wsc_unmaximize
     132} ui_wnd_sc_op_t;
     133
    99134extern display_stock_cursor_t wnd_dcursor_from_cursor(ui_stock_cursor_t);
     135extern void ui_window_send_sysmenu(ui_window_t *, sysarg_t);
     136extern void ui_window_send_minimize(ui_window_t *);
     137extern void ui_window_send_maximize(ui_window_t *);
     138extern void ui_window_send_unmaximize(ui_window_t *);
    100139extern void ui_window_send_close(ui_window_t *);
    101 extern void ui_window_send_focus(ui_window_t *);
     140extern void ui_window_send_focus(ui_window_t *, unsigned);
    102141extern void ui_window_send_kbd(ui_window_t *, kbd_event_t *);
    103142extern errno_t ui_window_send_paint(ui_window_t *);
    104143extern void ui_window_send_pos(ui_window_t *, pos_event_t *);
    105 extern void ui_window_send_unfocus(ui_window_t *);
     144extern void ui_window_send_unfocus(ui_window_t *, unsigned);
     145extern void ui_window_send_resize(ui_window_t *);
     146extern errno_t ui_window_size_change(ui_window_t *, gfx_rect_t *,
     147    ui_wnd_sc_op_t);
     148extern void ui_window_update_placement(ui_window_t *);
     149extern ui_window_t *ui_window_get_active(ui_t *);
     150extern ui_window_t *ui_window_first(ui_t *);
     151extern ui_window_t *ui_window_next(ui_window_t *);
    106152
    107153#endif
Note: See TracChangeset for help on using the changeset viewer.