pidgin/pidginconversationwindow.c

Tue, 24 Nov 2020 03:52:09 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Tue, 24 Nov 2020 03:52:09 -0600
changeset 40627
3d6797191bf5
parent 40577
953d563429b8
child 40629
5ee47cc23b41
permissions
-rw-r--r--

Create a new menu bar for PidginConversationWindow. This is just the menu itself and no behavior.

Testing Done:
Compiled and ran locally.

Reviewed at https://reviews.imfreedom.org/r/251/

40577
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1 /*
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
2 * Pidgin - Internet Messenger
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
4 *
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
5 * Pidgin is the legal property of its developers, whose names are too numerous
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
7 * source distribution.
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
8 *
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
9 * This program is free software; you can redistribute it and/or modify
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
10 * it under the terms of the GNU General Public License as published by
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
12 * (at your option) any later version.
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
13 *
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
14 * This program is distributed in the hope that it will be useful,
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
17 * GNU General Public License for more details.
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
18 *
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
20 * along with this program; if not, see <https://www.gnu.org/licenses/>.
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
21 */
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
22
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
23 #include "pidginconversationwindow.h"
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
24
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
25 struct _PidginConversationWindow {
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
26 GtkApplicationWindow parent;
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
27
40627
3d6797191bf5 Create a new menu bar for PidginConversationWindow. This is just the menu itself and no behavior.
Gary Kramlich <grim@reaperworld.com>
parents: 40577
diff changeset
28 GMenu *send_to_menu;
3d6797191bf5 Create a new menu bar for PidginConversationWindow. This is just the menu itself and no behavior.
Gary Kramlich <grim@reaperworld.com>
parents: 40577
diff changeset
29
40577
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
30 GtkWidget *vbox;
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
31 };
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
32
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
33 G_DEFINE_TYPE(PidginConversationWindow, pidgin_conversation_window,
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
34 GTK_TYPE_APPLICATION_WINDOW)
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
35
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
36 /******************************************************************************
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
37 * GObjectImplementation
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
38 *****************************************************************************/
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
39 static void
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
40 pidgin_conversation_window_init(PidginConversationWindow *window) {
40627
3d6797191bf5 Create a new menu bar for PidginConversationWindow. This is just the menu itself and no behavior.
Gary Kramlich <grim@reaperworld.com>
parents: 40577
diff changeset
41 GtkBuilder *builder = NULL;
3d6797191bf5 Create a new menu bar for PidginConversationWindow. This is just the menu itself and no behavior.
Gary Kramlich <grim@reaperworld.com>
parents: 40577
diff changeset
42 GtkWidget *menubar = NULL;
3d6797191bf5 Create a new menu bar for PidginConversationWindow. This is just the menu itself and no behavior.
Gary Kramlich <grim@reaperworld.com>
parents: 40577
diff changeset
43 GMenuModel *model = NULL;
3d6797191bf5 Create a new menu bar for PidginConversationWindow. This is just the menu itself and no behavior.
Gary Kramlich <grim@reaperworld.com>
parents: 40577
diff changeset
44
40577
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
45 gtk_widget_init_template(GTK_WIDGET(window));
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
46
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
47 gtk_window_set_application(GTK_WINDOW(window),
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
48 GTK_APPLICATION(g_application_get_default()));
40627
3d6797191bf5 Create a new menu bar for PidginConversationWindow. This is just the menu itself and no behavior.
Gary Kramlich <grim@reaperworld.com>
parents: 40577
diff changeset
49
3d6797191bf5 Create a new menu bar for PidginConversationWindow. This is just the menu itself and no behavior.
Gary Kramlich <grim@reaperworld.com>
parents: 40577
diff changeset
50 /* setup our menu */
3d6797191bf5 Create a new menu bar for PidginConversationWindow. This is just the menu itself and no behavior.
Gary Kramlich <grim@reaperworld.com>
parents: 40577
diff changeset
51 builder = gtk_builder_new_from_resource("/im/pidgin/Pidgin/Conversations/menu.ui");
3d6797191bf5 Create a new menu bar for PidginConversationWindow. This is just the menu itself and no behavior.
Gary Kramlich <grim@reaperworld.com>
parents: 40577
diff changeset
52
3d6797191bf5 Create a new menu bar for PidginConversationWindow. This is just the menu itself and no behavior.
Gary Kramlich <grim@reaperworld.com>
parents: 40577
diff changeset
53 model = (GMenuModel *)gtk_builder_get_object(builder, "conversation");
3d6797191bf5 Create a new menu bar for PidginConversationWindow. This is just the menu itself and no behavior.
Gary Kramlich <grim@reaperworld.com>
parents: 40577
diff changeset
54 menubar = gtk_menu_bar_new_from_model(model);
3d6797191bf5 Create a new menu bar for PidginConversationWindow. This is just the menu itself and no behavior.
Gary Kramlich <grim@reaperworld.com>
parents: 40577
diff changeset
55 gtk_box_pack_start(GTK_BOX(window->vbox), menubar, FALSE, FALSE, 0);
3d6797191bf5 Create a new menu bar for PidginConversationWindow. This is just the menu itself and no behavior.
Gary Kramlich <grim@reaperworld.com>
parents: 40577
diff changeset
56 gtk_widget_show(menubar);
3d6797191bf5 Create a new menu bar for PidginConversationWindow. This is just the menu itself and no behavior.
Gary Kramlich <grim@reaperworld.com>
parents: 40577
diff changeset
57
3d6797191bf5 Create a new menu bar for PidginConversationWindow. This is just the menu itself and no behavior.
Gary Kramlich <grim@reaperworld.com>
parents: 40577
diff changeset
58 window->send_to_menu = (GMenu *)gtk_builder_get_object(builder, "send-to");
3d6797191bf5 Create a new menu bar for PidginConversationWindow. This is just the menu itself and no behavior.
Gary Kramlich <grim@reaperworld.com>
parents: 40577
diff changeset
59
3d6797191bf5 Create a new menu bar for PidginConversationWindow. This is just the menu itself and no behavior.
Gary Kramlich <grim@reaperworld.com>
parents: 40577
diff changeset
60 g_object_unref(G_OBJECT(builder));
40577
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
61 }
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
62
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
63 static void
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
64 pidgin_conversation_window_class_init(PidginConversationWindowClass *klass) {
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
65 GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
66
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
67 gtk_widget_class_set_template_from_resource(
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
68 widget_class,
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
69 "/im/pidgin/Pidgin/Conversations/window.ui"
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
70 );
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
71
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
72 gtk_widget_class_bind_template_child(widget_class, PidginConversationWindow,
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
73 vbox);
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
74 }
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
75
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
76 /******************************************************************************
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
77 * API
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
78 *****************************************************************************/
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
79 GtkWidget *
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
80 pidgin_conversation_window_new(void) {
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
81 return GTK_WIDGET(g_object_new(PIDGIN_TYPE_CONVERSATION_WINDOW, NULL));
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
82 }
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
83
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
84 GtkWidget *
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
85 pidgin_conversation_window_get_vbox(PidginConversationWindow *window) {
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
86 g_return_val_if_fail(PIDGIN_IS_CONVERSATION_WINDOW(window), NULL);
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
87
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
88 return window->vbox;
953d563429b8 Create a new PidginConversationWindow widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
89 }

mercurial