diff options
author | irungentoo <irungentoo@gmail.com> | 2013-08-16 13:11:09 -0400 |
---|---|---|
committer | irungentoo <irungentoo@gmail.com> | 2013-08-16 13:11:09 -0400 |
commit | 88ff81d9def5efe69cbaf91aa41906177ba7dde9 (patch) | |
tree | cb9f149e438bcd1f18d8c1eb5d8be6b0a22f58a4 /testing/toxic/windows.c | |
parent | c5af8f44a9d040a0bbe0442ec074d9fc8562dd32 (diff) |
Passed everything through astyle.
Diffstat (limited to 'testing/toxic/windows.c')
-rw-r--r-- | testing/toxic/windows.c | 340 |
1 files changed, 183 insertions, 157 deletions
diff --git a/testing/toxic/windows.c b/testing/toxic/windows.c index 15caddf7..183c0f9b 100644 --- a/testing/toxic/windows.c +++ b/testing/toxic/windows.c | |||
@@ -14,232 +14,258 @@ static ToxWindow windows[MAX_WINDOW_SLOTS]; | |||
14 | static Messenger *m; | 14 | static Messenger *m; |
15 | int active_window; | 15 | int active_window; |
16 | 16 | ||
17 | static ToxWindow* prompt; | 17 | static ToxWindow *prompt; |
18 | 18 | ||
19 | /* CALLBACKS START */ | 19 | /* CALLBACKS START */ |
20 | void on_request(uint8_t *public_key, uint8_t *data, uint16_t length, void* userdata) | 20 | void on_request(uint8_t *public_key, uint8_t *data, uint16_t length, void *userdata) |
21 | { | 21 | { |
22 | int n = add_req(public_key); | 22 | int n = add_req(public_key); |
23 | wprintw(prompt->window, "\nFriend request from:\n"); | 23 | wprintw(prompt->window, "\nFriend request from:\n"); |
24 | 24 | ||
25 | int i; | 25 | int i; |
26 | for (i = 0; i < KEY_SIZE_BYTES; ++i) { | ||
27 | wprintw(prompt->window, "%02x", public_key[i] & 0xff); | ||
28 | } | ||
29 | 26 | ||
30 | wprintw(prompt->window, "\nWith the message: %s\n", data); | 27 | for (i = 0; i < KEY_SIZE_BYTES; ++i) { |
31 | wprintw(prompt->window, "\nUse \"accept %d\" to accept it.\n", n); | 28 | wprintw(prompt->window, "%02x", public_key[i] & 0xff); |
29 | } | ||
30 | |||
31 | wprintw(prompt->window, "\nWith the message: %s\n", data); | ||
32 | wprintw(prompt->window, "\nUse \"accept %d\" to accept it.\n", n); | ||
32 | 33 | ||
33 | for (i = 0; i < MAX_WINDOW_SLOTS; ++i) { | 34 | for (i = 0; i < MAX_WINDOW_SLOTS; ++i) { |
34 | if (windows[i].onFriendRequest != NULL) | 35 | if (windows[i].onFriendRequest != NULL) |
35 | windows[i].onFriendRequest(&windows[i], public_key, data, length); | 36 | windows[i].onFriendRequest(&windows[i], public_key, data, length); |
36 | } | 37 | } |
37 | } | 38 | } |
38 | 39 | ||
39 | void on_message(Messenger *m, int friendnumber, uint8_t *string, uint16_t length, void* userdata) | 40 | void on_message(Messenger *m, int friendnumber, uint8_t *string, uint16_t length, void *userdata) |
40 | { | 41 | { |
41 | int i; | 42 | int i; |
42 | for (i = 0; i < MAX_WINDOW_SLOTS; ++i) { | 43 | |
43 | if (windows[i].onMessage != NULL) | 44 | for (i = 0; i < MAX_WINDOW_SLOTS; ++i) { |
44 | windows[i].onMessage(&windows[i], m, friendnumber, string, length); | 45 | if (windows[i].onMessage != NULL) |
45 | } | 46 | windows[i].onMessage(&windows[i], m, friendnumber, string, length); |
47 | } | ||
46 | } | 48 | } |
47 | 49 | ||
48 | void on_action(Messenger *m, int friendnumber, uint8_t *string, uint16_t length, void* userdata) | 50 | void on_action(Messenger *m, int friendnumber, uint8_t *string, uint16_t length, void *userdata) |
49 | { | 51 | { |
50 | int i; | 52 | int i; |
51 | for (i = 0; i < MAX_WINDOW_SLOTS; ++i) { | 53 | |
52 | if (windows[i].onAction != NULL) | 54 | for (i = 0; i < MAX_WINDOW_SLOTS; ++i) { |
53 | windows[i].onAction(&windows[i], m, friendnumber, string, length); | 55 | if (windows[i].onAction != NULL) |
54 | } | 56 | windows[i].onAction(&windows[i], m, friendnumber, string, length); |
57 | } | ||
55 | } | 58 | } |
56 | 59 | ||
57 | void on_nickchange(Messenger *m, int friendnumber, uint8_t *string, uint16_t length, void* userdata) | 60 | void on_nickchange(Messenger *m, int friendnumber, uint8_t *string, uint16_t length, void *userdata) |
58 | { | 61 | { |
59 | wprintw(prompt->window, "\n(nickchange) %d: %s\n", friendnumber, string); | 62 | wprintw(prompt->window, "\n(nickchange) %d: %s\n", friendnumber, string); |
60 | int i; | 63 | int i; |
61 | for (i = 0; i < MAX_WINDOW_SLOTS; ++i) { | 64 | |
62 | if (windows[i].onNickChange != NULL) | 65 | for (i = 0; i < MAX_WINDOW_SLOTS; ++i) { |
63 | windows[i].onNickChange(&windows[i], friendnumber, string, length); | 66 | if (windows[i].onNickChange != NULL) |
64 | } | 67 | windows[i].onNickChange(&windows[i], friendnumber, string, length); |
68 | } | ||
65 | } | 69 | } |
66 | 70 | ||
67 | void on_statuschange(Messenger *m, int friendnumber, uint8_t *string, uint16_t length, void* userdata) | 71 | void on_statuschange(Messenger *m, int friendnumber, uint8_t *string, uint16_t length, void *userdata) |
68 | { | 72 | { |
69 | wprintw(prompt->window, "\n(statuschange) %d: %s\n", friendnumber, string); | 73 | wprintw(prompt->window, "\n(statuschange) %d: %s\n", friendnumber, string); |
70 | int i; | 74 | int i; |
71 | for (i=0; i<MAX_WINDOW_SLOTS; ++i) { | 75 | |
72 | if (windows[i].onStatusChange != NULL) | 76 | for (i = 0; i < MAX_WINDOW_SLOTS; ++i) { |
73 | windows[i].onStatusChange(&windows[i], friendnumber, string, length); | 77 | if (windows[i].onStatusChange != NULL) |
74 | } | 78 | windows[i].onStatusChange(&windows[i], friendnumber, string, length); |
79 | } | ||
75 | } | 80 | } |
76 | 81 | ||
77 | void on_friendadded(Messenger *m, int friendnumber) | 82 | void on_friendadded(Messenger *m, int friendnumber) |
78 | { | 83 | { |
79 | friendlist_onFriendAdded(m, friendnumber); | 84 | friendlist_onFriendAdded(m, friendnumber); |
80 | if (store_data(m, DATA_FILE) != 0) { | 85 | |
81 | wprintw(prompt->window, "\nCould not store Messenger data\n"); | 86 | if (store_data(m, DATA_FILE) != 0) { |
82 | } | 87 | wprintw(prompt->window, "\nCould not store Messenger data\n"); |
88 | } | ||
83 | } | 89 | } |
84 | /* CALLBACKS END */ | 90 | /* CALLBACKS END */ |
85 | 91 | ||
86 | int add_window(Messenger *m, ToxWindow w, int n) | 92 | int add_window(Messenger *m, ToxWindow w, int n) |
87 | { | 93 | { |
88 | if (w_num >= TOXWINDOWS_MAX_NUM) | 94 | if (w_num >= TOXWINDOWS_MAX_NUM) |
89 | return -1; | 95 | return -1; |
96 | |||
97 | if (LINES < 2) | ||
98 | return -1; | ||
90 | 99 | ||
91 | if (LINES < 2) | 100 | w.window = newwin(LINES - 2, COLS, 0, 0); |
92 | return -1; | ||
93 | 101 | ||
94 | w.window = newwin(LINES - 2, COLS, 0, 0); | 102 | if (w.window == NULL) |
95 | if (w.window == NULL) | 103 | return -1; |
96 | return -1; | ||
97 | 104 | ||
98 | windows[n] = w; | 105 | windows[n] = w; |
99 | w.onInit(&w, m); | 106 | w.onInit(&w, m); |
100 | w_num++; | 107 | w_num++; |
101 | active_window = n; | 108 | active_window = n; |
102 | return n; | 109 | return n; |
103 | } | 110 | } |
104 | 111 | ||
105 | /* Deletes window w and cleans up */ | 112 | /* Deletes window w and cleans up */ |
106 | void del_window(ToxWindow *w, int f_num) | 113 | void del_window(ToxWindow *w, int f_num) |
107 | { | 114 | { |
108 | active_window = 0; // Go to prompt screen | 115 | active_window = 0; // Go to prompt screen |
109 | delwin(w->window); | 116 | delwin(w->window); |
110 | int i; | 117 | int i; |
111 | for (i = N_DEFAULT_WINS; i < MAX_WINDOW_SLOTS; ++i) { | 118 | |
112 | if (WINDOW_STATUS[i] == f_num) { | 119 | for (i = N_DEFAULT_WINS; i < MAX_WINDOW_SLOTS; ++i) { |
113 | WINDOW_STATUS[i] = -1; | 120 | if (WINDOW_STATUS[i] == f_num) { |
114 | disable_chatwin(f_num); | 121 | WINDOW_STATUS[i] = -1; |
115 | break; | 122 | disable_chatwin(f_num); |
123 | break; | ||
124 | } | ||
116 | } | 125 | } |
117 | } | 126 | |
118 | clear(); | 127 | clear(); |
119 | refresh(); | 128 | refresh(); |
120 | } | 129 | } |
121 | 130 | ||
122 | /* Shows next window when tab or back-tab is pressed */ | 131 | /* Shows next window when tab or back-tab is pressed */ |
123 | void set_active_window(int ch) | 132 | void set_active_window(int ch) |
124 | { | 133 | { |
125 | int f_inf = 0; | 134 | int f_inf = 0; |
126 | int max = MAX_WINDOW_SLOTS-1; | 135 | int max = MAX_WINDOW_SLOTS - 1; |
127 | if (ch == '\t') { | 136 | |
128 | int i = (active_window + 1) % max; | 137 | if (ch == '\t') { |
129 | while (true) { | 138 | int i = (active_window + 1) % max; |
130 | if (WINDOW_STATUS[i] != -1) { | 139 | |
131 | active_window = i; | 140 | while (true) { |
132 | return; | 141 | if (WINDOW_STATUS[i] != -1) { |
133 | } | 142 | active_window = i; |
134 | i = (i + 1) % max; | 143 | return; |
135 | if (f_inf++ > max) { // infinite loop check | 144 | } |
136 | endwin(); | 145 | |
137 | exit(2); | 146 | i = (i + 1) % max; |
138 | } | 147 | |
139 | } | 148 | if (f_inf++ > max) { // infinite loop check |
140 | }else { | 149 | endwin(); |
141 | int i = active_window - 1; | 150 | exit(2); |
142 | if (i < 0) i = max; | 151 | } |
143 | while (true) { | 152 | } |
144 | if (WINDOW_STATUS[i] != -1) { | 153 | } else { |
145 | active_window = i; | 154 | int i = active_window - 1; |
146 | return; | 155 | |
147 | } | 156 | if (i < 0) i = max; |
148 | if (--i < 0) i = max; | 157 | |
149 | if (f_inf++ > max) { | 158 | while (true) { |
150 | endwin(); | 159 | if (WINDOW_STATUS[i] != -1) { |
151 | exit(2); | 160 | active_window = i; |
152 | } | 161 | return; |
162 | } | ||
163 | |||
164 | if (--i < 0) i = max; | ||
165 | |||
166 | if (f_inf++ > max) { | ||
167 | endwin(); | ||
168 | exit(2); | ||
169 | } | ||
170 | } | ||
153 | } | 171 | } |
154 | } | ||
155 | } | 172 | } |
156 | 173 | ||
157 | void init_window_status() | 174 | void init_window_status() |
158 | { | 175 | { |
159 | /* Default window values decrement from -2 */ | 176 | /* Default window values decrement from -2 */ |
160 | int i; | 177 | int i; |
161 | for (i = 0; i < N_DEFAULT_WINS; ++i) | 178 | |
162 | WINDOW_STATUS[i] = -(i+2); | 179 | for (i = 0; i < N_DEFAULT_WINS; ++i) |
163 | 180 | WINDOW_STATUS[i] = -(i + 2); | |
164 | int j; | 181 | |
165 | for (j = N_DEFAULT_WINS; j < MAX_WINDOW_SLOTS; j++) | 182 | int j; |
166 | WINDOW_STATUS[j] = -1; | 183 | |
184 | for (j = N_DEFAULT_WINS; j < MAX_WINDOW_SLOTS; j++) | ||
185 | WINDOW_STATUS[j] = -1; | ||
167 | } | 186 | } |
168 | 187 | ||
169 | ToxWindow *init_windows() | 188 | ToxWindow *init_windows() |
170 | { | 189 | { |
171 | w_num = 0; | 190 | w_num = 0; |
172 | int n_prompt = 0; | 191 | int n_prompt = 0; |
173 | int n_friendslist = 1; | 192 | int n_friendslist = 1; |
174 | int n_dhtstatus = 2; | 193 | int n_dhtstatus = 2; |
175 | if (add_window(m, new_prompt(on_friendadded), n_prompt) == -1 | 194 | |
176 | || add_window(m, new_friendlist(WINDOW_STATUS), n_friendslist) == -1 | 195 | if (add_window(m, new_prompt(on_friendadded), n_prompt) == -1 |
177 | || add_window(m, new_dhtstatus(), n_dhtstatus) == -1) { | 196 | || add_window(m, new_friendlist(WINDOW_STATUS), n_friendslist) == -1 |
178 | fprintf(stderr, "add_window() failed.\n"); | 197 | || add_window(m, new_dhtstatus(), n_dhtstatus) == -1) { |
179 | endwin(); | 198 | fprintf(stderr, "add_window() failed.\n"); |
180 | exit(1); | 199 | endwin(); |
181 | } | 200 | exit(1); |
182 | active_window = n_prompt; | 201 | } |
183 | prompt = &windows[n_prompt]; | 202 | |
184 | return prompt; | 203 | active_window = n_prompt; |
204 | prompt = &windows[n_prompt]; | ||
205 | return prompt; | ||
185 | } | 206 | } |
186 | 207 | ||
187 | static void draw_bar() | 208 | static void draw_bar() |
188 | { | 209 | { |
189 | static int odd = 0; | 210 | static int odd = 0; |
190 | int blinkrate = 30; | 211 | int blinkrate = 30; |
212 | |||
213 | attron(COLOR_PAIR(4)); | ||
214 | mvhline(LINES - 2, 0, '_', COLS); | ||
215 | attroff(COLOR_PAIR(4)); | ||
216 | |||
217 | move(LINES - 1, 0); | ||
218 | |||
219 | attron(COLOR_PAIR(4) | A_BOLD); | ||
220 | printw(" TOXIC " TOXICVER "|"); | ||
221 | attroff(COLOR_PAIR(4) | A_BOLD); | ||
191 | 222 | ||
192 | attron(COLOR_PAIR(4)); | 223 | int i; |
193 | mvhline(LINES - 2, 0, '_', COLS); | ||
194 | attroff(COLOR_PAIR(4)); | ||
195 | 224 | ||
196 | move(LINES - 1, 0); | 225 | for (i = 0; i < (MAX_WINDOW_SLOTS); ++i) { |
226 | if (WINDOW_STATUS[i] != -1) { | ||
227 | if (i == active_window) | ||
228 | attron(A_BOLD); | ||
197 | 229 | ||
198 | attron(COLOR_PAIR(4) | A_BOLD); | 230 | odd = (odd + 1) % blinkrate; |
199 | printw(" TOXIC " TOXICVER "|"); | ||
200 | attroff(COLOR_PAIR(4) | A_BOLD); | ||
201 | 231 | ||
202 | int i; | 232 | if (windows[i].blink && (odd < (blinkrate / 2))) |
203 | for (i = 0; i < (MAX_WINDOW_SLOTS); ++i) { | 233 | attron(COLOR_PAIR(3)); |
204 | if (WINDOW_STATUS[i] != -1) { | ||
205 | if (i == active_window) | ||
206 | attron(A_BOLD); | ||
207 | 234 | ||
208 | odd = (odd+1) % blinkrate; | 235 | printw(" %s", windows[i].title); |
209 | if (windows[i].blink && (odd < (blinkrate/2))) | ||
210 | attron(COLOR_PAIR(3)); | ||
211 | 236 | ||
212 | printw(" %s", windows[i].title); | 237 | if (windows[i].blink && (odd < (blinkrate / 2))) |
213 | if (windows[i].blink && (odd < (blinkrate/2))) | 238 | attroff(COLOR_PAIR(3)); |
214 | attroff(COLOR_PAIR(3)); | ||
215 | 239 | ||
216 | if (i == active_window) { | 240 | if (i == active_window) { |
217 | attroff(A_BOLD); | 241 | attroff(A_BOLD); |
218 | } | 242 | } |
243 | } | ||
219 | } | 244 | } |
220 | } | 245 | |
221 | refresh(); | 246 | refresh(); |
222 | } | 247 | } |
223 | 248 | ||
224 | void prepare_window(WINDOW *w) | 249 | void prepare_window(WINDOW *w) |
225 | { | 250 | { |
226 | mvwin(w, 0, 0); | 251 | mvwin(w, 0, 0); |
227 | wresize(w, LINES-2, COLS); | 252 | wresize(w, LINES - 2, COLS); |
228 | } | 253 | } |
229 | 254 | ||
230 | void draw_active_window(Messenger *m) | 255 | void draw_active_window(Messenger *m) |
231 | { | 256 | { |
232 | 257 | ||
233 | ToxWindow *a = &windows[active_window]; | 258 | ToxWindow *a = &windows[active_window]; |
234 | prepare_window(a->window); | 259 | prepare_window(a->window); |
235 | a->blink = false; | 260 | a->blink = false; |
236 | draw_bar(); | 261 | draw_bar(); |
237 | a->onDraw(a); | 262 | a->onDraw(a); |
238 | 263 | ||
239 | /* Handle input */ | 264 | /* Handle input */ |
240 | int ch = getch(); | 265 | int ch = getch(); |
241 | if (ch == '\t' || ch == KEY_BTAB) | 266 | |
242 | set_active_window(ch); | 267 | if (ch == '\t' || ch == KEY_BTAB) |
243 | else if (ch != ERR) | 268 | set_active_window(ch); |
244 | a->onKey(a, m, ch); | 269 | else if (ch != ERR) |
270 | a->onKey(a, m, ch); | ||
245 | } | 271 | } |