diff options
Diffstat (limited to 'testing/toxic/main.c')
-rw-r--r-- | testing/toxic/main.c | 45 |
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 @@ | |||
16 | extern ToxWindow new_prompt(); | 16 | extern ToxWindow new_prompt(); |
17 | extern ToxWindow new_friendlist(); | 17 | extern ToxWindow new_friendlist(); |
18 | 18 | ||
19 | extern int friendlist_addfriend(int num); | 19 | extern int friendlist_onFriendAdded(int num); |
20 | extern int friendlist_nickchange(int num, uint8_t* str, uint16_t len); | ||
21 | extern int friendlist_statuschange(int num, uint8_t* str, uint16_t len); | ||
22 | 20 | ||
23 | extern int add_req(uint8_t* public_key); // XXX | 21 | extern 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 |
33 | void on_request(uint8_t* public_key, uint8_t* data, uint16_t length) { | 31 | void 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 | ||
39 | void on_message(int friendnumber, uint8_t* string, uint16_t length) { | 43 | void 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 | ||
43 | void on_nickchange(int friendnumber, uint8_t* string, uint16_t length) { | 54 | void 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 | ||
49 | void on_statuschange(int friendnumber, uint8_t* string, uint16_t length) { | 65 | void 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 | ||
55 | void on_friendadded(int friendnumber) { | 76 | void 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 | ||
90 | static int add_window(ToxWindow w) { | 111 | int 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 | |||
129 | int 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 | ||
108 | static void init_windows() { | 137 | static void init_windows() { |