src/plugins.c

changeset 780
0513afaaf062
parent 656
932dcb1bc5e7
child 783
ebe13222930c
equal deleted inserted replaced
779:dbbc5710c556 780:0513afaaf062
528 c = c->next; 528 c = c->next;
529 } 529 }
530 } 530 }
531 531
532 #endif /* GAIM_PLUGINS */ 532 #endif /* GAIM_PLUGINS */
533
534 void plugin_event(enum gaim_event event, void *arg1, void *arg2, void *arg3) {
535 #ifdef GAIM_PLUGINS
536 GList *c = callbacks;
537 struct gaim_callback *g;
538
539 sprintf(debug_buff, "callback %d\n", event);
540 debug_print(debug_buff);
541
542 while (c) {
543 g = (struct gaim_callback *)c->data;
544 if (g->event == event && g->function != NULL) {
545 switch(event) {
546
547 /* no args */
548 case event_signon:
549 case event_signoff:
550 case event_away:
551 case event_back:
552 case event_blist_update:
553 case event_quit:
554 {
555 void (*function)(void *) = g->function;
556 (*function)(g->data);
557 }
558 break;
559
560 /* char **, char ** */
561 case event_im_recv:
562 {
563 void (*function)(char **, char **, void *) = g->function;
564 (*function)(arg1, arg2, g->data);
565 }
566 break;
567
568 /* char *, char ** */
569 case event_im_send:
570 {
571 void (*function)(char *, char **, void *) = g->function;
572 (*function)(arg1, arg2, g->data);
573 }
574 break;
575
576 /* char * */
577 case event_buddy_signon:
578 case event_buddy_signoff:
579 case event_buddy_away:
580 case event_buddy_back:
581 case event_chat_join:
582 case event_chat_leave:
583 {
584 void (*function)(char *, void *) = g->function;
585 (*function)(arg1, g->data);
586 }
587 break;
588
589 /* char *, char *, char * */
590 case event_chat_invited:
591 case event_chat_recv:
592 case event_chat_send:
593 {
594 void (*function)(char *, char *, char *, void *) = g->function;
595 (*function)(arg1, arg2, arg3, g->data);
596 }
597 break;
598
599 /* char *, char * */
600 case event_chat_buddy_join:
601 case event_chat_buddy_leave:
602 {
603 void (*function)(char *, char *, void *) = g->function;
604 (*function)(arg1, arg2, g->data);
605 }
606 break;
607
608 /* char *, int */
609 case event_warned:
610 {
611 void (*function)(char *, int, void *) = g->function;
612 (*function)(arg1, (int)arg2, g->data);
613 }
614 break;
615
616 /* int */
617 case event_error:
618 {
619 void (*function)(int, void *) = g->function;
620 (*function)((int)arg1, g->data);
621 }
622 break;
623
624 default:
625 sprintf(debug_buff, "unknown event %d\n", event);
626 debug_print(debug_buff);
627 break;
628 }
629 }
630 c = c->next;
631 }
632 #endif /* GAIM_PLUGINS */
633 #ifdef USE_PERL
634 /* FIXME : AIM::event_handler */
635 #endif
636 }

mercurial