home · contact · privacy
Moved lots of stuff into new library actors.
[plomrogue] / src / windows.h
1 #ifndef WINDOWS_H
2 #define WINDOWS_H
3
4 #include "ncurses.h"
5 #include "yx_uint16.h"
6
7 struct Frame {
8   WINDOW * curses_win;
9   struct yx_uint16 size; };
10
11 struct WinMeta {
12   WINDOW * screen;
13   uint16_t pad_offset;
14   struct Frame pad;
15   struct Win * chain_start;
16   struct Win * chain_end;
17   struct Win * active; };
18
19 struct Win {
20   struct Win * prev;
21   struct Win * next;
22   struct yx_uint16 start;
23   struct Frame frame;
24   char * title;
25   void (* draw) (struct Win *);
26   void * data; };
27
28 extern struct WinMeta init_win_meta (WINDOW *);
29 extern struct Win init_win (struct WinMeta *, char *, void *, void *);
30 extern void append_win (struct WinMeta *, struct Win *);
31 extern void suspend_win (struct WinMeta *, struct Win *);
32 extern void draw_scroll_hint (struct Frame *, uint16_t, uint32_t, char);
33 extern void draw_all_wins (struct WinMeta *);
34 extern void resize_active_win (struct WinMeta *, uint16_t, uint16_t);
35 extern void cycle_active_win (struct WinMeta *, char);
36 extern void shift_active_win (struct WinMeta *, char);
37 extern void reset_pad_offset (struct WinMeta *, uint16_t);
38
39 #endif