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