mirror of
https://github.com/Tha14/toxic.git
synced 2024-11-27 02:23:27 +01:00
made prompt window beep/blink on friend request
This commit is contained in:
parent
ba7d01d3c1
commit
9c7cad0d55
@ -30,14 +30,6 @@ typedef struct {
|
|||||||
WINDOW *linewin;
|
WINDOW *linewin;
|
||||||
} ChatContext;
|
} ChatContext;
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
WINDOW *topline;
|
|
||||||
uint8_t statusmsg[TOX_MAX_STATUSMESSAGE_LENGTH];
|
|
||||||
TOX_USERSTATUS status;
|
|
||||||
bool is_online;
|
|
||||||
int max_len; /* set equal to the window's max x coordinate */
|
|
||||||
} StatusBar;
|
|
||||||
|
|
||||||
void print_help(ChatContext *self);
|
void print_help(ChatContext *self);
|
||||||
void execute(ToxWindow *self, ChatContext *ctx, Tox *m, char *cmd);
|
void execute(ToxWindow *self, ChatContext *ctx, Tox *m, char *cmd);
|
||||||
|
|
||||||
|
@ -76,8 +76,9 @@ void friendlist_onStatusMessageChange(ToxWindow *self, int num, uint8_t *str, ui
|
|||||||
if (len >= TOX_MAX_STATUSMESSAGE_LENGTH || num < 0 || num >= num_friends)
|
if (len >= TOX_MAX_STATUSMESSAGE_LENGTH || num < 0 || num >= num_friends)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
/* Ignore default "Online" status message */
|
||||||
|
if (strncmp(str, "Online", strlen(str)))
|
||||||
memcpy((char *) &friends[num].statusmsg, (char *) str, len);
|
memcpy((char *) &friends[num].statusmsg, (char *) str, len);
|
||||||
friends[num].statusmsg[len] = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int friendlist_onFriendAdded(Tox *m, int num)
|
int friendlist_onFriendAdded(Tox *m, int num)
|
||||||
|
19
src/prompt.c
19
src/prompt.c
@ -57,6 +57,24 @@ static struct {
|
|||||||
{ "note", cmd_note },
|
{ "note", cmd_note },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void prompt_onFriendRequest(ToxWindow *self, uint8_t *key, uint8_t *data, uint16_t length)
|
||||||
|
{
|
||||||
|
int n = add_req(key);
|
||||||
|
wprintw(self->window, "\nFriend request from:\n");
|
||||||
|
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < KEY_SIZE_BYTES; ++i) {
|
||||||
|
wprintw(self->window, "%02x", key[i] & 0xff);
|
||||||
|
}
|
||||||
|
|
||||||
|
wprintw(self->window, "\n\nWith the message: %s\n\n", data);
|
||||||
|
wprintw(self->window, "Type \"accept %d\" to accept it.\n", n);
|
||||||
|
|
||||||
|
self->blink = true;
|
||||||
|
beep();
|
||||||
|
}
|
||||||
|
|
||||||
// XXX:
|
// XXX:
|
||||||
int add_req(uint8_t *public_key)
|
int add_req(uint8_t *public_key)
|
||||||
{
|
{
|
||||||
@ -565,6 +583,7 @@ ToxWindow new_prompt()
|
|||||||
ret.onKey = &prompt_onKey;
|
ret.onKey = &prompt_onKey;
|
||||||
ret.onDraw = &prompt_onDraw;
|
ret.onDraw = &prompt_onDraw;
|
||||||
ret.onInit = &prompt_onInit;
|
ret.onInit = &prompt_onInit;
|
||||||
|
ret.onFriendRequest = &prompt_onFriendRequest;
|
||||||
strcpy(ret.name, "prompt");
|
strcpy(ret.name, "prompt");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -59,6 +59,14 @@ struct ToxWindow_ {
|
|||||||
WINDOW *window;
|
WINDOW *window;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
WINDOW *topline;
|
||||||
|
uint8_t statusmsg[TOX_MAX_STATUSMESSAGE_LENGTH];
|
||||||
|
TOX_USERSTATUS status;
|
||||||
|
bool is_online;
|
||||||
|
int max_len; /* set to the window's max x coordinate */
|
||||||
|
} StatusBar;
|
||||||
|
|
||||||
void on_request(uint8_t *public_key, uint8_t *data, uint16_t length, void *userdata);
|
void on_request(uint8_t *public_key, uint8_t *data, uint16_t length, void *userdata);
|
||||||
void on_connectionchange(Tox *m, int friendnumber, uint8_t status, void *userdata);
|
void on_connectionchange(Tox *m, int friendnumber, uint8_t status, void *userdata);
|
||||||
void on_message(Tox *m, int friendnumber, uint8_t *string, uint16_t length, void *userdata);
|
void on_message(Tox *m, int friendnumber, uint8_t *string, uint16_t length, void *userdata);
|
||||||
|
@ -22,18 +22,8 @@ static Tox *m;
|
|||||||
/* CALLBACKS START */
|
/* CALLBACKS START */
|
||||||
void on_request(uint8_t *public_key, uint8_t *data, uint16_t length, void *userdata)
|
void on_request(uint8_t *public_key, uint8_t *data, uint16_t length, void *userdata)
|
||||||
{
|
{
|
||||||
int n = add_req(public_key);
|
|
||||||
wprintw(prompt->window, "\nFriend request from:\n");
|
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < KEY_SIZE_BYTES; ++i) {
|
|
||||||
wprintw(prompt->window, "%02x", public_key[i] & 0xff);
|
|
||||||
}
|
|
||||||
|
|
||||||
wprintw(prompt->window, "\nWith the message: %s\n", data);
|
|
||||||
wprintw(prompt->window, "Type \"accept %d\" to accept it.\n", n);
|
|
||||||
|
|
||||||
for (i = 0; i < MAX_WINDOWS_NUM; ++i) {
|
for (i = 0; i < MAX_WINDOWS_NUM; ++i) {
|
||||||
if (windows[i].onFriendRequest != NULL)
|
if (windows[i].onFriendRequest != NULL)
|
||||||
windows[i].onFriendRequest(&windows[i], public_key, data, length);
|
windows[i].onFriendRequest(&windows[i], public_key, data, length);
|
||||||
@ -49,15 +39,19 @@ void on_connectionchange(Tox *m, int friendnumber, uint8_t status, void *userdat
|
|||||||
snprintf(nick, sizeof(nick), "%s", UNKNOWN_NAME);
|
snprintf(nick, sizeof(nick), "%s", UNKNOWN_NAME);
|
||||||
|
|
||||||
if (status == 1) {
|
if (status == 1) {
|
||||||
|
wattron(prompt->window, COLOR_PAIR(GREEN));
|
||||||
wattron(prompt->window, A_BOLD);
|
wattron(prompt->window, A_BOLD);
|
||||||
wprintw(prompt->window, "\n%s ", nick);
|
wprintw(prompt->window, "\n%s ", nick);
|
||||||
wattroff(prompt->window, A_BOLD);
|
wattroff(prompt->window, A_BOLD);
|
||||||
wprintw(prompt->window, "has come online\n");
|
wprintw(prompt->window, "has come online\n");
|
||||||
|
wattroff(prompt->window, COLOR_PAIR(GREEN));
|
||||||
} else {
|
} else {
|
||||||
|
wattron(prompt->window, COLOR_PAIR(RED));
|
||||||
wattron(prompt->window, A_BOLD);
|
wattron(prompt->window, A_BOLD);
|
||||||
wprintw(prompt->window, "\n%s ", nick);
|
wprintw(prompt->window, "\n%s ", nick);
|
||||||
wattroff(prompt->window, A_BOLD);
|
wattroff(prompt->window, A_BOLD);
|
||||||
wprintw(prompt->window, "has gone offline\n");
|
wprintw(prompt->window, "has gone offline\n");
|
||||||
|
wattroff(prompt->window, COLOR_PAIR(RED));
|
||||||
}
|
}
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
|
Loading…
Reference in New Issue
Block a user