diff options
author | Marvin W <git@larma.de> | 2017-03-10 19:34:56 +0100 |
---|---|---|
committer | Marvin W <git@larma.de> | 2017-03-10 19:50:34 +0100 |
commit | 29ca70a6d534e1cd79963718c793ae740318cff1 (patch) | |
tree | 295bc0a88b9f31f103bc970fbdcd2d940d6c83e2 /libdino/src/ui/conversation_list_titlebar.vala | |
parent | cf51e1dee22273366700c41a185c4bea343dddfe (diff) | |
download | dino-29ca70a6d534e1cd79963718c793ae740318cff1.tar.gz dino-29ca70a6d534e1cd79963718c793ae740318cff1.zip |
Initial plugin system
Diffstat (limited to 'libdino/src/ui/conversation_list_titlebar.vala')
-rw-r--r-- | libdino/src/ui/conversation_list_titlebar.vala | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/libdino/src/ui/conversation_list_titlebar.vala b/libdino/src/ui/conversation_list_titlebar.vala new file mode 100644 index 00000000..4bcc9c71 --- /dev/null +++ b/libdino/src/ui/conversation_list_titlebar.vala @@ -0,0 +1,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((Window) 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((Window) 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); + } +} + |