Sat, 29 Oct 2022 01:14:13 -0500
Convert PidginProxyPrefs to Adwaita 1.2
Testing Done:
Set all the values via the ui and the config file and tested bad values in the port in both as well. Bad values in the ui will store whatever atoi returned, but bad values in the config file will fallback to the default.
Reviewed at https://reviews.imfreedom.org/r/1996/
|
41306
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1 | /* |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
2 | * Pidgin - Internet Messenger |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
3 | * Copyright (C) Pidgin Developers <devel@pidgin.im> |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
4 | * |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
5 | * Pidgin is the legal property of its developers, whose names are too numerous |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
6 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
7 | * source distribution. |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
8 | * |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
9 | * This program is free software; you can redistribute it and/or modify |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
10 | * it under the terms of the GNU General Public License as published by |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
11 | * the Free Software Foundation; either version 2 of the License, or |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
12 | * (at your option) any later version. |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
13 | * |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
14 | * This program is distributed in the hope that it will be useful, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
17 | * GNU General Public License for more details. |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
18 | * |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
19 | * You should have received a copy of the GNU General Public License |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
20 | * along with this program; if not, see <https://www.gnu.org/licenses/>. |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
21 | */ |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
22 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
23 | #include "pidginstatusmanager.h" |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
24 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
25 | #include "pidginiconname.h" |
|
41356
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
26 | #include "pidginstatuseditor.h" |
|
41306
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
27 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
28 | enum { |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
29 | RESPONSE_USE, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
30 | RESPONSE_ADD, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
31 | RESPONSE_MODIFY, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
32 | RESPONSE_REMOVE |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
33 | }; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
34 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
35 | enum { |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
36 | COLUMN_TITLE, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
37 | COLUMN_ICON_NAME, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
38 | COLUMN_TYPE, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
39 | COLUMN_MESSAGE, |
|
41356
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
40 | COLUMN_STATUS, |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
41 | COLUMN_EDITOR |
|
41306
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
42 | }; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
43 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
44 | struct _PidginStatusManager { |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
45 | GtkDialog parent; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
46 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
47 | GtkListStore *model; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
48 | GtkTreeSelection *selection; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
49 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
50 | GtkWidget *use_button; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
51 | GtkWidget *modify_button; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
52 | GtkWidget *remove_button; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
53 | }; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
54 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
55 | G_DEFINE_TYPE(PidginStatusManager, pidgin_status_manager, GTK_TYPE_DIALOG) |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
56 | |
|
41356
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
57 | /* Ugh, prototypes :,( */ |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
58 | static void pidgin_status_editor_destroy_cb(GtkWidget *widget, gpointer data); |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
59 | |
|
41306
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
60 | /****************************************************************************** |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
61 | * Helpers |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
62 | *****************************************************************************/ |
|
41356
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
63 | static void |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
64 | pidgin_status_manager_show_editor(PidginStatusManager *manager) { |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
65 | PurpleSavedStatus *status = NULL; |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
66 | GtkWidget *editor = NULL; |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
67 | GtkTreeIter iter; |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
68 | |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
69 | if(gtk_tree_selection_count_selected_rows(manager->selection) == 0) { |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
70 | return; |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
71 | } |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
72 | |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
73 | gtk_tree_selection_get_selected(manager->selection, NULL, &iter); |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
74 | gtk_tree_model_get(GTK_TREE_MODEL(manager->model), &iter, |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
75 | COLUMN_STATUS, &status, |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
76 | COLUMN_EDITOR, &editor, |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
77 | -1); |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
78 | |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
79 | if(status == NULL) { |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
80 | g_clear_object(&editor); |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
81 | |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
82 | return; |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
83 | } |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
84 | |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
85 | if(!PIDGIN_IS_STATUS_EDITOR(editor)) { |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
86 | editor = pidgin_status_editor_new(status); |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
87 | |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
88 | gtk_window_set_transient_for(GTK_WINDOW(editor), GTK_WINDOW(manager)); |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
89 | |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
90 | gtk_list_store_set(manager->model, &iter, COLUMN_EDITOR, editor, -1); |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
91 | g_signal_connect_object(editor, "destroy", |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
92 | G_CALLBACK(pidgin_status_editor_destroy_cb), |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
93 | manager, 0); |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
94 | |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
95 | gtk_widget_show(editor); |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
96 | } else { |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
97 | gtk_window_present_with_time(GTK_WINDOW(editor), GDK_CURRENT_TIME); |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
98 | } |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
99 | } |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
100 | |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
101 | static void |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
102 | pidgin_status_manager_remove_selected(PidginStatusManager *manager) { |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
103 | PurpleSavedStatus *status = NULL; |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
104 | GtkWidget *editor = NULL; |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
105 | GtkTreeIter iter; |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
106 | |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
107 | if(gtk_tree_selection_count_selected_rows(manager->selection) == 0) { |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
108 | return; |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
109 | } |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
110 | |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
111 | gtk_tree_selection_get_selected(manager->selection, NULL, &iter); |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
112 | gtk_tree_model_get(GTK_TREE_MODEL(manager->model), &iter, |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
113 | COLUMN_STATUS, &status, |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
114 | COLUMN_EDITOR, &editor, |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
115 | -1); |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
116 | |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
117 | if(GTK_IS_WIDGET(editor)) { |
|
41542
e0ff7bea9eb3
Port PidginStatusManager to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41356
diff
changeset
|
118 | gtk_window_destroy(GTK_WINDOW(editor)); |
|
41356
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
119 | |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
120 | g_clear_object(&editor); |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
121 | } |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
122 | |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
123 | purple_savedstatus_delete_by_status(status); |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
124 | } |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
125 | |
|
41306
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
126 | static PurpleSavedStatus * |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
127 | pidgin_status_manager_get_selected_status(PidginStatusManager *manager) { |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
128 | PurpleSavedStatus *status = NULL; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
129 | GtkTreeIter iter; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
130 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
131 | if(gtk_tree_selection_count_selected_rows(manager->selection) == 0) { |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
132 | return NULL; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
133 | } |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
134 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
135 | gtk_tree_selection_get_selected(manager->selection, NULL, &iter); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
136 | gtk_tree_model_get(GTK_TREE_MODEL(manager->model), &iter, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
137 | COLUMN_STATUS, &status, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
138 | -1); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
139 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
140 | return status; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
141 | } |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
142 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
143 | static void |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
144 | pidgin_status_manager_add(PidginStatusManager *manager, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
145 | PurpleSavedStatus *status) |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
146 | { |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
147 | PurpleStatusPrimitive primitive; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
148 | GtkTreeIter iter; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
149 | gchar *message = NULL; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
150 | const gchar *icon_name = NULL, *type = NULL; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
151 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
152 | message = purple_markup_strip_html(purple_savedstatus_get_message(status)); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
153 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
154 | primitive = purple_savedstatus_get_primitive_type(status); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
155 | icon_name = pidgin_icon_name_from_status_primitive(primitive, NULL); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
156 | type = purple_primitive_get_name_from_type(primitive); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
157 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
158 | gtk_list_store_append(manager->model, &iter); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
159 | gtk_list_store_set(manager->model, &iter, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
160 | COLUMN_TITLE, purple_savedstatus_get_title(status), |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
161 | COLUMN_ICON_NAME, icon_name, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
162 | COLUMN_TYPE, type, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
163 | COLUMN_MESSAGE, message, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
164 | COLUMN_STATUS, status, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
165 | -1); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
166 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
167 | g_free(message); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
168 | } |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
169 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
170 | static void |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
171 | pidgin_status_manager_populate_helper(gpointer data, gpointer user_data) { |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
172 | PidginStatusManager *manager = user_data; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
173 | PurpleSavedStatus *status = data; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
174 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
175 | if(!purple_savedstatus_is_transient(status)) { |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
176 | pidgin_status_manager_add(manager, status); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
177 | } |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
178 | } |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
179 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
180 | static void |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
181 | pidgin_status_manager_refresh(PidginStatusManager *manager) { |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
182 | GList *statuses = NULL; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
183 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
184 | gtk_list_store_clear(manager->model); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
185 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
186 | statuses = purple_savedstatuses_get_all(); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
187 | g_list_foreach(statuses, pidgin_status_manager_populate_helper, manager); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
188 | } |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
189 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
190 | /****************************************************************************** |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
191 | * Callbacks |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
192 | *****************************************************************************/ |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
193 | static void |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
194 | pidgin_status_manager_response_cb(GtkDialog *dialog, gint response_id, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
195 | gpointer data) |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
196 | { |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
197 | PidginStatusManager *manager = data; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
198 | PurpleSavedStatus *status = NULL; |
|
41356
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
199 | GtkWidget *editor = NULL; |
|
41306
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
200 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
201 | switch(response_id) { |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
202 | case RESPONSE_USE: |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
203 | status = pidgin_status_manager_get_selected_status(manager); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
204 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
205 | purple_savedstatus_activate(status); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
206 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
207 | break; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
208 | case RESPONSE_ADD: |
|
41356
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
209 | editor = pidgin_status_editor_new(NULL); |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
210 | gtk_window_set_transient_for(GTK_WINDOW(editor), |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
211 | GTK_WINDOW(manager)); |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
212 | gtk_widget_show(editor); |
|
41306
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
213 | break; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
214 | case RESPONSE_MODIFY: |
|
41356
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
215 | pidgin_status_manager_show_editor(manager); |
|
41306
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
216 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
217 | break; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
218 | case RESPONSE_REMOVE: |
|
41356
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
219 | pidgin_status_manager_remove_selected(manager); |
|
41306
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
220 | break; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
221 | case GTK_RESPONSE_CLOSE: |
|
41596
2f0fec76cfbc
Handle delete event in more dialogs (probably all, but can't be too sure.)
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41542
diff
changeset
|
222 | case GTK_RESPONSE_DELETE_EVENT: |
|
41542
e0ff7bea9eb3
Port PidginStatusManager to GTK4
Gary Kramlich <grim@reaperworld.com>
parents:
41356
diff
changeset
|
223 | gtk_window_destroy(GTK_WINDOW(dialog)); |
|
41306
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
224 | break; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
225 | } |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
226 | } |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
227 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
228 | static void |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
229 | pidgin_status_manager_row_activated_cb(G_GNUC_UNUSED GtkTreeView *tree_view, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
230 | GtkTreePath *path, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
231 | G_GNUC_UNUSED GtkTreeViewColumn *column, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
232 | gpointer data) |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
233 | { |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
234 | PidginStatusManager *manager = data; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
235 | GtkTreeIter iter; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
236 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
237 | if(gtk_tree_model_get_iter(GTK_TREE_MODEL(manager->model), &iter, path)) { |
|
41356
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
238 | gtk_tree_selection_select_iter(manager->selection, &iter); |
|
41306
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
239 | |
|
41356
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
240 | pidgin_status_manager_show_editor(manager); |
|
41306
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
241 | } |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
242 | } |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
243 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
244 | static void |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
245 | pidgin_status_manager_selection_changed_cb(GtkTreeSelection *selection, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
246 | gpointer data) |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
247 | { |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
248 | PidginStatusManager *manager = data; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
249 | gboolean sensitive = TRUE; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
250 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
251 | if(gtk_tree_selection_count_selected_rows(selection) == 0) { |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
252 | sensitive = FALSE; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
253 | } |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
254 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
255 | gtk_widget_set_sensitive(manager->use_button, sensitive); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
256 | gtk_widget_set_sensitive(manager->modify_button, sensitive); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
257 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
258 | /* Only enable the remove button if the currently selected row is not the |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
259 | * currently active status. |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
260 | */ |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
261 | if(sensitive) { |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
262 | PurpleSavedStatus *status = NULL; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
263 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
264 | status = pidgin_status_manager_get_selected_status(manager); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
265 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
266 | sensitive = status != purple_savedstatus_get_current(); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
267 | } |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
268 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
269 | gtk_widget_set_sensitive(manager->remove_button, sensitive); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
270 | } |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
271 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
272 | static void |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
273 | pidgin_status_manager_savedstatus_changed_cb(PurpleSavedStatus *new_status, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
274 | G_GNUC_UNUSED PurpleSavedStatus *old_status, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
275 | gpointer data) |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
276 | { |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
277 | PidginStatusManager *manager = data; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
278 | PurpleSavedStatus *selected = NULL; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
279 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
280 | /* Disable the remove button if the selected status is the currently active |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
281 | * status. |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
282 | */ |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
283 | selected = pidgin_status_manager_get_selected_status(manager); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
284 | if(selected != NULL) { |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
285 | gboolean sensitive = selected != new_status; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
286 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
287 | gtk_widget_set_sensitive(manager->remove_button, sensitive); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
288 | } |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
289 | } |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
290 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
291 | static void |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
292 | pidgin_status_manager_savedstatus_updated_cb(G_GNUC_UNUSED PurpleSavedStatus *status, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
293 | gpointer data) |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
294 | { |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
295 | PidginStatusManager *manager = data; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
296 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
297 | pidgin_status_manager_refresh(manager); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
298 | } |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
299 | |
|
41356
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
300 | static void |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
301 | pidgin_status_editor_destroy_cb(GtkWidget *widget, gpointer data) { |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
302 | PidginStatusManager *manager = data; |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
303 | GtkTreeIter iter; |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
304 | |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
305 | if(!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(manager->model), &iter)) { |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
306 | return; |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
307 | } |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
308 | |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
309 | do { |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
310 | GtkWidget *editor = NULL; |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
311 | |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
312 | gtk_tree_model_get(GTK_TREE_MODEL(manager->model), &iter, |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
313 | COLUMN_EDITOR, &editor, |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
314 | -1); |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
315 | |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
316 | /* Check if editor is the widget being destroyed. */ |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
317 | if(editor == widget) { |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
318 | /* It is, so set it back to NULL and unreference the copy we just |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
319 | * got. |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
320 | */ |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
321 | gtk_list_store_set(manager->model, &iter, COLUMN_EDITOR, NULL, -1); |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
322 | g_clear_object(&editor); |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
323 | |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
324 | break; |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
325 | } |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
326 | |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
327 | g_clear_object(&editor); |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
328 | } while(gtk_tree_model_iter_next(GTK_TREE_MODEL(manager->model), &iter)); |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
329 | } |
|
9753153c49fc
Add a new templated PidginStatusEditor and wire it up.
Gary Kramlich <grim@reaperworld.com>
parents:
41314
diff
changeset
|
330 | |
|
41306
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
331 | /****************************************************************************** |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
332 | * GObject Implementation |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
333 | *****************************************************************************/ |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
334 | static void |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
335 | pidgin_status_manager_finalize(GObject *obj) { |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
336 | purple_signals_disconnect_by_handle(obj); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
337 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
338 | G_OBJECT_CLASS(pidgin_status_manager_parent_class)->finalize(obj); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
339 | } |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
340 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
341 | static void |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
342 | pidgin_status_manager_init(PidginStatusManager *manager) { |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
343 | gpointer handle = NULL; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
344 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
345 | gtk_widget_init_template(GTK_WIDGET(manager)); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
346 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
347 | pidgin_status_manager_refresh(manager); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
348 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
349 | handle = purple_savedstatuses_get_handle(); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
350 | purple_signal_connect(handle, "savedstatus-changed", manager, |
|
41314
0dc72eacd8bf
Replace PURPLE_CALLBACK by G_CALLBACK
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41306
diff
changeset
|
351 | G_CALLBACK(pidgin_status_manager_savedstatus_changed_cb), |
|
41306
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
352 | manager); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
353 | purple_signal_connect(handle, "savedstatus-added", manager, |
|
41314
0dc72eacd8bf
Replace PURPLE_CALLBACK by G_CALLBACK
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41306
diff
changeset
|
354 | G_CALLBACK(pidgin_status_manager_savedstatus_updated_cb), |
|
41306
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
355 | manager); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
356 | purple_signal_connect(handle, "savedstatus-deleted", manager, |
|
41314
0dc72eacd8bf
Replace PURPLE_CALLBACK by G_CALLBACK
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41306
diff
changeset
|
357 | G_CALLBACK(pidgin_status_manager_savedstatus_updated_cb), |
|
41306
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
358 | manager); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
359 | purple_signal_connect(handle, "savedstatus-modified", manager, |
|
41314
0dc72eacd8bf
Replace PURPLE_CALLBACK by G_CALLBACK
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41306
diff
changeset
|
360 | G_CALLBACK(pidgin_status_manager_savedstatus_updated_cb), |
|
41306
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
361 | manager); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
362 | } |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
363 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
364 | static void |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
365 | pidgin_status_manager_class_init(PidginStatusManagerClass *klass) { |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
366 | GObjectClass *obj_class = G_OBJECT_CLASS(klass); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
367 | GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
368 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
369 | obj_class->finalize = pidgin_status_manager_finalize; |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
370 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
371 | gtk_widget_class_set_template_from_resource( |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
372 | widget_class, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
373 | "/im/pidgin/Pidgin3/Status/manager.ui" |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
374 | ); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
375 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
376 | gtk_widget_class_bind_template_child(widget_class, PidginStatusManager, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
377 | model); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
378 | gtk_widget_class_bind_template_child(widget_class, PidginStatusManager, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
379 | selection); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
380 | gtk_widget_class_bind_template_child(widget_class, PidginStatusManager, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
381 | use_button); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
382 | gtk_widget_class_bind_template_child(widget_class, PidginStatusManager, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
383 | modify_button); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
384 | gtk_widget_class_bind_template_child(widget_class, PidginStatusManager, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
385 | remove_button); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
386 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
387 | gtk_widget_class_bind_template_callback(widget_class, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
388 | pidgin_status_manager_response_cb); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
389 | gtk_widget_class_bind_template_callback(widget_class, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
390 | pidgin_status_manager_row_activated_cb); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
391 | gtk_widget_class_bind_template_callback(widget_class, |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
392 | pidgin_status_manager_selection_changed_cb); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
393 | } |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
394 | |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
395 | /****************************************************************************** |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
396 | * Public API |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
397 | *****************************************************************************/ |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
398 | GtkWidget * |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
399 | pidgin_status_manager_new(void) { |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
400 | return g_object_new(PIDGIN_TYPE_STATUS_MANAGER, NULL); |
|
8befd71928c2
Create a new status manager that's built in glade
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
401 | } |