pidgin/prefs/pidginawayprefs.c

Sat, 29 Oct 2022 01:14:13 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Sat, 29 Oct 2022 01:14:13 -0500
changeset 41859
ed82ab63d15a
parent 41765
6b1dc67b861d
child 42507
8e8f223cdd5a
permissions
-rw-r--r--

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/

41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
1 /*
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
2 * Pidgin - Internet Messenger
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
4 *
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
5 * Pidgin is the legal property of its developers, whose names are too numerous
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
7 * source distribution.
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
8 *
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
9 * This program is free software; you can redistribute it and/or modify
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
10 * it under the terms of the GNU General Public License as published by
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
12 * (at your option) any later version.
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
13 *
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
14 * This program is distributed in the hope that it will be useful,
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
17 * GNU General Public License for more details.
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
18 *
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
20 * along with this program; if not, see <https://www.gnu.org/licenses/>.
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
21 */
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
22
41654
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
23 #include <glib/gi18n-lib.h>
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
24
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
25 #include <purple.h>
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
26
41548
3353c766c6cf Convert away prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41374
diff changeset
27 #include <adwaita.h>
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
28
41374
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
29 #include "pidginawayprefs.h"
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
30 #include "gtksavedstatuses.h"
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
31 #include "gtkutils.h"
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
32 #include "pidginprefsinternal.h"
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
33
41374
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
34 struct _PidginAwayPrefs {
41548
3353c766c6cf Convert away prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41374
diff changeset
35 AdwPreferencesPage parent;
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
36
41654
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
37 GtkWidget *idle_reporting;
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
38 GtkWidget *mins_before_away;
41622
4e81efb6f325 Move away preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41548
diff changeset
39 GtkWidget *idle_row;
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
40 GtkWidget *away_when_idle;
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
41 GtkWidget *startup_current_status;
41622
4e81efb6f325 Move away preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41548
diff changeset
42 GtkWidget *startup_row;
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
43 };
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
44
41548
3353c766c6cf Convert away prefs page to GTK4
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41374
diff changeset
45 G_DEFINE_TYPE(PidginAwayPrefs, pidgin_away_prefs, ADW_TYPE_PREFERENCES_PAGE)
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
46
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
47 /******************************************************************************
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
48 * Helpers
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
49 *****************************************************************************/
41654
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
50 static gchar *
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
51 idle_reporting_expression_cb(GObject *self, G_GNUC_UNUSED gpointer data)
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
52 {
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
53 const gchar *text = "";
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
54 const gchar *value = NULL;
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
55
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
56 value = gtk_string_object_get_string(GTK_STRING_OBJECT(self));
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
57 if(purple_strequal(value, "none")) {
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
58 text = _("Never");
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
59 } else if(purple_strequal(value, "purple")) {
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
60 text = _("From last sent message");
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
61 } else if(purple_strequal(value, "system")) {
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
62 text = _("Based on keyboard or mouse use");
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
63 }
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
64
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
65 return g_strdup(text);
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
66 }
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
67
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
68 static void
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
69 set_idle_away(PurpleSavedStatus *status)
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
70 {
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
71 purple_prefs_set_int("/purple/savedstatus/idleaway",
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
72 purple_savedstatus_get_creation_time(status));
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
73 }
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
74
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
75 static void
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
76 set_startupstatus(PurpleSavedStatus *status)
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
77 {
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
78 purple_prefs_set_int("/purple/savedstatus/startup",
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
79 purple_savedstatus_get_creation_time(status));
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
80 }
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
81
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
82 /******************************************************************************
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
83 * GObject Implementation
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
84 *****************************************************************************/
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
85 static void
41374
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
86 pidgin_away_prefs_class_init(PidginAwayPrefsClass *klass)
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
87 {
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
88 GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
89
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
90 gtk_widget_class_set_template_from_resource(
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
91 widget_class,
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
92 "/im/pidgin/Pidgin3/Prefs/away.ui"
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
93 );
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
94
41374
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
95 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs,
41654
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
96 idle_reporting);
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
97 gtk_widget_class_bind_template_callback(widget_class,
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
98 idle_reporting_expression_cb);
41374
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
99 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs,
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
100 mins_before_away);
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
101 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs,
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
102 away_when_idle);
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
103 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs,
41622
4e81efb6f325 Move away preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41548
diff changeset
104 idle_row);
41374
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
105 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs,
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
106 startup_current_status);
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
107 gtk_widget_class_bind_template_child(widget_class, PidginAwayPrefs,
41622
4e81efb6f325 Move away preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41548
diff changeset
108 startup_row);
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
109 }
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
110
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
111 static void
41374
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
112 pidgin_away_prefs_init(PidginAwayPrefs *prefs)
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
113 {
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
114 GtkWidget *menu;
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
115
41374
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
116 gtk_widget_init_template(GTK_WIDGET(prefs));
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
117
41654
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
118 pidgin_prefs_bind_combo_row("/purple/away/idle_reporting",
fe90b5f62e88 Port away page combo boxes to drop downs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41640
diff changeset
119 prefs->idle_reporting);
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
120
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
121 pidgin_prefs_bind_spin_button("/purple/away/mins_before_away",
41374
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
122 prefs->mins_before_away);
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
123
41622
4e81efb6f325 Move away preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41548
diff changeset
124 pidgin_prefs_bind_switch("/purple/away/away_when_idle",
4e81efb6f325 Move away preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41548
diff changeset
125 prefs->away_when_idle);
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
126
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
127 /* TODO: Show something useful if we don't have any saved statuses. */
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
128 menu = pidgin_status_menu(purple_savedstatus_get_idleaway(),
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
129 G_CALLBACK(set_idle_away));
41622
4e81efb6f325 Move away preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41548
diff changeset
130 gtk_widget_set_valign(menu, GTK_ALIGN_CENTER);
4e81efb6f325 Move away preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41548
diff changeset
131 adw_action_row_add_suffix(ADW_ACTION_ROW(prefs->idle_row), menu);
4e81efb6f325 Move away preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41548
diff changeset
132 adw_action_row_set_activatable_widget(ADW_ACTION_ROW(prefs->idle_row),
4e81efb6f325 Move away preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41548
diff changeset
133 menu);
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
134
41374
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
135 g_object_bind_property(prefs->away_when_idle, "active",
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
136 menu, "sensitive",
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
137 G_BINDING_SYNC_CREATE);
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
138
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
139 /* Signon status stuff */
41622
4e81efb6f325 Move away preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41548
diff changeset
140 pidgin_prefs_bind_switch("/purple/savedstatus/startup_current_status",
4e81efb6f325 Move away preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41548
diff changeset
141 prefs->startup_current_status);
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
142
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
143 /* TODO: Show something useful if we don't have any saved statuses. */
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
144 menu = pidgin_status_menu(purple_savedstatus_get_startup(),
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
145 G_CALLBACK(set_startupstatus));
41622
4e81efb6f325 Move away preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41548
diff changeset
146 gtk_widget_set_valign(menu, GTK_ALIGN_CENTER);
4e81efb6f325 Move away preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41548
diff changeset
147 adw_action_row_add_suffix(ADW_ACTION_ROW(prefs->startup_row), menu);
4e81efb6f325 Move away preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41548
diff changeset
148 adw_action_row_set_activatable_widget(ADW_ACTION_ROW(prefs->startup_row),
4e81efb6f325 Move away preferences to Adwaita preference widgets
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41548
diff changeset
149 menu);
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
150 }
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
151
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
152 /******************************************************************************
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
153 * API
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
154 *****************************************************************************/
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
155 GtkWidget *
41374
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
156 pidgin_away_prefs_new(void) {
ea87294eff71 Rename PidginAwayPage to PidginAwayPrefs
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41368
diff changeset
157 return GTK_WIDGET(g_object_new(PIDGIN_TYPE_AWAY_PREFS, NULL));
41368
54d7cfc990eb Split away/idle prefs into a separate widget
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
diff changeset
158 }

mercurial