summaryrefslogtreecommitdiff
path: root/src/gui/gui-window.c
diff options
context:
space:
mode:
authorSebastien Helleu <flashcode@flashtux.org>2007-10-31 17:19:41 +0100
committerSebastien Helleu <flashcode@flashtux.org>2007-10-31 17:19:41 +0100
commit7f90ccd2ad8dc4be4ed0b6471ad8c4315784e334 (patch)
treebbcdc2facc24e917270a20539cd16dc18611151d /src/gui/gui-window.c
parent140623a314260dc77134fe63c3f13db05eb4b20f (diff)
downloadweechat-7f90ccd2ad8dc4be4ed0b6471ad8c4315784e334.zip
Renamed many sources and functions in src/gui, improved display of messages in buffer (faster and using less memory)
Diffstat (limited to 'src/gui/gui-window.c')
-rw-r--r--src/gui/gui-window.c538
1 files changed, 450 insertions, 88 deletions
diff --git a/src/gui/gui-window.c b/src/gui/gui-window.c
index 62a515537..e911a6f5b 100644
--- a/src/gui/gui-window.c
+++ b/src/gui/gui-window.c
@@ -32,22 +32,26 @@
#include <time.h>
#include <ctype.h>
-#include "../common/weechat.h"
-#include "gui.h"
-#include "../common/command.h"
-#include "../common/weeconfig.h"
-#include "../common/history.h"
-#include "../common/hotlist.h"
-#include "../common/log.h"
-#include "../common/utf8.h"
-#include "../protocols/irc/irc.h"
+#include "../core/weechat.h"
+#include "../core/wee-command.h"
+#include "../core/wee-config.h"
+#include "../core/wee-log.h"
+#include "../core/wee-utf8.h"
+#include "gui-window.h"
+#include "gui-input.h"
+#include "gui-hotlist.h"
+#include "gui-status.h"
-t_gui_window *gui_windows = NULL; /* pointer to first window */
-t_gui_window *last_gui_window = NULL; /* pointer to last window */
-t_gui_window *gui_current_window = NULL; /* pointer to current window */
+int gui_init_ok = 0; /* = 1 if GUI is initialized*/
+int gui_ok = 0; /* = 1 if GUI is ok */
+ /* (0 when size too small) */
-t_gui_window_tree *gui_windows_tree = NULL; /* pointer to windows tree */
+struct t_gui_window *gui_windows = NULL; /* first window */
+struct t_gui_window *last_gui_window = NULL; /* last window */
+struct t_gui_window *gui_current_window = NULL; /* current window */
+
+struct t_gui_window_tree *gui_windows_tree = NULL; /* windows tree */
/*
@@ -55,9 +59,9 @@ t_gui_window_tree *gui_windows_tree = NULL; /* pointer to windows tree */
*/
int
-gui_window_tree_init (t_gui_window *window)
+gui_window_tree_init (struct t_gui_window *window)
{
- gui_windows_tree = (t_gui_window_tree *)malloc (sizeof (t_gui_window_tree));
+ gui_windows_tree = (struct t_gui_window_tree *)malloc (sizeof (struct t_gui_window_tree));
if (!gui_windows_tree)
return 0;
gui_windows_tree->parent_node = NULL;
@@ -75,7 +79,8 @@ gui_window_tree_init (t_gui_window *window)
*/
void
-gui_window_tree_node_to_leaf (t_gui_window_tree *node, t_gui_window *window)
+gui_window_tree_node_to_leaf (struct t_gui_window_tree *node,
+ struct t_gui_window *window)
{
node->split_horiz = 0;
node->split_pct = 0;
@@ -98,7 +103,7 @@ gui_window_tree_node_to_leaf (t_gui_window_tree *node, t_gui_window *window)
*/
void
-gui_window_tree_free (t_gui_window_tree **tree)
+gui_window_tree_free (struct t_gui_window_tree **tree)
{
if (*tree)
{
@@ -115,13 +120,12 @@ gui_window_tree_free (t_gui_window_tree **tree)
* gui_window_new: create a new window
*/
-t_gui_window *
-gui_window_new (t_gui_window *parent, int x, int y, int width, int height,
+struct t_gui_window *
+gui_window_new (struct t_gui_window *parent, int x, int y, int width, int height,
int width_pct, int height_pct)
{
- t_gui_window *new_window;
- t_gui_window_tree *ptr_tree, *child1, *child2, *ptr_leaf;
- t_gui_panel *ptr_panel;
+ struct t_gui_window *new_window;
+ struct t_gui_window_tree *ptr_tree, *child1, *child2, *ptr_leaf;
#ifdef DEBUG
weechat_log_printf ("Creating new window (x:%d, y:%d, width:%d, height:%d)\n",
@@ -130,10 +134,10 @@ gui_window_new (t_gui_window *parent, int x, int y, int width, int height,
if (parent)
{
- child1 = (t_gui_window_tree *)malloc (sizeof (t_gui_window_tree));
+ child1 = (struct t_gui_window_tree *)malloc (sizeof (struct t_gui_window_tree));
if (!child1)
return NULL;
- child2 = (t_gui_window_tree *)malloc (sizeof (t_gui_window_tree));
+ child2 = (struct t_gui_window_tree *)malloc (sizeof (struct t_gui_window_tree));
if (!child2)
{
free (child1);
@@ -179,7 +183,7 @@ gui_window_new (t_gui_window *parent, int x, int y, int width, int height,
ptr_leaf = gui_windows_tree;
}
- if ((new_window = (t_gui_window *)(malloc (sizeof (t_gui_window)))))
+ if ((new_window = (struct t_gui_window *)(malloc (sizeof (struct t_gui_window)))))
{
if (!gui_window_objects_init (new_window))
{
@@ -247,14 +251,6 @@ gui_window_new (t_gui_window *parent, int x, int y, int width, int height,
new_window->ptr_tree = ptr_leaf;
ptr_leaf->window = new_window;
-
- /* add panels to window */
- for (ptr_panel = gui_panels; ptr_panel;
- ptr_panel = ptr_panel->next_panel)
- {
- if (!ptr_panel->panel_window)
- gui_panel_window_new (ptr_panel, new_window);
- }
/* add window to windows queue */
new_window->prev_window = last_gui_window;
@@ -276,7 +272,7 @@ gui_window_new (t_gui_window *parent, int x, int y, int width, int height,
*/
void
-gui_window_free (t_gui_window *window)
+gui_window_free (struct t_gui_window *window)
{
if (window->buffer && (window->buffer->num_displayed > 0))
window->buffer->num_displayed--;
@@ -301,14 +297,39 @@ gui_window_free (t_gui_window *window)
}
/*
+ * gui_window_search_by_buffer: search a window by buffer
+ * (return first window displaying this buffer)
+ */
+
+struct t_gui_window *
+gui_window_search_by_buffer (struct t_gui_buffer *buffer)
+{
+ struct t_gui_window *ptr_window;
+
+ if (!gui_ok)
+ return NULL;
+
+ for (ptr_window = gui_windows; ptr_window;
+ ptr_window = ptr_window->next_window)
+ {
+ if (ptr_window->buffer == buffer)
+ return ptr_window;
+ }
+
+ /* window not found */
+ return NULL;
+}
+
+/*
* gui_window_switch_server: switch server on servers buffer
* (if same buffer is used for all buffers)
*/
void
-gui_window_switch_server (t_gui_window *window)
+gui_window_switch_server (struct t_gui_window *window)
{
- t_gui_buffer *ptr_buffer;
+ (void) window;
+ /*struct t_gui_buffer *ptr_buffer;
t_irc_server *ptr_server;
ptr_buffer = gui_buffer_servers_search ();
@@ -340,7 +361,7 @@ gui_window_switch_server (t_gui_window *window)
gui_status_draw (window->buffer, 1);
gui_input_draw (window->buffer, 1);
}
- }
+ }*/
}
/*
@@ -348,7 +369,7 @@ gui_window_switch_server (t_gui_window *window)
*/
void
-gui_window_switch_previous (t_gui_window *window)
+gui_window_switch_previous (struct t_gui_window *window)
{
if (!gui_ok)
return;
@@ -367,7 +388,7 @@ gui_window_switch_previous (t_gui_window *window)
*/
void
-gui_window_switch_next (t_gui_window *window)
+gui_window_switch_next (struct t_gui_window *window)
{
if (!gui_ok)
return;
@@ -386,9 +407,9 @@ gui_window_switch_next (t_gui_window *window)
*/
void
-gui_window_switch_by_buffer (t_gui_window *window, int buffer_number)
+gui_window_switch_by_buffer (struct t_gui_window *window, int buffer_number)
{
- t_gui_window *ptr_win;
+ struct t_gui_window *ptr_win;
if (!gui_ok)
return;
@@ -408,56 +429,397 @@ gui_window_switch_by_buffer (t_gui_window *window, int buffer_number)
}
/*
+ * gui_window_scroll: scroll window by # messages or time
+ */
+
+void
+gui_window_scroll (struct t_gui_window *window, char *scroll)
+{
+ int direction, stop, count_msg;
+ char time_letter, saved_char;
+ time_t old_date, diff_date;
+ char *error;
+ long number;
+ struct t_gui_line *ptr_line;
+ struct tm *date_tmp, line_date, old_line_date;
+
+ if (window->buffer->lines)
+ {
+ direction = -1;
+ number = 0;
+ time_letter = ' ';
+
+ // search direction
+ if (scroll[0] == '-')
+ {
+ direction = -1;
+ scroll++;
+ }
+ else if (scroll[0] == '+')
+ {
+ direction = +1;
+ scroll++;
+ }
+
+ // search number and letter
+ char *pos = scroll;
+ while (pos && pos[0] && isdigit (pos[0]))
+ {
+ pos++;
+ }
+ if (pos)
+ {
+ if (pos == scroll)
+ {
+ if (pos[0])
+ time_letter = scroll[0];
+ }
+ else
+ {
+ if (pos[0])
+ time_letter = pos[0];
+ saved_char = pos[0];
+ pos[0] = '\0';
+ error = NULL;
+ number = strtol (scroll, &error, 10);
+ if (!error || (error[0] != '\0'))
+ number = 0;
+ pos[0] = saved_char;
+ }
+ }
+
+ /* at least number or letter has to he given */
+ if ((number == 0) && (time_letter == ' '))
+ return;
+
+ // do the scroll!
+ stop = 0;
+ count_msg = 0;
+ if (direction < 0)
+ ptr_line = (window->start_line) ?
+ window->start_line : window->buffer->last_line;
+ else
+ ptr_line = (window->start_line) ?
+ window->start_line : window->buffer->lines;
+
+ old_date = ptr_line->date;
+ date_tmp = localtime (&old_date);
+ memcpy (&old_line_date, date_tmp, sizeof (struct tm));
+
+ while (ptr_line)
+ {
+ ptr_line = (direction < 0) ? ptr_line->prev_line : ptr_line->next_line;
+
+ if (ptr_line)
+ {
+ if (time_letter == ' ')
+ {
+ count_msg++;
+ if (count_msg >= number)
+ stop = 1;
+ }
+ else
+ {
+ date_tmp = localtime (&(ptr_line->date));
+ memcpy (&line_date, date_tmp, sizeof (struct tm));
+ if (old_date > ptr_line->date)
+ diff_date = old_date - ptr_line->date;
+ else
+ diff_date = ptr_line->date - old_date;
+ switch (time_letter)
+ {
+ case 's': /* seconds */
+ if (number == 0)
+ {
+ /* stop if line has different second */
+ if ((line_date.tm_sec != old_line_date.tm_sec)
+ || (line_date.tm_min != old_line_date.tm_min)
+ || (line_date.tm_hour != old_line_date.tm_hour)
+ || (line_date.tm_mday != old_line_date.tm_mday)
+ || (line_date.tm_mon != old_line_date.tm_mon)
+ || (line_date.tm_year != old_line_date.tm_year))
+ if (line_date.tm_sec != old_line_date.tm_sec)
+ stop = 1;
+ }
+ else if (diff_date >= number)
+ stop = 1;
+ break;
+ case 'm': /* minutes */
+ if (number == 0)
+ {
+ /* stop if line has different minute */
+ if ((line_date.tm_min != old_line_date.tm_min)
+ || (line_date.tm_hour != old_line_date.tm_hour)
+ || (line_date.tm_mday != old_line_date.tm_mday)
+ || (line_date.tm_mon != old_line_date.tm_mon)
+ || (line_date.tm_year != old_line_date.tm_year))
+ stop = 1;
+ }
+ else if (diff_date >= number * 60)
+ stop = 1;
+ break;
+ case 'h': /* hours */
+ if (number == 0)
+ {
+ /* stop if line has different hour */
+ if ((line_date.tm_hour != old_line_date.tm_hour)
+ || (line_date.tm_mday != old_line_date.tm_mday)
+ || (line_date.tm_mon != old_line_date.tm_mon)
+ || (line_date.tm_year != old_line_date.tm_year))
+ stop = 1;
+ }
+ else if (diff_date >= number * 60 * 60)
+ stop = 1;
+ break;
+ case 'd': /* days */
+ if (number == 0)
+ {
+ /* stop if line has different day */
+ if ((line_date.tm_mday != old_line_date.tm_mday)
+ || (line_date.tm_mon != old_line_date.tm_mon)
+ || (line_date.tm_year != old_line_date.tm_year))
+ stop = 1;
+ }
+ else if (diff_date >= number * 60 * 60 * 24)
+ stop = 1;
+ break;
+ case 'M': /* months */
+ if (number == 0)
+ {
+ /* stop if line has different month */
+ if ((line_date.tm_mon != old_line_date.tm_mon)
+ || (line_date.tm_year != old_line_date.tm_year))
+ stop = 1;
+ }
+ /* we consider month is 30 days, who will find I'm too
+ lazy to code exact date diff ? ;) */
+ else if (diff_date >= number * 60 * 60 * 24 * 30)
+ stop = 1;
+ break;
+ case 'y': /* years */
+ if (number == 0)
+ {
+ /* stop if line has different year */
+ if (line_date.tm_year != old_line_date.tm_year)
+ stop = 1;
+ }
+ /* we consider year is 365 days, who will find I'm too
+ lazy to code exact date diff ? ;) */
+ else if (diff_date >= number * 60 * 60 * 24 * 365)
+ stop = 1;
+ break;
+ }
+ }
+ if (stop)
+ {
+ window->start_line = ptr_line;
+ window->start_line_pos = 0;
+ window->first_line_displayed =
+ (window->start_line == window->buffer->lines);
+ gui_chat_draw (window->buffer, 1);
+ gui_status_draw (window->buffer, 0);
+ return;
+ }
+ }
+ }
+ if (direction < 0)
+ gui_window_scroll_top (window);
+ else
+ gui_window_scroll_bottom (window);
+ }
+}
+
+/*
+ * gui_window_search_text: search text in a buffer
+ */
+
+int
+gui_window_search_text (struct t_gui_window *window)
+{
+ struct t_gui_line *ptr_line;
+
+ if (window->buffer->text_search == GUI_TEXT_SEARCH_BACKWARD)
+ {
+ if (window->buffer->lines
+ && window->buffer->input_buffer && window->buffer->input_buffer[0])
+ {
+ ptr_line = (window->start_line) ?
+ window->start_line->prev_line : window->buffer->last_line;
+ while (ptr_line)
+ {
+ if (gui_chat_line_search (ptr_line,
+ window->buffer->input_buffer,
+ window->buffer->text_search_exact))
+ {
+ window->start_line = ptr_line;
+ window->start_line_pos = 0;
+ window->first_line_displayed =
+ (window->start_line == window->buffer->lines);
+ gui_chat_draw (window->buffer, 1);
+ gui_status_draw (window->buffer, 1);
+ return 1;
+ }
+ ptr_line = ptr_line->prev_line;
+ }
+ }
+ }
+ else if (window->buffer->text_search == GUI_TEXT_SEARCH_FORWARD)
+ {
+ if (window->buffer->lines
+ && window->buffer->input_buffer && window->buffer->input_buffer[0])
+ {
+ ptr_line = (window->start_line) ?
+ window->start_line->next_line : window->buffer->lines->next_line;
+ while (ptr_line)
+ {
+ if (gui_chat_line_search (ptr_line,
+ window->buffer->input_buffer,
+ window->buffer->text_search_exact))
+ {
+ window->start_line = ptr_line;
+ window->start_line_pos = 0;
+ window->first_line_displayed =
+ (window->start_line == window->buffer->lines);
+ gui_chat_draw (window->buffer, 1);
+ gui_status_draw (window->buffer, 1);
+ return 1;
+ }
+ ptr_line = ptr_line->next_line;
+ }
+ }
+ }
+ return 0;
+}
+
+/*
+ * gui_window_search_start: start search in a buffer
+ */
+
+void
+gui_window_search_start (struct t_gui_window *window)
+{
+ window->buffer->text_search = GUI_TEXT_SEARCH_BACKWARD;
+ window->buffer->text_search_exact = 0;
+ window->buffer->text_search_found = 0;
+ if (window->buffer->text_search_input)
+ {
+ free (window->buffer->text_search_input);
+ window->buffer->text_search_input = NULL;
+ }
+ if (window->buffer->input_buffer && window->buffer->input_buffer[0])
+ window->buffer->text_search_input =
+ strdup (window->buffer->input_buffer);
+ gui_input_delete_line (window->buffer);
+ gui_status_draw (window->buffer, 1);
+ gui_input_draw (window->buffer, 1);
+}
+
+/*
+ * gui_window_search_restart: restart search (after input changes or exact
+ * flag (un)set)
+ */
+
+void
+gui_window_search_restart (struct t_gui_window *window)
+{
+ window->start_line = NULL;
+ window->start_line_pos = 0;
+ window->buffer->text_search = GUI_TEXT_SEARCH_BACKWARD;
+ window->buffer->text_search_found = 0;
+ if (gui_window_search_text (window))
+ window->buffer->text_search_found = 1;
+ else
+ {
+ gui_chat_draw (window->buffer, 1);
+ gui_status_draw (window->buffer, 1);
+ }
+}
+
+/*
+ * gui_window_search_stop: stop search in a buffer
+ */
+
+void
+gui_window_search_stop (struct t_gui_window *window)
+{
+ window->buffer->text_search = GUI_TEXT_SEARCH_DISABLED;
+ window->buffer->text_search = 0;
+ gui_input_delete_line (window->buffer);
+ if (window->buffer->text_search_input)
+ {
+ gui_input_insert_string (window->buffer,
+ window->buffer->text_search_input, -1);
+ free (window->buffer->text_search_input);
+ window->buffer->text_search_input = NULL;
+ }
+ window->start_line = NULL;
+ window->start_line_pos = 0;
+ gui_hotlist_remove_buffer (window->buffer);
+ gui_chat_draw (window->buffer, 0);
+ gui_status_draw (window->buffer, 1);
+ gui_input_draw (window->buffer, 1);
+}
+
+/*
* gui_window_print_log: print window infos in log (usually for crash dump)
*/
void
-gui_window_print_log (t_gui_window *window)
+gui_window_print_log ()
{
- weechat_log_printf ("[window (addr:0x%X)]\n", window);
- weechat_log_printf (" win_x . . . . . . . : %d\n", window->win_x);
- weechat_log_printf (" win_y . . . . . . . : %d\n", window->win_y);
- weechat_log_printf (" win_width . . . . . : %d\n", window->win_width);
- weechat_log_printf (" win_height. . . . . : %d\n", window->win_height);
- weechat_log_printf (" win_width_pct . . . : %d\n", window->win_width_pct);
- weechat_log_printf (" win_height_pct. . . : %d\n", window->win_height_pct);
- weechat_log_printf (" win_chat_x. . . . . : %d\n", window->win_chat_x);
- weechat_log_printf (" win_chat_y. . . . . : %d\n", window->win_chat_y);
- weechat_log_printf (" win_chat_width. . . : %d\n", window->win_chat_width);
- weechat_log_printf (" win_chat_height . . : %d\n", window->win_chat_height);
- weechat_log_printf (" win_chat_cursor_x . : %d\n", window->win_chat_cursor_x);
- weechat_log_printf (" win_chat_cursor_y . : %d\n", window->win_chat_cursor_y);
- weechat_log_printf (" win_nick_x. . . . . : %d\n", window->win_nick_x);
- weechat_log_printf (" win_nick_y. . . . . : %d\n", window->win_nick_y);
- weechat_log_printf (" win_nick_width. . . : %d\n", window->win_nick_width);
- weechat_log_printf (" win_nick_height . . : %d\n", window->win_nick_height);
- weechat_log_printf (" win_nick_start. . . : %d\n", window->win_nick_start);
- weechat_log_printf (" win_title_x . . . . : %d\n", window->win_title_x);
- weechat_log_printf (" win_title_y . . . . : %d\n", window->win_title_y);
- weechat_log_printf (" win_title_width . . : %d\n", window->win_title_width);
- weechat_log_printf (" win_title_height. . : %d\n", window->win_title_height);
- weechat_log_printf (" win_title_start . . : %d\n", window->win_title_start);
- weechat_log_printf (" win_status_x. . . . : %d\n", window->win_status_x);
- weechat_log_printf (" win_status_y. . . . : %d\n", window->win_status_y);
- weechat_log_printf (" win_status_width. . : %d\n", window->win_status_width);
- weechat_log_printf (" win_status_height . : %d\n", window->win_status_height);
- weechat_log_printf (" win_infobar_x . . . : %d\n", window->win_infobar_x);
- weechat_log_printf (" win_infobar_y . . . : %d\n", window->win_infobar_y);
- weechat_log_printf (" win_infobar_width . : %d\n", window->win_infobar_width);
- weechat_log_printf (" win_infobar_height. : %d\n", window->win_infobar_height);
- weechat_log_printf (" win_input_x . . . . : %d\n", window->win_input_x);
- weechat_log_printf (" win_input_y . . . . : %d\n", window->win_input_y);
- weechat_log_printf (" win_input_width . . : %d\n", window->win_input_width);
- weechat_log_printf (" win_input_height. . : %d\n", window->win_input_height);
- weechat_log_printf (" win_input_cursor_x. : %d\n", window->win_input_cursor_x);
- gui_window_objects_print_log (window);
- weechat_log_printf (" dcc_first . . . . . : 0x%X\n", window->dcc_first);
- weechat_log_printf (" dcc_selected. . . . : 0x%X\n", window->dcc_selected);
- weechat_log_printf (" dcc_last_displayed. : 0x%X\n", window->dcc_last_displayed);
- weechat_log_printf (" buffer. . . . . . . : 0x%X\n", window->buffer);
- weechat_log_printf (" first_line_displayed: %d\n", window->first_line_displayed);
- weechat_log_printf (" start_line. . . . . : 0x%X\n", window->start_line);
- weechat_log_printf (" start_line_pos. . . : %d\n", window->start_line_pos);
- weechat_log_printf (" prev_window . . . . : 0x%X\n", window->prev_window);
- weechat_log_printf (" next_window . . . . : 0x%X\n", window->next_window);
+ struct t_gui_window *ptr_window;
+
+ weechat_log_printf ("\n");
+ weechat_log_printf ("current window = 0x%X\n", gui_current_window);
+
+ for (ptr_window = gui_windows; ptr_window; ptr_window = ptr_window->next_window)
+ {
+ weechat_log_printf ("\n");
+ weechat_log_printf ("[window (addr:0x%X)]\n", ptr_window);
+ weechat_log_printf (" win_x . . . . . . . : %d\n", ptr_window->win_x);
+ weechat_log_printf (" win_y . . . . . . . : %d\n", ptr_window->win_y);
+ weechat_log_printf (" win_width . . . . . : %d\n", ptr_window->win_width);
+ weechat_log_printf (" win_height. . . . . : %d\n", ptr_window->win_height);
+ weechat_log_printf (" win_width_pct . . . : %d\n", ptr_window->win_width_pct);
+ weechat_log_printf (" win_height_pct. . . : %d\n", ptr_window->win_height_pct);
+ weechat_log_printf (" win_chat_x. . . . . : %d\n", ptr_window->win_chat_x);
+ weechat_log_printf (" win_chat_y. . . . . : %d\n", ptr_window->win_chat_y);
+ weechat_log_printf (" win_chat_width. . . : %d\n", ptr_window->win_chat_width);
+ weechat_log_printf (" win_chat_height . . : %d\n", ptr_window->win_chat_height);
+ weechat_log_printf (" win_chat_cursor_x . : %d\n", ptr_window->win_chat_cursor_x);
+ weechat_log_printf (" win_chat_cursor_y . : %d\n", ptr_window->win_chat_cursor_y);
+ weechat_log_printf (" win_nick_x. . . . . : %d\n", ptr_window->win_nick_x);
+ weechat_log_printf (" win_nick_y. . . . . : %d\n", ptr_window->win_nick_y);
+ weechat_log_printf (" win_nick_width. . . : %d\n", ptr_window->win_nick_width);
+ weechat_log_printf (" win_nick_height . . : %d\n", ptr_window->win_nick_height);
+ weechat_log_printf (" win_nick_start. . . : %d\n", ptr_window->win_nick_start);
+ weechat_log_printf (" win_title_x . . . . : %d\n", ptr_window->win_title_x);
+ weechat_log_printf (" win_title_y . . . . : %d\n", ptr_window->win_title_y);
+ weechat_log_printf (" win_title_width . . : %d\n", ptr_window->win_title_width);
+ weechat_log_printf (" win_title_height. . : %d\n", ptr_window->win_title_height);
+ weechat_log_printf (" win_title_start . . : %d\n", ptr_window->win_title_start);
+ weechat_log_printf (" win_status_x. . . . : %d\n", ptr_window->win_status_x);
+ weechat_log_printf (" win_status_y. . . . : %d\n", ptr_window->win_status_y);
+ weechat_log_printf (" win_status_width. . : %d\n", ptr_window->win_status_width);
+ weechat_log_printf (" win_status_height . : %d\n", ptr_window->win_status_height);
+ weechat_log_printf (" win_infobar_x . . . : %d\n", ptr_window->win_infobar_x);
+ weechat_log_printf (" win_infobar_y . . . : %d\n", ptr_window->win_infobar_y);
+ weechat_log_printf (" win_infobar_width . : %d\n", ptr_window->win_infobar_width);
+ weechat_log_printf (" win_infobar_height. : %d\n", ptr_window->win_infobar_height);
+ weechat_log_printf (" win_input_x . . . . : %d\n", ptr_window->win_input_x);
+ weechat_log_printf (" win_input_y . . . . : %d\n", ptr_window->win_input_y);
+ weechat_log_printf (" win_input_width . . : %d\n", ptr_window->win_input_width);
+ weechat_log_printf (" win_input_height. . : %d\n", ptr_window->win_input_height);
+ weechat_log_printf (" win_input_cursor_x. : %d\n", ptr_window->win_input_cursor_x);
+ gui_window_objects_print_log (ptr_window);
+ weechat_log_printf (" dcc_first . . . . . : 0x%X\n", ptr_window->dcc_first);
+ weechat_log_printf (" dcc_selected. . . . : 0x%X\n", ptr_window->dcc_selected);
+ weechat_log_printf (" dcc_last_displayed. : 0x%X\n", ptr_window->dcc_last_displayed);
+ weechat_log_printf (" buffer. . . . . . . : 0x%X\n", ptr_window->buffer);
+ weechat_log_printf (" first_line_displayed: %d\n", ptr_window->first_line_displayed);
+ weechat_log_printf (" start_line. . . . . : 0x%X\n", ptr_window->start_line);
+ weechat_log_printf (" start_line_pos. . . : %d\n", ptr_window->start_line_pos);
+ weechat_log_printf (" prev_window . . . . : 0x%X\n", ptr_window->prev_window);
+ weechat_log_printf (" next_window . . . . : 0x%X\n", ptr_window->next_window);
+ }
}