Mercurial > pidgin
comparison plugins/notify.c @ 5676:dae79aefac8d
[gaim-migrate @ 6094]
I've been meaning to do this for a LONG time. The conversation API now
follows the naming convention of the rest of the new APIs. I'll get some
g_return_*_if_fail() checks in there soon.
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Mon, 02 Jun 2003 21:51:06 +0000 |
parents | 2c4c975620f0 |
children | 7d385de2f9cd |
comparison
equal
deleted
inserted
replaced
5675:17e345ffeddb | 5676:dae79aefac8d |
---|---|
69 gboolean count_remove(GtkWidget *widget); | 69 gboolean count_remove(GtkWidget *widget); |
70 /* quote functions */ | 70 /* quote functions */ |
71 void quote_add(GtkWidget *widget); | 71 void quote_add(GtkWidget *widget); |
72 gboolean quote_remove(GtkWidget *widget); | 72 gboolean quote_remove(GtkWidget *widget); |
73 /* urgent functions */ | 73 /* urgent functions */ |
74 void urgent_add(struct gaim_conversation *c); | 74 void urgent_add(GaimConversation *c); |
75 gboolean urgent_remove(struct gaim_conversation *c); | 75 gboolean urgent_remove(GaimConversation *c); |
76 | 76 |
77 int notify(struct gaim_conversation *cnv) { | 77 int notify(GaimConversation *cnv) { |
78 struct gaim_gtk_window *gtkwin; | 78 GaimGtkWindow *gtkwin; |
79 Window focus_return; | 79 Window focus_return; |
80 int revert_to_return; | 80 int revert_to_return; |
81 | 81 |
82 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(cnv)); | 82 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(cnv)); |
83 | 83 |
95 urgent_add(cnv); | 95 urgent_add(cnv); |
96 } | 96 } |
97 return 0; | 97 return 0; |
98 } | 98 } |
99 | 99 |
100 guint unnotify(struct gaim_conversation *c, gboolean clean) { | 100 guint unnotify(GaimConversation *c, gboolean clean) { |
101 struct gaim_gtk_window *gtkwin; | 101 GaimGtkWindow *gtkwin; |
102 guint option = 0; | 102 guint option = 0; |
103 | 103 |
104 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c)); | 104 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c)); |
105 | 105 |
106 /* The top level ifs check whether we are either cleaning all methods, | 106 /* The top level ifs check whether we are either cleaning all methods, |
128 | 128 |
129 return option; | 129 return option; |
130 } | 130 } |
131 | 131 |
132 void chat_recv_im(struct gaim_connection *gc, int id, char **who, char **text) { | 132 void chat_recv_im(struct gaim_connection *gc, int id, char **who, char **text) { |
133 struct gaim_conversation *c = gaim_find_chat(gc, id); | 133 GaimConversation *c = gaim_find_chat(gc, id); |
134 | 134 |
135 if (c && (type & TYPE_CHAT)) | 135 if (c && (type & TYPE_CHAT)) |
136 notify(c); | 136 notify(c); |
137 return; | 137 return; |
138 } | 138 } |
139 | 139 |
140 void chat_sent_im(struct gaim_connection *gc, int id, char **text) { | 140 void chat_sent_im(struct gaim_connection *gc, int id, char **text) { |
141 struct gaim_conversation *c = gaim_find_chat(gc, id); | 141 GaimConversation *c = gaim_find_chat(gc, id); |
142 | 142 |
143 if (c && (type & TYPE_CHAT)) | 143 if (c && (type & TYPE_CHAT)) |
144 unnotify(c, FALSE); | 144 unnotify(c, FALSE); |
145 return; | 145 return; |
146 } | 146 } |
147 | 147 |
148 int im_recv_im(struct gaim_connection *gc, char **who, char **what, void *m) { | 148 int im_recv_im(struct gaim_connection *gc, char **who, char **what, void *m) { |
149 struct gaim_conversation *c = gaim_find_conversation(*who); | 149 GaimConversation *c = gaim_find_conversation(*who); |
150 | 150 |
151 if (c && (type & TYPE_IM)) | 151 if (c && (type & TYPE_IM)) |
152 notify(c); | 152 notify(c); |
153 return 0; | 153 return 0; |
154 } | 154 } |
155 | 155 |
156 int im_sent_im(struct gaim_connection *gc, char *who, char **what, void *m) { | 156 int im_sent_im(struct gaim_connection *gc, char *who, char **what, void *m) { |
157 struct gaim_conversation *c = gaim_find_conversation(who); | 157 GaimConversation *c = gaim_find_conversation(who); |
158 | 158 |
159 if (c && (type & TYPE_IM)) | 159 if (c && (type & TYPE_IM)) |
160 unnotify(c, FALSE); | 160 unnotify(c, FALSE); |
161 return 0; | 161 return 0; |
162 } | 162 } |
163 | 163 |
164 int attach_signals(struct gaim_conversation *c) { | 164 int attach_signals(GaimConversation *c) { |
165 struct gaim_gtk_conversation *gtkconv; | 165 GaimGtkConversation *gtkconv; |
166 struct gaim_gtk_window *gtkwin; | 166 GaimGtkWindow *gtkwin; |
167 | 167 |
168 gtkconv = GAIM_GTK_CONVERSATION(c); | 168 gtkconv = GAIM_GTK_CONVERSATION(c); |
169 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c)); | 169 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c)); |
170 | 170 |
171 if (choice & NOTIFY_FOCUS) { | 171 if (choice & NOTIFY_FOCUS) { |
187 g_object_set_data(G_OBJECT(gtkwin->window), "user_data", c); | 187 g_object_set_data(G_OBJECT(gtkwin->window), "user_data", c); |
188 g_object_set_data(G_OBJECT(gtkwin->window), "notify_data", GUINT_TO_POINTER(choice)); | 188 g_object_set_data(G_OBJECT(gtkwin->window), "notify_data", GUINT_TO_POINTER(choice)); |
189 return 0; | 189 return 0; |
190 } | 190 } |
191 | 191 |
192 void detach_signals(struct gaim_conversation *c) { | 192 void detach_signals(GaimConversation *c) { |
193 struct gaim_gtk_conversation *gtkconv; | 193 GaimGtkConversation *gtkconv; |
194 struct gaim_gtk_window *gtkwin; | 194 GaimGtkWindow *gtkwin; |
195 guint options; | 195 guint options; |
196 | 196 |
197 gtkconv = GAIM_GTK_CONVERSATION(c); | 197 gtkconv = GAIM_GTK_CONVERSATION(c); |
198 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c)); | 198 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c)); |
199 | 199 |
212 g_signal_handlers_disconnect_by_func(G_OBJECT(gtkconv->entry), un_star, gtkwin->window); | 212 g_signal_handlers_disconnect_by_func(G_OBJECT(gtkconv->entry), un_star, gtkwin->window); |
213 } | 213 } |
214 } | 214 } |
215 | 215 |
216 void new_conv(char *who) { | 216 void new_conv(char *who) { |
217 struct gaim_conversation *c = gaim_find_conversation(who); | 217 GaimConversation *c = gaim_find_conversation(who); |
218 | 218 |
219 if (c && (type & TYPE_IM)) | 219 if (c && (type & TYPE_IM)) |
220 attach_signals(c); | 220 attach_signals(c); |
221 } | 221 } |
222 | 222 |
223 void chat_join(struct gaim_connection *gc, int id, char *room) { | 223 void chat_join(struct gaim_connection *gc, int id, char *room) { |
224 struct gaim_conversation *c = gaim_find_chat(gc, id); | 224 GaimConversation *c = gaim_find_chat(gc, id); |
225 | 225 |
226 if (c && (type & TYPE_CHAT)) | 226 if (c && (type & TYPE_CHAT)) |
227 attach_signals(c); | 227 attach_signals(c); |
228 } | 228 } |
229 | 229 |
230 int un_star(GtkWidget *widget, gpointer data) { | 230 int un_star(GtkWidget *widget, gpointer data) { |
231 struct gaim_conversation *c = g_object_get_data(G_OBJECT(widget), "user_data"); | 231 GaimConversation *c = g_object_get_data(G_OBJECT(widget), "user_data"); |
232 | 232 |
233 if (method & METHOD_QUOTE) | 233 if (method & METHOD_QUOTE) |
234 quote_remove(widget); | 234 quote_remove(widget); |
235 if (method & METHOD_COUNT) | 235 if (method & METHOD_COUNT) |
236 count_remove(widget); | 236 count_remove(widget); |
352 return TRUE; | 352 return TRUE; |
353 } | 353 } |
354 return FALSE; | 354 return FALSE; |
355 } | 355 } |
356 | 356 |
357 void urgent_add(struct gaim_conversation *c) { | 357 void urgent_add(GaimConversation *c) { |
358 struct gaim_gtk_window *gtkwin; | 358 GaimGtkWindow *gtkwin; |
359 XWMHints *hints; | 359 XWMHints *hints; |
360 | 360 |
361 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c)); | 361 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c)); |
362 | 362 |
363 hints = XGetWMHints(GDK_WINDOW_XDISPLAY(gtkwin->window->window), GDK_WINDOW_XWINDOW(gtkwin->window->window)); | 363 hints = XGetWMHints(GDK_WINDOW_XDISPLAY(gtkwin->window->window), GDK_WINDOW_XWINDOW(gtkwin->window->window)); |
364 hints->flags |= XUrgencyHint; | 364 hints->flags |= XUrgencyHint; |
365 XSetWMHints(GDK_WINDOW_XDISPLAY(gtkwin->window->window), GDK_WINDOW_XWINDOW(gtkwin->window->window), hints); | 365 XSetWMHints(GDK_WINDOW_XDISPLAY(gtkwin->window->window), GDK_WINDOW_XWINDOW(gtkwin->window->window), hints); |
366 XFree(hints); | 366 XFree(hints); |
367 } | 367 } |
368 | 368 |
369 gboolean urgent_remove(struct gaim_conversation *c) { | 369 gboolean urgent_remove(GaimConversation *c) { |
370 struct gaim_gtk_conversation *gtkconv; | 370 GaimGtkConversation *gtkconv; |
371 | 371 |
372 gtkconv = GAIM_GTK_CONVERSATION(c); | 372 gtkconv = GAIM_GTK_CONVERSATION(c); |
373 | 373 |
374 if ((gaim_conversation_get_type(c) == GAIM_CONV_CHAT && | 374 if ((gaim_conversation_get_type(c) == GAIM_CONV_CHAT && |
375 (chat_options & OPT_CHAT_ONE_WINDOW)) || | 375 (chat_options & OPT_CHAT_ONE_WINDOW)) || |
376 (gaim_conversation_get_type(c) != GAIM_CONV_CHAT && | 376 (gaim_conversation_get_type(c) != GAIM_CONV_CHAT && |
377 (im_options & OPT_IM_ONE_WINDOW))) { | 377 (im_options & OPT_IM_ONE_WINDOW))) { |
378 if (gaim_conversation_get_type(c) == GAIM_CONV_CHAT) { | 378 if (gaim_conversation_get_type(c) == GAIM_CONV_CHAT) { |
379 struct gaim_conversation *c = (struct gaim_conversation *)gaim_get_chats()->data; | 379 GaimConversation *c = (GaimConversation *)gaim_get_chats()->data; |
380 struct gaim_gtk_window *gtkwin; | 380 GaimGtkWindow *gtkwin; |
381 GdkWindow *win; | 381 GdkWindow *win; |
382 XWMHints *hints; | 382 XWMHints *hints; |
383 | 383 |
384 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c)); | 384 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c)); |
385 | 385 |
393 return TRUE; | 393 return TRUE; |
394 } | 394 } |
395 XFree(hints); | 395 XFree(hints); |
396 return FALSE; | 396 return FALSE; |
397 } else { | 397 } else { |
398 struct gaim_conversation *c; | 398 GaimConversation *c; |
399 struct gaim_gtk_window *gtkwin; | 399 GaimGtkWindow *gtkwin; |
400 GdkWindow *win; | 400 GdkWindow *win; |
401 XWMHints *hints; | 401 XWMHints *hints; |
402 | 402 |
403 c = (struct gaim_conversation *)gaim_get_ims()->data; | 403 c = (GaimConversation *)gaim_get_ims()->data; |
404 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c)); | 404 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c)); |
405 win = gtkwin->window->window; | 405 win = gtkwin->window->window; |
406 | 406 |
407 hints = XGetWMHints(GDK_WINDOW_XDISPLAY(win), GDK_WINDOW_XWINDOW(win)); | 407 hints = XGetWMHints(GDK_WINDOW_XDISPLAY(win), GDK_WINDOW_XWINDOW(win)); |
408 if (hints->flags & XUrgencyHint) { | 408 if (hints->flags & XUrgencyHint) { |
413 } | 413 } |
414 XFree(hints); | 414 XFree(hints); |
415 return FALSE; | 415 return FALSE; |
416 } | 416 } |
417 } else { | 417 } else { |
418 struct gaim_gtk_window *gtkwin; | 418 GaimGtkWindow *gtkwin; |
419 XWMHints *hints; | 419 XWMHints *hints; |
420 | 420 |
421 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c)); | 421 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c)); |
422 hints = XGetWMHints(GDK_WINDOW_XDISPLAY(gtkwin->window->window), GDK_WINDOW_XWINDOW(gtkwin->window->window)); | 422 hints = XGetWMHints(GDK_WINDOW_XDISPLAY(gtkwin->window->window), GDK_WINDOW_XWINDOW(gtkwin->window->window)); |
423 | 423 |
525 void apply_options(GtkWidget *widget, gpointer data) { | 525 void apply_options(GtkWidget *widget, gpointer data) { |
526 GList *cnv = gaim_get_conversations(); | 526 GList *cnv = gaim_get_conversations(); |
527 | 527 |
528 while (cnv) { | 528 while (cnv) { |
529 guint notification; | 529 guint notification; |
530 struct gaim_conversation *c = (struct gaim_conversation *) cnv->data; | 530 GaimConversation *c = (GaimConversation *) cnv->data; |
531 struct gaim_gtk_conversation *gtkconv; | 531 GaimGtkConversation *gtkconv; |
532 struct gaim_gtk_window *gtkwin; | 532 GaimGtkWindow *gtkwin; |
533 guint options = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(c->window), "notify_data")); | 533 guint options = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(c->window), "notify_data")); |
534 | 534 |
535 gtkconv = GAIM_GTK_CONVERSATION(c); | 535 gtkconv = GAIM_GTK_CONVERSATION(c); |
536 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c)); | 536 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(c)); |
537 | 537 |
662 plugin_unload(GaimPlugin *plugin) | 662 plugin_unload(GaimPlugin *plugin) |
663 { | 663 { |
664 GList *c = gaim_get_conversations(); | 664 GList *c = gaim_get_conversations(); |
665 | 665 |
666 while (c) { | 666 while (c) { |
667 struct gaim_conversation *cnv = (struct gaim_conversation *)c->data; | 667 GaimConversation *cnv = (GaimConversation *)c->data; |
668 struct gaim_gtk_window *gtkwin; | 668 GaimGtkWindow *gtkwin; |
669 | 669 |
670 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(cnv)); | 670 gtkwin = GAIM_GTK_WINDOW(gaim_conversation_get_window(cnv)); |
671 | 671 |
672 detach_signals(cnv); | 672 detach_signals(cnv); |
673 un_star(gtkwin->window, NULL); | 673 un_star(gtkwin->window, NULL); |