home · contact · privacy
Moved keybindings manipulation stuff into its own library.
[plomrogue] / windows.h
index 059ce5f2e53e3e57b1f881702ca5b48bcfe755f5..b5df4981e98fe13a7d9f3cc9ed2e19e44692c02b 100644 (file)
--- a/windows.h
+++ b/windows.h
@@ -1,46 +1,45 @@
 struct WinMeta {
+  WINDOW * screen;
+  WINDOW * pad;
+  int pad_offset;
   struct Win * chain_start;
   struct Win * chain_end;
   struct Win * active;
-  int height;
-  int width; };
+  int width;
+  int height; };
 
 struct Win {
   struct Win * prev;
   struct Win * next;
   int width;
   int height;
-  int start_x;
-  int start_y;
-  WINDOW * curses_win;
-  char border_left;
-  char border_down;
+  WINDOW * curses;
   char * title;
   void (* draw) (struct Win *);
   void * data; };
 
+struct yx {
+  int y;
+  int x; };
+
 struct Corners {
-  int tl_y;
-  int tl_x;
-  int tr_y;
-  int tr_x;
-  int bl_y;
-  int bl_x;
-  int br_y;
-  int br_x; };
+  struct yx tl;
+  struct yx tr;
+  struct yx bl;
+  struct yx br; };
 
 struct  WinMeta init_win_meta (WINDOW *);
-struct Win init_window (struct WinMeta *, char *);
+void scroll_pad (struct WinMeta *, char);
+struct Win init_window (struct WinMeta *, char *, void *, void *);
 void append_window (struct WinMeta *, struct Win *);
 void suspend_window (struct WinMeta *, struct Win *);
-void place_window (struct WinMeta *, struct Win *);
+struct yx place_window (struct WinMeta *, struct Win *);
 void update_windows (struct WinMeta *, struct Win *);
 void destroy_window (struct Win *);
-void draw_window(struct Win *);
 void draw_windows (struct Win *);
 void draw_windows_borders (struct Win *, struct Win *, struct Corners *, int);
 void draw_window_borders (struct Win *, char);
 void draw_all_windows (struct WinMeta *);
-void resize_window (struct WinMeta *, char);
+void resize_active_window (struct WinMeta *, int, int);
 void cycle_active_window (struct WinMeta *, char);
-void shift_window (struct WinMeta *, char);
+void shift_active_window (struct WinMeta *, char);