aboutsummaryrefslogtreecommitdiff
path: root/client/src/ui/conversation_list_titlebar.vala
blob: 4e46553243c06d30a9ebc8df0b0d385df9c27a63 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
using Gtk;

using Dino.Entities;

[GtkTemplate (ui = "/org/dino-im/conversation_list_titlebar.ui")]
public class Dino.Ui.ConversationListTitlebar : Gtk.HeaderBar {

    public signal void conversation_opened(Conversation conversation);

    [GtkChild]
    private MenuButton add_button;

    [GtkChild]
    public ToggleButton search_button;

    private StreamInteractor stream_interactor;

    public ConversationListTitlebar(Window application, StreamInteractor stream_interactor) {
        this.stream_interactor = stream_interactor;
        create_add_menu(application);
    }

    private void create_add_menu(Window window) {
        SimpleAction contacts_action = new SimpleAction("add_chat", null);
        contacts_action.activate.connect(() => {
            AddConversation.Chat.Dialog add_chat_dialog = new AddConversation.Chat.Dialog(stream_interactor);
            add_chat_dialog.set_transient_for((ApplicationWindow) get_toplevel());
            add_chat_dialog.conversation_opened.connect((conversation) => conversation_opened(conversation));
            add_chat_dialog.show();
        });
        window.get_application().add_action(contacts_action);

        SimpleAction conference_action = new SimpleAction("add_conference", null);
        conference_action.activate.connect(() => {
            AddConversation.Conference.Dialog add_conference_dialog = new AddConversation.Conference.Dialog(stream_interactor);
            add_conference_dialog.set_transient_for((ApplicationWindow) get_toplevel());
            add_conference_dialog.conversation_opened.connect((conversation) => conversation_opened(conversation));
            add_conference_dialog.show();
        });
        window.get_application().add_action(conference_action);

        Builder builder = new Builder.from_resource("/org/dino-im/menu_add.ui");
        MenuModel menu = builder.get_object("menu_add") as MenuModel;
        add_button.set_menu_model(menu);
    }
}