| 555 g_object_set_data_full(G_OBJECT(item), "purple_buddy_name", name, g_free); |
556 g_object_set_data_full(G_OBJECT(item), "purple_buddy_name", name, g_free); |
| 556 } |
557 } |
| 557 } |
558 } |
| 558 |
559 |
| 559 static void |
560 static void |
| |
561 invite_select_cb(FinchConv *fc, PurpleRequestFields *fields) |
| |
562 { |
| |
563 PurpleConversation *conv = fc->active_conv; |
| |
564 const char *buddy = purple_request_fields_get_string(fields, "screenname"); |
| |
565 const char *message = purple_request_fields_get_string(fields, "message"); |
| |
566 serv_chat_invite(purple_conversation_get_gc(conv), |
| |
567 purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)), |
| |
568 message, buddy); |
| |
569 |
| |
570 } |
| |
571 |
| |
572 static void |
| |
573 invite_cb(GntMenuItem *item, gpointer ggconv) |
| |
574 { |
| |
575 PurpleRequestFields *fields; |
| |
576 PurpleRequestFieldGroup *group; |
| |
577 PurpleRequestField *field; |
| |
578 |
| |
579 fields = purple_request_fields_new(); |
| |
580 |
| |
581 group = purple_request_field_group_new(NULL); |
| |
582 purple_request_fields_add_group(fields, group); |
| |
583 |
| |
584 field = purple_request_field_string_new("screenname", _("Name"), NULL, FALSE); |
| |
585 purple_request_field_set_type_hint(field, "screenname"); |
| |
586 purple_request_field_set_required(field, TRUE); |
| |
587 purple_request_field_group_add_field(group, field); |
| |
588 field = purple_request_field_string_new("message", _("Invite message"), NULL, FALSE); |
| |
589 purple_request_field_group_add_field(group, field); |
| |
590 purple_request_fields(finch_conv_get_handle(), _("Invite"), |
| |
591 NULL, |
| |
592 _("Please enter the name of the user " |
| |
593 "you wish to invite,\nalong with an optional invite message."), |
| |
594 fields, |
| |
595 _("OK"), G_CALLBACK(invite_select_cb), |
| |
596 _("Cancel"), NULL, |
| |
597 NULL, NULL, NULL, |
| |
598 ggconv); |
| |
599 } |
| |
600 |
| |
601 static void |
| 560 gg_create_menu(FinchConv *ggc) |
602 gg_create_menu(FinchConv *ggc) |
| 561 { |
603 { |
| 562 GntWidget *menu, *sub; |
604 GntWidget *menu, *sub; |
| 563 GntMenuItem *item; |
605 GntMenuItem *item; |
| 564 |
606 |
| 604 gnt_menu_add_item(GNT_MENU(sub), item); |
646 gnt_menu_add_item(GNT_MENU(sub), item); |
| 605 gnt_menuitem_set_callback(item, send_file_cb, ggc); |
647 gnt_menuitem_set_callback(item, send_file_cb, ggc); |
| 606 } |
648 } |
| 607 |
649 |
| 608 generate_send_to_menu(ggc); |
650 generate_send_to_menu(ggc); |
| |
651 } else if (purple_conversation_get_type(ggc->active_conv) == PURPLE_CONV_TYPE_CHAT) { |
| |
652 item = gnt_menuitem_new(_("Invite...")); |
| |
653 gnt_menu_add_item(GNT_MENU(sub), item); |
| |
654 gnt_menuitem_set_callback(item, invite_cb, ggc); |
| 609 } |
655 } |
| 610 |
656 |
| 611 item = gnt_menuitem_new(_("View Log...")); |
657 item = gnt_menuitem_new(_("View Log...")); |
| 612 gnt_menu_add_item(GNT_MENU(sub), item); |
658 gnt_menu_add_item(GNT_MENU(sub), item); |
| 613 gnt_menuitem_set_callback(item, view_log_cb, ggc); |
659 gnt_menuitem_set_callback(item, view_log_cb, ggc); |