summaryrefslogtreecommitdiff
path: root/testing/toxic/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'testing/toxic/main.c')
-rw-r--r--testing/toxic/main.c45
1 files changed, 37 insertions, 8 deletions
diff --git a/testing/toxic/main.c b/testing/toxic/main.c
index e1d1ebd0..1c095c54 100644
--- a/testing/toxic/main.c
+++ b/testing/toxic/main.c
@@ -16,9 +16,7 @@
16extern ToxWindow new_prompt(); 16extern ToxWindow new_prompt();
17extern ToxWindow new_friendlist(); 17extern ToxWindow new_friendlist();
18 18
19extern int friendlist_addfriend(int num); 19extern int friendlist_onFriendAdded(int num);
20extern int friendlist_nickchange(int num, uint8_t* str, uint16_t len);
21extern int friendlist_statuschange(int num, uint8_t* str, uint16_t len);
22 20
23extern int add_req(uint8_t* public_key); // XXX 21extern int add_req(uint8_t* public_key); // XXX
24 22
@@ -31,29 +29,52 @@ static ToxWindow* prompt;
31 29
32// CALLBACKS START 30// CALLBACKS START
33void on_request(uint8_t* public_key, uint8_t* data, uint16_t length) { 31void on_request(uint8_t* public_key, uint8_t* data, uint16_t length) {
32 size_t i;
34 int n = add_req(public_key); 33 int n = add_req(public_key);
35 34
36 wprintw(prompt->window, "\nFriend request.\nUse \"accept %d\" to accept it.\n", n); 35 wprintw(prompt->window, "\nFriend request.\nUse \"accept %d\" to accept it.\n", n);
36
37 for(i=0; i<w_num; i++) {
38 if(windows[i].onFriendRequest != NULL)
39 windows[i].onFriendRequest(&windows[i], public_key, data, length);
40 }
37} 41}
38 42
39void on_message(int friendnumber, uint8_t* string, uint16_t length) { 43void on_message(int friendnumber, uint8_t* string, uint16_t length) {
44 size_t i;
45
40 wprintw(prompt->window, "\n(message) %d: %s!\n", friendnumber, string); 46 wprintw(prompt->window, "\n(message) %d: %s!\n", friendnumber, string);
47
48 for(i=0; i<w_num; i++) {
49 if(windows[i].onMessage != NULL)
50 windows[i].onMessage(&windows[i], friendnumber, string, length);
51 }
41} 52}
42 53
43void on_nickchange(int friendnumber, uint8_t* string, uint16_t length) { 54void on_nickchange(int friendnumber, uint8_t* string, uint16_t length) {
55 size_t i;
56
44 wprintw(prompt->window, "\n(nickchange) %d: %s!\n", friendnumber, string); 57 wprintw(prompt->window, "\n(nickchange) %d: %s!\n", friendnumber, string);
45 58
46 friendlist_nickchange(friendnumber, string, length); 59 for(i=0; i<w_num; i++) {
60 if(windows[i].onNickChange != NULL)
61 windows[i].onNickChange(&windows[i], friendnumber, string, length);
62 }
47} 63}
48 64
49void on_statuschange(int friendnumber, uint8_t* string, uint16_t length) { 65void on_statuschange(int friendnumber, uint8_t* string, uint16_t length) {
66 size_t i;
67
50 wprintw(prompt->window, "\n(statuschange) %d: %s!\n", friendnumber, string); 68 wprintw(prompt->window, "\n(statuschange) %d: %s!\n", friendnumber, string);
51 69
52 friendlist_statuschange(friendnumber, string, length); 70 for(i=0; i<w_num; i++) {
71 if(windows[i].onStatusChange != NULL)
72 windows[i].onStatusChange(&windows[i], friendnumber, string, length);
73 }
53} 74}
54 75
55void on_friendadded(int friendnumber) { 76void on_friendadded(int friendnumber) {
56 friendlist_addfriend(friendnumber); 77 friendlist_onFriendAdded(friendnumber);
57} 78}
58// CALLBACKS END 79// CALLBACKS END
59 80
@@ -87,7 +108,7 @@ static void init_tox() {
87 m_callback_userstatus(on_statuschange); 108 m_callback_userstatus(on_statuschange);
88} 109}
89 110
90static int add_window(ToxWindow w) { 111int add_window(ToxWindow w) {
91 if(w_num == TOXWINDOWS_MAX_NUM) 112 if(w_num == TOXWINDOWS_MAX_NUM)
92 return -1; 113 return -1;
93 114
@@ -102,7 +123,15 @@ static int add_window(ToxWindow w) {
102 windows[w_num++] = w; 123 windows[w_num++] = w;
103 w.onInit(&w); 124 w.onInit(&w);
104 125
105 return w_num; 126 return w_num - 1;
127}
128
129int focus_window(int num) {
130 if(num >= w_num || num < 0)
131 return -1;
132
133 w_active = num;
134 return 0;
106} 135}
107 136
108static void init_windows() { 137static void init_windows() {