44 |
|
|
45 |
|
|
46 |
/* |
/* |
|
* gui_window_clear: clear window content |
|
|
*/ |
|
|
|
|
|
void |
|
|
gui_window_clear (t_gui_window *window) |
|
|
{ |
|
|
t_gui_line *ptr_line; |
|
|
t_gui_message *ptr_message; |
|
|
|
|
|
while (window->lines) |
|
|
{ |
|
|
ptr_line = window->lines->next_line; |
|
|
while (window->lines->messages) |
|
|
{ |
|
|
ptr_message = window->lines->messages->next_message; |
|
|
if (window->lines->messages->message) |
|
|
free (window->lines->messages->message); |
|
|
free (window->lines->messages); |
|
|
window->lines->messages = ptr_message; |
|
|
} |
|
|
free (window->lines); |
|
|
window->lines = ptr_line; |
|
|
} |
|
|
|
|
|
window->lines = NULL; |
|
|
window->last_line = NULL; |
|
|
window->first_line_displayed = 1; |
|
|
window->sub_lines = 0; |
|
|
window->line_complete = 1; |
|
|
window->unread_data = 0; |
|
|
|
|
|
if (window == gui_current_window) |
|
|
gui_redraw_window_chat (window); |
|
|
} |
|
|
|
|
|
/* |
|
|
* gui_window_clear_all: clear all windows content |
|
|
*/ |
|
|
|
|
|
void |
|
|
gui_window_clear_all () |
|
|
{ |
|
|
t_gui_window *ptr_win; |
|
|
|
|
|
for (ptr_win = gui_windows; ptr_win; ptr_win = ptr_win->next_window) |
|
|
gui_window_clear (ptr_win); |
|
|
} |
|
|
|
|
|
/* |
|
47 |
* gui_window_new: create a new window |
* gui_window_new: create a new window |
48 |
* (TODO: add coordinates and size, for splited windows) |
* (TODO: add coordinates and size, for splited windows) |
49 |
*/ |
*/ |
71 |
|
|
72 |
if ((new_window = (t_gui_window *)(malloc (sizeof (t_gui_window))))) |
if ((new_window = (t_gui_window *)(malloc (sizeof (t_gui_window))))) |
73 |
{ |
{ |
74 |
|
new_window->is_displayed = 0; |
75 |
|
|
76 |
/* assign server and channel to window */ |
/* assign server and channel to window */ |
77 |
SERVER(new_window) = server; |
SERVER(new_window) = server; |
78 |
CHANNEL(new_window) = channel; |
CHANNEL(new_window) = channel; |
85 |
gui_calculate_pos_size (new_window); |
gui_calculate_pos_size (new_window); |
86 |
|
|
87 |
/* init windows */ |
/* init windows */ |
88 |
new_window->win_title = NULL; |
gui_window_init_subwindows(new_window); |
|
new_window->win_chat = NULL; |
|
|
new_window->win_nick = NULL; |
|
|
new_window->win_status = NULL; |
|
|
new_window->win_input = NULL; |
|
89 |
|
|
90 |
/* init lines */ |
/* init lines */ |
91 |
new_window->lines = NULL; |
new_window->lines = NULL; |
132 |
} |
} |
133 |
|
|
134 |
/* |
/* |
135 |
|
* gui_window_clear: clear window content |
136 |
|
*/ |
137 |
|
|
138 |
|
void |
139 |
|
gui_window_clear (t_gui_window *window) |
140 |
|
{ |
141 |
|
t_gui_line *ptr_line; |
142 |
|
t_gui_message *ptr_message; |
143 |
|
|
144 |
|
while (window->lines) |
145 |
|
{ |
146 |
|
ptr_line = window->lines->next_line; |
147 |
|
while (window->lines->messages) |
148 |
|
{ |
149 |
|
ptr_message = window->lines->messages->next_message; |
150 |
|
if (window->lines->messages->message) |
151 |
|
free (window->lines->messages->message); |
152 |
|
free (window->lines->messages); |
153 |
|
window->lines->messages = ptr_message; |
154 |
|
} |
155 |
|
free (window->lines); |
156 |
|
window->lines = ptr_line; |
157 |
|
} |
158 |
|
|
159 |
|
window->lines = NULL; |
160 |
|
window->last_line = NULL; |
161 |
|
window->first_line_displayed = 1; |
162 |
|
window->sub_lines = 0; |
163 |
|
window->line_complete = 1; |
164 |
|
window->unread_data = 0; |
165 |
|
|
166 |
|
if (window == gui_current_window) |
167 |
|
gui_redraw_window_chat (window); |
168 |
|
} |
169 |
|
|
170 |
|
/* |
171 |
|
* gui_window_clear_all: clear all windows content |
172 |
|
*/ |
173 |
|
|
174 |
|
void |
175 |
|
gui_window_clear_all () |
176 |
|
{ |
177 |
|
t_gui_window *ptr_win; |
178 |
|
|
179 |
|
for (ptr_win = gui_windows; ptr_win; ptr_win = ptr_win->next_window) |
180 |
|
gui_window_clear (ptr_win); |
181 |
|
} |
182 |
|
|
183 |
|
/* |
184 |
* gui_window_free: delete a window |
* gui_window_free: delete a window |
185 |
*/ |
*/ |
186 |
|
|