Mon, 30 Oct 2023 23:13:17 -0500
Remove PidginPluginInfo
The only thing it provides is the "gtk-config-frame-cb" property, but no
plugins use that any more, as they are all using GSettings.
Testing Done:
Compiled.
Reviewed at https://reviews.imfreedom.org/r/2753/
| 41320 | 1 | /* |
| 2 | * Pidgin - Internet Messenger | |
| 3 | * Copyright (C) Pidgin Developers <devel@pidgin.im> | |
| 4 | * | |
| 5 | * Pidgin is the legal property of its developers, whose names are too numerous | |
| 6 | * to list here. Please refer to the COPYRIGHT file distributed with this | |
| 7 | * source distribution. | |
| 8 | * | |
| 9 | * This program is free software; you can redistribute it and/or modify | |
| 10 | * it under the terms of the GNU General Public License as published by | |
| 11 | * the Free Software Foundation; either version 2 of the License, or | |
| 12 | * (at your option) any later version. | |
| 13 | * | |
| 14 | * This program is distributed in the hope that it will be useful, | |
| 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 17 | * GNU General Public License for more details. | |
| 18 | * | |
| 19 | * You should have received a copy of the GNU General Public License | |
| 20 | * along with this program; if not, see <https://www.gnu.org/licenses/>. | |
| 21 | */ | |
| 22 | ||
| 23 | #include <glib/gi18n-lib.h> | |
| 24 | ||
| 25 | #include <gtk/gtk.h> | |
| 26 | ||
| 27 | #include <purple.h> | |
| 28 | ||
| 29 | #include "pidginstatusbox.h" | |
| 30 | #include "pidginiconname.h" | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
31 | #include "pidginstatusdisplay.h" |
| 41320 | 32 | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
33 | #define SAVEDSTATUS_FORMAT "savedstatus_%lu" |
| 41320 | 34 | |
| 35 | struct _PidginStatusBox { | |
| 36 | GtkBox parent; | |
| 37 | ||
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
38 | GtkWidget *button; |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
39 | PidginStatusDisplay *display; |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
40 | GtkPopover *popover; |
| 41320 | 41 | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
42 | GMenu *primitives; |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
43 | GMenu *saved_statuses; |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
44 | GList *custom_widgets; |
| 41320 | 45 | }; |
| 46 | ||
| 47 | G_DEFINE_TYPE(PidginStatusBox, pidgin_status_box, GTK_TYPE_BOX) | |
| 48 | ||
| 49 | /****************************************************************************** | |
| 50 | * Helpers | |
| 51 | *****************************************************************************/ | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
52 | static GtkWidget * |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
53 | pidgin_status_box_make_primitive_widget(const char *action, const char *id) { |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
54 | GtkWidget *button = NULL; |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
55 | GtkWidget *display = NULL; |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
56 | PurpleStatusPrimitive primitive = PURPLE_STATUS_UNSET; |
| 41320 | 57 | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
58 | primitive = purple_primitive_get_type_from_id(id); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
59 | display = pidgin_status_display_new_for_primitive(primitive); |
| 41320 | 60 | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
61 | button = gtk_button_new(); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
62 | gtk_widget_add_css_class(button, "flat"); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
63 | gtk_button_set_child(GTK_BUTTON(button), display); |
| 41320 | 64 | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
65 | gtk_actionable_set_action_name(GTK_ACTIONABLE(button), action); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
66 | gtk_actionable_set_action_target(GTK_ACTIONABLE(button), |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
67 | (const char *)G_VARIANT_TYPE_INT32, |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
68 | primitive); |
| 41320 | 69 | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
70 | return button; |
| 41320 | 71 | } |
| 72 | ||
| 73 | static void | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
74 | pidgin_status_box_populate_primitives(PidginStatusBox *status_box) { |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
75 | GtkPopoverMenu *popover = GTK_POPOVER_MENU(status_box->popover); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
76 | GMenuModel *menu = G_MENU_MODEL(status_box->primitives); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
77 | gint n_items = 0; |
| 41320 | 78 | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
79 | n_items = g_menu_model_get_n_items(menu); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
80 | for(gint index = 0; index < n_items; index++) { |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
81 | GtkWidget *button = NULL; |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
82 | char *action = NULL; |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
83 | char *target = NULL; |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
84 | char *custom_id = NULL; |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
85 | |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
86 | g_menu_model_get_item_attribute(menu, index, G_MENU_ATTRIBUTE_ACTION, |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
87 | "s", &action); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
88 | g_menu_model_get_item_attribute(menu, index, G_MENU_ATTRIBUTE_TARGET, |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
89 | "s", &target); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
90 | g_menu_model_get_item_attribute(menu, index, "custom", "s", &custom_id); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
91 | |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
92 | button = pidgin_status_box_make_primitive_widget(action, target); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
93 | gtk_popover_menu_add_child(popover, button, custom_id); |
| 41320 | 94 | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
95 | g_free(action); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
96 | g_free(target); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
97 | g_free(custom_id); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
98 | } |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
99 | } |
| 41320 | 100 | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
101 | static char * |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
102 | pidgin_status_box_make_savedstatus_widget(PurpleSavedStatus *saved_status, |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
103 | GtkWidget **widget) |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
104 | { |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
105 | GtkWidget *button = NULL; |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
106 | GtkWidget *display = NULL; |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
107 | time_t creation_time = 0; |
| 41320 | 108 | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
109 | display = pidgin_status_display_new_for_saved_status(saved_status); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
110 | |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
111 | if(!purple_savedstatus_is_transient(saved_status)) { |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
112 | GtkWidget *image = gtk_image_new_from_icon_name("document-save"); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
113 | gtk_widget_set_halign(image, GTK_ALIGN_END); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
114 | gtk_widget_set_hexpand(image, TRUE); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
115 | gtk_box_append(GTK_BOX(display), image); |
| 41320 | 116 | } |
| 117 | ||
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
118 | button = gtk_button_new(); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
119 | gtk_widget_add_css_class(button, "flat"); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
120 | gtk_button_set_child(GTK_BUTTON(button), display); |
| 41320 | 121 | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
122 | creation_time = purple_savedstatus_get_creation_time(saved_status); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
123 | gtk_actionable_set_action_name(GTK_ACTIONABLE(button), "status.set-saved"); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
124 | gtk_actionable_set_action_target(GTK_ACTIONABLE(button), |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
125 | (const char *)G_VARIANT_TYPE_INT64, |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
126 | creation_time); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
127 | *widget = button; |
| 41320 | 128 | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
129 | return g_strdup_printf(SAVEDSTATUS_FORMAT, creation_time); |
| 41320 | 130 | } |
| 131 | ||
| 132 | static void | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
133 | pidgin_status_box_populate_saved_statuses(PidginStatusBox *status_box) |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
134 | { |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
135 | GtkPopoverMenu *popover_menu = NULL; |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
136 | GMenu *menu = NULL; |
| 41320 | 137 | GList *list, *cur; |
| 138 | ||
| 139 | list = purple_savedstatuses_get_popular(6); | |
| 140 | if (list == NULL) { | |
| 141 | /* Odd... oh well, nothing we can do about it. */ | |
| 142 | return; | |
| 143 | } | |
| 144 | ||
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
145 | popover_menu = GTK_POPOVER_MENU(status_box->popover); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
146 | menu = status_box->saved_statuses; |
| 41320 | 147 | for(cur = list; cur != NULL; cur = cur->next) { |
| 148 | PurpleSavedStatus *saved = cur->data; | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
149 | GtkWidget *widget = NULL; |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
150 | char *id = NULL; |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
151 | GMenuItem *item = NULL; |
| 41320 | 152 | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
153 | id = pidgin_status_box_make_savedstatus_widget(saved, &widget); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
154 | item = g_menu_item_new(NULL, NULL); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
155 | g_menu_item_set_attribute(item, "custom", "s", id); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
156 | g_menu_append_item(menu, item); |
|
42450
bd1327c022d4
fix some memory leaks
Markus Fischer <ivanhoe@fiscari.de>
parents:
42199
diff
changeset
|
157 | g_object_unref(item); |
|
bd1327c022d4
fix some memory leaks
Markus Fischer <ivanhoe@fiscari.de>
parents:
42199
diff
changeset
|
158 | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
159 | gtk_popover_menu_add_child(popover_menu, widget, id); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
160 | status_box->custom_widgets = g_list_prepend(status_box->custom_widgets, |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
161 | widget); |
| 41320 | 162 | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
163 | g_free(id); |
| 41320 | 164 | } |
| 165 | ||
| 166 | g_list_free(list); | |
| 167 | } | |
| 168 | ||
| 169 | /****************************************************************************** | |
| 170 | * Callbacks | |
| 171 | *****************************************************************************/ | |
| 172 | static void | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
173 | pidgin_status_box_set_primitive(G_GNUC_UNUSED GSimpleAction *action, |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
174 | GVariant *parameter, gpointer data) |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
175 | { |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
176 | PidginStatusBox *status_box = data; |
| 41320 | 177 | PurpleSavedStatus *saved_status = NULL; |
| 178 | PurpleStatusPrimitive primitive; | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
179 | |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
180 | gtk_menu_button_popdown(GTK_MENU_BUTTON(status_box->button)); |
| 41320 | 181 | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
182 | if(!g_variant_is_of_type(parameter, G_VARIANT_TYPE_INT32)) { |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
183 | g_critical("status.set-primitive action parameter is of incorrect type %s", |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
184 | g_variant_get_type_string(parameter)); |
| 41320 | 185 | return; |
| 186 | } | |
| 187 | ||
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
188 | primitive = g_variant_get_int32(parameter); |
| 41320 | 189 | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
190 | saved_status = purple_savedstatus_find_transient_by_type_and_message(primitive, NULL); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
191 | if(saved_status == NULL) { |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
192 | saved_status = purple_savedstatus_new(NULL, primitive); |
| 41320 | 193 | } |
| 194 | ||
| 195 | if(saved_status != NULL) { | |
| 196 | if(saved_status != purple_savedstatus_get_current()) { | |
| 197 | purple_savedstatus_activate(saved_status); | |
| 198 | } | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
199 | } |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
200 | } |
| 41320 | 201 | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
202 | static void |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
203 | pidgin_status_box_set_saved_status(G_GNUC_UNUSED GSimpleAction *action, |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
204 | GVariant *parameter, gpointer data) |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
205 | { |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
206 | PidginStatusBox *status_box = data; |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
207 | PurpleSavedStatus *saved_status = NULL; |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
208 | time_t creation_time = 0; |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
209 | |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
210 | gtk_menu_button_popdown(GTK_MENU_BUTTON(status_box->button)); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
211 | |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
212 | if(!g_variant_is_of_type(parameter, G_VARIANT_TYPE_INT64)) { |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
213 | g_critical("status.set-saved action parameter is of incorrect type %s", |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
214 | g_variant_get_type_string(parameter)); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
215 | return; |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
216 | } |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
217 | |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
218 | creation_time = (time_t)g_variant_get_int64(parameter); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
219 | saved_status = purple_savedstatus_find_by_creation_time(creation_time); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
220 | |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
221 | if(saved_status != NULL) { |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
222 | if(saved_status != purple_savedstatus_get_current()) { |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
223 | purple_savedstatus_activate(saved_status); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
224 | } |
| 41320 | 225 | } |
| 226 | } | |
| 227 | ||
| 228 | static void | |
| 229 | pidgin_status_box_savedstatus_changed_cb(PurpleSavedStatus *now, | |
| 230 | G_GNUC_UNUSED PurpleSavedStatus *old, | |
| 231 | gpointer data) | |
| 232 | { | |
| 233 | PidginStatusBox *status_box = data; | |
| 234 | ||
| 235 | /* If we don't have a status, we have to bail. */ | |
| 236 | if(now == NULL) { | |
| 237 | return; | |
| 238 | } | |
| 239 | ||
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
240 | pidgin_status_display_set_saved_status(status_box->display, now); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
241 | } |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
242 | |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
243 | static void |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
244 | pidgin_status_box_remove_custom_widget(GtkWidget *widget, gpointer user_data) { |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
245 | GtkPopoverMenu *popover_menu = user_data; |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
246 | |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
247 | gtk_popover_menu_remove_child(popover_menu, widget); |
| 41320 | 248 | } |
| 249 | ||
| 250 | static void | |
| 251 | pidgin_status_box_savedstatus_updated_cb(G_GNUC_UNUSED PurpleSavedStatus *status, | |
| 252 | gpointer data) | |
| 253 | { | |
| 254 | PidginStatusBox *status_box = data; | |
| 255 | ||
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
256 | g_list_foreach(status_box->custom_widgets, |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
257 | (GFunc)pidgin_status_box_remove_custom_widget, |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
258 | status_box->popover); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
259 | g_clear_list(&status_box->custom_widgets, NULL); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
260 | g_menu_remove_all(status_box->saved_statuses); |
| 41320 | 261 | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
262 | pidgin_status_box_populate_saved_statuses(status_box); |
| 41320 | 263 | } |
| 264 | ||
| 265 | /****************************************************************************** | |
| 266 | * GObject Implementation | |
| 267 | *****************************************************************************/ | |
| 268 | static void | |
| 269 | pidgin_status_box_finalize(GObject *obj) { | |
| 270 | PidginStatusBox *status_box = PIDGIN_STATUS_BOX(obj); | |
| 271 | ||
| 272 | purple_signals_disconnect_by_handle(status_box); | |
| 273 | ||
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
274 | g_clear_list(&status_box->custom_widgets, NULL); |
| 41320 | 275 | |
| 276 | G_OBJECT_CLASS(pidgin_status_box_parent_class)->finalize(obj); | |
| 277 | } | |
| 278 | ||
| 279 | static void | |
| 280 | pidgin_status_box_init(PidginStatusBox *status_box) { | |
| 281 | gpointer handle; | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
282 | GSimpleActionGroup *action_group = NULL; |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
283 | GActionEntry actions[] = { |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
284 | { |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
285 | .name = "set-primitive", |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
286 | .activate = pidgin_status_box_set_primitive, |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
287 | .parameter_type = (const char *)G_VARIANT_TYPE_INT32, |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
288 | }, { |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
289 | .name = "set-saved", |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
290 | .activate = pidgin_status_box_set_saved_status, |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
291 | .parameter_type = (const char *)G_VARIANT_TYPE_INT64, |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
292 | }, |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
293 | }; |
| 41320 | 294 | |
| 295 | gtk_widget_init_template(GTK_WIDGET(status_box)); | |
| 296 | ||
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
297 | action_group = g_simple_action_group_new(); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
298 | g_action_map_add_action_entries(G_ACTION_MAP(action_group), |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
299 | actions, G_N_ELEMENTS(actions), |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
300 | status_box); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
301 | gtk_widget_insert_action_group(GTK_WIDGET(status_box), "status", |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
302 | G_ACTION_GROUP(action_group)); |
| 41320 | 303 | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
304 | status_box->popover = gtk_menu_button_get_popover(GTK_MENU_BUTTON(status_box->button)); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
305 | gtk_popover_set_has_arrow(status_box->popover, FALSE); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
306 | |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
307 | pidgin_status_box_populate_primitives(status_box); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
308 | pidgin_status_box_populate_saved_statuses(status_box); |
| 41320 | 309 | |
| 310 | handle = purple_savedstatuses_get_handle(); | |
| 311 | purple_signal_connect(handle, "savedstatus-changed", status_box, | |
| 312 | G_CALLBACK(pidgin_status_box_savedstatus_changed_cb), | |
| 313 | status_box); | |
| 314 | purple_signal_connect(handle, "savedstatus-added", status_box, | |
| 315 | G_CALLBACK(pidgin_status_box_savedstatus_updated_cb), | |
| 316 | status_box); | |
| 317 | purple_signal_connect(handle, "savedstatus-deleted", status_box, | |
| 318 | G_CALLBACK(pidgin_status_box_savedstatus_updated_cb), | |
| 319 | status_box); | |
| 320 | purple_signal_connect(handle, "savedstatus-modified", status_box, | |
| 321 | G_CALLBACK(pidgin_status_box_savedstatus_updated_cb), | |
| 322 | status_box); | |
| 323 | } | |
| 324 | ||
| 325 | static void | |
| 326 | pidgin_status_box_constructed(GObject *obj) { | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
327 | PidginStatusBox *status_box = PIDGIN_STATUS_BOX(obj); |
| 41320 | 328 | PurpleSavedStatus *status = NULL; |
| 329 | ||
| 330 | G_OBJECT_CLASS(pidgin_status_box_parent_class)->constructed(obj); | |
| 331 | ||
| 332 | status = purple_savedstatus_get_current(); | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
333 | pidgin_status_display_set_saved_status(status_box->display, status); |
| 41320 | 334 | } |
| 335 | ||
| 336 | static void | |
| 337 | pidgin_status_box_class_init(PidginStatusBoxClass *klass) { | |
| 338 | GObjectClass *obj_class = G_OBJECT_CLASS(klass); | |
| 339 | GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); | |
| 340 | ||
| 341 | obj_class->finalize = pidgin_status_box_finalize; | |
| 342 | obj_class->constructed = pidgin_status_box_constructed; | |
| 343 | ||
| 344 | gtk_widget_class_set_template_from_resource( | |
| 345 | widget_class, | |
| 346 | "/im/pidgin/Pidgin3/Status/box.ui" | |
| 347 | ); | |
| 348 | ||
| 349 | gtk_widget_class_bind_template_child(widget_class, PidginStatusBox, | |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
350 | button); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
351 | gtk_widget_class_bind_template_child(widget_class, PidginStatusBox, |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
352 | display); |
| 41320 | 353 | gtk_widget_class_bind_template_child(widget_class, PidginStatusBox, |
|
42199
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
354 | primitives); |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
355 | gtk_widget_class_bind_template_child(widget_class, PidginStatusBox, |
|
adf6d358d438
Convert PidginStatusBox to a GtkMenuButton
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41337
diff
changeset
|
356 | saved_statuses); |
| 41320 | 357 | } |
| 358 | ||
| 359 | /****************************************************************************** | |
| 360 | * Public API | |
| 361 | *****************************************************************************/ | |
| 362 | GtkWidget * | |
| 363 | pidgin_status_box_new(void) { | |
| 364 | return g_object_new(PIDGIN_TYPE_STATUS_BOX, NULL); | |
| 365 | } |