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