home · contact · privacy
df6973146305b4a7f586517b720e7ebbac0706e6
[plomrogue] / windows.h
1 struct WinMeta {
2   WINDOW * screen;
3   WINDOW * pad;
4   uint16_t  pad_offset;
5   struct Win * chain_start;
6   struct Win * chain_end;
7   struct Win * active;
8   uint16_t width;
9   uint16_t height; };
10
11 struct Win {
12   struct Win * prev;
13   struct Win * next;
14   uint16_t width;
15   uint16_t height;
16   WINDOW * curses;
17   char * title;
18   void (* draw) (struct Win *);
19   void * data; };
20
21 struct yx {
22   uint16_t y;
23   uint16_t x; };
24
25 struct Corners {
26   struct yx tl;
27   struct yx tr;
28   struct yx bl;
29   struct yx br; };
30
31 struct  WinMeta init_win_meta (WINDOW *);
32 struct Win init_window (struct WinMeta *, char *, void *, void *);
33 void append_window (struct WinMeta *, struct Win *);
34 void suspend_window (struct WinMeta *, struct Win *);
35 struct yx place_window (struct WinMeta *, struct Win *);
36 void update_windows (struct WinMeta *, struct Win *);
37 void destroy_window (struct Win *);
38 void draw_windows (struct Win *);
39 void draw_windows_borders (struct Win *, struct Win *, struct Corners *, uint16_t);
40 void draw_window_borders (struct Win *, char);
41 void draw_vertical_scroll_hint (struct WinMeta *, uint16_t, uint32_t, char);
42 void draw_all_windows (struct WinMeta *);
43 void resize_active_window (struct WinMeta *, uint16_t, uint16_t);
44 void cycle_active_window (struct WinMeta *, char);
45 void shift_active_window (struct WinMeta *, char);
46 void reset_pad_offset (struct WinMeta *, uint16_t);