Blame


1 f26f1205 2022-02-09 op /*
2 f26f1205 2022-02-09 op * Copyright (c) 2021 Omar Polo <op@omarpolo.com>
3 f26f1205 2022-02-09 op *
4 f26f1205 2022-02-09 op * Permission to use, copy, modify, and distribute this software for any
5 f26f1205 2022-02-09 op * purpose with or without fee is hereby granted, provided that the above
6 f26f1205 2022-02-09 op * copyright notice and this permission notice appear in all copies.
7 f26f1205 2022-02-09 op *
8 f26f1205 2022-02-09 op * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 f26f1205 2022-02-09 op * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 f26f1205 2022-02-09 op * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 f26f1205 2022-02-09 op * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 f26f1205 2022-02-09 op * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 f26f1205 2022-02-09 op * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 f26f1205 2022-02-09 op * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 f26f1205 2022-02-09 op */
16 f26f1205 2022-02-09 op
17 f26f1205 2022-02-09 op #ifndef UI_H
18 f26f1205 2022-02-09 op #define UI_H
19 f26f1205 2022-02-09 op
20 f26f1205 2022-02-09 op #include "keymap.h"
21 f26f1205 2022-02-09 op #include "telescope.h"
22 f26f1205 2022-02-09 op
23 f26f1205 2022-02-09 op extern int body_lines;
24 f26f1205 2022-02-09 op extern int body_cols;
25 f26f1205 2022-02-09 op
26 f26f1205 2022-02-09 op extern struct kmap global_map, minibuffer_map, *current_map, *base_map;
27 f26f1205 2022-02-09 op
28 f26f1205 2022-02-09 op struct excursion {
29 f26f1205 2022-02-09 op int curs_x, curs_y;
30 f26f1205 2022-02-09 op size_t line_off;
31 f26f1205 2022-02-09 op struct vline *current_line;
32 f26f1205 2022-02-09 op struct vline *top_line;
33 f26f1205 2022-02-09 op size_t cpoff;
34 f26f1205 2022-02-09 op };
35 f26f1205 2022-02-09 op
36 f26f1205 2022-02-09 op enum pairs {
37 f26f1205 2022-02-09 op PTL_BG = 1,
38 f26f1205 2022-02-09 op PTL_TAB,
39 f26f1205 2022-02-09 op PTL_CURR,
40 f26f1205 2022-02-09 op
41 f26f1205 2022-02-09 op PBODY,
42 f26f1205 2022-02-09 op PBLEFT,
43 f26f1205 2022-02-09 op PBRIGHT,
44 f26f1205 2022-02-09 op
45 f26f1205 2022-02-09 op PT,
46 f26f1205 2022-02-09 op PT_PRFX,
47 f26f1205 2022-02-09 op PT_TRAIL,
48 f26f1205 2022-02-09 op PL,
49 f26f1205 2022-02-09 op PL_PRFX,
50 f26f1205 2022-02-09 op PL_TRAIL,
51 f26f1205 2022-02-09 op PT1,
52 f26f1205 2022-02-09 op PT1_PRFX,
53 f26f1205 2022-02-09 op PT1_TRAIL,
54 f26f1205 2022-02-09 op PT2,
55 f26f1205 2022-02-09 op PT2_PRFX,
56 f26f1205 2022-02-09 op PT2_TRAIL,
57 f26f1205 2022-02-09 op PT3,
58 f26f1205 2022-02-09 op PT3_PRFX,
59 f26f1205 2022-02-09 op PT3_TRAIL,
60 f26f1205 2022-02-09 op PI,
61 f26f1205 2022-02-09 op PI_PRFX,
62 f26f1205 2022-02-09 op PI_TRAIL,
63 f26f1205 2022-02-09 op PQ,
64 f26f1205 2022-02-09 op PQ_PRFX,
65 f26f1205 2022-02-09 op PQ_TRAIL,
66 f26f1205 2022-02-09 op PPSTART,
67 f26f1205 2022-02-09 op PPSTART_PRFX,
68 f26f1205 2022-02-09 op PPSTART_TRAIL,
69 f26f1205 2022-02-09 op PP,
70 f26f1205 2022-02-09 op PP_PRFX,
71 f26f1205 2022-02-09 op PP_TRAIL,
72 f26f1205 2022-02-09 op PPEND,
73 f26f1205 2022-02-09 op PPEND_PRFX,
74 f26f1205 2022-02-09 op PPEND_TRAIL,
75 f26f1205 2022-02-09 op
76 f26f1205 2022-02-09 op PPATCH,
77 f26f1205 2022-02-09 op PPATCH_PRFX,
78 f26f1205 2022-02-09 op PPATCH_TRAIL,
79 f26f1205 2022-02-09 op PPATCH_HDR,
80 f26f1205 2022-02-09 op PPATCH_HDR_PRFX,
81 f26f1205 2022-02-09 op PPATCH_HDR_TRAIL,
82 f26f1205 2022-02-09 op PPATCH_HUNK_HDR,
83 f26f1205 2022-02-09 op PPATCH_HUNK_HDR_PRFX,
84 f26f1205 2022-02-09 op PPATCH_HUNK_HDR_TRAIL,
85 f26f1205 2022-02-09 op PPATCH_ADD,
86 f26f1205 2022-02-09 op PPATCH_ADD_PRFX,
87 f26f1205 2022-02-09 op PPATCH_ADD_TRAIL,
88 f26f1205 2022-02-09 op PPATCH_DEL,
89 f26f1205 2022-02-09 op PPATCH_DEL_PRFX,
90 f26f1205 2022-02-09 op PPATCH_DEL_TRAIL,
91 f26f1205 2022-02-09 op
92 f26f1205 2022-02-09 op PCOMPL_PRFX,
93 f26f1205 2022-02-09 op PCOMPL,
94 f26f1205 2022-02-09 op PCOMPL_TRAIL,
95 f26f1205 2022-02-09 op
96 f26f1205 2022-02-09 op PCOMPL_CURR_PRFX,
97 f26f1205 2022-02-09 op PCOMPL_CURR,
98 f26f1205 2022-02-09 op PCOMPL_CURR_TRAIL,
99 f26f1205 2022-02-09 op
100 f26f1205 2022-02-09 op PHELP_PRFX,
101 f26f1205 2022-02-09 op PHELP,
102 f26f1205 2022-02-09 op PHELP_TRAIL,
103 f26f1205 2022-02-09 op
104 f26f1205 2022-02-09 op PDOWNLOAD_PRFX,
105 f26f1205 2022-02-09 op PDOWNLOAD,
106 f26f1205 2022-02-09 op PDOWNLOAD_TRAIL,
107 f26f1205 2022-02-09 op
108 f26f1205 2022-02-09 op PDOWNLOAD_DONE_PRFX,
109 f26f1205 2022-02-09 op PDOWNLOAD_DONE,
110 f26f1205 2022-02-09 op PDOWNLOAD_DONE_TRAIL,
111 f26f1205 2022-02-09 op
112 f26f1205 2022-02-09 op PDOWNLOAD_INFO_PRFX,
113 f26f1205 2022-02-09 op PDOWNLOAD_INFO,
114 f26f1205 2022-02-09 op PDOWNLOAD_INFO_TRAIL,
115 f26f1205 2022-02-09 op
116 f26f1205 2022-02-09 op PDOWNLOAD_WIN,
117 f26f1205 2022-02-09 op
118 f26f1205 2022-02-09 op PMODELINE,
119 f26f1205 2022-02-09 op
120 f26f1205 2022-02-09 op PMINIBUF,
121 f26f1205 2022-02-09 op
122 f26f1205 2022-02-09 op PFRINGE_PRFX,
123 f26f1205 2022-02-09 op PFRINGE,
124 f26f1205 2022-02-09 op PFRINGE_TRAIL,
125 f26f1205 2022-02-09 op };
126 f26f1205 2022-02-09 op
127 f26f1205 2022-02-09 op extern struct thiskey thiskey;
128 f26f1205 2022-02-09 op
129 f26f1205 2022-02-09 op extern struct tab *current_tab;
130 f26f1205 2022-02-09 op
131 f26f1205 2022-02-09 op extern struct buffer helpwin;
132 f26f1205 2022-02-09 op extern int help_lines, help_cols;
133 f26f1205 2022-02-09 op
134 f26f1205 2022-02-09 op extern struct buffer downloadwin;
135 f26f1205 2022-02-09 op extern int download_lines;
136 f26f1205 2022-02-09 op extern int download_cols;
137 f26f1205 2022-02-09 op
138 f26f1205 2022-02-09 op void get_scroll_position(struct tab *, size_t *, size_t *);
139 f26f1205 2022-02-09 op void save_excursion(struct excursion *, struct buffer *);
140 f26f1205 2022-02-09 op void restore_excursion(struct excursion *, struct buffer *);
141 f26f1205 2022-02-09 op void global_key_unbound(void);
142 f26f1205 2022-02-09 op struct buffer *current_buffer(void);
143 f26f1205 2022-02-09 op struct vline *adjust_line(struct vline *, struct buffer *);
144 f26f1205 2022-02-09 op void start_loading_anim(struct tab *);
145 f26f1205 2022-02-09 op
146 f26f1205 2022-02-09 op int ui_print_colors(void);
147 f26f1205 2022-02-09 op int ui_init(void);
148 f26f1205 2022-02-09 op void ui_main_loop(void);
149 f26f1205 2022-02-09 op void ui_on_tab_loaded(struct tab *);
150 f26f1205 2022-02-09 op void ui_on_tab_refresh(struct tab *);
151 f26f1205 2022-02-09 op void ui_on_download_refresh(void);
152 0a987358 2022-02-24 op void ui_remotely_open_link(const char *);
153 f26f1205 2022-02-09 op const char *ui_keyname(int);
154 f26f1205 2022-02-09 op void ui_toggle_side_window(int);
155 f26f1205 2022-02-09 op void ui_show_downloads_pane(void);
156 f26f1205 2022-02-09 op void ui_schedule_redraw(void);
157 f26f1205 2022-02-09 op void ui_after_message_hook(void);
158 f26f1205 2022-02-09 op void ui_require_input(struct tab *, int, void (*)(void));
159 f26f1205 2022-02-09 op void ui_yornp(const char *, void (*)(int, struct tab *), struct tab *);
160 f26f1205 2022-02-09 op void ui_read(const char *, void (*)(const char *, struct tab *), struct tab *, const char *);
161 f26f1205 2022-02-09 op void ui_other_window(void);
162 f26f1205 2022-02-09 op void ui_suspend(void);
163 f26f1205 2022-02-09 op void ui_end(void);
164 f26f1205 2022-02-09 op
165 f26f1205 2022-02-09 op #endif