libpurple/purpleprotocolactions.c

Thu, 25 Aug 2022 22:30:30 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Thu, 25 Aug 2022 22:30:30 -0500
branch
gtk4
changeset 41594
30ad4d17661f
parent 41460
fccbea158b51
child 41960
c8a4853205e3
permissions
-rw-r--r--

Remove the use of the removed popup-menu signal and fix the popup menu not displaying

Testing Done:
Double clicked a buddy to open a conversation and right clicked a buddy to make sure the contact menu came up.

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

41437
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
1 /*
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
2 * Purple - Internet Messaging Library
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
4 *
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
5 * Purple is the legal property of its developers, whose names are too numerous
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
7 * source distribution.
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
8 *
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
9 * This program is free software; you can redistribute it and/or modify
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
10 * it under the terms of the GNU General Public License as published by
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
12 * (at your option) any later version.
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
13 *
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
14 * This program is distributed in the hope that it will be useful,
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
17 * GNU General Public License for more details.
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
18 *
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
20 * along with this program; if not, see <https://www.gnu.org/licenses/>.
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
21 */
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
22
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
23 #include "purpleprotocolactions.h"
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
24
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
25 /******************************************************************************
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
26 * GObject Implementation
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
27 *****************************************************************************/
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
28 G_DEFINE_INTERFACE(PurpleProtocolActions, purple_protocol_actions,
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
29 PURPLE_TYPE_PROTOCOL)
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
30
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
31 static void
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
32 purple_protocol_actions_default_init(PurpleProtocolActionsInterface *iface) {
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
33 }
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
34
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
35 /******************************************************************************
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
36 * Public API
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
37 *****************************************************************************/
41460
fccbea158b51 Add a get_prefix method to the PurpleProtocolActions interface
Gary Kramlich <grim@reaperworld.com>
parents: 41437
diff changeset
38 const gchar *
fccbea158b51 Add a get_prefix method to the PurpleProtocolActions interface
Gary Kramlich <grim@reaperworld.com>
parents: 41437
diff changeset
39 purple_protocol_actions_get_prefix(PurpleProtocolActions *actions) {
fccbea158b51 Add a get_prefix method to the PurpleProtocolActions interface
Gary Kramlich <grim@reaperworld.com>
parents: 41437
diff changeset
40 PurpleProtocolActionsInterface *iface = NULL;
fccbea158b51 Add a get_prefix method to the PurpleProtocolActions interface
Gary Kramlich <grim@reaperworld.com>
parents: 41437
diff changeset
41
fccbea158b51 Add a get_prefix method to the PurpleProtocolActions interface
Gary Kramlich <grim@reaperworld.com>
parents: 41437
diff changeset
42 g_return_val_if_fail(PURPLE_IS_PROTOCOL_ACTIONS(actions), NULL);
fccbea158b51 Add a get_prefix method to the PurpleProtocolActions interface
Gary Kramlich <grim@reaperworld.com>
parents: 41437
diff changeset
43
fccbea158b51 Add a get_prefix method to the PurpleProtocolActions interface
Gary Kramlich <grim@reaperworld.com>
parents: 41437
diff changeset
44 iface = PURPLE_PROTOCOL_ACTIONS_GET_IFACE(actions);
fccbea158b51 Add a get_prefix method to the PurpleProtocolActions interface
Gary Kramlich <grim@reaperworld.com>
parents: 41437
diff changeset
45 if(iface != NULL) {
fccbea158b51 Add a get_prefix method to the PurpleProtocolActions interface
Gary Kramlich <grim@reaperworld.com>
parents: 41437
diff changeset
46 if(iface->get_prefix != NULL) {
fccbea158b51 Add a get_prefix method to the PurpleProtocolActions interface
Gary Kramlich <grim@reaperworld.com>
parents: 41437
diff changeset
47 return iface->get_prefix(actions);
fccbea158b51 Add a get_prefix method to the PurpleProtocolActions interface
Gary Kramlich <grim@reaperworld.com>
parents: 41437
diff changeset
48 } else {
fccbea158b51 Add a get_prefix method to the PurpleProtocolActions interface
Gary Kramlich <grim@reaperworld.com>
parents: 41437
diff changeset
49 return purple_protocol_get_id(PURPLE_PROTOCOL(actions));
fccbea158b51 Add a get_prefix method to the PurpleProtocolActions interface
Gary Kramlich <grim@reaperworld.com>
parents: 41437
diff changeset
50 }
fccbea158b51 Add a get_prefix method to the PurpleProtocolActions interface
Gary Kramlich <grim@reaperworld.com>
parents: 41437
diff changeset
51 }
fccbea158b51 Add a get_prefix method to the PurpleProtocolActions interface
Gary Kramlich <grim@reaperworld.com>
parents: 41437
diff changeset
52
fccbea158b51 Add a get_prefix method to the PurpleProtocolActions interface
Gary Kramlich <grim@reaperworld.com>
parents: 41437
diff changeset
53 return NULL;
fccbea158b51 Add a get_prefix method to the PurpleProtocolActions interface
Gary Kramlich <grim@reaperworld.com>
parents: 41437
diff changeset
54 }
fccbea158b51 Add a get_prefix method to the PurpleProtocolActions interface
Gary Kramlich <grim@reaperworld.com>
parents: 41437
diff changeset
55
41437
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
56 GActionGroup *
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
57 purple_protocol_actions_get_action_group(PurpleProtocolActions *actions,
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
58 PurpleConnection *connection)
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
59 {
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
60 PurpleProtocolActionsInterface *iface = NULL;
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
61
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
62 g_return_val_if_fail(PURPLE_IS_PROTOCOL_ACTIONS(actions), NULL);
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
63 g_return_val_if_fail(PURPLE_IS_CONNECTION(connection), NULL);
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
64
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
65 iface = PURPLE_PROTOCOL_ACTIONS_GET_IFACE(actions);
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
66 if(iface != NULL && iface->get_action_group != NULL) {
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
67 return iface->get_action_group(actions, connection);
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
68 }
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
69
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
70 return NULL;
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
71 }
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
72
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
73 GMenu *
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
74 purple_protocol_actions_get_menu(PurpleProtocolActions *actions)
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
75 {
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
76 PurpleProtocolActionsInterface *iface = NULL;
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
77
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
78 g_return_val_if_fail(PURPLE_IS_PROTOCOL_ACTIONS(actions), NULL);
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
79
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
80 iface = PURPLE_PROTOCOL_ACTIONS_GET_IFACE(actions);
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
81 if(iface != NULL && iface->get_menu != NULL) {
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
82 return iface->get_menu(actions);
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
83 }
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
84
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
85 return NULL;
05ac40f0e0c4 Add a protocol actions interface
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
86 }

mercurial