Ignore:
File:
1 edited

Legend:

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

    r03145ee rdbb42c9  
    11/*
    2  * Copyright (c) 2020 Jiri Svoboda
     2 * Copyright (c) 2021 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    4040#include <gfx/coord.h>
    4141#include <gfx/text.h>
     42#include <stdbool.h>
    4243
    4344/** Actual structure of text entry.
     
    4849        /** Base control object */
    4950        struct ui_control *control;
    50         /** UI resource */
    51         struct ui_resource *res;
     51        /** UI window */
     52        struct ui_window *window;
    5253        /** Entry rectangle */
    5354        gfx_rect_t rect;
    5455        /** Horizontal alignment */
    5556        gfx_halign_t halign;
     57        /** Text entry is read-only */
     58        bool read_only;
    5659        /** Text */
    5760        char *text;
     61        /** Current scroll position (in pixels) */
     62        gfx_coord_t scroll_pos;
     63        /** Cursor position in the text (offset in bytes) */
     64        unsigned pos;
     65        /** Selection start position in text (offset in bytes) */
     66        unsigned sel_start;
     67        /** Pointer is currently inside */
     68        bool pointer_inside;
     69        /** Entry is activated */
     70        bool active;
     71        /** Button is held down */
     72        bool held;
     73        /** Left shift is held down */
     74        bool lshift_held;
     75        /** Right shift is held down */
     76        bool rshift_held;
    5877};
     78
     79/** Text entry geometry.
     80 *
     81 * Computed geometry of text entry elements.
     82 */
     83typedef struct {
     84        /** Interior rectangle */
     85        gfx_rect_t interior_rect;
     86        /** Text rectangle */
     87        gfx_rect_t text_rect;
     88        /** Text anchor position */
     89        gfx_coord2_t text_pos;
     90        /** Text anchor X coordinate */
     91        gfx_coord_t anchor_x;
     92} ui_entry_geom_t;
     93
     94extern errno_t ui_entry_insert_str(ui_entry_t *, const char *);
     95extern ui_evclaim_t ui_entry_key_press_ctrl(ui_entry_t *, kbd_event_t *);
     96extern ui_evclaim_t ui_entry_key_press_shift(ui_entry_t *, kbd_event_t *);
     97extern ui_evclaim_t ui_entry_key_press_unmod(ui_entry_t *, kbd_event_t *);
     98extern void ui_entry_get_geom(ui_entry_t *, ui_entry_geom_t *);
     99extern size_t ui_entry_find_pos(ui_entry_t *, gfx_coord2_t *);
     100extern void ui_entry_delete_sel(ui_entry_t *);
     101extern void ui_entry_activate(ui_entry_t *);
     102extern void ui_entry_deactivate(ui_entry_t *);
     103extern void ui_entry_scroll_update(ui_entry_t *, bool);
    59104
    60105#endif
Note: See TracChangeset for help on using the changeset viewer.