| 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 } |