summaryrefslogtreecommitdiff
path: root/testing/toxic/friendlist.c
diff options
context:
space:
mode:
authorirungentoo <irungentoo@gmail.com>2013-08-16 13:11:09 -0400
committerirungentoo <irungentoo@gmail.com>2013-08-16 13:11:09 -0400
commit88ff81d9def5efe69cbaf91aa41906177ba7dde9 (patch)
treecb9f149e438bcd1f18d8c1eb5d8be6b0a22f58a4 /testing/toxic/friendlist.c
parentc5af8f44a9d040a0bbe0442ec074d9fc8562dd32 (diff)
Passed everything through astyle.
Diffstat (limited to 'testing/toxic/friendlist.c')
-rw-r--r--testing/toxic/friendlist.c241
1 files changed, 125 insertions, 116 deletions
diff --git a/testing/toxic/friendlist.c b/testing/toxic/friendlist.c
index e7504fbf..c85fd3ae 100644
--- a/testing/toxic/friendlist.c
+++ b/testing/toxic/friendlist.c
@@ -13,13 +13,13 @@
13#include "windows.h" 13#include "windows.h"
14#include "friendlist.h" 14#include "friendlist.h"
15 15
16static char * WINDOW_STATUS; 16static char *WINDOW_STATUS;
17 17
18typedef struct { 18typedef struct {
19 uint8_t name[MAX_NAME_LENGTH]; 19 uint8_t name[MAX_NAME_LENGTH];
20 uint8_t status[MAX_STATUSMESSAGE_LENGTH]; 20 uint8_t status[MAX_STATUSMESSAGE_LENGTH];
21 int num; 21 int num;
22 int chatwin; 22 int chatwin;
23} friend_t; 23} friend_t;
24 24
25static friend_t friends[MAX_FRIENDS_NUM]; 25static friend_t friends[MAX_FRIENDS_NUM];
@@ -28,135 +28,143 @@ static int num_selected = 0;
28 28
29void fix_name(uint8_t *name) 29void fix_name(uint8_t *name)
30{ 30{
31 /* Remove all non alphanumeric characters */ 31 /* Remove all non alphanumeric characters */
32 uint8_t *p = name; 32 uint8_t *p = name;
33 uint8_t *q = name; 33 uint8_t *q = name;
34 while(*p != 0) { 34
35 if (isprint(*p)) 35 while (*p != 0) {
36 *q++ = *p; 36 if (isprint(*p))
37 p++; 37 *q++ = *p;
38 } 38
39 *q = 0; 39 p++;
40 }
41
42 *q = 0;
40} 43}
41 44
42void friendlist_onMessage(ToxWindow *self, Messenger *m, int num, uint8_t *str, uint16_t len) 45void friendlist_onMessage(ToxWindow *self, Messenger *m, int num, uint8_t *str, uint16_t len)
43{ 46{
44 if (num >= num_friends) 47 if (num >= num_friends)
45 return; 48 return;
46 49
47 if (friends[num].chatwin == -1) { 50 if (friends[num].chatwin == -1) {
48 friends[num].chatwin = num; 51 friends[num].chatwin = num;
49 int i; 52 int i;
50 /* Find first open slot to hold chat window */ 53
51 for (i = N_DEFAULT_WINS; i < MAX_WINDOW_SLOTS; ++i) { 54 /* Find first open slot to hold chat window */
52 if (WINDOW_STATUS[i] == -1) { 55 for (i = N_DEFAULT_WINS; i < MAX_WINDOW_SLOTS; ++i) {
53 WINDOW_STATUS[i] = num; 56 if (WINDOW_STATUS[i] == -1) {
54 add_window(m, new_chat(m, num), i); 57 WINDOW_STATUS[i] = num;
55 break; 58 add_window(m, new_chat(m, num), i);
56 } 59 break;
60 }
61 }
57 } 62 }
58 }
59} 63}
60 64
61void friendlist_onNickChange(ToxWindow *self, int num, uint8_t *str, uint16_t len) 65void friendlist_onNickChange(ToxWindow *self, int num, uint8_t *str, uint16_t len)
62{ 66{
63 if (len >= MAX_NAME_LENGTH || num >= num_friends) 67 if (len >= MAX_NAME_LENGTH || num >= num_friends)
64 return; 68 return;
65 69
66 memcpy((char*) &friends[num].name, (char*) str, len); 70 memcpy((char *) &friends[num].name, (char *) str, len);
67 friends[num].name[len] = 0; 71 friends[num].name[len] = 0;
68 fix_name(friends[num].name); 72 fix_name(friends[num].name);
69} 73}
70 74
71void friendlist_onStatusChange(ToxWindow *self, int num, uint8_t *str, uint16_t len) 75void friendlist_onStatusChange(ToxWindow *self, int num, uint8_t *str, uint16_t len)
72{ 76{
73 if (len >= MAX_STATUSMESSAGE_LENGTH || num >= num_friends) 77 if (len >= MAX_STATUSMESSAGE_LENGTH || num >= num_friends)
74 return; 78 return;
75 79
76 memcpy((char*) &friends[num].status, (char*) str, len); 80 memcpy((char *) &friends[num].status, (char *) str, len);
77 friends[num].status[len] = 0; 81 friends[num].status[len] = 0;
78 fix_name(friends[num].status); 82 fix_name(friends[num].status);
79} 83}
80 84
81int friendlist_onFriendAdded(Messenger *m, int num) 85int friendlist_onFriendAdded(Messenger *m, int num)
82{ 86{
83 if (num_friends == MAX_FRIENDS_NUM) 87 if (num_friends == MAX_FRIENDS_NUM)
84 return -1; 88 return -1;
85 89
86 friends[num_friends].num = num; 90 friends[num_friends].num = num;
87 getname(m, num, friends[num_friends].name); 91 getname(m, num, friends[num_friends].name);
88 strcpy((char*) friends[num_friends].name, "unknown"); 92 strcpy((char *) friends[num_friends].name, "unknown");
89 strcpy((char*) friends[num_friends].status, "unknown"); 93 strcpy((char *) friends[num_friends].status, "unknown");
90 friends[num_friends++].chatwin = -1; 94 friends[num_friends++].chatwin = -1;
91 return 0; 95 return 0;
92} 96}
93 97
94static void friendlist_onKey(ToxWindow *self, Messenger *m, int key) 98static void friendlist_onKey(ToxWindow *self, Messenger *m, int key)
95{ 99{
96 if (key == KEY_UP) { 100 if (key == KEY_UP) {
97 if (--num_selected < 0) 101 if (--num_selected < 0)
98 num_selected = num_friends-1; 102 num_selected = num_friends - 1;
99 } 103 } else if (key == KEY_DOWN) {
100 else if (key == KEY_DOWN) { 104 if (num_friends != 0)
101 if (num_friends != 0) 105 num_selected = (num_selected + 1) % num_friends;
102 num_selected = (num_selected+1) % num_friends; 106 } else if (key == '\n') {
103 } 107 /* Jump to chat window if already open */
104 else if (key == '\n') { 108 if (friends[num_selected].chatwin != -1) {
105 /* Jump to chat window if already open */ 109 int i;
106 if (friends[num_selected].chatwin != -1) { 110
107 int i; 111 for (i = N_DEFAULT_WINS; i < MAX_WINDOW_SLOTS; ++i) {
108 for (i = N_DEFAULT_WINS; i < MAX_WINDOW_SLOTS; ++i) { 112 if (WINDOW_STATUS[i] == num_selected) {
109 if (WINDOW_STATUS[i] == num_selected) { 113 set_active_window(i);
110 set_active_window(i); 114 break;
111 break; 115 }
112 } 116 }
113 } 117 } else {
114 }else { 118 int i;
115 int i; 119
116 for (i = N_DEFAULT_WINS; i < MAX_WINDOW_SLOTS; ++i) { 120 for (i = N_DEFAULT_WINS; i < MAX_WINDOW_SLOTS; ++i) {
117 if (WINDOW_STATUS[i] == -1) { 121 if (WINDOW_STATUS[i] == -1) {
118 WINDOW_STATUS[i] = num_selected; 122 WINDOW_STATUS[i] = num_selected;
119 friends[num_selected].chatwin = num_selected; 123 friends[num_selected].chatwin = num_selected;
120 add_window(m, new_chat(m, num_selected), i); 124 add_window(m, new_chat(m, num_selected), i);
121 break; 125 break;
126 }
127 }
122 } 128 }
123 }
124 } 129 }
125 }
126} 130}
127 131
128static void friendlist_onDraw(ToxWindow *self) 132static void friendlist_onDraw(ToxWindow *self)
129{ 133{
130 curs_set(0); 134 curs_set(0);
131 werase(self->window); 135 werase(self->window);
132 if (num_friends == 0) { 136
133 wprintw(self->window, "Empty. Add some friends! :-)\n"); 137 if (num_friends == 0) {
134 } 138 wprintw(self->window, "Empty. Add some friends! :-)\n");
135 else { 139 } else {
136 wattron(self->window, COLOR_PAIR(2) | A_BOLD); 140 wattron(self->window, COLOR_PAIR(2) | A_BOLD);
137 wprintw(self->window, "Open chat with.. (up/down keys, enter)\n"); 141 wprintw(self->window, "Open chat with.. (up/down keys, enter)\n");
138 wattroff(self->window, COLOR_PAIR(2) | A_BOLD); 142 wattroff(self->window, COLOR_PAIR(2) | A_BOLD);
139 } 143 }
140 144
141 wprintw(self->window, "\n"); 145 wprintw(self->window, "\n");
142 int i; 146 int i;
143 for (i = 0; i < num_friends; ++i) { 147
144 if (i == num_selected) wattron(self->window, COLOR_PAIR(3)); 148 for (i = 0; i < num_friends; ++i) {
145 wprintw(self->window, " [#%d] ", friends[i].num); 149 if (i == num_selected) wattron(self->window, COLOR_PAIR(3));
146 if (i == num_selected) wattroff(self->window, COLOR_PAIR(3)); 150
147 151 wprintw(self->window, " [#%d] ", friends[i].num);
148 attron(A_BOLD); 152
149 wprintw(self->window, "%s ", friends[i].name); 153 if (i == num_selected) wattroff(self->window, COLOR_PAIR(3));
150 attroff(A_BOLD); 154
151 155 attron(A_BOLD);
152 wprintw(self->window, "(%s)\n", friends[i].status); 156 wprintw(self->window, "%s ", friends[i].name);
153 } 157 attroff(A_BOLD);
154 wrefresh(self->window); 158
159 wprintw(self->window, "(%s)\n", friends[i].status);
160 }
161
162 wrefresh(self->window);
155} 163}
156 164
157void disable_chatwin(int f_num) 165void disable_chatwin(int f_num)
158{ 166{
159 friends[f_num].chatwin = -1; 167 friends[f_num].chatwin = -1;
160} 168}
161 169
162static void friendlist_onInit(ToxWindow *self, Messenger *m) 170static void friendlist_onInit(ToxWindow *self, Messenger *m)
@@ -164,19 +172,20 @@ static void friendlist_onInit(ToxWindow *self, Messenger *m)
164 172
165} 173}
166 174
167ToxWindow new_friendlist(char * ws) { 175ToxWindow new_friendlist(char *ws)
168 WINDOW_STATUS = ws; 176{
169 ToxWindow ret; 177 WINDOW_STATUS = ws;
170 memset(&ret, 0, sizeof(ret)); 178 ToxWindow ret;
171 179 memset(&ret, 0, sizeof(ret));
172 ret.onKey = &friendlist_onKey; 180
173 ret.onDraw = &friendlist_onDraw; 181 ret.onKey = &friendlist_onKey;
174 ret.onInit = &friendlist_onInit; 182 ret.onDraw = &friendlist_onDraw;
175 ret.onMessage = &friendlist_onMessage; 183 ret.onInit = &friendlist_onInit;
176 ret.onAction = &friendlist_onMessage; // Action has identical behaviour to message 184 ret.onMessage = &friendlist_onMessage;
177 ret.onNickChange = &friendlist_onNickChange; 185 ret.onAction = &friendlist_onMessage; // Action has identical behaviour to message
178 ret.onStatusChange = &friendlist_onStatusChange; 186 ret.onNickChange = &friendlist_onNickChange;
179 187 ret.onStatusChange = &friendlist_onStatusChange;
180 strcpy(ret.title, "[friends]"); 188
181 return ret; 189 strcpy(ret.title, "[friends]");
190 return ret;
182} 191}