pidgin/pidgininvitedialog.c

Mon, 23 Oct 2023 22:08:37 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Mon, 23 Oct 2023 22:08:37 -0500
changeset 42383
e8302a55fddb
parent 41724
ad9cf22b657b
child 42575
580339aa47cc
permissions
-rw-r--r--

Create PurpleIdleManager for managing idle states

Testing Done:
Ran the unit tests

Bugs closed: PIDGIN-17818

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

39576
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1 /* Purple is the legal property of its developers, whose names are too numerous
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
2 * to list here. Please refer to the COPYRIGHT file distributed with this
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
3 * source distribution.
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
4 *
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
5 * This program is free software; you can redistribute it and/or modify
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
6 * it under the terms of the GNU General Public License as published by
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
7 * the Free Software Foundation; either version 2 of the License, or
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
8 * (at your option) any later version.
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
9 *
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
10 * This program is distributed in the hope that it will be useful,
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
13 * GNU General Public License for more details.
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
14 *
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
16 * along with this program; if not, write to the Free Software
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
18 */
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
19
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
20 #include "pidgininvitedialog.h"
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
21
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
22 struct _PidginInviteDialog {
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
23 GtkDialog parent;
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
24
39577
0dd1d673bbef Invite dialog fully functional, with dnd removed
Gary Kramlich <grim@reaperworld.com>
parents: 39576
diff changeset
25 GtkWidget *contact;
0dd1d673bbef Invite dialog fully functional, with dnd removed
Gary Kramlich <grim@reaperworld.com>
parents: 39576
diff changeset
26 GtkWidget *message;
39579
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
27
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
28 PurpleChatConversation *conversation;
41724
ad9cf22b657b De-privatize PidginInviteDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
29 };
39576
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
30
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
31 enum {
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
32 PROP_ZERO,
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
33 PROP_CONTACT,
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
34 PROP_MESSAGE,
39579
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
35 PROP_CONVERSATION,
39576
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
36 N_PROPERTIES,
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
37 };
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
38
39585
8a19d82a81f8 Unref the conversation we were created with and fix and initalizer
Gary Kramlich <grim@reaperworld.com>
parents: 39579
diff changeset
39 static GParamSpec *properties[N_PROPERTIES] = {0, };
39576
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
40
41724
ad9cf22b657b De-privatize PidginInviteDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
41 G_DEFINE_TYPE(PidginInviteDialog, pidgin_invite_dialog, GTK_TYPE_DIALOG);
39576
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
42
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
43 /******************************************************************************
39579
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
44 * Helpers
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
45 *****************************************************************************/
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
46 static void
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
47 pidgin_invite_dialog_set_conversation(PidginInviteDialog *dialog,
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
48 PurpleChatConversation *conversation)
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
49 {
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
50 g_return_if_fail(PIDGIN_IS_INVITE_DIALOG(dialog));
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
51
41724
ad9cf22b657b De-privatize PidginInviteDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
52 dialog->conversation = g_object_ref(conversation);
39579
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
53
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
54 g_object_notify_by_pspec(G_OBJECT(dialog), properties[PROP_CONVERSATION]);
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
55 }
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
56
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
57 /******************************************************************************
39576
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
58 * GObject Stuff
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
59 *****************************************************************************/
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
60 static void
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
61 pidgin_invite_dialog_get_property(GObject *obj,
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
62 guint param_id,
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
63 GValue *value,
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
64 GParamSpec *pspec)
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
65 {
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
66 PidginInviteDialog *dialog = PIDGIN_INVITE_DIALOG(obj);
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
67
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
68 switch(param_id) {
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
69 case PROP_CONTACT:
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
70 g_value_set_string(value,
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
71 pidgin_invite_dialog_get_contact(dialog));
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
72 break;
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
73 case PROP_MESSAGE:
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
74 g_value_set_string(value,
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
75 pidgin_invite_dialog_get_message(dialog));
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
76 break;
39579
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
77 case PROP_CONVERSATION:
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
78 g_value_set_object(value,
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
79 pidgin_invite_dialog_get_conversation(dialog));
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
80 break;
39576
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
81 default:
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
82 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
83 break;
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
84 }
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
85 }
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
86
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
87 static void
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
88 pidgin_invite_dialog_set_property(GObject *obj,
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
89 guint param_id,
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
90 const GValue *value,
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
91 GParamSpec *pspec)
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
92 {
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
93 PidginInviteDialog *dialog = PIDGIN_INVITE_DIALOG(obj);
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
94
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
95 switch(param_id) {
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
96 case PROP_CONTACT:
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
97 pidgin_invite_dialog_set_contact(dialog,
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
98 g_value_get_string(value));
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
99 break;
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
100 case PROP_MESSAGE:
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
101 pidgin_invite_dialog_set_message(dialog,
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
102 g_value_get_string(value));
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
103 break;
39579
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
104 case PROP_CONVERSATION:
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
105 pidgin_invite_dialog_set_conversation(dialog,
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
106 g_value_get_object(value));
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
107 break;
39576
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
108 default:
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
109 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
110 break;
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
111 }
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
112 }
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
113
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
114 static void
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
115 pidgin_invite_dialog_finalize(GObject *obj) {
41724
ad9cf22b657b De-privatize PidginInviteDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
116 PidginInviteDialog *dialog = PIDGIN_INVITE_DIALOG(obj);
39576
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
117
41724
ad9cf22b657b De-privatize PidginInviteDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
118 g_clear_pointer(&dialog->contact, g_free);
ad9cf22b657b De-privatize PidginInviteDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
119 g_clear_pointer(&dialog->message, g_free);
ad9cf22b657b De-privatize PidginInviteDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
120 g_clear_object(&dialog->conversation);
39576
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
121
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
122 G_OBJECT_CLASS(pidgin_invite_dialog_parent_class)->finalize(obj);
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
123 }
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
124
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
125 static void
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
126 pidgin_invite_dialog_init(PidginInviteDialog *dialog) {
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
127 gtk_widget_init_template(GTK_WIDGET(dialog));
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
128 }
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
129
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
130 static void
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
131 pidgin_invite_dialog_class_init(PidginInviteDialogClass *klass) {
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
132 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
133 GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
134
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
135 obj_class->get_property = pidgin_invite_dialog_get_property;
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
136 obj_class->set_property = pidgin_invite_dialog_set_property;
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
137 obj_class->finalize = pidgin_invite_dialog_finalize;
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
138
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
139 gtk_widget_class_set_template_from_resource(
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
140 widget_class,
41030
ec8b76f3bf0a Fix the resource path so we can use the automatic stuff that GtkApplication supports
Gary Kramlich <grim@reaperworld.com>
parents: 39585
diff changeset
141 "/im/pidgin/Pidgin3/Conversations/invite_dialog.ui"
39576
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
142 );
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
143
41724
ad9cf22b657b De-privatize PidginInviteDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
144 gtk_widget_class_bind_template_child(widget_class, PidginInviteDialog,
ad9cf22b657b De-privatize PidginInviteDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
145 contact);
ad9cf22b657b De-privatize PidginInviteDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
146 gtk_widget_class_bind_template_child(widget_class, PidginInviteDialog,
ad9cf22b657b De-privatize PidginInviteDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
147 message);
39577
0dd1d673bbef Invite dialog fully functional, with dnd removed
Gary Kramlich <grim@reaperworld.com>
parents: 39576
diff changeset
148
39576
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
149 properties[PROP_CONTACT] = g_param_spec_string(
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
150 "contact",
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
151 "contact",
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
152 "The person that is being invited",
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
153 NULL,
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
154 G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
155
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
156 properties[PROP_MESSAGE] = g_param_spec_string(
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
157 "message",
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
158 "message",
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
159 "The invite message to send",
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
160 NULL,
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
161 G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
162
39579
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
163 properties[PROP_CONVERSATION] = g_param_spec_object(
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
164 "conversation",
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
165 "conversation",
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
166 "The conversation that someone is being invited to",
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
167 PURPLE_TYPE_CHAT_CONVERSATION,
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
168 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
169
39576
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
170 g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
171 }
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
172
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
173 /******************************************************************************
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
174 * Public API
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
175 *****************************************************************************/
39577
0dd1d673bbef Invite dialog fully functional, with dnd removed
Gary Kramlich <grim@reaperworld.com>
parents: 39576
diff changeset
176 GtkWidget *
39579
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
177 pidgin_invite_dialog_new(PurpleChatConversation *conversation) {
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
178 return GTK_WIDGET(g_object_new(
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
179 PIDGIN_TYPE_INVITE_DIALOG,
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
180 "conversation", conversation,
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
181 NULL));
39577
0dd1d673bbef Invite dialog fully functional, with dnd removed
Gary Kramlich <grim@reaperworld.com>
parents: 39576
diff changeset
182 }
0dd1d673bbef Invite dialog fully functional, with dnd removed
Gary Kramlich <grim@reaperworld.com>
parents: 39576
diff changeset
183
39576
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
184 const gchar *
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
185 pidgin_invite_dialog_get_contact(PidginInviteDialog *dialog) {
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
186 g_return_val_if_fail(PIDGIN_IS_INVITE_DIALOG(dialog), NULL);
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
187
41724
ad9cf22b657b De-privatize PidginInviteDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
188 return gtk_editable_get_text(GTK_EDITABLE(dialog->contact));
39576
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
189 }
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
190
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
191 void
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
192 pidgin_invite_dialog_set_contact(PidginInviteDialog *dialog,
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
193 const gchar *contact)
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
194 {
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
195 g_return_if_fail(PIDGIN_IS_INVITE_DIALOG(dialog));
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
196
39577
0dd1d673bbef Invite dialog fully functional, with dnd removed
Gary Kramlich <grim@reaperworld.com>
parents: 39576
diff changeset
197 if(contact != NULL) {
41724
ad9cf22b657b De-privatize PidginInviteDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
198 gtk_editable_set_text(GTK_EDITABLE(dialog->contact), contact);
39576
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
199
39577
0dd1d673bbef Invite dialog fully functional, with dnd removed
Gary Kramlich <grim@reaperworld.com>
parents: 39576
diff changeset
200 g_object_notify_by_pspec(G_OBJECT(dialog), properties[PROP_CONTACT]);
39576
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
201 }
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
202 }
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
203
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
204 const gchar *
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
205 pidgin_invite_dialog_get_message(PidginInviteDialog *dialog) {
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
206 g_return_val_if_fail(PIDGIN_IS_INVITE_DIALOG(dialog), NULL);
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
207
41724
ad9cf22b657b De-privatize PidginInviteDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
208 return gtk_editable_get_text(GTK_EDITABLE(dialog->message));
39576
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
209 }
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
210
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
211 void
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
212 pidgin_invite_dialog_set_message(PidginInviteDialog *dialog,
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
213 const gchar *message)
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
214 {
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
215 g_return_if_fail(PIDGIN_IS_INVITE_DIALOG(dialog));
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
216
39577
0dd1d673bbef Invite dialog fully functional, with dnd removed
Gary Kramlich <grim@reaperworld.com>
parents: 39576
diff changeset
217 if(message != NULL) {
41724
ad9cf22b657b De-privatize PidginInviteDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
218 gtk_editable_set_text(GTK_EDITABLE(dialog->message), message);
39576
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
219
39577
0dd1d673bbef Invite dialog fully functional, with dnd removed
Gary Kramlich <grim@reaperworld.com>
parents: 39576
diff changeset
220 g_object_notify_by_pspec(G_OBJECT(dialog), properties[PROP_MESSAGE]);
39576
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
221 }
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
222 }
9da340b66f6d Start of the new invite widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
223
39579
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
224 PurpleChatConversation *
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
225 pidgin_invite_dialog_get_conversation(PidginInviteDialog *dialog) {
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
226 g_return_val_if_fail(PIDGIN_IS_INVITE_DIALOG(dialog), NULL);
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
227
41724
ad9cf22b657b De-privatize PidginInviteDialog
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41531
diff changeset
228 return dialog->conversation;
39579
34e0b0e7df81 Finish up the invite dialog with contact completion and documentation for all.
Gary Kramlich <grim@reaperworld.com>
parents: 39577
diff changeset
229 }

mercurial