Mercurial > pidgin
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 {} |