Mercurial > pidgin.yaz
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); |
