Mercurial > pidgin
comparison finch/gntlog.c @ 22790:946f1bb22adb
Always top-align the logs in the log-viewer.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Tue, 29 Apr 2008 21:44:54 +0000 |
parents | 864c82371181 |
children | adde385c7904 |
comparison
equal
deleted
inserted
replaced
22789:4457e6a99d13 | 22790:946f1bb22adb |
---|---|
137 g_free(read); | 137 g_free(read); |
138 } | 138 } |
139 | 139 |
140 } | 140 } |
141 | 141 |
142 static void destroy_cb(GntWidget *w, struct log_viewer_hash_t *ht) { | 142 static void destroy_cb(GntWidget *w, struct log_viewer_hash_t *ht) |
143 { | |
143 FinchLogViewer *lv = syslog_viewer; | 144 FinchLogViewer *lv = syslog_viewer; |
144 | 145 |
145 if (ht != NULL) { | 146 if (ht != NULL) { |
146 lv = g_hash_table_lookup(log_viewers, ht); | 147 lv = g_hash_table_lookup(log_viewers, ht); |
147 g_hash_table_remove(log_viewers, ht); | 148 g_hash_table_remove(log_viewers, ht); |
160 g_free(lv); | 161 g_free(lv); |
161 | 162 |
162 gnt_widget_destroy(w); | 163 gnt_widget_destroy(w); |
163 } | 164 } |
164 | 165 |
165 static void log_select_cb(GntWidget *w, gpointer old, gpointer new, FinchLogViewer *viewer) { | 166 static void log_select_cb(GntWidget *w, gpointer old, gpointer new, FinchLogViewer *viewer) |
167 { | |
166 GntTree *tree = GNT_TREE(w); | 168 GntTree *tree = GNT_TREE(w); |
167 PurpleLog *log = NULL; | 169 PurpleLog *log = NULL; |
168 PurpleLogReadFlags flags; | 170 PurpleLogReadFlags flags; |
169 char *read = NULL, *strip, *newline; | 171 char *read = NULL, *strip, *newline; |
170 int h; | |
171 | 172 |
172 if (!viewer->search && !gnt_tree_get_parent_key(tree, new)) | 173 if (!viewer->search && !gnt_tree_get_parent_key(tree, new)) |
173 return; | 174 return; |
174 | 175 |
175 log = (PurpleLog *)new; | 176 log = (PurpleLog *)new; |
202 | 203 |
203 purple_signal_emit(finch_log_get_handle(), "log-displaying", viewer, log); | 204 purple_signal_emit(finch_log_get_handle(), "log-displaying", viewer, log); |
204 | 205 |
205 gnt_text_view_clear(GNT_TEXT_VIEW(viewer->text)); | 206 gnt_text_view_clear(GNT_TEXT_VIEW(viewer->text)); |
206 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(viewer->text), strip, GNT_TEXT_FLAG_NORMAL); | 207 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(viewer->text), strip, GNT_TEXT_FLAG_NORMAL); |
207 gnt_widget_get_size(viewer->text, NULL, &h); | |
208 gnt_text_view_scroll(GNT_TEXT_VIEW(viewer->text), h - 2); | |
209 g_free(read); | 208 g_free(read); |
210 g_free(strip); | 209 g_free(strip); |
211 } | 210 } |
212 | 211 |
213 /* I want to make this smarter, but haven't come up with a cool algorithm to do so, yet. | 212 /* I want to make this smarter, but haven't come up with a cool algorithm to do so, yet. |
319 gnt_box_add_widget(GNT_BOX(hbox), lv->tree); | 318 gnt_box_add_widget(GNT_BOX(hbox), lv->tree); |
320 | 319 |
321 /* Viewer ************/ | 320 /* Viewer ************/ |
322 lv->text = gnt_text_view_new(); | 321 lv->text = gnt_text_view_new(); |
323 gnt_box_add_widget(GNT_BOX(hbox), lv->text); | 322 gnt_box_add_widget(GNT_BOX(hbox), lv->text); |
323 gnt_text_view_set_flag(GNT_TEXT_VIEW(lv->text), GNT_TEXT_VIEW_TOP_ALIGN); | |
324 | 324 |
325 hbox = gnt_hbox_new(FALSE); | 325 hbox = gnt_hbox_new(FALSE); |
326 gnt_box_add_widget(GNT_BOX(vbox), hbox); | 326 gnt_box_add_widget(GNT_BOX(vbox), hbox); |
327 /* Log size ************/ | 327 /* Log size ************/ |
328 if (log_size) { | 328 if (log_size) { |