Added new window and layout types

This commit is contained in:
James Booth
2014-12-16 01:39:47 +00:00
parent 070547a7ff
commit 630fef015d
8 changed files with 466 additions and 389 deletions

View File

@@ -237,7 +237,7 @@ void
wins_clear_current(void)
{
ProfWin *window = wins_get_current();
werase(window->win);
werase(window->layout->win);
win_update_virtual(window);
}
@@ -335,30 +335,18 @@ wins_resize_all(void)
ProfWin *window = curr->data;
int subwin_cols = 0;
switch (window->type) {
case WIN_CONSOLE:
if (window->wins.cons.subwin) {
if (window->layout->type == LAYOUT_SPLIT) {
ProfLayoutSplit *layout = (ProfLayoutSplit*)window;
if (layout->subwin) {
subwin_cols = win_roster_cols();
wresize(window->win, PAD_SIZE, cols - subwin_cols);
wresize(window->wins.cons.subwin, PAD_SIZE, subwin_cols);
wresize(layout->super.win, PAD_SIZE, cols - subwin_cols);
wresize(layout->subwin, PAD_SIZE, subwin_cols);
ui_roster();
} else {
wresize(window->win, PAD_SIZE, cols);
wresize(layout->super.win, PAD_SIZE, cols);
}
break;
case WIN_MUC:
if (window->wins.muc.subwin) {
subwin_cols = win_occpuants_cols();
wresize(window->win, PAD_SIZE, cols - subwin_cols);
wresize(window->wins.muc.subwin, PAD_SIZE, subwin_cols);
ui_muc_roster(window->from);
} else {
wresize(window->win, PAD_SIZE, cols);
}
break;
default:
wresize(window->win, PAD_SIZE, cols);
break;
} else {
wresize(window->layout->win, PAD_SIZE, cols);
}
win_redraw(window);
@@ -380,7 +368,7 @@ wins_hide_subwin(ProfWin *window)
ProfWin *current_win = wins_get_current();
if ((current_win->type == WIN_MUC) || (current_win->type == WIN_CONSOLE)) {
pnoutrefresh(current_win->win, current_win->y_pos, 0, 1, 0, rows-3, cols-1);
pnoutrefresh(current_win->layout->win, current_win->layout->y_pos, 0, 1, 0, rows-3, cols-1);
}
}
@@ -395,13 +383,15 @@ wins_show_subwin(ProfWin *window)
ProfWin *current_win = wins_get_current();
if (current_win->type == WIN_MUC) {
ProfLayoutSplit *layout = (ProfLayoutSplit*)current_win->layout;
subwin_cols = win_occpuants_cols();
pnoutrefresh(current_win->win, current_win->y_pos, 0, 1, 0, rows-3, (cols-subwin_cols)-1);
pnoutrefresh(current_win->wins.muc.subwin, current_win->wins.muc.sub_y_pos, 0, 1, (cols-subwin_cols), rows-3, cols-1);
pnoutrefresh(layout->super.win, layout->super.y_pos, 0, 1, 0, rows-3, (cols-subwin_cols)-1);
pnoutrefresh(layout->subwin, layout->sub_y_pos, 0, 1, (cols-subwin_cols), rows-3, cols-1);
} else if (current_win->type == WIN_CONSOLE) {
ProfLayoutSplit *layout = (ProfLayoutSplit*)current_win->layout;
subwin_cols = win_roster_cols();
pnoutrefresh(current_win->win, current_win->y_pos, 0, 1, 0, rows-3, (cols-subwin_cols)-1);
pnoutrefresh(current_win->wins.cons.subwin, current_win->wins.cons.sub_y_pos, 0, 1, (cols-subwin_cols), rows-3, cols-1);
pnoutrefresh(layout->super.win, layout->super.y_pos, 0, 1, 0, rows-3, (cols-subwin_cols)-1);
pnoutrefresh(layout->subwin, layout->sub_y_pos, 0, 1, (cols-subwin_cols), rows-3, cols-1);
}
}
@@ -698,7 +688,7 @@ wins_create_summary(void)
case WIN_MUC_CONFIG:
muc_config_string = g_string_new("");
g_string_printf(muc_config_string, "%d: %s", ui_index, window->from);
if ((window->wins.conf.form) && (window->wins.conf.form->modified)) {
if (win_has_modified_form(window)) {
g_string_append(muc_config_string, " *");
}
result = g_slist_append(result, strdup(muc_config_string->str));