1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-11-03 19:37:16 -05:00

Basic resize of bars

This commit is contained in:
James Booth 2012-04-15 23:53:54 +01:00
parent 0557f78d36
commit a9a3a951be
3 changed files with 33 additions and 19 deletions

View File

@ -87,29 +87,34 @@ void inp_get_char(int *ch, char *input, int *size)
noecho();
*ch = wgetch(inp_win);
// if it wasn't an arrow key etc
if (!_handle_edit(*ch, input, size)) {
if (_printable(*ch)) {
getyx(inp_win, inp_y, inp_x);
// handle insert if not at end of input
if (inp_x <= *size) {
winsch(inp_win, *ch);
wmove(inp_win, inp_y, inp_x+1);
if (*ch == KEY_RESIZE) {
cons_show("REZISE SIGNAL");
win_resize();
} else {
// if it wasn't an arrow key etc
if (!_handle_edit(*ch, input, size)) {
if (_printable(*ch)) {
getyx(inp_win, inp_y, inp_x);
// handle insert if not at end of input
if (inp_x <= *size) {
winsch(inp_win, *ch);
wmove(inp_win, inp_y, inp_x+1);
for (i = *size; i > inp_x -1; i--)
input[i] = input[i-1];
input[inp_x -1] = *ch;
for (i = *size; i > inp_x -1; i--)
input[i] = input[i-1];
input[inp_x -1] = *ch;
(*size)++;
(*size)++;
// otherwise just append
} else {
waddch(inp_win, *ch);
input[(*size)++] = *ch;
// otherwise just append
} else {
waddch(inp_win, *ch);
input[(*size)++] = *ch;
}
reset_search_attempts();
}
reset_search_attempts();
}
}

View File

@ -88,6 +88,14 @@ void gui_init(void)
dirty = TRUE;
}
void win_resize(void)
{
create_title_bar();
create_status_bar();
create_input_window();
dirty = TRUE;
}
void gui_refresh(void)
{
title_bar_refresh();

View File

@ -37,6 +37,7 @@ struct prof_win {
void gui_init(void);
void gui_refresh(void);
void gui_close(void);
void win_resize(void);
// create windows
void create_title_bar(void);