1
0
mirror of https://github.com/Tha14/toxic.git synced 2025-12-07 04:06:35 +01:00

chat window deleting and re-adding - it just werks

This commit is contained in:
Jfreegman
2013-08-05 16:04:06 -04:00
parent f824373e6a
commit 6494a4070b
4 changed files with 43 additions and 40 deletions

View File

@@ -13,9 +13,9 @@
#include "windows.h"
extern char WINDOW_STATUS[TOXWINDOWS_MAX_NUM];
extern int add_window(ToxWindow w);
extern int focus_window(int num);
extern int add_window(ToxWindow w, int n);
extern ToxWindow new_chat(int friendnum);
extern int w_active;
typedef struct {
uint8_t name[MAX_NAME_LENGTH];
@@ -52,7 +52,17 @@ void friendlist_onMessage(ToxWindow* self, int num, uint8_t* str, uint16_t len)
return;
if(friends[num].chatwin == -1) {
friends[num].chatwin = add_window(new_chat(num));
friends[num].chatwin = num;
int i;
/* Find first open slot to hold chat window */
for (i = N_DEFAULT_WINS; i < MAX_WINDOW_SLOTS; i++) {
if (WINDOW_STATUS[i] == -1) {
WINDOW_STATUS[i] = num;
add_window(new_chat(num_selected), i);
w_active = i;
break;
}
}
}
}
@@ -104,17 +114,18 @@ static void friendlist_onKey(ToxWindow* self, int key) {
int i;
for (i = N_DEFAULT_WINS; i < MAX_WINDOW_SLOTS; i++) {
if (WINDOW_STATUS[i] == num_selected) {
focus_window(i);
w_active = i;
break;
}
}
}else {
friends[num_selected].chatwin = add_window(new_chat(num_selected));
focus_window(friends[num_selected].chatwin);
int i;
for (i = N_DEFAULT_WINS; i < MAX_WINDOW_SLOTS; i++) { // Find open slot
for (i = N_DEFAULT_WINS; i < MAX_WINDOW_SLOTS; i++) {
if (WINDOW_STATUS[i] == -1) {
WINDOW_STATUS[i] = num_selected;
friends[num_selected].chatwin = num_selected;
add_window(new_chat(num_selected), i);
w_active = i;
break;
}
}
@@ -178,4 +189,4 @@ ToxWindow new_friendlist() {
strcpy(ret.title, "[friends]");
return ret;
}
}