pidgin/pidginproxyoptions.c

Fri, 16 Sep 2022 01:54:11 -0500

author
Elliott Sales de Andrade <quantum.analyst@gmail.com>
date
Fri, 16 Sep 2022 01:54:11 -0500
changeset 41694
83e6692c76a3
parent 41543
d6ba57accc0e
permissions
-rw-r--r--

Change the credential provider row active indicator to a CheckButton

Because I noticed that Adw has a style that is for this sort of thing.

Testing Done:
Opened Credential prefs, and changed selected provider. Also checked that clicking the check button didn't accidentally change its state without changing the row, and that it could not be selected by keyboard separately from the row.

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

41350
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1 /*
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
2 * Pidgin - Internet Messenger
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
4 *
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
5 * Pidgin is the legal property of its developers, whose names are too numerous
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
7 * source distribution.
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
8 *
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
9 * This program is free software; you can redistribute it and/or modify
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
10 * it under the terms of the GNU General Public License as published by
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
12 * (at your option) any later version.
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
13 *
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
14 * This program is distributed in the hope that it will be useful,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
17 * GNU General Public License for more details.
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
18 *
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
20 * along with this program; if not, see <https://www.gnu.org/licenses/>.
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
21 */
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
22
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
23 #include <glib/gi18n.h>
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
24
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
25 #include "pidginproxyoptions.h"
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
26
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
27 #include "gtkaccount.h"
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
28 #include "pidgincore.h"
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
29
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
30 struct _PidginProxyOptions {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
31 GtkBox parent;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
32
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
33 gboolean show_global;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
34 PurpleProxyInfo *info;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
35
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
36 GtkListStore *model;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
37 GtkTreeModelFilter *filter;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
38
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
39 GtkWidget *proxy_type;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
40
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
41 GtkWidget *options;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
42 GtkWidget *hostname;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
43 GtkWidget *port;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
44 GtkWidget *username;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
45 GtkWidget *password;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
46 };
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
47
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
48 enum {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
49 PROP_0,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
50 PROP_SHOW_GLOBAL,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
51 PROP_INFO,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
52 N_PROPERTIES
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
53 };
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
54 static GParamSpec *properties[N_PROPERTIES] = {NULL, };
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
55
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
56 enum {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
57 COLUMN_TYPE,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
58 COLUMN_TITLE,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
59 };
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
60
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
61 G_DEFINE_TYPE(PidginProxyOptions, pidgin_proxy_options, GTK_TYPE_BOX)
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
62
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
63 /******************************************************************************
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
64 * Helpers
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
65 *****************************************************************************/
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
66 static gboolean
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
67 pidgin_proxy_options_null_to_empty_str(G_GNUC_UNUSED GBinding *binding,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
68 const GValue *from_value,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
69 GValue *to_value,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
70 G_GNUC_UNUSED gpointer data)
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
71 {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
72 const gchar *str_val = g_value_get_string(from_value);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
73
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
74 if(str_val == NULL) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
75 str_val = "";
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
76 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
77
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
78 g_value_set_string(to_value, str_val);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
79
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
80 return TRUE;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
81 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
82
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
83 static gboolean
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
84 pidgin_proxy_options_empty_str_to_null(G_GNUC_UNUSED GBinding *binding,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
85 const GValue *from_value,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
86 GValue *to_value,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
87 G_GNUC_UNUSED gpointer data)
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
88 {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
89 const gchar *str_val = g_value_get_string(from_value);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
90
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
91 if(str_val != NULL && *str_val == '\0') {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
92 str_val = NULL;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
93 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
94
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
95 g_value_set_string(to_value, str_val);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
96
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
97 return TRUE;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
98 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
99
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
100 static gboolean
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
101 pidgin_proxy_options_gint_to_double(G_GNUC_UNUSED GBinding *binding,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
102 const GValue *from_value, GValue *to_value,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
103 G_GNUC_UNUSED gpointer data)
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
104 {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
105 g_value_set_double(to_value, (gdouble)g_value_get_int(from_value));
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
106
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
107 return TRUE;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
108 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
109
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
110 static gboolean
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
111 pidgin_proxy_options_double_to_gint(G_GNUC_UNUSED GBinding *binding,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
112 const GValue *from_value, GValue *to_value,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
113 G_GNUC_UNUSED gpointer user_data)
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
114 {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
115 g_value_set_int(to_value, (gint)g_value_get_double(from_value));
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
116
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
117 return TRUE;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
118 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
119
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
120 static gboolean
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
121 pidgin_proxy_options_filter_visible(GtkTreeModel *model, GtkTreeIter *iter,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
122 gpointer data)
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
123 {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
124 PidginProxyOptions *options = data;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
125 PurpleProxyType type;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
126
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
127 gtk_tree_model_get(model, iter, COLUMN_TYPE, &type, -1);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
128
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
129 if(type == PURPLE_PROXY_TYPE_USE_GLOBAL) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
130 return options->show_global;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
131 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
132
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
133 return TRUE;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
134 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
135
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
136 /******************************************************************************
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
137 * Callbacks
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
138 *****************************************************************************/
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
139 static void
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
140 pidgin_proxy_options_proxy_type_changed_cb(GtkComboBox *box, gpointer data) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
141 PidginProxyOptions *options = data;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
142 PurpleProxyType type;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
143 GtkTreeIter iter;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
144 gboolean sensitive = TRUE;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
145
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
146 if(!gtk_combo_box_get_active_iter(GTK_COMBO_BOX(options->proxy_type), &iter)) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
147 return;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
148 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
149
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
150 gtk_tree_model_get(GTK_TREE_MODEL(options->filter), &iter,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
151 COLUMN_TYPE, &type,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
152 -1);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
153
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
154 purple_proxy_info_set_proxy_type(options->info, type);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
155
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
156 switch(type) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
157 case PURPLE_PROXY_TYPE_USE_GLOBAL:
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
158 case PURPLE_PROXY_TYPE_NONE:
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
159 case PURPLE_PROXY_TYPE_USE_ENVVAR:
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
160 sensitive = FALSE;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
161 break;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
162 default:
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
163 break;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
164 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
165
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
166 gtk_widget_set_sensitive(options->options, sensitive);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
167 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
168
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
169 /******************************************************************************
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
170 * GObject Implementation
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
171 *****************************************************************************/
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
172 static void
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
173 pidgin_proxy_options_get_property(GObject *obj, guint param_id, GValue *value,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
174 GParamSpec *pspec)
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
175 {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
176 PidginProxyOptions *options = PIDGIN_PROXY_OPTIONS(obj);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
177
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
178 switch(param_id) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
179 case PROP_SHOW_GLOBAL:
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
180 g_value_set_boolean(value,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
181 pidgin_proxy_options_get_show_global(options));
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
182 break;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
183 case PROP_INFO:
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
184 g_value_set_object(value, pidgin_proxy_options_get_info(options));
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
185 break;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
186 default:
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
187 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
188 break;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
189 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
190 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
191
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
192 static void
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
193 pidgin_proxy_options_set_property(GObject *obj, guint param_id,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
194 const GValue *value, GParamSpec *pspec)
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
195 {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
196 PidginProxyOptions *options = PIDGIN_PROXY_OPTIONS(obj);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
197
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
198 switch(param_id) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
199 case PROP_SHOW_GLOBAL:
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
200 pidgin_proxy_options_set_show_global(options,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
201 g_value_get_boolean(value));
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
202 break;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
203 case PROP_INFO:
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
204 pidgin_proxy_options_set_info(options, g_value_get_object(value));
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
205 break;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
206 default:
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
207 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
208 break;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
209 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
210 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
211
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
212 static void
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
213 pidgin_proxy_options_init(PidginProxyOptions *options) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
214 gtk_widget_init_template(GTK_WIDGET(options));
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
215
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
216 /* Set the visible function so we can control the visibility of the "Use
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
217 * Global Proxy" option.
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
218 */
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
219 gtk_tree_model_filter_set_visible_func(options->filter,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
220 pidgin_proxy_options_filter_visible,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
221 options, NULL);
41492
a1db3bb55aac Make sure we refilter the proxy options at startup.
Gary Kramlich <grim@reaperworld.com>
parents: 41479
diff changeset
222
a1db3bb55aac Make sure we refilter the proxy options at startup.
Gary Kramlich <grim@reaperworld.com>
parents: 41479
diff changeset
223 /* Force the filter to refresh. */
a1db3bb55aac Make sure we refilter the proxy options at startup.
Gary Kramlich <grim@reaperworld.com>
parents: 41479
diff changeset
224 gtk_tree_model_filter_refilter(options->filter);
41350
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
225 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
226
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
227 static void
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
228 pidgin_proxy_options_constructed(GObject *obj) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
229 PidginProxyOptions *options = PIDGIN_PROXY_OPTIONS(obj);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
230
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
231 G_OBJECT_CLASS(pidgin_proxy_options_parent_class)->constructed(obj);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
232
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
233 if(options->info == NULL) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
234 pidgin_proxy_options_set_info(options, NULL);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
235 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
236 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
237
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
238 static void
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
239 pidgin_proxy_options_class_init(PidginProxyOptionsClass *klass) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
240 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
241 GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
242
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
243 obj_class->get_property = pidgin_proxy_options_get_property;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
244 obj_class->set_property = pidgin_proxy_options_set_property;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
245 obj_class->constructed = pidgin_proxy_options_constructed;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
246
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
247 /**
41479
3d2e114380f6 Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41350
diff changeset
248 * PidginProxyOptions:show-global:
41350
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
249 *
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
250 * Whether or not to show the "Use Global Proxy Settings" option. This
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
251 * is turned off for the preferences where we use this widget to define
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
252 * the global proxy settings.
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
253 *
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
254 * Since: 3.0.0
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
255 */
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
256 properties[PROP_SHOW_GLOBAL] = g_param_spec_boolean(
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
257 "show-global", "show-global",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
258 "Whether or not to show the global proxy settings option",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
259 TRUE,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
260 G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
261
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
262 /**
41479
3d2e114380f6 Add source files to GObject introspection
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41350
diff changeset
263 * PidginProxyOptions:info:
41350
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
264 *
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
265 * The [class@Purple.ProxyInfo] that this options widget is configuring. If
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
266 * unset, a new instance will be created.
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
267 *
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
268 * Since: 3.0.0
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
269 */
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
270 properties[PROP_INFO] = g_param_spec_object(
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
271 "info", "info",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
272 "The proxy info to configure",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
273 PURPLE_TYPE_PROXY_INFO,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
274 G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
275
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
276 g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
277
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
278 gtk_widget_class_set_template_from_resource(
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
279 widget_class,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
280 "/im/pidgin/Pidgin3/proxyoptions.ui"
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
281 );
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
282
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
283 gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
284 model);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
285 gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
286 filter);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
287
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
288 gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
289 proxy_type);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
290
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
291 gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
292 options);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
293 gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
294 hostname);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
295 gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
296 port);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
297 gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
298 username);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
299 gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
300 password);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
301
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
302 gtk_widget_class_bind_template_callback(widget_class,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
303 pidgin_proxy_options_proxy_type_changed_cb);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
304 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
305
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
306 /******************************************************************************
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
307 * Public API
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
308 *****************************************************************************/
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
309 GtkWidget *
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
310 pidgin_proxy_options_new(void) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
311 return g_object_new(PIDGIN_TYPE_PROXY_OPTIONS, NULL);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
312 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
313
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
314 void
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
315 pidgin_proxy_options_set_show_global(PidginProxyOptions *options,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
316 gboolean show_global)
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
317 {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
318 PurpleProxyType proxy_type = PURPLE_PROXY_TYPE_USE_GLOBAL;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
319
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
320 g_return_if_fail(PIDGIN_IS_PROXY_OPTIONS(options));
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
321
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
322 if(show_global == options->show_global) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
323 return;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
324 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
325
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
326 options->show_global = show_global;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
327
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
328 if(options->info == NULL) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
329 g_object_notify_by_pspec(G_OBJECT(options),
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
330 properties[PROP_SHOW_GLOBAL]);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
331
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
332 return;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
333 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
334
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
335 proxy_type = purple_proxy_info_get_proxy_type(options->info);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
336 if(proxy_type == PURPLE_PROXY_TYPE_USE_GLOBAL && show_global == FALSE) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
337 proxy_type = PURPLE_PROXY_TYPE_NONE;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
338 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
339
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
340 purple_proxy_info_set_proxy_type(options->info, proxy_type);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
341
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
342 options->show_global = show_global;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
343
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
344 g_object_notify_by_pspec(G_OBJECT(options), properties[PROP_SHOW_GLOBAL]);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
345
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
346 /* Tell the filter to rerun. */
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
347 gtk_tree_model_filter_refilter(options->filter);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
348 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
349
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
350 gboolean
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
351 pidgin_proxy_options_get_show_global(PidginProxyOptions *options) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
352 g_return_val_if_fail(PIDGIN_IS_PROXY_OPTIONS(options), FALSE);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
353
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
354 return options->show_global;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
355 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
356
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
357 void
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
358 pidgin_proxy_options_set_info(PidginProxyOptions *options,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
359 PurpleProxyInfo *info)
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
360 {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
361 GtkTreeIter iter;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
362 GtkTreeModel *model;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
363
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
364 g_return_if_fail(PIDGIN_IS_PROXY_OPTIONS(options));
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
365
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
366 /* We want to always have a PurpleProxyInfo instance to make management
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
367 * easier. So if someone clears it, just replace it with an empty one
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
368 * instead.
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
369 */
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
370 if(!PURPLE_IS_PROXY_INFO(info)) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
371 PurpleProxyInfo *empty_info = purple_proxy_info_new();
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
372
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
373 if(!g_set_object(&options->info, empty_info)) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
374 g_assert_not_reached();
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
375 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
376
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
377 g_object_unref(empty_info);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
378 } else if(!g_set_object(&options->info, info)) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
379 return;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
380 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
381
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
382 model = GTK_TREE_MODEL(options->filter);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
383 if(gtk_tree_model_get_iter_first(model, &iter)) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
384 do {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
385 PurpleProxyType type = purple_proxy_info_get_proxy_type(options->info);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
386 PurpleProxyType row_type;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
387
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
388 gtk_tree_model_get(model, &iter, COLUMN_TYPE, &row_type, -1);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
389 if(row_type == type) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
390 gtk_combo_box_set_active_iter(GTK_COMBO_BOX(options->proxy_type),
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
391 &iter);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
392 break;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
393 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
394 } while(gtk_tree_model_iter_next(model, &iter));
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
395 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
396
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
397 g_object_bind_property_full(options->info, "hostname",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
398 options->hostname, "text",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
399 G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
400 pidgin_proxy_options_null_to_empty_str,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
401 pidgin_proxy_options_empty_str_to_null,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
402 NULL,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
403 NULL);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
404
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
405 g_object_bind_property_full(options->info, "port",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
406 options->port, "value",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
407 G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
408 pidgin_proxy_options_gint_to_double,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
409 pidgin_proxy_options_double_to_gint,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
410 NULL,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
411 NULL);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
412
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
413 g_object_bind_property_full(options->info, "username",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
414 options->username, "text",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
415 G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
416 pidgin_proxy_options_null_to_empty_str,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
417 pidgin_proxy_options_empty_str_to_null,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
418 NULL,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
419 NULL);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
420
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
421
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
422 g_object_bind_property_full(options->info, "password",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
423 options->password, "text",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
424 G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
425 pidgin_proxy_options_null_to_empty_str,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
426 pidgin_proxy_options_empty_str_to_null,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
427 NULL,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
428 NULL);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
429
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
430 g_object_notify_by_pspec(G_OBJECT(options), properties[PROP_INFO]);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
431 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
432
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
433 PurpleProxyInfo *
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
434 pidgin_proxy_options_get_info(PidginProxyOptions *options) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
435 g_return_val_if_fail(PIDGIN_IS_PROXY_OPTIONS(options), NULL);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
436
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
437 return options->info;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
438 }

mercurial