comparison console/gntconv.c @ 13896:a621329e8c85

[gaim-migrate @ 16381] Changes in GntTextView. Things go somewhat 'smooth' when run inside valgrind. Otherwise, it's kind of flaky. I don't mind a single bit if someone gave me a hint :) committer: Tailor Script <tailor@pidgin.im>
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Sat, 01 Jul 2006 00:56:05 +0000
parents 7d3256b253ec
children eaaf73de9188
comparison
equal deleted inserted replaced
13895:8f910263b4bb 13896:a621329e8c85
1 #include <string.h>
1 #include <util.h> 2 #include <util.h>
2 3
3 #include "gntgaim.h" 4 #include "gntgaim.h"
4 #include "gntconv.h" 5 #include "gntconv.h"
5 6
57 g_return_val_if_reached(FALSE); 58 g_return_val_if_reached(FALSE);
58 } 59 }
59 gnt_entry_clear(GNT_ENTRY(ggconv->entry)); 60 gnt_entry_clear(GNT_ENTRY(ggconv->entry));
60 return TRUE; 61 return TRUE;
61 } 62 }
63 else if (key[0] == 27)
64 {
65 if (strcmp(key+1, GNT_KEY_DOWN) == 0)
66 gnt_text_view_scroll(GNT_TEXT_VIEW(ggconv->tv), 1);
67 else if (strcmp(key+1, GNT_KEY_UP) == 0)
68 gnt_text_view_scroll(GNT_TEXT_VIEW(ggconv->tv), -1);
69 else if (strcmp(key+1, GNT_KEY_PGDOWN) == 0)
70 gnt_text_view_scroll(GNT_TEXT_VIEW(ggconv->tv), ggconv->tv->priv.height - 2);
71 else if (strcmp(key+1, GNT_KEY_PGUP) == 0)
72 gnt_text_view_scroll(GNT_TEXT_VIEW(ggconv->tv), -(ggconv->tv->priv.height - 2));
73 else
74 return FALSE;
75 return TRUE;
76 }
62 77
63 return FALSE; 78 return FALSE;
64 } 79 }
65 80
66 static void 81 static void
88 type = gaim_conversation_get_type(conv); 103 type = gaim_conversation_get_type(conv);
89 title = g_strdup_printf(_("Conversation: %s"), gaim_conversation_get_name(conv)); 104 title = g_strdup_printf(_("Conversation: %s"), gaim_conversation_get_name(conv));
90 ggc->window = gnt_box_new(FALSE, TRUE); 105 ggc->window = gnt_box_new(FALSE, TRUE);
91 gnt_box_set_title(GNT_BOX(ggc->window), title); 106 gnt_box_set_title(GNT_BOX(ggc->window), title);
92 gnt_box_set_toplevel(GNT_BOX(ggc->window), TRUE); 107 gnt_box_set_toplevel(GNT_BOX(ggc->window), TRUE);
93 gnt_widget_set_name(ggc->window, "conversation-window"); 108 gnt_widget_set_name(ggc->window, title);
94 109
95 ggc->tv = gnt_text_view_new(); 110 ggc->tv = gnt_text_view_new();
96 gnt_box_add_widget(GNT_BOX(ggc->window), ggc->tv); 111 gnt_box_add_widget(GNT_BOX(ggc->window), ggc->tv);
97 gnt_widget_set_name(ggc->tv, "conversation-window-textview"); 112 gnt_widget_set_name(ggc->tv, "conversation-window-textview");
98 gnt_widget_set_size(ggc->tv, getmaxx(stdscr) - 40, getmaxy(stdscr) - 15); 113 gnt_widget_set_size(ggc->tv, getmaxx(stdscr) - 40, getmaxy(stdscr) - 15);
178 gg_write_conv(GaimConversation *conv, const char *who, const char *alias, 193 gg_write_conv(GaimConversation *conv, const char *who, const char *alias,
179 const char *message, GaimMessageFlags flags, time_t mtime) 194 const char *message, GaimMessageFlags flags, time_t mtime)
180 { 195 {
181 GGConv *ggconv = g_hash_table_lookup(ggconvs, conv); 196 GGConv *ggconv = g_hash_table_lookup(ggconvs, conv);
182 char *strip; 197 char *strip;
198 GntTextViewFlags fl = 0;
183 199
184 g_return_if_fail(ggconv != NULL); 200 g_return_if_fail(ggconv != NULL);
185 201
186 strip = gaim_markup_strip_html(message); 202 strip = gaim_markup_strip_html(message);
187 203
197 213
198 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), 214 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv),
199 name, GNT_TEXT_FLAG_BOLD); 215 name, GNT_TEXT_FLAG_BOLD);
200 g_free(name); 216 g_free(name);
201 } 217 }
202 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv), 218 else
203 strip, 0); 219 fl = GNT_TEXT_FLAG_DIM;
220
221 if (flags & GAIM_MESSAGE_ERROR)
222 fl |= GNT_TEXT_FLAG_BOLD;
223
224 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv),
225 strip, fl);
204 gnt_text_view_next_line(GNT_TEXT_VIEW(ggconv->tv)); 226 gnt_text_view_next_line(GNT_TEXT_VIEW(ggconv->tv));
205 gnt_text_view_scroll(GNT_TEXT_VIEW(ggconv->tv), 0); 227 gnt_text_view_scroll(GNT_TEXT_VIEW(ggconv->tv), 0);
206 228
207 g_free(strip); 229 g_free(strip);
208 } 230 }