Fri, 16 Sep 2022 01:54:11 -0500
Change the credential provider row active indicator to a CheckButton
Because I noticed that Adw has a style that is for this sort of thing.
Testing Done:
Opened Credential prefs, and changed selected provider. Also checked that clicking the check button didn't accidentally change its state without changing the row, and that it could not be selected by keyboard separately from the row.
Reviewed at https://reviews.imfreedom.org/r/1775/
|
40858
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1 | /* |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
2 | * Pidgin - Internet Messenger |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
3 | * Copyright (C) Pidgin Developers <devel@pidgin.im> |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
4 | * |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
5 | * Pidgin is the legal property of its developers, whose names are too numerous |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
6 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
7 | * source distribution. |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
8 | * |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
9 | * This program is free software; you can redistribute it and/or modify |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
10 | * it under the terms of the GNU General Public License as published by |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
11 | * the Free Software Foundation; either version 2 of the License, or |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
12 | * (at your option) any later version. |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
13 | * |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
14 | * This program is distributed in the hope that it will be useful, |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
17 | * GNU General Public License for more details. |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
18 | * |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
19 | * You should have received a copy of the GNU General Public License |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
20 | * along with this program; if not, see <https://www.gnu.org/licenses/>. |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
21 | */ |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
22 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
23 | #include "pidgin/pidgininfopane.h" |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
24 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
25 | #include "pidgin/gtkblist.h" |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
26 | #include "pidgin/gtkutils.h" |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
27 | #include "pidgin/pidginavatar.h" |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
28 | #include "pidgin/pidgincore.h" |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
29 | #include "pidgin/pidginpresenceicon.h" |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
30 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
31 | struct _PidginInfoPane { |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
32 | GtkBox parent; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
33 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
34 | PurpleConversation *conversation; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
35 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
36 | GtkWidget *hbox; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
37 | GtkWidget *presence_icon; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
38 | GtkWidget *name; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
39 | GtkWidget *topic; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
40 | GtkWidget *avatar; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
41 | }; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
42 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
43 | enum { |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
44 | PROP_0, |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
45 | PROP_CONVERSATION, |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
46 | N_PROPERTIES, |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
47 | }; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
48 | static GParamSpec *properties[N_PROPERTIES] = {NULL, }; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
49 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
50 | G_DEFINE_TYPE(PidginInfoPane, pidgin_info_pane, GTK_TYPE_BOX) |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
51 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
52 | /****************************************************************************** |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
53 | * Helpers |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
54 | *****************************************************************************/ |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
55 | static void |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
56 | pidgin_info_pane_set_conversation(PidginInfoPane *pane, |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
57 | PurpleConversation *conversation) |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
58 | { |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
59 | if(!g_set_object(&pane->conversation, conversation)) { |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
60 | return; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
61 | } |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
62 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
63 | /* Tell the avatar about the new conversation. */ |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
64 | pidgin_avatar_set_conversation(PIDGIN_AVATAR(pane->avatar), |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
65 | pane->conversation); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
66 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
67 | if(PURPLE_IS_CONVERSATION(conversation)) { |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
68 | PidginPresenceIcon *presence_icon = NULL; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
69 | PurplePresence *presence = NULL; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
70 | const gchar *fallback = "person"; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
71 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
72 | g_object_bind_property(G_OBJECT(conversation), "name", |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
73 | G_OBJECT(pane->name), "label", |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
74 | G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE); |
|
40858
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
75 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
76 | if(PURPLE_IS_CHAT_CONVERSATION(conversation)) { |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
77 | g_object_bind_property(G_OBJECT(conversation), "topic", |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
78 | G_OBJECT(pane->topic), "label", |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
79 | G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE); |
|
40858
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
80 | fallback = "chat"; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
81 | } else if(PURPLE_IS_IM_CONVERSATION(conversation)){ |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
82 | PurpleAccount *account = NULL; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
83 | PurpleBuddy *buddy = NULL; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
84 | const gchar *name = NULL; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
85 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
86 | account = purple_conversation_get_account(conversation); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
87 | name = purple_conversation_get_name(conversation); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
88 | buddy = purple_blist_find_buddy(account, name); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
89 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
90 | if(PURPLE_IS_BUDDY(buddy)) { |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
91 | presence = purple_buddy_get_presence(buddy); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
92 | } |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
93 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
94 | fallback = "person"; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
95 | } |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
96 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
97 | presence_icon = PIDGIN_PRESENCE_ICON(pane->presence_icon); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
98 | pidgin_presence_icon_set_fallback(presence_icon, fallback); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
99 | pidgin_presence_icon_set_presence(presence_icon, presence); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
100 | } |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
101 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
102 | /* Notify that we changed. */ |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
103 | g_object_notify_by_pspec(G_OBJECT(pane), properties[PROP_CONVERSATION]); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
104 | } |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
105 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
106 | /****************************************************************************** |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
107 | * GObject Implementation |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
108 | *****************************************************************************/ |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
109 | static void |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
110 | pidgin_info_pane_get_property(GObject *obj, guint param_id, GValue *value, |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
111 | GParamSpec *pspec) |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
112 | { |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
113 | PidginInfoPane *pane = PIDGIN_INFO_PANE(obj); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
114 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
115 | switch(param_id) { |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
116 | case PROP_CONVERSATION: |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
117 | g_value_set_object(value, pidgin_info_pane_get_conversation(pane)); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
118 | break; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
119 | default: |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
120 | G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
121 | break; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
122 | } |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
123 | } |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
124 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
125 | static void |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
126 | pidgin_info_pane_set_property(GObject *obj, guint param_id, const GValue *value, |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
127 | GParamSpec *pspec) |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
128 | { |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
129 | PidginInfoPane *pane = PIDGIN_INFO_PANE(obj); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
130 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
131 | switch(param_id) { |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
132 | case PROP_CONVERSATION: |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
133 | pidgin_info_pane_set_conversation(pane, g_value_get_object(value)); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
134 | break; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
135 | default: |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
136 | G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
137 | break; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
138 | } |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
139 | } |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
140 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
141 | static void |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
142 | pidgin_info_pane_dispose(GObject *obj) { |
|
40858
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
143 | PidginInfoPane *pane = PIDGIN_INFO_PANE(obj); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
144 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
145 | g_clear_object(&pane->conversation); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
146 | |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
147 | G_OBJECT_CLASS(pidgin_info_pane_parent_class)->dispose(obj); |
|
40858
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
148 | } |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
149 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
150 | static void |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
151 | pidgin_info_pane_init(PidginInfoPane *pane) { |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
152 | gtk_widget_init_template(GTK_WIDGET(pane)); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
153 | } |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
154 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
155 | static void |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
156 | pidgin_info_pane_class_init(PidginInfoPaneClass *klass) { |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
157 | GObjectClass *obj_class = G_OBJECT_CLASS(klass); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
158 | GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
159 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
160 | obj_class->get_property = pidgin_info_pane_get_property; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
161 | obj_class->set_property = pidgin_info_pane_set_property; |
|
41184
05b5c210352b
Move conversation management from gtkconv.c to PidginConversationWindow.
Gary Kramlich <grim@reaperworld.com>
parents:
41030
diff
changeset
|
162 | obj_class->dispose = pidgin_info_pane_dispose; |
|
40858
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
163 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
164 | /** |
|
41479
3d2e114380f6
Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41184
diff
changeset
|
165 | * PidginInfoPane:conversation |
|
40858
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
166 | * |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
167 | * The #PurpleConversation whose information will be displayed. |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
168 | */ |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
169 | properties[PROP_CONVERSATION] = g_param_spec_object( |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
170 | "conversation", "conversation", |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
171 | "The PurpleConversation instance", |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
172 | PURPLE_TYPE_CONVERSATION, |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
173 | G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
174 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
175 | g_object_class_install_properties(obj_class, N_PROPERTIES, properties); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
176 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
177 | gtk_widget_class_set_template_from_resource( |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
178 | widget_class, |
|
41030
ec8b76f3bf0a
Fix the resource path so we can use the automatic stuff that GtkApplication supports
Gary Kramlich <grim@reaperworld.com>
parents:
41027
diff
changeset
|
179 | "/im/pidgin/Pidgin3/Conversations/infopane.ui" |
|
40858
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
180 | ); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
181 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
182 | gtk_widget_class_bind_template_child(widget_class, PidginInfoPane, hbox); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
183 | gtk_widget_class_bind_template_child(widget_class, PidginInfoPane, avatar); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
184 | gtk_widget_class_bind_template_child(widget_class, PidginInfoPane, presence_icon); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
185 | gtk_widget_class_bind_template_child(widget_class, PidginInfoPane, name); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
186 | gtk_widget_class_bind_template_child(widget_class, PidginInfoPane, topic); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
187 | } |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
188 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
189 | /****************************************************************************** |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
190 | * API |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
191 | *****************************************************************************/ |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
192 | GtkWidget * |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
193 | pidgin_info_pane_new(PurpleConversation *conversation) { |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
194 | return GTK_WIDGET(g_object_new( |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
195 | PIDGIN_TYPE_INFO_PANE, |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
196 | "conversation", conversation, |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
197 | NULL)); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
198 | } |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
199 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
200 | PurpleConversation * |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
201 | pidgin_info_pane_get_conversation(PidginInfoPane *pane) { |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
202 | g_return_val_if_fail(PIDGIN_IS_INFO_PANE(pane), NULL); |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
203 | |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
204 | return pane->conversation; |
|
2bd48c93678a
Create a new standalone info pane widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
205 | } |