diff options
author | Sebastien Helleu <flashcode@flashtux.org> | 2008-04-16 14:44:02 +0200 |
---|---|---|
committer | Sebastien Helleu <flashcode@flashtux.org> | 2008-04-16 14:44:02 +0200 |
commit | ae98666bc6111d1940d3b14fc4566b262cba2c87 (patch) | |
tree | 3bf80e92854c46b8fcef0270cf3df94cad028b6c /src/gui | |
parent | 7489ec9a4041039719334c9d0406e31775132cc7 (diff) | |
download | weechat-ae98666bc6111d1940d3b14fc4566b262cba2c87.zip |
Added "toggle" value for /set on boolean options, fixed refresh bugs, added option type for infolist "options"
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/curses/gui-curses-chat.c | 326 | ||||
-rw-r--r-- | src/gui/curses/gui-curses-window.c | 12 | ||||
-rw-r--r-- | src/gui/gui-action.c | 18 | ||||
-rw-r--r-- | src/gui/gui-bar.c | 3 | ||||
-rw-r--r-- | src/gui/gui-buffer.c | 56 | ||||
-rw-r--r-- | src/gui/gui-buffer.h | 8 | ||||
-rw-r--r-- | src/gui/gui-chat.c | 8 | ||||
-rw-r--r-- | src/gui/gui-filter.c | 2 | ||||
-rw-r--r-- | src/gui/gui-nicklist.c | 8 | ||||
-rw-r--r-- | src/gui/gui-window.c | 14 |
10 files changed, 184 insertions, 271 deletions
diff --git a/src/gui/curses/gui-curses-chat.c b/src/gui/curses/gui-curses-chat.c index 497a25ac2..8fabd0b02 100644 --- a/src/gui/curses/gui-curses-chat.c +++ b/src/gui/curses/gui-curses-chat.c @@ -1133,17 +1133,8 @@ gui_chat_draw (struct t_gui_buffer *buffer, int erase) { struct t_gui_window *ptr_win; struct t_gui_line *ptr_line; - /*t_irc_dcc *dcc_first, *dcc_selected, *ptr_dcc;*/ char format_empty[32]; int i, line_pos, count, old_scroll, y_start, y_end; - /*int j, num_bars; - unsigned long pct_complete; - char *unit_name[] = { N_("bytes"), N_("KB"), N_("MB"), N_("GB") }; - char *unit_format[] = { "%.0f", "%.1f", "%.02f", "%.02f" }; - float unit_divide[] = { 1, 1024, 1024*1024, 1024*1024*1024 }; - int num_unit; - char format[32], date[128], *buf; - struct tm *date_tmp;*/ if (!gui_ok) return; @@ -1168,254 +1159,119 @@ gui_chat_draw (struct t_gui_buffer *buffer, int erase) gui_window_set_weechat_color (GUI_CURSES(ptr_win)->win_chat, GUI_COLOR_CHAT); - /*if (buffer->type == GUI_BUFFER_TYPE_DCC) + ptr_win->win_chat_cursor_x = 0; + ptr_win->win_chat_cursor_y = 0; + + switch (ptr_win->buffer->type) { - i = 0; - dcc_first = (ptr_win->dcc_first) ? (t_irc_dcc *) ptr_win->dcc_first : irc_dcc_list; - dcc_selected = (ptr_win->dcc_selected) ? (t_irc_dcc *) ptr_win->dcc_selected : irc_dcc_list; - for (ptr_dcc = dcc_first; ptr_dcc; ptr_dcc = ptr_dcc->next_dcc) - { - if (i >= ptr_win->win_chat_height - 1) - break; + case GUI_BUFFER_TYPE_FORMATED: + /* display at position of scrolling */ + if (ptr_win->start_line) + { + ptr_line = ptr_win->start_line; + line_pos = ptr_win->start_line_pos; + } + else + { + /* look for first line to display, starting from last line */ + ptr_line = NULL; + line_pos = 0; + gui_chat_calculate_line_diff (ptr_win, &ptr_line, &line_pos, + (-1) * (ptr_win->win_chat_height - 1)); + } - // nickname and filename - gui_window_set_weechat_color (GUI_CURSES(ptr_win)->win_chat, - (ptr_dcc == dcc_selected) ? - GUI_COLOR_DCC_SELECTED : GUI_COLOR_WIN_CHAT); - mvwprintw (GUI_CURSES(ptr_win)->win_chat, i, 0, "%s %-16s ", - (ptr_dcc == dcc_selected) ? "***" : " ", - ptr_dcc->nick); - buf = weechat_iconv_from_internal (NULL, - (IRC_DCC_IS_CHAT(ptr_dcc->type)) ? - _(ptr_dcc->filename) : ptr_dcc->filename); - wprintw (GUI_CURSES(ptr_win)->win_chat, "%s", - (buf) ? buf : ((IRC_DCC_IS_CHAT(ptr_dcc->type)) ? - _(ptr_dcc->filename) : ptr_dcc->filename)); - if (buf) - free (buf); - if (IRC_DCC_IS_FILE(ptr_dcc->type)) + if (line_pos > 0) { - if (ptr_dcc->filename_suffix > 0) - wprintw (GUI_CURSES(ptr_win)->win_chat, " (.%d)", - ptr_dcc->filename_suffix); + /* display end of first line at top of screen */ + gui_chat_display_line (ptr_win, ptr_line, + gui_chat_display_line (ptr_win, + ptr_line, + 0, 1) - + line_pos, 0); + ptr_line = gui_chat_get_next_line_displayed (ptr_line); + ptr_win->first_line_displayed = 0; } + else + ptr_win->first_line_displayed = + (ptr_line == gui_chat_get_first_line_displayed (ptr_win->buffer)); - // status - gui_window_set_weechat_color (GUI_CURSES(ptr_win)->win_chat, - (ptr_dcc == dcc_selected) ? - GUI_COLOR_DCC_SELECTED : GUI_COLOR_WIN_CHAT); - mvwprintw (GUI_CURSES(ptr_win)->win_chat, i + 1, 0, "%s %s ", - (ptr_dcc == dcc_selected) ? "***" : " ", - (IRC_DCC_IS_RECV(ptr_dcc->type)) ? "-->>" : "<<--"); - gui_window_set_weechat_color (GUI_CURSES(ptr_win)->win_chat, - GUI_COLOR_DCC_WAITING + ptr_dcc->status); - buf = weechat_iconv_from_internal (NULL, _(irc_dcc_status_string[ptr_dcc->status])); - wprintw (GUI_CURSES(ptr_win)->win_chat, "%-10s", - (buf) ? buf : _(irc_dcc_status_string[ptr_dcc->status])); - if (buf) - free (buf); + /* display lines */ + count = 0; + while (ptr_line && (ptr_win->win_chat_cursor_y <= ptr_win->win_chat_height - 1)) + { + count = gui_chat_display_line (ptr_win, ptr_line, 0, 0); + ptr_line = gui_chat_get_next_line_displayed (ptr_line); + } + + old_scroll = ptr_win->scroll; + + ptr_win->scroll = (ptr_win->win_chat_cursor_y > ptr_win->win_chat_height - 1); - // other infos - gui_window_set_weechat_color (GUI_CURSES(ptr_win)->win_chat, - (ptr_dcc == dcc_selected) ? - GUI_COLOR_DCC_SELECTED : GUI_COLOR_WIN_CHAT); - if (IRC_DCC_IS_FILE(ptr_dcc->type)) + /* check if last line of buffer is entirely displayed and scrolling */ + /* if so, disable scroll indicator */ + if (!ptr_line && ptr_win->scroll) { - wprintw (GUI_CURSES(ptr_win)->win_chat, " ["); - if (ptr_dcc->size == 0) - { - if (ptr_dcc->status == IRC_DCC_DONE) - num_bars = 10; - else - num_bars = 0; - } - else - num_bars = (int)((((float)(ptr_dcc->pos)/(float)(ptr_dcc->size))*100) / 10); - for (j = 0; j < num_bars - 1; j++) - wprintw (GUI_CURSES(ptr_win)->win_chat, "="); - if (num_bars > 0) - wprintw (GUI_CURSES(ptr_win)->win_chat, ">"); - for (j = 0; j < 10 - num_bars; j++) - wprintw (GUI_CURSES(ptr_win)->win_chat, " "); - - if (ptr_dcc->size < 1024*10) - num_unit = 0; - else if (ptr_dcc->size < 1024*1024) - num_unit = 1; - else if (ptr_dcc->size < 1024*1024*1024) - num_unit = 2; - else - num_unit = 3; - if (ptr_dcc->size == 0) - { - if (ptr_dcc->status == IRC_DCC_DONE) - pct_complete = 100; - else - pct_complete = 0; - } - else - pct_complete = (unsigned long)(((float)(ptr_dcc->pos)/(float)(ptr_dcc->size))*100); - wprintw (GUI_CURSES(ptr_win)->win_chat, "] %3lu%% ", - pct_complete); - sprintf (format, "%s %%s / %s %%s", - unit_format[num_unit], - unit_format[num_unit]); - wprintw (GUI_CURSES(ptr_win)->win_chat, format, - ((float)(ptr_dcc->pos)) / ((float)(unit_divide[num_unit])), - unit_name[num_unit], - ((float)(ptr_dcc->size)) / ((float)(unit_divide[num_unit])), - unit_name[num_unit]); - - if (ptr_dcc->bytes_per_sec < 1024*1024) - num_unit = 1; - else if (ptr_dcc->bytes_per_sec < 1024*1024*1024) - num_unit = 2; - else - num_unit = 3; - wprintw (GUI_CURSES(ptr_win)->win_chat, " ("); - if (ptr_dcc->status == IRC_DCC_ACTIVE) - { - wprintw (GUI_CURSES(ptr_win)->win_chat, _("ETA")); - wprintw (GUI_CURSES(ptr_win)->win_chat, ": %.2lu:%.2lu:%.2lu - ", - ptr_dcc->eta / 3600, - (ptr_dcc->eta / 60) % 60, - ptr_dcc->eta % 60); - } - sprintf (format, "%s %%s/s)", unit_format[num_unit]); - buf = weechat_iconv_from_internal (NULL, unit_name[num_unit]); - wprintw (GUI_CURSES(ptr_win)->win_chat, format, - ((float)ptr_dcc->bytes_per_sec) / ((float)(unit_divide[num_unit])), - (buf) ? buf : unit_name[num_unit]); - if (buf) - free (buf); + if (count == gui_chat_display_line (ptr_win, ptr_win->buffer->last_line, 0, 1)) + ptr_win->scroll = 0; } - else + + if (ptr_win->scroll != old_scroll) { - date_tmp = localtime (&(ptr_dcc->start_time)); - strftime (date, sizeof (date) - 1, "%a, %d %b %Y %H:%M:%S", date_tmp); - wprintw (GUI_CURSES(ptr_win)->win_chat, " %s", date); + hook_signal_send ("window_scrolled", + WEECHAT_HOOK_SIGNAL_POINTER, ptr_win); } - wclrtoeol (GUI_CURSES(ptr_win)->win_chat); + if (!ptr_win->scroll + && (ptr_win->start_line == gui_chat_get_first_line_displayed (ptr_win->buffer))) + { + ptr_win->start_line = NULL; + ptr_win->start_line_pos = 0; + } - ptr_win->dcc_last_displayed = ptr_dcc; - i += 2; - } - } - else*/ - { - ptr_win->win_chat_cursor_x = 0; - ptr_win->win_chat_cursor_y = 0; - - switch (ptr_win->buffer->type) - { - case GUI_BUFFER_TYPE_FORMATED: - /* display at position of scrolling */ - if (ptr_win->start_line) - { - ptr_line = ptr_win->start_line; - line_pos = ptr_win->start_line_pos; - } - else - { - /* look for first line to display, starting from last line */ - ptr_line = NULL; - line_pos = 0; - gui_chat_calculate_line_diff (ptr_win, &ptr_line, &line_pos, - (-1) * (ptr_win->win_chat_height - 1)); - } - - if (line_pos > 0) - { - /* display end of first line at top of screen */ - gui_chat_display_line (ptr_win, ptr_line, - gui_chat_display_line (ptr_win, - ptr_line, - 0, 1) - - line_pos, 0); - ptr_line = gui_chat_get_next_line_displayed (ptr_line); - ptr_win->first_line_displayed = 0; - } - else - ptr_win->first_line_displayed = - (ptr_line == gui_chat_get_first_line_displayed (ptr_win->buffer)); - - /* display lines */ - count = 0; - while (ptr_line && (ptr_win->win_chat_cursor_y <= ptr_win->win_chat_height - 1)) - { - count = gui_chat_display_line (ptr_win, ptr_line, 0, 0); + /* cursor is below end line of chat window? */ + if (ptr_win->win_chat_cursor_y > ptr_win->win_chat_height - 1) + { + ptr_win->win_chat_cursor_x = 0; + ptr_win->win_chat_cursor_y = ptr_win->win_chat_height - 1; + } + break; + case GUI_BUFFER_TYPE_FREE: + /* display at position of scrolling */ + ptr_line = (ptr_win->start_line) ? + ptr_win->start_line : buffer->lines; + if (ptr_line) + { + if (!ptr_line->displayed) ptr_line = gui_chat_get_next_line_displayed (ptr_line); - } - - old_scroll = ptr_win->scroll; - - ptr_win->scroll = (ptr_win->win_chat_cursor_y > ptr_win->win_chat_height - 1); - - /* check if last line of buffer is entirely displayed and scrolling */ - /* if so, disable scroll indicator */ - if (!ptr_line && ptr_win->scroll) - { - if (count == gui_chat_display_line (ptr_win, ptr_win->buffer->last_line, 0, 1)) - ptr_win->scroll = 0; - } - - if (ptr_win->scroll != old_scroll) - { - hook_signal_send ("window_scrolled", - WEECHAT_HOOK_SIGNAL_POINTER, ptr_win); - } - - if (!ptr_win->scroll - && (ptr_win->start_line == gui_chat_get_first_line_displayed (ptr_win->buffer))) - { - ptr_win->start_line = NULL; - ptr_win->start_line_pos = 0; - } - - /* cursor is below end line of chat window? */ - if (ptr_win->win_chat_cursor_y > ptr_win->win_chat_height - 1) - { - ptr_win->win_chat_cursor_x = 0; - ptr_win->win_chat_cursor_y = ptr_win->win_chat_height - 1; - } - break; - case GUI_BUFFER_TYPE_FREE: - /* display at position of scrolling */ - ptr_line = (ptr_win->start_line) ? - ptr_win->start_line : buffer->lines; if (ptr_line) { - if (!ptr_line->displayed) - ptr_line = gui_chat_get_next_line_displayed (ptr_line); - if (ptr_line) + y_start = (ptr_win->start_line) ? ptr_line->y : 0; + y_end = y_start + ptr_win->win_chat_height - 1; + while (ptr_line && (ptr_line->y <= y_end)) { - y_start = (ptr_win->start_line) ? ptr_line->y : 0; - y_end = y_start + ptr_win->win_chat_height - 1; - while (ptr_line && (ptr_line->y <= y_end)) + if (ptr_line->refresh_needed || erase) { - if (ptr_line->refresh_needed || erase) - { - gui_chat_display_line_y (ptr_win, ptr_line, - ptr_line->y - y_start); - } - ptr_line = gui_chat_get_next_line_displayed (ptr_line); + gui_chat_display_line_y (ptr_win, ptr_line, + ptr_line->y - y_start); } + ptr_line = gui_chat_get_next_line_displayed (ptr_line); } } - } + } + break; } wnoutrefresh (GUI_CURSES(ptr_win)->win_chat); - refresh (); - - if (buffer->type == GUI_BUFFER_TYPE_FREE) - { - for (ptr_line = buffer->lines; ptr_line; - ptr_line = ptr_line->next_line) - { - ptr_line->refresh_needed = 0; - } - } + } + } + + refresh (); + + if (buffer->type == GUI_BUFFER_TYPE_FREE) + { + for (ptr_line = buffer->lines; ptr_line; + ptr_line = ptr_line->next_line) + { + ptr_line->refresh_needed = 0; } } } diff --git a/src/gui/curses/gui-curses-window.c b/src/gui/curses/gui-curses-window.c index 38c7f69e6..9a49faa7d 100644 --- a/src/gui/curses/gui-curses-window.c +++ b/src/gui/curses/gui-curses-window.c @@ -843,7 +843,7 @@ gui_window_scroll_topic_left (struct t_gui_window *window) window->win_title_start -= (window->win_width * 3) / 4; if (window->win_title_start < 0) window->win_title_start = 0; - window->buffer->title_refresh_needed = 1; + gui_buffer_ask_title_refresh (window->buffer, 1); } /* @@ -857,7 +857,7 @@ gui_window_scroll_topic_right (struct t_gui_window *window) return; window->win_title_start += (window->win_width * 3) / 4; - window->buffer->title_refresh_needed = 1; + gui_buffer_ask_title_refresh (window->buffer, 1); } /* @@ -875,7 +875,7 @@ gui_window_nick_beginning (struct t_gui_window *window) if (window->win_nick_start > 0) { window->win_nick_start = 0; - window->buffer->nicklist_refresh_needed = 1; + gui_buffer_ask_nicklist_refresh (window->buffer, 1); } } } @@ -904,7 +904,7 @@ gui_window_nick_end (struct t_gui_window *window) if (new_start != window->win_nick_start) { window->win_nick_start = new_start; - window->buffer->nicklist_refresh_needed = 1; + gui_buffer_ask_nicklist_refresh (window->buffer, 1); } } } @@ -926,7 +926,7 @@ gui_window_nick_page_up (struct t_gui_window *window) window->win_nick_start -= (window->win_nick_num_max - 1); if (window->win_nick_start <= 1) window->win_nick_start = 0; - window->buffer->nicklist_refresh_needed = 1; + gui_buffer_ask_nicklist_refresh (window->buffer, 1); } } } @@ -951,7 +951,7 @@ gui_window_nick_page_down (struct t_gui_window *window) window->win_nick_start += (window->win_nick_num_max - 1); else window->win_nick_start += (window->win_nick_num_max - 2); - window->buffer->nicklist_refresh_needed = 1; + gui_buffer_ask_nicklist_refresh (window->buffer, 1); } } } diff --git a/src/gui/gui-action.c b/src/gui/gui-action.c index 906564c86..36bf593a3 100644 --- a/src/gui/gui-action.c +++ b/src/gui/gui-action.c @@ -684,8 +684,8 @@ gui_action_up (char *args) ((t_irc_dcc *)(window->dcc_first))->prev_dcc; window->dcc_selected = ((t_irc_dcc *)(window->dcc_selected))->prev_dcc; - gui_current_window->buffer->chat_refresh_needed = 1; - gui_current_window->buffer->input_refresh_needed = 1; + gui_buffer_ask_chat_refresh (gui_current_window->buffer, 1); + gui_buffer_ask_input_refresh (gui_current_window->buffer, 1); } } } @@ -824,8 +824,8 @@ gui_action_down (char *args) else window->dcc_selected = irc_dcc_list->next_dcc; - gui_current_window->buffer->chat_refresh_needed = 1; - gui_current_window->buffer->input_refresh_needed = 1; + gui_buffer_ask_chat_refresh (gui_current_window->buffer, 1); + gui_buffer_ask_input_refresh (gui_current_window->buffer, 1); } } } @@ -1300,8 +1300,8 @@ gui_action_scroll_previous_highlight (char *args) window->start_line_pos = 0; window->first_line_displayed = (window->start_line == gui_current_window->buffer->lines); - gui_current_window->buffer->chat_refresh_needed = 1; - gui_current_window->buffer->input_refresh_needed = 1; + gui_buffer_ask_chat_refresh (gui_current_window->buffer, 1); + gui_buffer_ask_input_refresh (gui_current_window->buffer, 1); return; } ptr_line = ptr_line->prev_line; @@ -1337,8 +1337,8 @@ gui_action_scroll_next_highlight (char *args) window->start_line_pos = 0; window->first_line_displayed = (window->start_line == gui_current_window->buffer->lines); - gui_current_window->buffer->chat_refresh_needed = 1; - gui_current_window->buffer->input_refresh_needed = 1; + gui_buffer_ask_chat_refresh (gui_current_window->buffer, 1); + gui_buffer_ask_input_refresh (gui_current_window->buffer, 1); return; } ptr_line = ptr_line->next_line; @@ -1370,7 +1370,7 @@ gui_action_scroll_unread (char *args) gui_current_window->start_line_pos = 0; gui_current_window->first_line_displayed = (gui_current_window->start_line == gui_chat_get_first_line_displayed (gui_current_window->buffer)); - gui_current_window->buffer->chat_refresh_needed = 2; + gui_buffer_ask_chat_refresh (gui_current_window->buffer, 2); gui_status_refresh_needed = 1; } } diff --git a/src/gui/gui-bar.c b/src/gui/gui-bar.c index 292f8e6c8..cfb0d78ae 100644 --- a/src/gui/gui-bar.c +++ b/src/gui/gui-bar.c @@ -293,6 +293,9 @@ gui_bar_config_check_size (void *data, struct t_config_option *option, number = strtol (value, &error, 10); if (error && !error[0]) { + if (number < 0) + return 0; + if (number <= ptr_bar->current_size || gui_bar_check_size_add (ptr_bar, number - ptr_bar->current_size)) diff --git a/src/gui/gui-buffer.c b/src/gui/gui-buffer.c index ba6883123..98e6cb6ae 100644 --- a/src/gui/gui-buffer.c +++ b/src/gui/gui-buffer.c @@ -266,6 +266,50 @@ gui_buffer_get_pointer (struct t_gui_buffer *buffer, char *property) } /* + * gui_buffer_ask_title_refresh: set "title_refresh_needed" flag + */ + +void +gui_buffer_ask_title_refresh (struct t_gui_buffer *buffer, int refresh) +{ + if (refresh > buffer->title_refresh_needed) + buffer->title_refresh_needed = refresh; +} + +/* + * gui_buffer_ask_chat_refresh: set "chat_refresh_needed" flag + */ + +void +gui_buffer_ask_chat_refresh (struct t_gui_buffer *buffer, int refresh) +{ + if (refresh > buffer->chat_refresh_needed) + buffer->chat_refresh_needed = refresh; +} + +/* + * gui_buffer_ask_nicklist_refresh: set "nicklist_refresh_needed" flag + */ + +void +gui_buffer_ask_nicklist_refresh (struct t_gui_buffer *buffer, int refresh) +{ + if (refresh > buffer->nicklist_refresh_needed) + buffer->nicklist_refresh_needed = refresh; +} + +/* + * gui_buffer_ask_input_refresh: set "input_refresh_needed" flag + */ + +void +gui_buffer_ask_input_refresh (struct t_gui_buffer *buffer, int refresh) +{ + if (refresh > buffer->input_refresh_needed) + buffer->input_refresh_needed = refresh; +} + +/* * gui_buffer_set_category: set category for a buffer */ @@ -324,7 +368,7 @@ gui_buffer_set_type (struct t_gui_buffer *buffer, enum t_gui_buffer_type type) break; } buffer->type = type; - buffer->chat_refresh_needed = 2; + gui_buffer_ask_chat_refresh (buffer, 2); } /* @@ -337,7 +381,7 @@ gui_buffer_set_title (struct t_gui_buffer *buffer, char *new_title) if (buffer->title) free (buffer->title); buffer->title = (new_title && new_title[0]) ? strdup (new_title) : NULL; - buffer->title_refresh_needed = 1; + gui_buffer_ask_title_refresh (buffer, 1); } /* @@ -373,7 +417,7 @@ gui_buffer_set_nicklist_display_groups (struct t_gui_buffer *buffer, buffer->nicklist_display_groups = (display_groups) ? 1 : 0; buffer->nicklist_visible_count = 0; gui_nicklist_compute_visible_count (buffer, buffer->nicklist_root); - buffer->nicklist_refresh_needed = 1; + gui_buffer_ask_nicklist_refresh (buffer, 1); } /* @@ -386,7 +430,7 @@ gui_buffer_set_nick (struct t_gui_buffer *buffer, char *new_nick) if (buffer->input_nick) free (buffer->input_nick); buffer->input_nick = (new_nick && new_nick[0]) ? strdup (new_nick) : NULL; - buffer->input_refresh_needed = 1; + gui_buffer_ask_input_refresh (buffer, 1); } /* @@ -680,7 +724,7 @@ gui_buffer_clear (struct t_gui_buffer *buffer) } } - buffer->chat_refresh_needed = 2; + gui_buffer_ask_chat_refresh (buffer, 2); gui_status_refresh_needed = 1; } @@ -694,7 +738,9 @@ gui_buffer_clear_all () struct t_gui_buffer *ptr_buffer; for (ptr_buffer = gui_buffers; ptr_buffer; ptr_buffer = ptr_buffer->next_buffer) + { gui_buffer_clear (ptr_buffer); + } } /* diff --git a/src/gui/gui-buffer.h b/src/gui/gui-buffer.h index 21ac6f776..f292fa9be 100644 --- a/src/gui/gui-buffer.h +++ b/src/gui/gui-buffer.h @@ -160,6 +160,14 @@ extern char *gui_buffer_get_string (struct t_gui_buffer *buffer, char *property); extern void *gui_buffer_get_pointer (struct t_gui_buffer *buffer, char *property); +extern void gui_buffer_ask_title_refresh (struct t_gui_buffer *buffer, + int refresh); +extern void gui_buffer_ask_chat_refresh (struct t_gui_buffer *buffer, + int refresh); +extern void gui_buffer_ask_nicklist_refresh (struct t_gui_buffer *buffer, + int refresh); +extern void gui_buffer_ask_input_refresh (struct t_gui_buffer *buffer, + int refresh); extern void gui_buffer_set_category (struct t_gui_buffer *buffer, char *category); extern void gui_buffer_set_name (struct t_gui_buffer *buffer, char *name); diff --git a/src/gui/gui-chat.c b/src/gui/gui-chat.c index 16c0d3b82..42c08b144 100644 --- a/src/gui/gui-chat.c +++ b/src/gui/gui-chat.c @@ -573,7 +573,7 @@ gui_chat_line_free (struct t_gui_buffer *buffer, struct t_gui_line *line) { ptr_win->start_line = ptr_win->start_line->next_line; ptr_win->start_line_pos = 0; - ptr_win->buffer->chat_refresh_needed = 2; + gui_buffer_ask_chat_refresh (buffer, 2); gui_status_refresh_needed = 1; } } @@ -887,7 +887,7 @@ gui_chat_printf_date_tags (struct t_gui_buffer *buffer, time_t date, if (gui_init_ok) { - buffer->chat_refresh_needed = 1; + gui_buffer_ask_chat_refresh (buffer, 1); if (gui_add_hotlist && ((buffer->num_displayed == 0) || (gui_buffer_is_scrolled (buffer)))) @@ -937,7 +937,7 @@ gui_chat_printf_y (struct t_gui_buffer *buffer, int y, char *message, ...) if (ptr_line && (ptr_line->y == y)) { gui_chat_line_free (buffer, ptr_line); - buffer->chat_refresh_needed = 2; + gui_buffer_ask_chat_refresh (buffer, 2); } } } @@ -953,7 +953,7 @@ gui_chat_printf_y (struct t_gui_buffer *buffer, int y, char *message, ...) if (gui_init_ok) { gui_chat_line_add_y (buffer, y, buf); - buffer->chat_refresh_needed = 1; + gui_buffer_ask_chat_refresh (buffer, 1); } else string_iconv_fprintf (stdout, "%s\n", buf); diff --git a/src/gui/gui-filter.c b/src/gui/gui-filter.c index 12005ca72..b39debe3f 100644 --- a/src/gui/gui-filter.c +++ b/src/gui/gui-filter.c @@ -106,7 +106,7 @@ gui_filter_buffer (struct t_gui_buffer *buffer) /* force chat refresh if at least one line changed */ if (ptr_line->displayed != line_displayed) - buffer->chat_refresh_needed = 2; + gui_buffer_ask_chat_refresh (buffer, 2); ptr_line->displayed = line_displayed; diff --git a/src/gui/gui-nicklist.c b/src/gui/gui-nicklist.c index 78ae1c6cd..63ab79fb1 100644 --- a/src/gui/gui-nicklist.c +++ b/src/gui/gui-nicklist.c @@ -195,7 +195,7 @@ gui_nicklist_add_group (struct t_gui_buffer *buffer, if (buffer->nicklist_display_groups && visible) { - buffer->nicklist_refresh_needed = 1; + gui_buffer_ask_nicklist_refresh (buffer, 1); buffer->nicklist_visible_count++; gui_status_refresh_needed = 1; } @@ -337,7 +337,7 @@ gui_nicklist_add_nick (struct t_gui_buffer *buffer, if (visible) { - buffer->nicklist_refresh_needed = 1; + gui_buffer_ask_nicklist_refresh (buffer, 1); buffer->nicklist_visible_count++; gui_status_refresh_needed = 1; } @@ -372,7 +372,7 @@ gui_nicklist_remove_nick (struct t_gui_buffer *buffer, if (nick->visible) { - buffer->nicklist_refresh_needed = 1; + gui_buffer_ask_nicklist_refresh (buffer, 1); if (buffer->nicklist_visible_count > 0) buffer->nicklist_visible_count--; gui_status_refresh_needed = 1; @@ -427,7 +427,7 @@ gui_nicklist_remove_group (struct t_gui_buffer *buffer, if (group->visible) { - buffer->nicklist_refresh_needed = 1; + gui_buffer_ask_nicklist_refresh (buffer, 1); if (buffer->nicklist_display_groups && (buffer->nicklist_visible_count > 0)) buffer->nicklist_visible_count--; diff --git a/src/gui/gui-window.c b/src/gui/gui-window.c index 09b84f2f2..66761bfa2 100644 --- a/src/gui/gui-window.c +++ b/src/gui/gui-window.c @@ -637,7 +637,7 @@ gui_window_scroll (struct t_gui_window *window, char *scroll) window->start_line_pos = 0; window->first_line_displayed = (window->start_line == gui_chat_get_first_line_displayed (window->buffer)); - window->buffer->chat_refresh_needed = 2; + gui_buffer_ask_chat_refresh (window->buffer, 2); gui_status_refresh_needed = 1; return; } @@ -680,7 +680,7 @@ gui_window_search_text (struct t_gui_window *window) window->start_line_pos = 0; window->first_line_displayed = (window->start_line == gui_chat_get_first_line_displayed (window->buffer)); - window->buffer->chat_refresh_needed = 2; + gui_buffer_ask_chat_refresh (window->buffer, 2); gui_status_refresh_needed = 1; return 1; } @@ -709,7 +709,7 @@ gui_window_search_text (struct t_gui_window *window) window->start_line_pos = 0; window->first_line_displayed = (window->start_line == window->buffer->lines); - window->buffer->chat_refresh_needed = 2; + gui_buffer_ask_chat_refresh (window->buffer, 2); gui_status_refresh_needed = 1; return 1; } @@ -740,7 +740,7 @@ gui_window_search_start (struct t_gui_window *window) strdup (window->buffer->input_buffer); gui_input_delete_line (window->buffer); gui_status_refresh_needed = 1; - window->buffer->input_refresh_needed = 1; + gui_buffer_ask_input_refresh (window->buffer, 1); } /* @@ -759,7 +759,7 @@ gui_window_search_restart (struct t_gui_window *window) window->buffer->text_search_found = 1; else { - window->buffer->chat_refresh_needed = 2; + gui_buffer_ask_chat_refresh (window->buffer, 2); gui_status_refresh_needed = 1; } } @@ -784,9 +784,9 @@ gui_window_search_stop (struct t_gui_window *window) window->start_line = NULL; window->start_line_pos = 0; gui_hotlist_remove_buffer (window->buffer); - window->buffer->chat_refresh_needed = 2; + gui_buffer_ask_chat_refresh (window->buffer, 2); gui_status_refresh_needed = 1; - window->buffer->input_refresh_needed = 1; + gui_buffer_ask_input_refresh (window->buffer, 1); } /* |