comparison console/gntconv.c @ 13897:eaaf73de9188

[gaim-migrate @ 16382] I have added a sort of a taskbar, useful in showing the active windows. I have also readjusted the blue color a little bit, since this is the one I am using in a few places right now. And also getting rid of some code-duplication. committer: Tailor Script <tailor@pidgin.im>
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Sat, 01 Jul 2006 04:24:31 +0000
parents a621329e8c85
children cc60d0861337
comparison
equal deleted inserted replaced
13896:a621329e8c85 13897:eaaf73de9188
99 g_hash_table_insert(ggconvs, conv, ggc); 99 g_hash_table_insert(ggconvs, conv, ggc);
100 100
101 ggc->conv = conv; 101 ggc->conv = conv;
102 102
103 type = gaim_conversation_get_type(conv); 103 type = gaim_conversation_get_type(conv);
104 title = g_strdup_printf(_("Conversation: %s"), gaim_conversation_get_name(conv)); 104 title = g_strdup_printf(_("%s"), gaim_conversation_get_name(conv));
105 ggc->window = gnt_box_new(FALSE, TRUE); 105 ggc->window = gnt_box_new(FALSE, TRUE);
106 gnt_box_set_title(GNT_BOX(ggc->window), title); 106 gnt_box_set_title(GNT_BOX(ggc->window), title);
107 gnt_box_set_toplevel(GNT_BOX(ggc->window), TRUE); 107 gnt_box_set_toplevel(GNT_BOX(ggc->window), TRUE);
108 gnt_widget_set_name(ggc->window, title); 108 gnt_widget_set_name(ggc->window, title);
109 109
131 { 131 {
132 g_hash_table_remove(ggconvs, conv); 132 g_hash_table_remove(ggconvs, conv);
133 } 133 }
134 134
135 static void 135 static void
136 gg_write_common(GaimConversation *conv, const char *who, const char *message,
137 GaimMessageFlags flags, time_t mtime)
138 {
139 GGConv *ggconv = g_hash_table_lookup(ggconvs, conv);
140 char *strip;
141 GntTextViewFlags fl = 0;
142
143 g_return_if_fail(ggconv != NULL);
144
145 if (who && *who && (flags & (GAIM_MESSAGE_SEND | GAIM_MESSAGE_RECV)))
146 {
147 char * name = g_strdup_printf("%s: ", who);
148 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv),
149 name, GNT_TEXT_FLAG_BOLD);
150 g_free(name);
151 }
152 else
153 fl = GNT_TEXT_FLAG_DIM;
154
155 if (flags & GAIM_MESSAGE_ERROR)
156 fl |= GNT_TEXT_FLAG_BOLD;
157 if (flags & GAIM_MESSAGE_NICK)
158 fl |= GNT_TEXT_FLAG_UNDERLINE;
159
160 strip = gaim_markup_strip_html(message);
161 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv),
162 strip, fl);
163 gnt_text_view_next_line(GNT_TEXT_VIEW(ggconv->tv));
164 gnt_text_view_scroll(GNT_TEXT_VIEW(ggconv->tv), 0);
165
166 g_free(strip);
167
168 gnt_widget_set_urgent(ggconv->tv);
169 }
170
171 static void
136 gg_write_chat(GaimConversation *conv, const char *who, const char *message, 172 gg_write_chat(GaimConversation *conv, const char *who, const char *message,
137 GaimMessageFlags flags, time_t mtime) 173 GaimMessageFlags flags, time_t mtime)
138 { 174 {
139 GGConv *ggconv = g_hash_table_lookup(ggconvs, conv); 175 gg_write_common(conv, who, message, flags, mtime);
140 char *name, *strip;
141
142 g_return_if_fail(ggconv != NULL);
143
144 name = g_strdup_printf("%s: ", who);
145 strip = gaim_markup_strip_html(message);
146
147 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv),
148 name, GNT_TEXT_FLAG_BOLD);
149 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv),
150 strip, (flags & GAIM_MESSAGE_NICK) ? GNT_TEXT_FLAG_UNDERLINE : 0);
151 gnt_text_view_next_line(GNT_TEXT_VIEW(ggconv->tv));
152 gnt_text_view_scroll(GNT_TEXT_VIEW(ggconv->tv), 0);
153
154 g_free(name);
155 g_free(strip);
156 } 176 }
157 177
158 static void 178 static void
159 gg_write_im(GaimConversation *conv, const char *who, const char *message, 179 gg_write_im(GaimConversation *conv, const char *who, const char *message,
160 GaimMessageFlags flags, time_t mtime) 180 GaimMessageFlags flags, time_t mtime)
161 { 181 {
162 GGConv *ggconv = g_hash_table_lookup(ggconvs, conv);
163 char *strip;
164 char *name;
165
166 g_return_if_fail(ggconv != NULL);
167
168 if (flags & GAIM_MESSAGE_SEND) 182 if (flags & GAIM_MESSAGE_SEND)
169 { 183 {
170 who = gaim_connection_get_display_name(conv->account->gc); 184 who = gaim_connection_get_display_name(conv->account->gc);
171 if (!who) 185 if (!who)
172 who = gaim_account_get_alias(conv->account); 186 who = gaim_account_get_alias(conv->account);
174 who = gaim_account_get_username(conv->account); 188 who = gaim_account_get_username(conv->account);
175 } 189 }
176 else if (flags & GAIM_MESSAGE_RECV) 190 else if (flags & GAIM_MESSAGE_RECV)
177 who = gaim_conversation_get_name(conv); 191 who = gaim_conversation_get_name(conv);
178 192
179 name = g_strdup_printf("%s: ", who); 193 gg_write_common(conv, who, message, flags, mtime);
180
181 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv),
182 name, GNT_TEXT_FLAG_BOLD);
183 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv),
184 (strip = gaim_markup_strip_html(message)), 0);
185 gnt_text_view_next_line(GNT_TEXT_VIEW(ggconv->tv));
186 gnt_text_view_scroll(GNT_TEXT_VIEW(ggconv->tv), 0);
187
188 g_free(strip);
189 g_free(name);
190 } 194 }
191 195
192 static void 196 static void
193 gg_write_conv(GaimConversation *conv, const char *who, const char *alias, 197 gg_write_conv(GaimConversation *conv, const char *who, const char *alias,
194 const char *message, GaimMessageFlags flags, time_t mtime) 198 const char *message, GaimMessageFlags flags, time_t mtime)
195 { 199 {
196 GGConv *ggconv = g_hash_table_lookup(ggconvs, conv); 200 const char *name;
197 char *strip; 201 if (alias && *alias)
198 GntTextViewFlags fl = 0; 202 name = alias;
199 203 else if (who && *who)
200 g_return_if_fail(ggconv != NULL); 204 name = who;
201
202 strip = gaim_markup_strip_html(message);
203
204 if (flags & (GAIM_MESSAGE_SEND | GAIM_MESSAGE_RECV))
205 {
206 char *name;
207 if (alias && *alias)
208 name = g_strdup_printf("%s: ", alias);
209 else if (who && *who)
210 name = g_strdup_printf("%s: ", who);
211 else
212 name = g_strdup("");
213
214 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv),
215 name, GNT_TEXT_FLAG_BOLD);
216 g_free(name);
217 }
218 else 205 else
219 fl = GNT_TEXT_FLAG_DIM; 206 name = NULL;
220 207
221 if (flags & GAIM_MESSAGE_ERROR) 208 gg_write_common(conv, name, message, flags, mtime);
222 fl |= GNT_TEXT_FLAG_BOLD;
223
224 gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(ggconv->tv),
225 strip, fl);
226 gnt_text_view_next_line(GNT_TEXT_VIEW(ggconv->tv));
227 gnt_text_view_scroll(GNT_TEXT_VIEW(ggconv->tv), 0);
228
229 g_free(strip);
230 } 209 }
231 210
232 static void 211 static void
233 gg_chat_add_users(GaimConversation *conv, GList *users, GList *flags, GList *aliases, gboolean new_arrivals) 212 gg_chat_add_users(GaimConversation *conv, GList *users, GList *flags, GList *aliases, gboolean new_arrivals)
234 {} 213 {}