Implemented /occupants show
This commit is contained in:
@@ -2788,7 +2788,8 @@ _ui_room_show_occupants(const char * const room)
|
||||
{
|
||||
ProfWin *window = wins_get_by_recipient(room);
|
||||
if (window && !window->subwin) {
|
||||
cons_debug("Showing occupants");
|
||||
wins_show_subwin(window);
|
||||
ui_muc_roster(room);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -102,6 +102,19 @@ win_hide_subwin(ProfWin *window)
|
||||
win_redraw(window);
|
||||
}
|
||||
|
||||
void
|
||||
win_show_subwin(ProfWin *window)
|
||||
{
|
||||
if (!window->subwin) {
|
||||
window->subwin = newpad(PAD_SIZE, OCCUPANT_WIN_WIDTH);
|
||||
wbkgd(window->subwin, COLOUR_TEXT);
|
||||
|
||||
int cols = getmaxx(stdscr);
|
||||
wresize(window->win, PAD_SIZE, (cols/OCCUPANT_WIN_RATIO) * (OCCUPANT_WIN_RATIO-1));
|
||||
win_redraw(window);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
win_free(ProfWin* window)
|
||||
{
|
||||
|
||||
@@ -103,5 +103,6 @@ void win_save_println(ProfWin *window, const char * const message);
|
||||
void win_save_newline(ProfWin *window);
|
||||
void win_redraw(ProfWin *window);
|
||||
void win_hide_subwin(ProfWin *window);
|
||||
void win_show_subwin(ProfWin *window);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -294,7 +294,7 @@ wins_resize_all(void)
|
||||
GList *curr = values;
|
||||
while (curr != NULL) {
|
||||
ProfWin *window = curr->data;
|
||||
if (window->type == WIN_MUC) {
|
||||
if ((window->type == WIN_MUC) && (window->subwin)) {
|
||||
wresize(window->win, PAD_SIZE, (cols/OCCUPANT_WIN_RATIO) * (OCCUPANT_WIN_RATIO-1));
|
||||
} else {
|
||||
wresize(window->win, PAD_SIZE, cols);
|
||||
@@ -320,12 +320,28 @@ wins_hide_subwin(ProfWin *window)
|
||||
getmaxyx(stdscr, rows, cols);
|
||||
|
||||
win_hide_subwin(window);
|
||||
|
||||
ProfWin *current_win = wins_get_current();
|
||||
if (current_win->type == WIN_MUC) {
|
||||
pnoutrefresh(current_win->win, current_win->y_pos, 0, 1, 0, rows-3, cols-1);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
wins_show_subwin(ProfWin *window)
|
||||
{
|
||||
int rows, cols;
|
||||
getmaxyx(stdscr, rows, cols);
|
||||
|
||||
win_show_subwin(window);
|
||||
|
||||
ProfWin *current_win = wins_get_current();
|
||||
if (current_win->type == WIN_MUC) {
|
||||
pnoutrefresh(current_win->win, current_win->y_pos, 0, 1, 0, rows-3, ((cols/OCCUPANT_WIN_RATIO) * (OCCUPANT_WIN_RATIO-1)) -1);
|
||||
pnoutrefresh(current_win->subwin, current_win->sub_y_pos, 0, 1, (cols/OCCUPANT_WIN_RATIO) * (OCCUPANT_WIN_RATIO-1), rows-3, cols-1);
|
||||
}
|
||||
}
|
||||
|
||||
gboolean
|
||||
wins_duck_exists(void)
|
||||
{
|
||||
|
||||
@@ -64,5 +64,6 @@ gboolean wins_xmlconsole_exists(void);
|
||||
ProfWin * wins_get_xmlconsole(void);
|
||||
gboolean wins_swap(int source_win, int target_win);
|
||||
void wins_hide_subwin(ProfWin *window);
|
||||
void wins_show_subwin(ProfWin *window);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user