Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/include/io/window.h

    r6d5e378 r62fbb7e  
    3636#define LIBC_IO_WINDOW_H_
    3737
    38 #include <bool.h>
     38#include <stdbool.h>
    3939#include <sys/types.h>
    4040#include <async.h>
    4141#include <loc.h>
    42 #include <io/console.h>
    43 
    44 typedef enum {
    45         POS_UPDATE,
    46         POS_PRESS,
    47         POS_RELEASE
    48 } pos_event_type_t;
    49 
    50 typedef struct {
    51         sysarg_t pos_id;
    52         pos_event_type_t type;
    53         sysarg_t btn_num;
    54         sysarg_t hpos;
    55         sysarg_t vpos;
    56 } pos_event_t;
    57 
    58 typedef struct {
    59         sysarg_t object;
    60         sysarg_t slot;
    61         sysarg_t argument;
    62 } sig_event_t;
    63 
    64 typedef struct {
    65         sysarg_t width;
    66         sysarg_t height;
    67 } rsz_event_t;
    68 
    69 typedef enum {
    70         ET_KEYBOARD_EVENT,
    71         ET_POSITION_EVENT,
    72         ET_SIGNAL_EVENT,
    73         ET_WINDOW_RESIZE,
    74         ET_WINDOW_REFRESH,
    75         ET_WINDOW_DAMAGE,
    76         ET_WINDOW_CLOSE
    77 } window_event_type_t;
    78 
    79 typedef union {
    80         kbd_event_t kbd;
    81         pos_event_t pos;
    82         sig_event_t sig;
    83         rsz_event_t rsz;
    84 } window_event_data_t;
    85 
    86 typedef struct {
    87         link_t link;
    88         window_event_type_t type;
    89         window_event_data_t data;
    90 } window_event_t;
     42#include <io/kbd_event.h>
     43#include <io/pos_event.h>
    9144
    9245typedef enum {
     
    10053} window_grab_flags_t;
    10154
     55typedef enum {
     56        WINDOW_PLACEMENT_ANY = 0,
     57        WINDOW_PLACEMENT_CENTER_X = 1,
     58        WINDOW_PLACEMENT_CENTER_Y = 2,
     59        WINDOW_PLACEMENT_CENTER =
     60            WINDOW_PLACEMENT_CENTER_X | WINDOW_PLACEMENT_CENTER_Y,
     61        WINDOW_PLACEMENT_LEFT = 4,
     62        WINDOW_PLACEMENT_RIGHT = 8,
     63        WINDOW_PLACEMENT_TOP = 16,
     64        WINDOW_PLACEMENT_BOTTOM = 32,
     65        WINDOW_PLACEMENT_ABSOLUTE_X = 64,
     66        WINDOW_PLACEMENT_ABSOLUTE_Y = 128,
     67        WINDOW_PLACEMENT_ABSOLUTE =
     68            WINDOW_PLACEMENT_ABSOLUTE_X | WINDOW_PLACEMENT_ABSOLUTE_Y
     69} window_placement_flags_t;
     70
     71typedef struct {
     72        sysarg_t object;
     73        sysarg_t slot;
     74        sysarg_t argument;
     75} signal_event_t;
     76
     77typedef struct {
     78        sysarg_t offset_x;
     79        sysarg_t offset_y;
     80        sysarg_t width;
     81        sysarg_t height;
     82        window_placement_flags_t placement_flags;
     83} resize_event_t;
     84
     85typedef enum {
     86        ET_KEYBOARD_EVENT,
     87        ET_POSITION_EVENT,
     88        ET_SIGNAL_EVENT,
     89        ET_WINDOW_FOCUS,
     90        ET_WINDOW_UNFOCUS,
     91        ET_WINDOW_RESIZE,
     92        ET_WINDOW_REFRESH,
     93        ET_WINDOW_DAMAGE,
     94        ET_WINDOW_CLOSE
     95} window_event_type_t;
     96
     97typedef union {
     98        kbd_event_t kbd;
     99        pos_event_t pos;
     100        signal_event_t signal;
     101        resize_event_t resize;
     102} window_event_data_t;
     103
     104typedef struct {
     105        link_t link;
     106        window_event_type_t type;
     107        window_event_data_t data;
     108} window_event_t;
     109
    102110extern int win_register(async_sess_t *, service_id_t *, service_id_t *);
    103111
     
    106114extern int win_damage(async_sess_t *, sysarg_t, sysarg_t, sysarg_t, sysarg_t);
    107115extern int win_grab(async_sess_t *, sysarg_t, sysarg_t);
    108 extern int win_resize(async_sess_t *, sysarg_t, sysarg_t, void *);
     116extern int win_resize(async_sess_t *, sysarg_t, sysarg_t, sysarg_t, sysarg_t,
     117    window_placement_flags_t, void *);
    109118extern int win_close(async_sess_t *);
    110119extern int win_close_request(async_sess_t *);
Note: See TracChangeset for help on using the changeset viewer.