/[weechat]/weechat/src/gui/gui-common.c
ViewVC logotype

Diff of /weechat/src/gui/gui-common.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by flashcode, Sun Oct 12 14:15:15 2003 UTC revision 1.2 by flashcode, Mon Oct 13 21:51:35 2003 UTC
# Line 44  t_gui_window *gui_current_window = NULL; Line 44  t_gui_window *gui_current_window = NULL;
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   */   */
# Line 120  gui_window_new (void *server, void *chan Line 71  gui_window_new (void *server, void *chan
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;
# Line 132  gui_window_new (void *server, void *chan Line 85  gui_window_new (void *server, void *chan
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;
# Line 183  gui_window_new (void *server, void *chan Line 132  gui_window_new (void *server, void *chan
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    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26