mirror of
https://github.com/profanity-im/profanity.git
synced 2025-02-02 15:08:15 -05:00
Added win_type to prof_win structure
This commit is contained in:
parent
b14aab4ade
commit
df094a7d2c
9
src/ui.h
9
src/ui.h
@ -51,9 +51,18 @@
|
|||||||
#define COLOUR_DND COLOR_PAIR(11)
|
#define COLOUR_DND COLOR_PAIR(11)
|
||||||
#define COLOUR_XA COLOR_PAIR(12)
|
#define COLOUR_XA COLOR_PAIR(12)
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
WIN_UNUSED,
|
||||||
|
WIN_CONSOLE,
|
||||||
|
WIN_CHAT,
|
||||||
|
WIN_MUC,
|
||||||
|
WIN_PRIVATE
|
||||||
|
} win_type_t;
|
||||||
|
|
||||||
struct prof_win {
|
struct prof_win {
|
||||||
char from[100];
|
char from[100];
|
||||||
WINDOW *win;
|
WINDOW *win;
|
||||||
|
win_type_t type;
|
||||||
int y_pos;
|
int y_pos;
|
||||||
int paged;
|
int paged;
|
||||||
int unread;
|
int unread;
|
||||||
|
@ -70,7 +70,7 @@ static void _create_windows(void);
|
|||||||
static void _cons_splash_logo(void);
|
static void _cons_splash_logo(void);
|
||||||
static void _cons_show_basic_help(void);
|
static void _cons_show_basic_help(void);
|
||||||
static int _find_prof_win_index(const char * const contact);
|
static int _find_prof_win_index(const char * const contact);
|
||||||
static int _new_prof_win(const char * const contact);
|
static int _new_prof_win(const char * const contact, win_type_t type);
|
||||||
static void _current_window_refresh(void);
|
static void _current_window_refresh(void);
|
||||||
static void _win_switch_if_active(const int i);
|
static void _win_switch_if_active(const int i);
|
||||||
static void _win_show_time(WINDOW *win);
|
static void _win_show_time(WINDOW *win);
|
||||||
@ -180,6 +180,7 @@ win_close_win(void)
|
|||||||
strcpy(_wins[_curr_prof_win].from, "");
|
strcpy(_wins[_curr_prof_win].from, "");
|
||||||
wclear(_wins[_curr_prof_win].win);
|
wclear(_wins[_curr_prof_win].win);
|
||||||
_wins[_curr_prof_win].history_shown = 0;
|
_wins[_curr_prof_win].history_shown = 0;
|
||||||
|
_wins[_curr_prof_win].type = WIN_UNUSED;
|
||||||
|
|
||||||
// set it as inactive in the status bar
|
// set it as inactive in the status bar
|
||||||
status_bar_inactive(_curr_prof_win);
|
status_bar_inactive(_curr_prof_win);
|
||||||
@ -194,18 +195,13 @@ win_close_win(void)
|
|||||||
int
|
int
|
||||||
win_in_chat(void)
|
win_in_chat(void)
|
||||||
{
|
{
|
||||||
return ((_curr_prof_win != 0) &&
|
return (_wins[_curr_prof_win].type == WIN_CHAT);
|
||||||
(strcmp(_wins[_curr_prof_win].from, "") != 0));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
win_in_groupchat(void)
|
win_in_groupchat(void)
|
||||||
{
|
{
|
||||||
if (room_is_active(_wins[_curr_prof_win].from)) {
|
return (_wins[_curr_prof_win].type == WIN_MUC);
|
||||||
return 1;
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
char *
|
char *
|
||||||
@ -266,7 +262,7 @@ win_remind(void)
|
|||||||
void
|
void
|
||||||
win_activity(void)
|
win_activity(void)
|
||||||
{
|
{
|
||||||
if (win_in_chat() && !win_in_groupchat()) {
|
if (win_in_chat()) {
|
||||||
char *recipient = win_get_recipient();
|
char *recipient = win_get_recipient();
|
||||||
chat_session_set_composing(recipient);
|
chat_session_set_composing(recipient);
|
||||||
if (!chat_session_get_sent(recipient) ||
|
if (!chat_session_get_sent(recipient) ||
|
||||||
@ -283,8 +279,7 @@ win_no_activity(void)
|
|||||||
|
|
||||||
// loop through regular chat windows and update states
|
// loop through regular chat windows and update states
|
||||||
for (i = 1; i < NUM_WINS; i++) {
|
for (i = 1; i < NUM_WINS; i++) {
|
||||||
if ((strcmp(_wins[i].from, "") != 0) &&
|
if (_wins[i].type == WIN_CHAT) {
|
||||||
(!room_is_active(_wins[i].from))) {
|
|
||||||
char *recipient = _wins[i].from;
|
char *recipient = _wins[i].from;
|
||||||
chat_session_no_activity(recipient);
|
chat_session_no_activity(recipient);
|
||||||
|
|
||||||
@ -314,7 +309,7 @@ win_show_incomming_msg(const char * const from, const char * const message,
|
|||||||
|
|
||||||
int win_index = _find_prof_win_index(short_from);
|
int win_index = _find_prof_win_index(short_from);
|
||||||
if (win_index == NUM_WINS)
|
if (win_index == NUM_WINS)
|
||||||
win_index = _new_prof_win(short_from);
|
win_index = _new_prof_win(short_from, WIN_CHAT);
|
||||||
|
|
||||||
WINDOW *win = _wins[win_index].win;
|
WINDOW *win = _wins[win_index].win;
|
||||||
|
|
||||||
@ -449,7 +444,7 @@ win_show_system_msg(const char * const from, const char *message)
|
|||||||
|
|
||||||
win_index = _find_prof_win_index(bare_jid);
|
win_index = _find_prof_win_index(bare_jid);
|
||||||
if (win_index == NUM_WINS) {
|
if (win_index == NUM_WINS) {
|
||||||
win_index = _new_prof_win(bare_jid);
|
win_index = _new_prof_win(bare_jid, WIN_CHAT);
|
||||||
status_bar_active(win_index);
|
status_bar_active(win_index);
|
||||||
dirty = TRUE;
|
dirty = TRUE;
|
||||||
}
|
}
|
||||||
@ -540,7 +535,7 @@ win_show_outgoing_msg(const char * const from, const char * const to,
|
|||||||
|
|
||||||
// create new window
|
// create new window
|
||||||
if (win_index == NUM_WINS) {
|
if (win_index == NUM_WINS) {
|
||||||
win_index = _new_prof_win(to);
|
win_index = _new_prof_win(to, WIN_CHAT);
|
||||||
win = _wins[win_index].win;
|
win = _wins[win_index].win;
|
||||||
|
|
||||||
if (prefs_get_chlog() && prefs_get_history()) {
|
if (prefs_get_chlog() && prefs_get_history()) {
|
||||||
@ -581,7 +576,7 @@ win_join_chat(const char * const room, const char * const nick)
|
|||||||
|
|
||||||
// create new window
|
// create new window
|
||||||
if (win_index == NUM_WINS) {
|
if (win_index == NUM_WINS) {
|
||||||
win_index = _new_prof_win(room);
|
win_index = _new_prof_win(room, WIN_MUC);
|
||||||
}
|
}
|
||||||
|
|
||||||
_win_switch_if_active(win_index);
|
_win_switch_if_active(win_index);
|
||||||
@ -1184,6 +1179,7 @@ _create_windows(void)
|
|||||||
cons.paged = 0;
|
cons.paged = 0;
|
||||||
cons.unread = 0;
|
cons.unread = 0;
|
||||||
cons.history_shown = 0;
|
cons.history_shown = 0;
|
||||||
|
cons.type = WIN_CONSOLE;
|
||||||
scrollok(cons.win, TRUE);
|
scrollok(cons.win, TRUE);
|
||||||
|
|
||||||
_wins[0] = cons;
|
_wins[0] = cons;
|
||||||
@ -1201,6 +1197,7 @@ _create_windows(void)
|
|||||||
chat.paged = 0;
|
chat.paged = 0;
|
||||||
chat.unread = 0;
|
chat.unread = 0;
|
||||||
chat.history_shown = 0;
|
chat.history_shown = 0;
|
||||||
|
chat.type = WIN_UNUSED;
|
||||||
scrollok(chat.win, TRUE);
|
scrollok(chat.win, TRUE);
|
||||||
_wins[i] = chat;
|
_wins[i] = chat;
|
||||||
}
|
}
|
||||||
@ -1373,7 +1370,7 @@ _find_prof_win_index(const char * const contact)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
_new_prof_win(const char * const contact)
|
_new_prof_win(const char * const contact, win_type_t type)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
// find the first unused one
|
// find the first unused one
|
||||||
@ -1384,6 +1381,7 @@ _new_prof_win(const char * const contact)
|
|||||||
// set it up
|
// set it up
|
||||||
strcpy(_wins[i].from, contact);
|
strcpy(_wins[i].from, contact);
|
||||||
wclear(_wins[i].win);
|
wclear(_wins[i].win);
|
||||||
|
_wins[i].type = type;
|
||||||
|
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user