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