pidgin/pidginproxyoptions.c

Fri, 27 May 2022 03:05:57 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Fri, 27 May 2022 03:05:57 -0500
changeset 41411
c2969c67490e
parent 41350
2bdf14aaf7a1
child 41479
3d2e114380f6
permissions
-rw-r--r--

Remove a bunch of unused stuff in the gtkblist and set some sane defaults

Testing Done:
Ran and verified that the buddylist displayed all options by default now.

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

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 static void
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
170 pidgin_proxy_options_ports_popup_cb(G_GNUC_UNUSED GtkEntry *entry,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
171 GtkWidget *widget,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
172 G_GNUC_UNUSED gpointer data)
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
173 {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
174 GtkWidget *item = NULL;
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 /* This is an easter egg. The items are in reverse order because they are
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
177 * prepended to the menu.
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
178 *
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
179 * It means one of two things, both intended as humorous:
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
180 * A) your network is really slow and you have nothing better to do than
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
181 * look at butterflies.
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
182 * B) You are looking really closely at something that shouldn't matter.
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
183 */
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
184
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
185 item = gtk_menu_item_new_with_label(_("you can see the butterflies mating"));
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
186 gtk_menu_shell_prepend(GTK_MENU_SHELL(widget), item);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
187 gtk_widget_show(item);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
188
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
189 /* This is also an easter egg, see the previous comment. */
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
190 item = gtk_menu_item_new_with_label(_("If you look real closely"));
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
191 gtk_menu_shell_prepend(GTK_MENU_SHELL(widget), item);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
192 gtk_widget_show(item);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
193 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
194
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 * GObject Implementation
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 static void
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
199 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
200 GParamSpec *pspec)
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
201 {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
202 PidginProxyOptions *options = PIDGIN_PROXY_OPTIONS(obj);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
203
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
204 switch(param_id) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
205 case PROP_SHOW_GLOBAL:
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
206 g_value_set_boolean(value,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
207 pidgin_proxy_options_get_show_global(options));
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 case PROP_INFO:
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
210 g_value_set_object(value, pidgin_proxy_options_get_info(options));
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
211 break;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
212 default:
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
213 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
214 break;
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 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
217
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
218 static void
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
219 pidgin_proxy_options_set_property(GObject *obj, guint param_id,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
220 const GValue *value, GParamSpec *pspec)
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
221 {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
222 PidginProxyOptions *options = PIDGIN_PROXY_OPTIONS(obj);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
223
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
224 switch(param_id) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
225 case PROP_SHOW_GLOBAL:
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
226 pidgin_proxy_options_set_show_global(options,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
227 g_value_get_boolean(value));
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
228 break;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
229 case PROP_INFO:
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
230 pidgin_proxy_options_set_info(options, g_value_get_object(value));
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
231 break;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
232 default:
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
233 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
234 break;
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_init(PidginProxyOptions *options) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
240 gtk_widget_init_template(GTK_WIDGET(options));
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
241
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
242 /* 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
243 * Global Proxy" option.
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
244 */
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
245 gtk_tree_model_filter_set_visible_func(options->filter,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
246 pidgin_proxy_options_filter_visible,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
247 options, NULL);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
248 }
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 static void
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
251 pidgin_proxy_options_constructed(GObject *obj) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
252 PidginProxyOptions *options = PIDGIN_PROXY_OPTIONS(obj);
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 G_OBJECT_CLASS(pidgin_proxy_options_parent_class)->constructed(obj);
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 if(options->info == NULL) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
257 pidgin_proxy_options_set_info(options, NULL);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
258 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
259 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
260
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
261 static void
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
262 pidgin_proxy_options_class_init(PidginProxyOptionsClass *klass) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
263 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
264 GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
265
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
266 obj_class->get_property = pidgin_proxy_options_get_property;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
267 obj_class->set_property = pidgin_proxy_options_set_property;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
268 obj_class->constructed = pidgin_proxy_options_constructed;
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 /**
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
271 * PidginProxyOptions::show-global:
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
272 *
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
273 * 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
274 * 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
275 * the global proxy settings.
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
276 *
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
277 * Since: 3.0.0
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
278 */
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
279 properties[PROP_SHOW_GLOBAL] = g_param_spec_boolean(
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
280 "show-global", "show-global",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
281 "Whether or not to show the global proxy settings option",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
282 TRUE,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
283 G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
284
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
285 /**
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
286 * PidginProxyOptions::info:
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 * The [class@Purple.ProxyInfo] that this options widget is configuring. If
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
289 * unset, a new instance will be created.
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 * Since: 3.0.0
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
292 */
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
293 properties[PROP_INFO] = g_param_spec_object(
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
294 "info", "info",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
295 "The proxy info to configure",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
296 PURPLE_TYPE_PROXY_INFO,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
297 G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
298
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
299 g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
300
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
301 gtk_widget_class_set_template_from_resource(
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
302 widget_class,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
303 "/im/pidgin/Pidgin3/proxyoptions.ui"
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 gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
307 model);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
308 gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
309 filter);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
310
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
311 gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
312 proxy_type);
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 gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
315 options);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
316 gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
317 hostname);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
318 gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
319 port);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
320 gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
321 username);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
322 gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
323 password);
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 gtk_widget_class_bind_template_callback(widget_class,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
326 pidgin_proxy_options_proxy_type_changed_cb);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
327 gtk_widget_class_bind_template_callback(widget_class,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
328 pidgin_proxy_options_ports_popup_cb);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
329 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
330
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 * Public API
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 GtkWidget *
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
335 pidgin_proxy_options_new(void) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
336 return g_object_new(PIDGIN_TYPE_PROXY_OPTIONS, NULL);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
337 }
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 void
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
340 pidgin_proxy_options_set_show_global(PidginProxyOptions *options,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
341 gboolean show_global)
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
342 {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
343 PurpleProxyType proxy_type = PURPLE_PROXY_TYPE_USE_GLOBAL;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
344
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
345 g_return_if_fail(PIDGIN_IS_PROXY_OPTIONS(options));
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
346
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
347 if(show_global == options->show_global) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
348 return;
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
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
351 options->show_global = show_global;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
352
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
353 if(options->info == NULL) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
354 g_object_notify_by_pspec(G_OBJECT(options),
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
355 properties[PROP_SHOW_GLOBAL]);
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 return;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
358 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
359
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
360 proxy_type = purple_proxy_info_get_proxy_type(options->info);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
361 if(proxy_type == PURPLE_PROXY_TYPE_USE_GLOBAL && show_global == FALSE) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
362 proxy_type = PURPLE_PROXY_TYPE_NONE;
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
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
365 purple_proxy_info_set_proxy_type(options->info, proxy_type);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
366
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
367 options->show_global = show_global;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
368
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
369 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
370
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
371 /* Tell the filter to rerun. */
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
372 gtk_tree_model_filter_refilter(options->filter);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
373 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
374
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
375 gboolean
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
376 pidgin_proxy_options_get_show_global(PidginProxyOptions *options) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
377 g_return_val_if_fail(PIDGIN_IS_PROXY_OPTIONS(options), FALSE);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
378
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
379 return options->show_global;
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 void
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
383 pidgin_proxy_options_set_info(PidginProxyOptions *options,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
384 PurpleProxyInfo *info)
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
385 {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
386 GtkTreeIter iter;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
387 GtkTreeModel *model;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
388
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
389 g_return_if_fail(PIDGIN_IS_PROXY_OPTIONS(options));
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
390
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
391 /* We want to always have a PurpleProxyInfo instance to make management
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
392 * 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
393 * instead.
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
394 */
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
395 if(!PURPLE_IS_PROXY_INFO(info)) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
396 PurpleProxyInfo *empty_info = purple_proxy_info_new();
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
397
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
398 if(!g_set_object(&options->info, empty_info)) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
399 g_assert_not_reached();
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
400 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
401
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
402 g_object_unref(empty_info);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
403 } else if(!g_set_object(&options->info, info)) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
404 return;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
405 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
406
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
407 model = GTK_TREE_MODEL(options->filter);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
408 if(gtk_tree_model_get_iter_first(model, &iter)) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
409 do {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
410 PurpleProxyType type = purple_proxy_info_get_proxy_type(options->info);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
411 PurpleProxyType row_type;
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 gtk_tree_model_get(model, &iter, COLUMN_TYPE, &row_type, -1);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
414 if(row_type == type) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
415 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
416 &iter);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
417 break;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
418 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
419 } while(gtk_tree_model_iter_next(model, &iter));
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, "hostname",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
423 options->hostname, "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_bind_property_full(options->info, "port",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
431 options->port, "value",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
432 G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
433 pidgin_proxy_options_gint_to_double,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
434 pidgin_proxy_options_double_to_gint,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
435 NULL,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
436 NULL);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
437
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
438 g_object_bind_property_full(options->info, "username",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
439 options->username, "text",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
440 G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
441 pidgin_proxy_options_null_to_empty_str,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
442 pidgin_proxy_options_empty_str_to_null,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
443 NULL,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
444 NULL);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
445
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
446
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
447 g_object_bind_property_full(options->info, "password",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
448 options->password, "text",
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
449 G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
450 pidgin_proxy_options_null_to_empty_str,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
451 pidgin_proxy_options_empty_str_to_null,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
452 NULL,
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
453 NULL);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
454
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
455 g_object_notify_by_pspec(G_OBJECT(options), properties[PROP_INFO]);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
456 }
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
457
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
458 PurpleProxyInfo *
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
459 pidgin_proxy_options_get_info(PidginProxyOptions *options) {
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
460 g_return_val_if_fail(PIDGIN_IS_PROXY_OPTIONS(options), NULL);
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
461
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
462 return options->info;
2bdf14aaf7a1 Create a PidginProxyOptions widget
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
463 }

mercurial