summaryrefslogtreecommitdiff
path: root/testing/toxic
diff options
context:
space:
mode:
authorcharmlesscoin <charmlesscoin@gmail.com>2013-08-07 15:22:57 -0400
committercharmlesscoin <charmlesscoin@gmail.com>2013-08-07 15:22:57 -0400
commit0f664f3122af9b29cece1a6342b343af0d06d63f (patch)
treeb1da9ec5795e5ecd95d1bc50875e43815f154881 /testing/toxic
parent64b05c09601c1a0f45674384daa5f25be530bc34 (diff)
parentdda22a016774742588b88aac81d2267628758491 (diff)
Merge branch 'master' of git://github.com/irungentoo/ProjectTox-Core into auto_tests
Diffstat (limited to 'testing/toxic')
-rw-r--r--testing/toxic/main.c13
-rw-r--r--testing/toxic/prompt.c62
2 files changed, 67 insertions, 8 deletions
diff --git a/testing/toxic/main.c b/testing/toxic/main.c
index 1ba8b6c9..8de76244 100644
--- a/testing/toxic/main.c
+++ b/testing/toxic/main.c
@@ -249,6 +249,7 @@ static void load_data(char *path)
249static void draw_bar() 249static void draw_bar()
250{ 250{
251 static int odd = 0; 251 static int odd = 0;
252 int blinkrate = 30;
252 253
253 attron(COLOR_PAIR(4)); 254 attron(COLOR_PAIR(4));
254 mvhline(LINES - 2, 0, '_', COLS); 255 mvhline(LINES - 2, 0, '_', COLS);
@@ -266,14 +267,13 @@ static void draw_bar()
266 if (i == active_window) 267 if (i == active_window)
267 attron(A_BOLD); 268 attron(A_BOLD);
268 269
269 odd = (odd+1) % 10; 270 odd = (odd+1) % blinkrate;
270 if (windows[i].blink && (odd < 5)) { 271 if (windows[i].blink && (odd < (blinkrate/2))) {
271 attron(COLOR_PAIR(3)); 272 attron(COLOR_PAIR(3));
272 } 273 }
273
274 printw(" %s", windows[i].title); 274 printw(" %s", windows[i].title);
275 if (windows[i].blink && (odd < 5)) { 275 if (windows[i].blink && (odd < (blinkrate/2))) {
276 attron(COLOR_PAIR(3)); 276 attroff(COLOR_PAIR(3));
277 } 277 }
278 if (i == active_window) { 278 if (i == active_window) {
279 attroff(A_BOLD); 279 attroff(A_BOLD);
@@ -375,9 +375,8 @@ int main(int argc, char *argv[])
375 ch = getch(); 375 ch = getch();
376 if (ch == '\t' || ch == KEY_BTAB) 376 if (ch == '\t' || ch == KEY_BTAB)
377 set_active_window(ch); 377 set_active_window(ch);
378 else if (ch != ERR) { 378 else if (ch != ERR)
379 a->onKey(a, ch); 379 a->onKey(a, ch);
380 }
381 } 380 }
382 return 0; 381 return 0;
383} 382}
diff --git a/testing/toxic/prompt.c b/testing/toxic/prompt.c
index 89c87d8f..d79d061f 100644
--- a/testing/toxic/prompt.c
+++ b/testing/toxic/prompt.c
@@ -52,6 +52,17 @@ static void execute(ToxWindow *self, char *u_cmd)
52 cmd[i - newlines] = u_cmd[i]; 52 cmd[i - newlines] = u_cmd[i];
53 } 53 }
54 54
55 int leading_spc = 0;
56 for (i = 0; i < 256 && isspace(cmd[i]); ++i)
57 leading_spc++;
58 memmove(cmd, cmd + leading_spc, 256 - leading_spc);
59
60 int cmd_end = strlen(cmd);
61 while (cmd_end > 0 && cmd_end--)
62 if (!isspace(cmd[cmd_end]))
63 break;
64 cmd[cmd_end + 1] = '\0';
65
55 if (!strcmp(cmd, "quit") || !strcmp(cmd, "exit") || !strcmp(cmd, "q")) { 66 if (!strcmp(cmd, "quit") || !strcmp(cmd, "exit") || !strcmp(cmd, "q")) {
56 endwin(); 67 endwin();
57 exit(0); 68 exit(0);
@@ -164,6 +175,54 @@ static void execute(ToxWindow *self, char *u_cmd)
164 } 175 }
165 176
166 else if (!strncmp(cmd, "status ", strlen("status "))) { 177 else if (!strncmp(cmd, "status ", strlen("status "))) {
178 char *status = strchr(cmd, ' ');
179 char *msg;
180 char *status_text;
181 if (status == NULL) {
182 wprintw(self->window, "Invalid syntax.\n");
183 return;
184 }
185 status++;
186 USERSTATUS_KIND status_kind;
187 if (!strncmp(status, "online", strlen("online"))) {
188 status_kind = USERSTATUS_KIND_ONLINE;
189 status_text = "ONLINE";
190 }
191
192 else if (!strncmp(status, "away", strlen("away"))) {
193 status_kind = USERSTATUS_KIND_AWAY;
194 status_text = "AWAY";
195 }
196
197 else if (!strncmp(status, "busy", strlen("busy"))) {
198 status_kind = USERSTATUS_KIND_BUSY;
199 status_text = "BUSY";
200 }
201
202 else if (!strncmp(status, "offline", strlen("offline"))) {
203 status_kind = USERSTATUS_KIND_OFFLINE;
204 status_text = "OFFLINE";
205 }
206
207 else
208 {
209 wprintw(self->window, "Invalid status.\n");
210 return;
211 }
212
213 msg = strchr(status, ' ');
214 if (msg == NULL) {
215 m_set_userstatus_kind(status_kind);
216 wprintw(self->window, "Status set to: %s\n", status_text);
217 }
218 else {
219 msg++;
220 m_set_userstatus(status_kind, (uint8_t*) msg, strlen(msg)+1);
221 wprintw(self->window, "Status set to: %s, %s\n", status_text, msg);
222 }
223 }
224
225 else if (!strncmp(cmd, "statusmsg ", strlen("statumsg "))) {
167 char *msg = strchr(cmd, ' '); 226 char *msg = strchr(cmd, ' ');
168 if (msg == NULL) { 227 if (msg == NULL) {
169 wprintw(self->window, "Invalid syntax.\n"); 228 wprintw(self->window, "Invalid syntax.\n");
@@ -306,7 +365,8 @@ static void print_usage(ToxWindow *self)
306 365
307 wprintw(self->window, " connect <ip> <port> <key> : Connect to DHT server\n"); 366 wprintw(self->window, " connect <ip> <port> <key> : Connect to DHT server\n");
308 wprintw(self->window, " add <id> <message> : Add friend\n"); 367 wprintw(self->window, " add <id> <message> : Add friend\n");
309 wprintw(self->window, " status <message> : Set your status\n"); 368 wprintw(self->window, " status <type> <message> : Set your status\n");
369 wprintw(self->window, " statusmsg <message> : Set your status\n");
310 wprintw(self->window, " nick <nickname> : Set your nickname\n"); 370 wprintw(self->window, " nick <nickname> : Set your nickname\n");
311 wprintw(self->window, " accept <number> : Accept friend request\n"); 371 wprintw(self->window, " accept <number> : Accept friend request\n");
312 wprintw(self->window, " myid : Print your ID\n"); 372 wprintw(self->window, " myid : Print your ID\n");