home · contact · privacy
Moved several windows control functions from misc library into new wincontrol library.
[plomrogue] / src / wincontrol.c
1 /* wincontrol.c */
2
3 #include "wincontrol.h"
4 #include <stdint.h> /* for uint8_t */
5 #include "windows.h" /* for suspend_win(), append_win(), reset_pad_offset(),
6                       * resize_active_win(), struct Win, struct WinMeta
7                       */
8 #include "yx_uint16.h" /* for yx_uint16 struct */
9
10
11 extern uint8_t toggle_window(struct WinMeta * win_meta, struct Win * win)
12 {
13     if (0 != win->frame.curses_win)
14     {
15         return suspend_win(win_meta, win);
16     }
17     else
18     {
19         return append_win(win_meta, win);
20     }
21 }
22
23
24
25 extern void scroll_pad(struct WinMeta * win_meta, char dir)
26 {
27     if      ('+' == dir)
28     {
29         reset_pad_offset(win_meta, win_meta->pad_offset + 1);
30     }
31     else if ('-' == dir)
32     {
33         reset_pad_offset(win_meta, win_meta->pad_offset - 1);
34     }
35 }
36
37
38
39 extern uint8_t growshrink_active_window(struct WinMeta * win_meta, char change)
40 {
41     if (0 != win_meta->active)
42     {
43         struct yx_uint16 size = win_meta->active->frame.size;
44         if      (change == '-')
45         {
46             size.y--;
47         }
48         else if (change == '+')
49         {
50             size.y++;
51         }
52         else if (change == '_')
53         {
54             size.x--;
55         }
56         else if (change == '*')
57         {
58             size.x++;
59         }
60         return resize_active_win (win_meta, size);
61     }
62     return 0;
63 }
64