home · contact · privacy
Added info on new recording system to README.
[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 void scroll_pad (struct WinMeta *, char);
33 struct Win init_window (struct WinMeta *, char *, void *, void *);
34 void append_window (struct WinMeta *, struct Win *);
35 void suspend_window (struct WinMeta *, struct Win *);
36 struct yx place_window (struct WinMeta *, struct Win *);
37 void update_windows (struct WinMeta *, struct Win *);
38 void destroy_window (struct Win *);
39 void draw_windows (struct Win *);
40 void draw_windows_borders (struct Win *, struct Win *, struct Corners *, uint16_t);
41 void draw_window_borders (struct Win *, 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);