Tue, 14 Feb 2006 05:43:43 +0000
[gaim-migrate @ 15646]
Always show a vertical scrollbar on conversations imhtmls. This will solve the shrinking conversation window bug. I chose this approach instead of saving the size of the window (as I had previous talked about), as this prevents the contents of the scrollback from rewrapping when the scrollbars appear or disappear. It also just seems to feel like the right thing to do, but maybe that's me being lazy.
| 10418 | 1 | /** |
| 2 | * @file gtksavedstatus.c GTK+ Saved Status Editor UI | |
| 3 | * @ingroup gtkui | |
| 4 | * | |
| 5 | * gaim | |
| 6 | * | |
| 7 | * Gaim is the legal property of its developers, whose names are too numerous | |
| 8 | * to list here. Please refer to the COPYRIGHT file distributed with this | |
| 9 | * source distribution. | |
| 10 | * | |
| 11 | * This program is free software; you can redistribute it and/or modify | |
| 12 | * it under the terms of the GNU General Public License as published by | |
| 13 | * the Free Software Foundation; either version 2 of the License, or | |
| 14 | * (at your option) any later version. | |
| 15 | * | |
| 16 | * This program is distributed in the hope that it will be useful, | |
| 17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 19 | * GNU General Public License for more details. | |
| 20 | * | |
| 21 | * You should have received a copy of the GNU General Public License | |
| 22 | * along with this program; if not, write to the Free Software | |
| 23 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 24 | */ | |
| 25 | ||
| 26 | #include "account.h" | |
| 27 | #include "internal.h" | |
|
10420
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
28 | #include "notify.h" |
| 10418 | 29 | #include "request.h" |
| 30 | #include "savedstatuses.h" | |
| 31 | #include "status.h" | |
| 32 | #include "util.h" | |
| 33 | ||
| 34 | #include "gtkblist.h" | |
|
11735
a1d2afa9b4e9
[gaim-migrate @ 14026]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
35 | #include "gtkexpander.h" |
| 10418 | 36 | #include "gtkgaim.h" |
| 37 | #include "gtkimhtml.h" | |
| 38 | #include "gtkimhtmltoolbar.h" | |
| 39 | #include "gtksavedstatuses.h" | |
| 40 | #include "gtkstock.h" | |
| 41 | #include "gtkutils.h" | |
| 42 | ||
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
43 | /* |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
44 | * TODO: Should attach to the account-deleted and account-added signals |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
45 | * and update the GtkListStores in any StatusEditor windows that |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
46 | * may be open. |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
47 | */ |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
48 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
49 | /** |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
50 | * These are used for the GtkTreeView when you're scrolling through |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
51 | * all your saved statuses. |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
52 | */ |
| 10418 | 53 | enum |
| 54 | { | |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
55 | STATUS_WINDOW_COLUMN_TITLE, |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
56 | STATUS_WINDOW_COLUMN_TYPE, |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
57 | STATUS_WINDOW_COLUMN_MESSAGE, |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
58 | /** A hidden column containing a pointer to the editor for this saved status. */ |
| 13145 | 59 | STATUS_WINDOW_COLUMN_WINDOW, |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
60 | STATUS_WINDOW_NUM_COLUMNS |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
61 | }; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
62 | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
63 | /** |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
64 | * These is used for the GtkTreeView containing the list of accounts |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
65 | * at the bottom of the window when you're editing a particular |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
66 | * saved status. |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
67 | */ |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
68 | enum |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
69 | { |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
70 | /** A hidden column containing a pointer to the GaimAccount. */ |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
71 | STATUS_EDITOR_COLUMN_ACCOUNT, |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
72 | /** A hidden column containing a pointer to the editor for this substatus. */ |
| 13145 | 73 | STATUS_EDITOR_COLUMN_WINDOW, |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
74 | STATUS_EDITOR_COLUMN_ENABLE_SUBSTATUS, |
| 10418 | 75 | STATUS_EDITOR_COLUMN_ICON, |
| 76 | STATUS_EDITOR_COLUMN_SCREENNAME, | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
77 | /** A hidden column containing the ID of this GaimStatusType. */ |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
78 | STATUS_EDITOR_COLUMN_STATUS_ID, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
79 | STATUS_EDITOR_COLUMN_STATUS_NAME, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
80 | STATUS_EDITOR_COLUMN_STATUS_MESSAGE, |
| 10418 | 81 | STATUS_EDITOR_NUM_COLUMNS |
| 82 | }; | |
| 83 | ||
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
84 | /** |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
85 | * These are used in the GtkComboBox to select the specific |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
86 | * GaimStatusType when setting a substatus for a particular saved |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
87 | * status. |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
88 | */ |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
89 | enum |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
90 | { |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
91 | SUBSTATUS_COLUMN_ICON, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
92 | /** A hidden column containing the ID of this GaimStatusType. */ |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
93 | SUBSTATUS_COLUMN_STATUS_ID, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
94 | SUBSTATUS_COLUMN_STATUS_NAME, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
95 | SUBSTATUS_NUM_COLUMNS |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
96 | }; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
97 | |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
98 | typedef struct |
| 10418 | 99 | { |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
100 | GtkWidget *window; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
101 | GtkListStore *model; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
102 | GtkWidget *treeview; |
|
11811
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
103 | GtkWidget *use_button; |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
104 | GtkWidget *modify_button; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
105 | GtkWidget *delete_button; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
106 | } StatusWindow; |
| 10418 | 107 | |
| 108 | typedef struct | |
| 109 | { | |
| 110 | GtkWidget *window; | |
| 111 | GtkListStore *model; | |
| 112 | GtkWidget *treeview; | |
|
12329
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
113 | GtkButton *saveanduse_button; |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
114 | GtkButton *save_button; |
|
10420
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
115 | |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
116 | gchar *original_title; |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
117 | GtkEntry *title; |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
118 | GtkOptionMenu *type; |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
119 | GtkIMHtml *message; |
| 10418 | 120 | } StatusEditor; |
| 121 | ||
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
122 | typedef struct |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
123 | { |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
124 | StatusEditor *status_editor; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
125 | GaimAccount *account; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
126 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
127 | GtkWidget *window; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
128 | GtkListStore *model; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
129 | GtkComboBox *box; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
130 | GtkIMHtml *message; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
131 | GtkIMHtmlToolbar *toolbar; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
132 | } SubStatusEditor; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
133 | |
| 10418 | 134 | static StatusWindow *status_window = NULL; |
| 135 | ||
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
136 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
137 | /************************************************************************** |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
138 | * Status window |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
139 | **************************************************************************/ |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
140 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
141 | static gboolean |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
142 | status_window_find_savedstatus(GtkTreeIter *iter, const char *title) |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
143 | { |
| 13145 | 144 | GtkTreeModel *model; |
|
10439
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10435
diff
changeset
|
145 | char *cur; |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
146 | |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
147 | if ((status_window == NULL) || (title == NULL)) |
| 13145 | 148 | return FALSE; |
| 149 | ||
| 150 | model = GTK_TREE_MODEL(status_window->model); | |
| 151 | ||
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
152 | if (!gtk_tree_model_get_iter_first(model, iter)) |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
153 | return FALSE; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
154 | |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
155 | do { |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
156 | gtk_tree_model_get(model, iter, STATUS_WINDOW_COLUMN_TITLE, &cur, -1); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
157 | if (!strcmp(title, cur)) |
|
10439
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10435
diff
changeset
|
158 | { |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10435
diff
changeset
|
159 | g_free(cur); |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
160 | return TRUE; |
|
10439
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10435
diff
changeset
|
161 | } |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10435
diff
changeset
|
162 | g_free(cur); |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
163 | } while (gtk_tree_model_iter_next(model, iter)); |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
164 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
165 | return FALSE; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
166 | } |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
167 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
168 | static gboolean |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
169 | status_window_destroy_cb(GtkWidget *widget, GdkEvent *event, gpointer user_data) |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
170 | { |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
171 | StatusWindow *dialog = user_data; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
172 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
173 | dialog->window = NULL; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
174 | gaim_gtk_status_window_hide(); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
175 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
176 | return FALSE; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
177 | } |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
178 | |
|
11888
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
179 | #if !GTK_CHECK_VERSION(2,2,0) |
|
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
180 | static void |
|
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
181 | count_selected_helper(GtkTreeModel *model, GtkTreePath *path, |
|
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
182 | GtkTreeIter *iter, gpointer user_data) |
|
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
183 | { |
|
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
184 | (*(gint *)user_data)++; |
|
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
185 | } |
|
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
186 | |
|
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
187 | static void |
|
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
188 | list_selected_helper(GtkTreeModel *model, GtkTreePath *path, |
|
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
189 | GtkTreeIter *iter, gpointer user_data) |
|
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
190 | { |
|
11889
ac2cc36fb281
[gaim-migrate @ 14180]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11888
diff
changeset
|
191 | GList **list = (GList **)user_data; |
|
ac2cc36fb281
[gaim-migrate @ 14180]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11888
diff
changeset
|
192 | *list = g_list_append(*list, gtk_tree_path_copy(path)); |
|
11888
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
193 | } |
|
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
194 | #endif |
|
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
195 | |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
196 | static void |
|
11811
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
197 | status_window_use_cb(GtkButton *button, StatusWindow *dialog) |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
198 | { |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
199 | GtkTreeSelection *selection; |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
200 | GtkTreeIter iter; |
|
11889
ac2cc36fb281
[gaim-migrate @ 14180]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11888
diff
changeset
|
201 | GList *list = NULL; |
|
11888
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
202 | int num_selected = 0; |
|
11811
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
203 | |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
204 | selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview)); |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
205 | |
|
11888
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
206 | #if GTK_CHECK_VERSION(2,2,0) |
|
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
207 | num_selected = gtk_tree_selection_count_selected_rows(selection); |
|
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
208 | #else |
|
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
209 | gtk_tree_selection_selected_foreach(selection, count_selected_helper, &num_selected); |
|
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
210 | #endif |
|
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
211 | if (num_selected != 1) |
|
11811
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
212 | /* |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
213 | * This shouldn't happen because the "Use" button should have |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
214 | * been grayed out. Oh well. |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
215 | */ |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
216 | return; |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
217 | |
|
11888
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
218 | #if GTK_CHECK_VERSION(2,2,0) |
|
11811
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
219 | list = gtk_tree_selection_get_selected_rows(selection, NULL); |
|
11888
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
220 | #else |
|
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
221 | gtk_tree_selection_selected_foreach(selection, list_selected_helper, &list); |
|
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
222 | #endif |
|
11811
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
223 | |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
224 | if (gtk_tree_model_get_iter(GTK_TREE_MODEL(dialog->model), |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
225 | &iter, list->data)) |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
226 | { |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
227 | gchar *title; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
228 | GaimSavedStatus *saved_status; |
|
11811
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
229 | gtk_tree_model_get(GTK_TREE_MODEL(dialog->model), &iter, |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
230 | STATUS_WINDOW_COLUMN_TITLE, &title, |
|
11811
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
231 | -1); |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
232 | saved_status = gaim_savedstatus_find(title); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
233 | g_free(title); |
|
11811
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
234 | gaim_savedstatus_activate(saved_status); |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
235 | } |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
236 | |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
237 | g_list_foreach(list, (GFunc)gtk_tree_path_free, NULL); |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
238 | g_list_free(list); |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
239 | } |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
240 | |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
241 | static void |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
242 | status_window_add_cb(GtkButton *button, gpointer user_data) |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
243 | { |
|
13176
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
244 | gaim_gtk_status_editor_show(FALSE, NULL); |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
245 | } |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
246 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
247 | static void |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
248 | status_window_modify_foreach(GtkTreeModel *model, GtkTreePath *path, |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
249 | GtkTreeIter *iter, gpointer user_data) |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
250 | { |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
251 | gchar *title; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
252 | GaimSavedStatus *saved_status; |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
253 | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
254 | gtk_tree_model_get(model, iter, STATUS_WINDOW_COLUMN_TITLE, &title, -1); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
255 | saved_status = gaim_savedstatus_find(title); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
256 | g_free(title); |
|
13176
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
257 | gaim_gtk_status_editor_show(TRUE, saved_status); |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
258 | } |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
259 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
260 | static void |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
261 | status_window_modify_cb(GtkButton *button, gpointer user_data) |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
262 | { |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
263 | StatusWindow *dialog = user_data; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
264 | GtkTreeSelection *selection; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
265 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
266 | selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview)); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
267 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
268 | gtk_tree_selection_selected_foreach(selection, status_window_modify_foreach, user_data); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
269 | } |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
270 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
271 | static void |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
272 | status_window_delete_confirm_cb(char *title) |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
273 | { |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
274 | GtkTreeIter iter; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
275 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
276 | if (status_window_find_savedstatus(&iter, title)) |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
277 | gtk_list_store_remove(status_window->model, &iter); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
278 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
279 | gaim_savedstatus_delete(title); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
280 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
281 | g_free(title); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
282 | } |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
283 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
284 | static void |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
285 | status_window_delete_foreach(GtkTreeModel *model, GtkTreePath *path, |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
286 | GtkTreeIter *iter, gpointer user_data) |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
287 | { |
|
10439
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10435
diff
changeset
|
288 | char *title; |
|
12237
91cf841da813
[gaim-migrate @ 14539]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12199
diff
changeset
|
289 | char *buf; |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
290 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
291 | gtk_tree_model_get(model, iter, STATUS_WINDOW_COLUMN_TITLE, &title, -1); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
292 | |
|
12237
91cf841da813
[gaim-migrate @ 14539]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12199
diff
changeset
|
293 | buf = g_strdup_printf(_("Are you sure you want to delete %s?"), title); |
|
12888
6fedd1f47fe0
[gaim-migrate @ 15241]
Daniel Atallah <datallah@pidgin.im>
parents:
12856
diff
changeset
|
294 | gaim_request_action(status_window, NULL, buf, NULL, 0, title, 2, |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
295 | _("Delete"), status_window_delete_confirm_cb, |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
296 | _("Cancel"), g_free); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
297 | g_free(buf); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
298 | } |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
299 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
300 | static void |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
301 | status_window_delete_cb(GtkButton *button, gpointer user_data) |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
302 | { |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
303 | StatusWindow *dialog = user_data; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
304 | GtkTreeSelection *selection; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
305 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
306 | selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview)); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
307 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
308 | gtk_tree_selection_selected_foreach(selection, status_window_delete_foreach, user_data); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
309 | } |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
310 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
311 | static void |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
312 | status_window_close_cb(GtkButton *button, gpointer user_data) |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
313 | { |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
314 | gaim_gtk_status_window_hide(); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
315 | } |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
316 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
317 | static void |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
318 | status_selected_cb(GtkTreeSelection *sel, gpointer user_data) |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
319 | { |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
320 | StatusWindow *dialog = user_data; |
|
11888
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
321 | int num_selected = 0; |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
322 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
323 | #if GTK_CHECK_VERSION(2,2,0) |
|
11811
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
324 | num_selected = gtk_tree_selection_count_selected_rows(sel); |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
325 | #else |
|
11888
525706b75438
[gaim-migrate @ 14179]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11832
diff
changeset
|
326 | gtk_tree_selection_selected_foreach(sel, count_selected_helper, &num_selected); |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
327 | #endif |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
328 | |
|
11811
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
329 | gtk_widget_set_sensitive(dialog->use_button, (num_selected == 1)); |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
330 | gtk_widget_set_sensitive(dialog->modify_button, (num_selected > 0)); |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
331 | gtk_widget_set_sensitive(dialog->delete_button, (num_selected > 0)); |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
332 | } |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
333 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
334 | static void |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
335 | add_status_to_saved_status_list(GtkListStore *model, GaimSavedStatus *saved_status) |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
336 | { |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
337 | GtkTreeIter iter; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
338 | const char *title; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
339 | const char *type; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
340 | char *message; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
341 | |
|
11651
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
11548
diff
changeset
|
342 | if (gaim_savedstatus_is_transient(saved_status)) |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
11548
diff
changeset
|
343 | return; |
|
02f366130354
[gaim-migrate @ 13935]
Mark Doliner <markdoliner@pidgin.im>
parents:
11548
diff
changeset
|
344 | |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
345 | title = gaim_savedstatus_get_title(saved_status); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
346 | type = gaim_primitive_get_name_from_type(gaim_savedstatus_get_type(saved_status)); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
347 | message = gaim_markup_strip_html(gaim_savedstatus_get_message(saved_status)); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
348 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
349 | gtk_list_store_append(model, &iter); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
350 | gtk_list_store_set(model, &iter, |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
351 | STATUS_WINDOW_COLUMN_TITLE, title, |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
352 | STATUS_WINDOW_COLUMN_TYPE, type, |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
353 | STATUS_WINDOW_COLUMN_MESSAGE, message, |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
354 | -1); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
355 | free(message); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
356 | } |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
357 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
358 | static void |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
359 | populate_saved_status_list(StatusWindow *dialog) |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
360 | { |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
361 | const GList *saved_statuses; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
362 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
363 | gtk_list_store_clear(dialog->model); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
364 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
365 | for (saved_statuses = gaim_savedstatuses_get_all(); saved_statuses != NULL; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
366 | saved_statuses = g_list_next(saved_statuses)) |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
367 | { |
| 12199 | 368 | add_status_to_saved_status_list(dialog->model, saved_statuses->data); |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
369 | } |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
370 | } |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
371 | |
|
10435
9b99eae95156
[gaim-migrate @ 11692]
Mark Doliner <markdoliner@pidgin.im>
parents:
10422
diff
changeset
|
372 | static gboolean |
|
9b99eae95156
[gaim-migrate @ 11692]
Mark Doliner <markdoliner@pidgin.im>
parents:
10422
diff
changeset
|
373 | search_func(GtkTreeModel *model, gint column, const gchar *key, GtkTreeIter *iter, gpointer search_data) |
|
9b99eae95156
[gaim-migrate @ 11692]
Mark Doliner <markdoliner@pidgin.im>
parents:
10422
diff
changeset
|
374 | { |
|
10439
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10435
diff
changeset
|
375 | gboolean result; |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10435
diff
changeset
|
376 | char *haystack; |
|
10435
9b99eae95156
[gaim-migrate @ 11692]
Mark Doliner <markdoliner@pidgin.im>
parents:
10422
diff
changeset
|
377 | |
|
9b99eae95156
[gaim-migrate @ 11692]
Mark Doliner <markdoliner@pidgin.im>
parents:
10422
diff
changeset
|
378 | gtk_tree_model_get(model, iter, column, &haystack, -1); |
|
9b99eae95156
[gaim-migrate @ 11692]
Mark Doliner <markdoliner@pidgin.im>
parents:
10422
diff
changeset
|
379 | |
|
10439
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10435
diff
changeset
|
380 | result = (gaim_strcasestr(haystack, key) == NULL); |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10435
diff
changeset
|
381 | |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10435
diff
changeset
|
382 | g_free(haystack); |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10435
diff
changeset
|
383 | |
|
5868d8f55fb1
[gaim-migrate @ 11697]
Alex Converse <alex.converse@gmail.com>
parents:
10435
diff
changeset
|
384 | return result; |
|
10435
9b99eae95156
[gaim-migrate @ 11692]
Mark Doliner <markdoliner@pidgin.im>
parents:
10422
diff
changeset
|
385 | } |
|
9b99eae95156
[gaim-migrate @ 11692]
Mark Doliner <markdoliner@pidgin.im>
parents:
10422
diff
changeset
|
386 | |
|
12162
449845a545ab
[gaim-migrate @ 14463]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12080
diff
changeset
|
387 | static void |
|
12173
7371c5744f1c
[gaim-migrate @ 14475]
Richard Laager <rlaager@pidgin.im>
parents:
12162
diff
changeset
|
388 | savedstatus_activated_cb(GtkTreeView *view, GtkTreePath *path, GtkTreeViewColumn *column, StatusWindow *dialog) |
|
12162
449845a545ab
[gaim-migrate @ 14463]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12080
diff
changeset
|
389 | { |
|
12173
7371c5744f1c
[gaim-migrate @ 14475]
Richard Laager <rlaager@pidgin.im>
parents:
12162
diff
changeset
|
390 | status_window_modify_cb(NULL, dialog); |
|
12162
449845a545ab
[gaim-migrate @ 14463]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12080
diff
changeset
|
391 | } |
|
449845a545ab
[gaim-migrate @ 14463]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12080
diff
changeset
|
392 | |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
393 | static GtkWidget * |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
394 | create_saved_status_list(StatusWindow *dialog) |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
395 | { |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
396 | GtkWidget *sw; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
397 | GtkWidget *treeview; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
398 | GtkTreeSelection *sel; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
399 | GtkTreeViewColumn *column; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
400 | GtkCellRenderer *renderer; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
401 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
402 | /* Create the scrolled window */ |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
403 | sw = gtk_scrolled_window_new(0, 0); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
404 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
405 | GTK_POLICY_AUTOMATIC, |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
406 | GTK_POLICY_ALWAYS); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
407 | gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
408 | GTK_SHADOW_IN); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
409 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
410 | /* Create the list model */ |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
411 | dialog->model = gtk_list_store_new(STATUS_WINDOW_NUM_COLUMNS, |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
412 | G_TYPE_STRING, |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
413 | G_TYPE_STRING, |
| 13145 | 414 | G_TYPE_STRING, |
| 415 | G_TYPE_POINTER); | |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
416 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
417 | /* Create the treeview */ |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
418 | treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(dialog->model)); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
419 | dialog->treeview = treeview; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
420 | gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(treeview), TRUE); |
|
12162
449845a545ab
[gaim-migrate @ 14463]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12080
diff
changeset
|
421 | g_signal_connect(G_OBJECT(treeview), "row-activated", |
|
12173
7371c5744f1c
[gaim-migrate @ 14475]
Richard Laager <rlaager@pidgin.im>
parents:
12162
diff
changeset
|
422 | G_CALLBACK(savedstatus_activated_cb), dialog); |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
423 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
424 | sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
425 | gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
426 | g_signal_connect(G_OBJECT(sel), "changed", |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
427 | G_CALLBACK(status_selected_cb), dialog); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
428 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
429 | gtk_container_add(GTK_CONTAINER(sw), treeview); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
430 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
431 | /* Add columns */ |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
432 | column = gtk_tree_view_column_new(); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
433 | gtk_tree_view_column_set_title(column, _("Title")); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
434 | gtk_tree_view_column_set_resizable(column, TRUE); |
|
11548
a6da5e2af5b3
[gaim-migrate @ 13803]
Mark Doliner <markdoliner@pidgin.im>
parents:
11251
diff
changeset
|
435 | gtk_tree_view_column_set_min_width(column, 100); |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
436 | gtk_tree_view_column_set_sort_column_id(column, |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
437 | STATUS_WINDOW_COLUMN_TITLE); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
438 | gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
439 | renderer = gtk_cell_renderer_text_new(); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
440 | gtk_tree_view_column_pack_start(column, renderer, TRUE); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
441 | gtk_tree_view_column_add_attribute(column, renderer, "text", |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
442 | STATUS_WINDOW_COLUMN_TITLE); |
|
11548
a6da5e2af5b3
[gaim-migrate @ 13803]
Mark Doliner <markdoliner@pidgin.im>
parents:
11251
diff
changeset
|
443 | #if GTK_CHECK_VERSION(2,6,0) |
|
a6da5e2af5b3
[gaim-migrate @ 13803]
Mark Doliner <markdoliner@pidgin.im>
parents:
11251
diff
changeset
|
444 | g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, NULL); |
|
a6da5e2af5b3
[gaim-migrate @ 13803]
Mark Doliner <markdoliner@pidgin.im>
parents:
11251
diff
changeset
|
445 | #endif |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
446 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
447 | column = gtk_tree_view_column_new(); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
448 | gtk_tree_view_column_set_title(column, _("Type")); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
449 | gtk_tree_view_column_set_resizable(column, TRUE); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
450 | gtk_tree_view_column_set_sort_column_id(column, |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
451 | STATUS_WINDOW_COLUMN_TYPE); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
452 | gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
453 | renderer = gtk_cell_renderer_text_new(); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
454 | gtk_tree_view_column_pack_start(column, renderer, TRUE); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
455 | gtk_tree_view_column_add_attribute(column, renderer, "text", |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
456 | STATUS_WINDOW_COLUMN_TYPE); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
457 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
458 | column = gtk_tree_view_column_new(); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
459 | gtk_tree_view_column_set_title(column, _("Message")); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
460 | gtk_tree_view_column_set_resizable(column, TRUE); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
461 | gtk_tree_view_column_set_sort_column_id(column, |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
462 | STATUS_WINDOW_COLUMN_MESSAGE); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
463 | gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
464 | renderer = gtk_cell_renderer_text_new(); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
465 | gtk_tree_view_column_pack_start(column, renderer, TRUE); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
466 | gtk_tree_view_column_add_attribute(column, renderer, "text", |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
467 | STATUS_WINDOW_COLUMN_MESSAGE); |
|
10435
9b99eae95156
[gaim-migrate @ 11692]
Mark Doliner <markdoliner@pidgin.im>
parents:
10422
diff
changeset
|
468 | #if GTK_CHECK_VERSION(2,6,0) |
| 10502 | 469 | g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_END, NULL); |
|
10435
9b99eae95156
[gaim-migrate @ 11692]
Mark Doliner <markdoliner@pidgin.im>
parents:
10422
diff
changeset
|
470 | #endif |
|
9b99eae95156
[gaim-migrate @ 11692]
Mark Doliner <markdoliner@pidgin.im>
parents:
10422
diff
changeset
|
471 | |
|
9b99eae95156
[gaim-migrate @ 11692]
Mark Doliner <markdoliner@pidgin.im>
parents:
10422
diff
changeset
|
472 | /* Enable CTRL+F searching */ |
|
9b99eae95156
[gaim-migrate @ 11692]
Mark Doliner <markdoliner@pidgin.im>
parents:
10422
diff
changeset
|
473 | gtk_tree_view_set_search_column(GTK_TREE_VIEW(treeview), STATUS_WINDOW_COLUMN_TITLE); |
|
9b99eae95156
[gaim-migrate @ 11692]
Mark Doliner <markdoliner@pidgin.im>
parents:
10422
diff
changeset
|
474 | gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(treeview), search_func, NULL, NULL); |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
475 | |
| 10422 | 476 | /* Sort the title column by default */ |
| 477 | gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(dialog->model), | |
| 478 | STATUS_WINDOW_COLUMN_TITLE, | |
| 479 | GTK_SORT_ASCENDING); | |
| 480 | ||
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
481 | /* Populate list */ |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
482 | populate_saved_status_list(dialog); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
483 | |
|
13200
3769f413f073
[gaim-migrate @ 15562]
Mark Doliner <markdoliner@pidgin.im>
parents:
13195
diff
changeset
|
484 | gtk_widget_show_all(sw); |
|
3769f413f073
[gaim-migrate @ 15562]
Mark Doliner <markdoliner@pidgin.im>
parents:
13195
diff
changeset
|
485 | |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
486 | return sw; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
487 | } |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
488 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
489 | static gboolean |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
490 | configure_cb(GtkWidget *widget, GdkEventConfigure *event, StatusWindow *dialog) |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
491 | { |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
492 | if (GTK_WIDGET_VISIBLE(widget)) |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
493 | { |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
494 | gaim_prefs_set_int("/gaim/gtk/status/dialog/width", event->width); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
495 | gaim_prefs_set_int("/gaim/gtk/status/dialog/height", event->height); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
496 | } |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
497 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
498 | return FALSE; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
499 | } |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
500 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
501 | void |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
502 | gaim_gtk_status_window_show(void) |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
503 | { |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
504 | StatusWindow *dialog; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
505 | GtkWidget *bbox; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
506 | GtkWidget *button; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
507 | GtkWidget *list; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
508 | GtkWidget *vbox; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
509 | GtkWidget *win; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
510 | int width, height; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
511 | |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
512 | if (status_window != NULL) |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
513 | { |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
514 | gtk_window_present(GTK_WINDOW(status_window->window)); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
515 | return; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
516 | } |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
517 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
518 | status_window = dialog = g_new0(StatusWindow, 1); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
519 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
520 | width = gaim_prefs_get_int("/gaim/gtk/status/dialog/width"); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
521 | height = gaim_prefs_get_int("/gaim/gtk/status/dialog/height"); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
522 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
523 | dialog->window = win = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
524 | gtk_window_set_default_size(GTK_WINDOW(win), width, height); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
525 | gtk_window_set_role(GTK_WINDOW(win), "statuses"); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
526 | gtk_window_set_title(GTK_WINDOW(win), _("Saved Statuses")); |
| 11243 | 527 | gtk_container_set_border_width(GTK_CONTAINER(win), GAIM_HIG_BORDER); |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
528 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
529 | g_signal_connect(G_OBJECT(win), "delete_event", |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
530 | G_CALLBACK(status_window_destroy_cb), dialog); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
531 | g_signal_connect(G_OBJECT(win), "configure_event", |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
532 | G_CALLBACK(configure_cb), dialog); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
533 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
534 | /* Setup the vbox */ |
| 11243 | 535 | vbox = gtk_vbox_new(FALSE, GAIM_HIG_BORDER); |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
536 | gtk_container_add(GTK_CONTAINER(win), vbox); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
537 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
538 | /* List of saved status states */ |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
539 | list = create_saved_status_list(dialog); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
540 | gtk_box_pack_start(GTK_BOX(vbox), list, TRUE, TRUE, 0); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
541 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
542 | /* Button box. */ |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
543 | bbox = gtk_hbutton_box_new(); |
| 11243 | 544 | gtk_box_set_spacing(GTK_BOX(bbox), GAIM_HIG_BOX_SPACE); |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
545 | gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
546 | gtk_box_pack_end(GTK_BOX(vbox), bbox, FALSE, TRUE, 0); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
547 | |
|
11811
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
548 | /* Use button */ |
|
11832
a9698e56b63b
[gaim-migrate @ 14123]
Mark Doliner <markdoliner@pidgin.im>
parents:
11811
diff
changeset
|
549 | button = gaim_pixbuf_button_from_stock(_("_Use"), GTK_STOCK_EXECUTE, |
|
a9698e56b63b
[gaim-migrate @ 14123]
Mark Doliner <markdoliner@pidgin.im>
parents:
11811
diff
changeset
|
550 | GAIM_BUTTON_HORIZONTAL); |
|
11811
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
551 | dialog->use_button = button; |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
552 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
553 | gtk_widget_set_sensitive(button, FALSE); |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
554 | |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
555 | g_signal_connect(G_OBJECT(button), "clicked", |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
556 | G_CALLBACK(status_window_use_cb), dialog); |
|
62e122478756
[gaim-migrate @ 14102]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11780
diff
changeset
|
557 | |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
558 | /* Add button */ |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
559 | button = gtk_button_new_from_stock(GTK_STOCK_ADD); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
560 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
561 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
562 | g_signal_connect(G_OBJECT(button), "clicked", |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
563 | G_CALLBACK(status_window_add_cb), dialog); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
564 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
565 | /* Modify button */ |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
566 | button = gtk_button_new_from_stock(GAIM_STOCK_MODIFY); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
567 | dialog->modify_button = button; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
568 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
569 | gtk_widget_set_sensitive(button, FALSE); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
570 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
571 | g_signal_connect(G_OBJECT(button), "clicked", |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
572 | G_CALLBACK(status_window_modify_cb), dialog); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
573 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
574 | /* Delete button */ |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
575 | button = gtk_button_new_from_stock(GTK_STOCK_DELETE); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
576 | dialog->delete_button = button; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
577 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
578 | gtk_widget_set_sensitive(button, FALSE); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
579 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
580 | g_signal_connect(G_OBJECT(button), "clicked", |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
581 | G_CALLBACK(status_window_delete_cb), dialog); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
582 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
583 | /* Close button */ |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
584 | button = gtk_button_new_from_stock(GTK_STOCK_CLOSE); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
585 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
586 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
587 | g_signal_connect(G_OBJECT(button), "clicked", |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
588 | G_CALLBACK(status_window_close_cb), dialog); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
589 | |
|
13200
3769f413f073
[gaim-migrate @ 15562]
Mark Doliner <markdoliner@pidgin.im>
parents:
13195
diff
changeset
|
590 | gtk_widget_show_all(win); |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
591 | } |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
592 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
593 | void |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
594 | gaim_gtk_status_window_hide(void) |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
595 | { |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
596 | if (status_window == NULL) |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
597 | return; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
598 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
599 | if (status_window->window != NULL) |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
600 | gtk_widget_destroy(status_window->window); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
601 | |
|
12888
6fedd1f47fe0
[gaim-migrate @ 15241]
Daniel Atallah <datallah@pidgin.im>
parents:
12856
diff
changeset
|
602 | gaim_request_close_with_handle(status_window); |
|
6fedd1f47fe0
[gaim-migrate @ 15241]
Daniel Atallah <datallah@pidgin.im>
parents:
12856
diff
changeset
|
603 | gaim_notify_close_with_handle(status_window); |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
604 | g_free(status_window); |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
605 | status_window = NULL; |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
606 | } |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
607 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
608 | |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
609 | /************************************************************************** |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
610 | * Status editor |
|
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
611 | **************************************************************************/ |
|
10420
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
612 | |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
613 | static void substatus_editor_cancel_cb(GtkButton *button, gpointer user_data); |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
614 | |
| 13145 | 615 | static void |
| 616 | status_editor_remove_dialog(StatusEditor *dialog) | |
| 617 | { | |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
618 | GtkTreeModel *model; |
| 13145 | 619 | GtkTreeIter iter; |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
620 | |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
621 | /* Remove the reference to this dialog from our parent's list store */ |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
622 | if (status_window_find_savedstatus(&iter, dialog->original_title)) |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
623 | { |
| 13145 | 624 | gtk_list_store_set(status_window->model, &iter, |
| 625 | STATUS_WINDOW_COLUMN_WINDOW, NULL, | |
| 626 | -1); | |
| 627 | } | |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
628 | |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
629 | /* Close any substatus editors that may be open */ |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
630 | model = GTK_TREE_MODEL(dialog->model); |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
631 | if (gtk_tree_model_get_iter_first(model, &iter)) |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
632 | { |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
633 | do { |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
634 | SubStatusEditor *substatus_dialog; |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
635 | |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
636 | gtk_tree_model_get(model, &iter, |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
637 | STATUS_EDITOR_COLUMN_WINDOW, &substatus_dialog, |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
638 | -1); |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
639 | if (substatus_dialog != NULL) |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
640 | { |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
641 | gtk_list_store_set(dialog->model, &iter, |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
642 | STATUS_EDITOR_COLUMN_WINDOW, NULL, |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
643 | -1); |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
644 | substatus_editor_cancel_cb(NULL, substatus_dialog); |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
645 | } |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
646 | } while (gtk_tree_model_iter_next(model, &iter)); |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
647 | } |
| 13145 | 648 | } |
| 649 | ||
| 650 | ||
| 10418 | 651 | static gboolean |
| 652 | status_editor_destroy_cb(GtkWidget *widget, GdkEvent *event, gpointer user_data) | |
| 653 | { | |
|
10574
5abb2931b6ff
[gaim-migrate @ 11966]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10535
diff
changeset
|
654 | StatusEditor *dialog = user_data; |
| 10418 | 655 | |
| 13145 | 656 | status_editor_remove_dialog(dialog); |
|
10574
5abb2931b6ff
[gaim-migrate @ 11966]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10535
diff
changeset
|
657 | g_free(dialog->original_title); |
| 10418 | 658 | g_free(dialog); |
| 659 | ||
| 660 | return FALSE; | |
| 661 | } | |
| 662 | ||
| 663 | static void | |
| 664 | status_editor_cancel_cb(GtkButton *button, gpointer user_data) | |
| 665 | { | |
|
10574
5abb2931b6ff
[gaim-migrate @ 11966]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10535
diff
changeset
|
666 | StatusEditor *dialog = user_data; |
| 10418 | 667 | |
| 13145 | 668 | status_editor_remove_dialog(dialog); |
| 10418 | 669 | gtk_widget_destroy(dialog->window); |
|
10574
5abb2931b6ff
[gaim-migrate @ 11966]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10535
diff
changeset
|
670 | g_free(dialog->original_title); |
| 10418 | 671 | g_free(dialog); |
| 672 | } | |
| 673 | ||
| 674 | static void | |
|
12329
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
675 | status_editor_ok_cb(GtkButton *button, gpointer user_data) |
| 10418 | 676 | { |
|
10420
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
677 | StatusEditor *dialog = user_data; |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
678 | const char *title; |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
679 | GaimStatusPrimitive type; |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
680 | char *message, *unformatted; |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
681 | GaimSavedStatus *saved_status = NULL; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
682 | GtkTreeModel *model; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
683 | GtkTreeIter iter; |
|
10420
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
684 | |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
685 | title = gtk_entry_get_text(dialog->title); |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
686 | |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
687 | /* |
|
12329
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
688 | * If we're saving this status, and the title is already taken |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
689 | * then show an error dialog and don't do anything. |
|
10420
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
690 | */ |
|
12329
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
691 | if (((button == dialog->saveanduse_button) || (button == dialog->save_button)) && |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
692 | (gaim_savedstatus_find(title) != NULL) && |
|
10420
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
693 | ((dialog->original_title == NULL) || (strcmp(title, dialog->original_title)))) |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
694 | { |
|
12888
6fedd1f47fe0
[gaim-migrate @ 15241]
Daniel Atallah <datallah@pidgin.im>
parents:
12856
diff
changeset
|
695 | gaim_notify_error(status_window, NULL, _("Title already in use. You must " |
|
10420
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
696 | "choose a unique title."), NULL); |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
697 | return; |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
698 | } |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
699 | |
|
12726
f87db99dc37a
[gaim-migrate @ 15070]
Richard Laager <rlaager@pidgin.im>
parents:
12693
diff
changeset
|
700 | type = gtk_option_menu_get_history(dialog->type) + (GAIM_STATUS_UNSET + 1); |
|
10420
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
701 | message = gtk_imhtml_get_markup(dialog->message); |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
702 | unformatted = gaim_markup_strip_html(message); |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
703 | |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
704 | /* |
|
13176
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
705 | * If we're editing an old status, then lookup the old status. |
|
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
706 | * Note: It is possible that it has been deleted or renamed |
|
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
707 | * or something, and no longer exists. |
|
10420
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
708 | */ |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
709 | if (dialog->original_title != NULL) |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
710 | { |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
711 | GtkTreeIter iter; |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
712 | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
713 | saved_status = gaim_savedstatus_find(dialog->original_title); |
|
10420
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
714 | |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
715 | if (status_window_find_savedstatus(&iter, dialog->original_title)) |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
716 | gtk_list_store_remove(status_window->model, &iter); |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
717 | } |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
718 | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
719 | if (saved_status == NULL) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
720 | { |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
721 | /* This is a new status */ |
|
12329
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
722 | if ((button == dialog->saveanduse_button) |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
723 | || (button == dialog->save_button)) |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
724 | saved_status = gaim_savedstatus_new(title, type); |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
725 | else |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
726 | saved_status = gaim_savedstatus_new(NULL, type); |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
727 | } |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
728 | else |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
729 | { |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
730 | /* Modify the old status */ |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
731 | if (strcmp(title, dialog->original_title)) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
732 | gaim_savedstatus_set_title(saved_status, title); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
733 | gaim_savedstatus_set_type(saved_status, type); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
734 | } |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
735 | |
| 12951 | 736 | if (*unformatted == '\0') |
| 737 | gaim_savedstatus_set_message(saved_status, NULL); | |
| 738 | else | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
739 | gaim_savedstatus_set_message(saved_status, message); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
740 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
741 | /* Set any substatuses */ |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
742 | model = GTK_TREE_MODEL(dialog->model); |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
743 | if (gtk_tree_model_get_iter_first(model, &iter)) |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
744 | { |
| 13145 | 745 | do { |
| 746 | GaimAccount *account; | |
| 747 | gboolean enabled; | |
| 748 | char *id; | |
| 749 | char *message; | |
| 750 | GaimStatusType *type; | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
751 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
752 | gtk_tree_model_get(model, &iter, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
753 | STATUS_EDITOR_COLUMN_ACCOUNT, &account, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
754 | STATUS_EDITOR_COLUMN_ENABLE_SUBSTATUS, &enabled, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
755 | STATUS_EDITOR_COLUMN_STATUS_ID, &id, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
756 | STATUS_EDITOR_COLUMN_STATUS_MESSAGE, &message, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
757 | -1); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
758 | if (enabled) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
759 | { |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
760 | type = gaim_account_get_status_type(account, id); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
761 | gaim_savedstatus_set_substatus(saved_status, account, type, message); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
762 | } |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
763 | g_free(id); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
764 | g_free(message); |
| 13145 | 765 | } while (gtk_tree_model_iter_next(model, &iter)); |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
766 | } |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
767 | |
|
10420
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
768 | g_free(message); |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
769 | g_free(unformatted); |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
770 | |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
771 | status_editor_remove_dialog(dialog); |
|
10420
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
772 | gtk_widget_destroy(dialog->window); |
|
10574
5abb2931b6ff
[gaim-migrate @ 11966]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10535
diff
changeset
|
773 | g_free(dialog->original_title); |
|
10420
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
774 | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
775 | if (status_window != NULL) |
| 12199 | 776 | add_status_to_saved_status_list(status_window->model, saved_status); |
|
12329
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
777 | |
|
13010
2fbe02bcd876
[gaim-migrate @ 15363]
Mark Doliner <markdoliner@pidgin.im>
parents:
12951
diff
changeset
|
778 | /* If they clicked on "Save & Use" or "Use," then activate the status */ |
|
2fbe02bcd876
[gaim-migrate @ 15363]
Mark Doliner <markdoliner@pidgin.im>
parents:
12951
diff
changeset
|
779 | if (button != dialog->save_button) |
|
12329
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
780 | gaim_savedstatus_activate(saved_status); |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
781 | |
|
13173
e9c2d7cd21c6
[gaim-migrate @ 15535]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13145
diff
changeset
|
782 | g_free(dialog); |
|
10420
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
783 | } |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
784 | |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
785 | static void |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
786 | editor_title_changed_cb(GtkWidget *widget, gpointer user_data) |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
787 | { |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
788 | StatusEditor *dialog = user_data; |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
789 | const gchar *text; |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
790 | |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
791 | text = gtk_entry_get_text(dialog->title); |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
792 | |
|
12329
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
793 | gtk_widget_set_sensitive(GTK_WIDGET(dialog->saveanduse_button), (*text != '\0')); |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
794 | gtk_widget_set_sensitive(GTK_WIDGET(dialog->save_button), (*text != '\0')); |
| 10418 | 795 | } |
| 796 | ||
| 797 | static GtkWidget * | |
|
10419
cb6b7316fdba
[gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents:
10418
diff
changeset
|
798 | create_status_type_menu(GaimStatusPrimitive type) |
| 10418 | 799 | { |
|
10419
cb6b7316fdba
[gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents:
10418
diff
changeset
|
800 | int i; |
| 10418 | 801 | GtkWidget *dropdown; |
| 802 | GtkWidget *menu; | |
| 803 | GtkWidget *item; | |
| 804 | ||
| 805 | dropdown = gtk_option_menu_new(); | |
| 806 | menu = gtk_menu_new(); | |
| 807 | ||
|
12693
0dd64b3e9934
[gaim-migrate @ 15036]
Richard Laager <rlaager@pidgin.im>
parents:
12329
diff
changeset
|
808 | for (i = GAIM_STATUS_UNSET + 1; i < GAIM_STATUS_NUM_PRIMITIVES; i++) |
|
10419
cb6b7316fdba
[gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents:
10418
diff
changeset
|
809 | { |
|
cb6b7316fdba
[gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents:
10418
diff
changeset
|
810 | item = gtk_menu_item_new_with_label(gaim_primitive_get_name_from_type(i)); |
|
cb6b7316fdba
[gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents:
10418
diff
changeset
|
811 | gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); |
|
cb6b7316fdba
[gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents:
10418
diff
changeset
|
812 | } |
| 10418 | 813 | |
|
12693
0dd64b3e9934
[gaim-migrate @ 15036]
Richard Laager <rlaager@pidgin.im>
parents:
12329
diff
changeset
|
814 | gtk_menu_set_active(GTK_MENU(menu), type - (GAIM_STATUS_UNSET + 1)); |
| 10418 | 815 | gtk_option_menu_set_menu(GTK_OPTION_MENU(dropdown), menu); |
|
13200
3769f413f073
[gaim-migrate @ 15562]
Mark Doliner <markdoliner@pidgin.im>
parents:
13195
diff
changeset
|
816 | gtk_widget_show_all(menu); |
| 10418 | 817 | |
| 818 | return dropdown; | |
| 819 | } | |
| 820 | ||
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
821 | static void edit_substatus(StatusEditor *status_editor, GaimAccount *account); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
822 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
823 | static void |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
824 | edit_substatus_cb(GtkTreeView *tv, GtkTreePath *path, GtkTreeViewColumn *col, gpointer user_data) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
825 | { |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
826 | StatusEditor *dialog = user_data; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
827 | GtkTreeIter iter; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
828 | GaimAccount *account; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
829 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
830 | gtk_tree_model_get_iter(GTK_TREE_MODEL(dialog->model), &iter, path); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
831 | gtk_tree_model_get(GTK_TREE_MODEL(dialog->model), &iter, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
832 | STATUS_EDITOR_COLUMN_ACCOUNT, &account, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
833 | -1); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
834 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
835 | edit_substatus(dialog, account); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
836 | } |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
837 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
838 | static void |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
839 | status_editor_substatus_cb(GtkCellRendererToggle *renderer, gchar *path_str, gpointer data) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
840 | { |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
841 | StatusEditor *dialog = (StatusEditor *)data; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
842 | GtkTreeIter iter; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
843 | gboolean enabled; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
844 | GaimAccount *account; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
845 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
846 | gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(dialog->model), &iter, path_str); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
847 | gtk_tree_model_get(GTK_TREE_MODEL(dialog->model), &iter, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
848 | STATUS_EDITOR_COLUMN_ACCOUNT, &account, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
849 | STATUS_EDITOR_COLUMN_ENABLE_SUBSTATUS, &enabled, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
850 | -1); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
851 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
852 | enabled = !enabled; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
853 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
854 | if (enabled) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
855 | { |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
856 | edit_substatus(dialog, account); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
857 | } |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
858 | else |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
859 | { |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
860 | /* Remove the substatus */ |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
861 | gtk_list_store_set(dialog->model, &iter, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
862 | STATUS_EDITOR_COLUMN_ENABLE_SUBSTATUS, enabled, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
863 | STATUS_EDITOR_COLUMN_STATUS_ID, NULL, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
864 | STATUS_EDITOR_COLUMN_STATUS_NAME, NULL, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
865 | STATUS_EDITOR_COLUMN_STATUS_MESSAGE, NULL, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
866 | -1); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
867 | } |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
868 | } |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
869 | |
| 10418 | 870 | static void |
| 871 | status_editor_add_columns(StatusEditor *dialog) | |
| 872 | { | |
| 873 | GtkCellRenderer *renderer; | |
| 874 | GtkTreeViewColumn *column; | |
| 875 | ||
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
876 | /* Enable Different status column */ |
| 10418 | 877 | renderer = gtk_cell_renderer_toggle_new(); |
| 878 | gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(dialog->treeview), | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
879 | -1, _("Different"), |
| 10418 | 880 | renderer, |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
881 | "active", STATUS_EDITOR_COLUMN_ENABLE_SUBSTATUS, |
| 10418 | 882 | NULL); |
| 883 | column = gtk_tree_view_get_column(GTK_TREE_VIEW(dialog->treeview), 1); | |
| 884 | g_signal_connect(G_OBJECT(renderer), "toggled", | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
885 | G_CALLBACK(status_editor_substatus_cb), dialog); |
| 10418 | 886 | |
| 887 | /* Screen Name column */ | |
| 888 | column = gtk_tree_view_column_new(); | |
| 889 | gtk_tree_view_column_set_resizable(column, TRUE); | |
| 890 | gtk_tree_view_column_set_title(column, _("Screen Name")); | |
| 891 | gtk_tree_view_insert_column(GTK_TREE_VIEW(dialog->treeview), column, -1); | |
| 892 | gtk_tree_view_column_set_resizable(column, TRUE); | |
| 893 | ||
| 894 | /* Icon */ | |
| 895 | renderer = gtk_cell_renderer_pixbuf_new(); | |
| 896 | gtk_tree_view_column_pack_start(column, renderer, FALSE); | |
| 897 | gtk_tree_view_column_add_attribute(column, renderer, "pixbuf", | |
| 898 | STATUS_EDITOR_COLUMN_ICON); | |
| 899 | ||
| 900 | /* Screen Name */ | |
| 901 | renderer = gtk_cell_renderer_text_new(); | |
| 902 | gtk_tree_view_column_pack_start(column, renderer, TRUE); | |
| 903 | gtk_tree_view_column_add_attribute(column, renderer, "text", | |
| 904 | STATUS_EDITOR_COLUMN_SCREENNAME); | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
905 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
906 | /* Status column */ |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
907 | column = gtk_tree_view_column_new(); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
908 | gtk_tree_view_column_set_resizable(column, TRUE); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
909 | gtk_tree_view_column_set_title(column, _("Status")); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
910 | gtk_tree_view_insert_column(GTK_TREE_VIEW(dialog->treeview), column, -1); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
911 | gtk_tree_view_column_set_resizable(column, TRUE); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
912 | renderer = gtk_cell_renderer_text_new(); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
913 | gtk_tree_view_column_pack_start(column, renderer, TRUE); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
914 | gtk_tree_view_column_add_attribute(column, renderer, "text", |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
915 | STATUS_EDITOR_COLUMN_STATUS_NAME); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
916 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
917 | /* Message column */ |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
918 | column = gtk_tree_view_column_new(); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
919 | gtk_tree_view_column_set_resizable(column, TRUE); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
920 | gtk_tree_view_column_set_title(column, _("Message")); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
921 | gtk_tree_view_insert_column(GTK_TREE_VIEW(dialog->treeview), column, -1); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
922 | gtk_tree_view_column_set_resizable(column, TRUE); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
923 | renderer = gtk_cell_renderer_text_new(); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
924 | gtk_tree_view_column_pack_start(column, renderer, TRUE); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
925 | gtk_tree_view_column_add_attribute(column, renderer, "text", |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
926 | STATUS_EDITOR_COLUMN_STATUS_MESSAGE); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
927 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
928 | g_signal_connect(G_OBJECT(dialog->treeview), "row-activated", |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
929 | G_CALLBACK(edit_substatus_cb), dialog); |
| 10418 | 930 | } |
| 931 | ||
| 932 | static void | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
933 | status_editor_set_account(GtkListStore *store, GaimAccount *account, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
934 | GtkTreeIter *iter, GaimSavedStatusSub *substatus) |
| 10418 | 935 | { |
| 936 | GdkPixbuf *pixbuf; | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
937 | const char *id = NULL, *name = NULL, *message = NULL; |
| 10418 | 938 | |
|
13091
b5ed878998dd
[gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents:
13014
diff
changeset
|
939 | pixbuf = gaim_gtk_create_prpl_icon(account, 0.5); |
|
b5ed878998dd
[gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents:
13014
diff
changeset
|
940 | if ((pixbuf != NULL) && !gaim_account_is_connected(account)) |
| 10418 | 941 | { |
|
13091
b5ed878998dd
[gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents:
13014
diff
changeset
|
942 | gdk_pixbuf_saturate_and_pixelate(pixbuf, pixbuf, 0.0, FALSE); |
| 10418 | 943 | } |
| 944 | ||
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
945 | if (substatus != NULL) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
946 | { |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
947 | const GaimStatusType *type; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
948 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
949 | type = gaim_savedstatus_substatus_get_type(substatus); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
950 | id = gaim_status_type_get_id(type); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
951 | name = gaim_status_type_get_name(type); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
952 | if (gaim_status_type_get_attr(type, "message")) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
953 | message = gaim_savedstatus_substatus_get_message(substatus); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
954 | } |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
955 | |
| 10418 | 956 | gtk_list_store_set(store, iter, |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
957 | STATUS_EDITOR_COLUMN_ACCOUNT, account, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
958 | STATUS_EDITOR_COLUMN_ENABLE_SUBSTATUS, (substatus != NULL), |
|
13091
b5ed878998dd
[gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents:
13014
diff
changeset
|
959 | STATUS_EDITOR_COLUMN_ICON, pixbuf, |
| 10418 | 960 | STATUS_EDITOR_COLUMN_SCREENNAME, gaim_account_get_username(account), |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
961 | STATUS_EDITOR_COLUMN_STATUS_ID, id, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
962 | STATUS_EDITOR_COLUMN_STATUS_NAME, name, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
963 | STATUS_EDITOR_COLUMN_STATUS_MESSAGE, message, |
| 10418 | 964 | -1); |
| 965 | ||
|
13091
b5ed878998dd
[gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents:
13014
diff
changeset
|
966 | if (pixbuf != NULL) |
|
b5ed878998dd
[gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents:
13014
diff
changeset
|
967 | g_object_unref(G_OBJECT(pixbuf)); |
| 10418 | 968 | } |
| 969 | ||
| 970 | static void | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
971 | status_editor_add_account(StatusEditor *dialog, GaimAccount *account, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
972 | GaimSavedStatusSub *substatus) |
| 10418 | 973 | { |
| 974 | GtkTreeIter iter; | |
| 975 | ||
| 976 | gtk_list_store_append(dialog->model, &iter); | |
| 977 | ||
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
978 | status_editor_set_account(dialog->model, account, &iter, substatus); |
| 10418 | 979 | } |
| 980 | ||
| 981 | static void | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
982 | status_editor_populate_list(StatusEditor *dialog, GaimSavedStatus *saved_status) |
| 10418 | 983 | { |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
984 | GList *iter; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
985 | GaimSavedStatusSub *substatus; |
| 10418 | 986 | |
| 987 | gtk_list_store_clear(dialog->model); | |
| 988 | ||
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
989 | for (iter = gaim_accounts_get_all(); iter != NULL; iter = iter->next) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
990 | { |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
991 | GaimAccount *account = (GaimAccount *)iter->data; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
992 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
993 | if (saved_status != NULL) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
994 | substatus = gaim_savedstatus_get_substatus(saved_status, account); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
995 | else |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
996 | substatus = NULL; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
997 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
998 | status_editor_add_account(dialog, account, substatus); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
999 | } |
| 10418 | 1000 | } |
| 1001 | ||
| 1002 | void | |
|
13176
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
1003 | gaim_gtk_status_editor_show(gboolean edit, GaimSavedStatus *saved_status) |
| 10418 | 1004 | { |
| 13145 | 1005 | GtkTreeIter iter; |
| 10418 | 1006 | StatusEditor *dialog; |
| 1007 | GtkSizeGroup *sg; | |
| 1008 | GtkWidget *bbox; | |
| 1009 | GtkWidget *button; | |
| 1010 | GtkWidget *dbox; | |
|
11735
a1d2afa9b4e9
[gaim-migrate @ 14026]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
1011 | GtkWidget *expander; |
| 10418 | 1012 | GtkWidget *dropdown; |
| 1013 | GtkWidget *entry; | |
| 1014 | GtkWidget *frame; | |
| 1015 | GtkWidget *hbox; | |
| 1016 | GtkWidget *label; | |
| 1017 | GtkWidget *sw; | |
| 1018 | GtkWidget *text; | |
| 1019 | GtkWidget *toolbar; | |
| 1020 | GtkWidget *vbox; | |
| 1021 | GtkWidget *win; | |
| 13142 | 1022 | GList *focus_chain = NULL; |
| 10418 | 1023 | |
|
13176
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
1024 | if (edit) |
|
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
1025 | { |
|
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
1026 | g_return_if_fail(saved_status != NULL); |
|
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
1027 | g_return_if_fail(!gaim_savedstatus_is_transient(saved_status)); |
|
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
1028 | } |
|
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
1029 | |
| 13145 | 1030 | /* Find a possible window for this saved status and present it */ |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
1031 | if (edit && status_window_find_savedstatus(&iter, gaim_savedstatus_get_title(saved_status))) |
|
13176
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
1032 | { |
|
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
1033 | gtk_tree_model_get(GTK_TREE_MODEL(status_window->model), &iter, |
|
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
1034 | STATUS_WINDOW_COLUMN_WINDOW, &dialog, |
|
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
1035 | -1); |
|
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
1036 | if (dialog != NULL) |
|
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
1037 | { |
|
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
1038 | gtk_window_present(GTK_WINDOW(dialog->window)); |
|
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
1039 | return; |
| 13145 | 1040 | } |
| 1041 | } | |
| 1042 | ||
| 10418 | 1043 | dialog = g_new0(StatusEditor, 1); |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
1044 | if (edit && status_window_find_savedstatus(&iter, gaim_savedstatus_get_title(saved_status))) |
|
13176
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
1045 | { |
| 13145 | 1046 | gtk_list_store_set(status_window->model, &iter, |
| 1047 | STATUS_WINDOW_COLUMN_WINDOW, dialog, | |
| 1048 | -1); | |
|
13176
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
1049 | } |
| 10418 | 1050 | |
|
13176
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
1051 | if (edit) |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1052 | dialog->original_title = g_strdup(gaim_savedstatus_get_title(saved_status)); |
|
10420
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
1053 | |
| 10418 | 1054 | dialog->window = win = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
| 1055 | gtk_window_set_role(GTK_WINDOW(win), "status"); | |
| 1056 | gtk_window_set_title(GTK_WINDOW(win), _("Status")); | |
| 1057 | gtk_window_set_resizable(GTK_WINDOW(win), FALSE); | |
| 11243 | 1058 | gtk_container_set_border_width(GTK_CONTAINER(win), GAIM_HIG_BORDER); |
| 10418 | 1059 | |
| 1060 | g_signal_connect(G_OBJECT(win), "delete_event", | |
| 1061 | G_CALLBACK(status_editor_destroy_cb), dialog); | |
| 1062 | ||
| 1063 | /* Setup the vbox */ | |
| 11243 | 1064 | vbox = gtk_vbox_new(FALSE, GAIM_HIG_BORDER); |
| 10418 | 1065 | gtk_container_add(GTK_CONTAINER(win), vbox); |
| 1066 | ||
| 1067 | sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
| 1068 | ||
| 1069 | /* Title */ | |
| 11243 | 1070 | hbox = gtk_hbox_new(FALSE, GAIM_HIG_BOX_SPACE); |
| 10418 | 1071 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 1072 | ||
| 1073 | label = gtk_label_new_with_mnemonic(_("_Title:")); | |
| 1074 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
| 1075 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 1076 | gtk_size_group_add_widget(sg, label); | |
| 1077 | ||
| 1078 | entry = gtk_entry_new(); | |
|
10420
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
1079 | dialog->title = GTK_ENTRY(entry); |
|
13176
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
1080 | if ((saved_status != NULL) |
|
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
1081 | && !gaim_savedstatus_is_transient(saved_status) |
|
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
1082 | && (gaim_savedstatus_get_title(saved_status) != NULL)) |
|
df549de66219
[gaim-migrate @ 15538]
Mark Doliner <markdoliner@pidgin.im>
parents:
13174
diff
changeset
|
1083 | gtk_entry_set_text(GTK_ENTRY(entry), gaim_savedstatus_get_title(saved_status)); |
| 10418 | 1084 | gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 0); |
|
10420
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
1085 | g_signal_connect(G_OBJECT(entry), "changed", |
|
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
1086 | G_CALLBACK(editor_title_changed_cb), dialog); |
| 10418 | 1087 | |
| 1088 | /* Status type */ | |
| 11243 | 1089 | hbox = gtk_hbox_new(FALSE, GAIM_HIG_BOX_SPACE); |
| 10418 | 1090 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 1091 | ||
| 1092 | label = gtk_label_new_with_mnemonic(_("_Status:")); | |
| 1093 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
| 1094 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 1095 | gtk_size_group_add_widget(sg, label); | |
| 1096 | ||
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1097 | if (saved_status != NULL) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1098 | dropdown = create_status_type_menu(gaim_savedstatus_get_type(saved_status)); |
|
10419
cb6b7316fdba
[gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents:
10418
diff
changeset
|
1099 | else |
|
cb6b7316fdba
[gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents:
10418
diff
changeset
|
1100 | dropdown = create_status_type_menu(GAIM_STATUS_AWAY); |
|
10420
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
1101 | dialog->type = GTK_OPTION_MENU(dropdown); |
| 10418 | 1102 | gtk_box_pack_start(GTK_BOX(hbox), dropdown, TRUE, TRUE, 0); |
| 1103 | ||
| 1104 | /* Status message */ | |
| 11243 | 1105 | hbox = gtk_hbox_new(FALSE, GAIM_HIG_BOX_SPACE); |
| 10418 | 1106 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 1107 | ||
| 1108 | label = gtk_label_new_with_mnemonic(_("_Message:")); | |
| 1109 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | |
| 1110 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 1111 | gtk_size_group_add_widget(sg, label); | |
| 1112 | ||
|
13281
3558cb15ebb9
[gaim-migrate @ 15646]
Richard Laager <rlaager@pidgin.im>
parents:
13200
diff
changeset
|
1113 | frame = gaim_gtk_create_imhtml(TRUE, &text, &toolbar, NULL); |
|
10420
7277ae4229e9
[gaim-migrate @ 11671]
Mark Doliner <markdoliner@pidgin.im>
parents:
10419
diff
changeset
|
1114 | dialog->message = GTK_IMHTML(text); |
| 10418 | 1115 | gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0); |
| 13142 | 1116 | focus_chain = g_list_prepend(focus_chain, dialog->message); |
| 1117 | gtk_container_set_focus_chain(GTK_CONTAINER(hbox), focus_chain); | |
| 10418 | 1118 | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1119 | if ((saved_status != NULL) && (gaim_savedstatus_get_message(saved_status) != NULL)) |
|
10419
cb6b7316fdba
[gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents:
10418
diff
changeset
|
1120 | gtk_imhtml_append_text(GTK_IMHTML(text), |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1121 | gaim_savedstatus_get_message(saved_status), 0); |
|
10419
cb6b7316fdba
[gaim-migrate @ 11670]
Mark Doliner <markdoliner@pidgin.im>
parents:
10418
diff
changeset
|
1122 | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1123 | /* Different status message expander */ |
|
11735
a1d2afa9b4e9
[gaim-migrate @ 14026]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
1124 | expander = gtk_expander_new_with_mnemonic(_("Use a _different status for some accounts")); |
|
a1d2afa9b4e9
[gaim-migrate @ 14026]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
1125 | gtk_box_pack_start(GTK_BOX(vbox), expander, FALSE, FALSE, 0); |
| 10418 | 1126 | |
|
11735
a1d2afa9b4e9
[gaim-migrate @ 14026]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
1127 | /* Setup the box that the expander will cover */ |
| 11243 | 1128 | dbox = gtk_vbox_new(FALSE, GAIM_HIG_CAT_SPACE); |
|
11735
a1d2afa9b4e9
[gaim-migrate @ 14026]
Mark Doliner <markdoliner@pidgin.im>
parents:
11651
diff
changeset
|
1129 | gtk_container_add(GTK_CONTAINER(expander), dbox); |
| 10418 | 1130 | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1131 | /* Different status message treeview */ |
| 10418 | 1132 | sw = gtk_scrolled_window_new(NULL, NULL); |
| 1133 | gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), | |
| 1134 | GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); | |
| 1135 | gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), | |
| 1136 | GTK_SHADOW_IN); | |
| 1137 | gtk_box_pack_start(GTK_BOX(dbox), sw, TRUE, TRUE, 0); | |
| 1138 | ||
| 1139 | /* Create the list model */ | |
| 1140 | dialog->model = gtk_list_store_new(STATUS_EDITOR_NUM_COLUMNS, | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1141 | G_TYPE_POINTER, |
| 13145 | 1142 | G_TYPE_POINTER, |
| 10418 | 1143 | G_TYPE_BOOLEAN, |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1144 | GDK_TYPE_PIXBUF, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1145 | G_TYPE_STRING, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1146 | G_TYPE_STRING, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1147 | G_TYPE_STRING, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1148 | G_TYPE_STRING); |
| 10418 | 1149 | |
| 1150 | /* Create the treeview */ | |
| 1151 | dialog->treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(dialog->model)); | |
| 1152 | gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(dialog->treeview), TRUE); | |
| 1153 | gtk_widget_set_size_request(dialog->treeview, 400, 250); | |
| 1154 | gtk_container_add(GTK_CONTAINER(sw), dialog->treeview); | |
| 1155 | ||
| 1156 | /* Add columns */ | |
| 1157 | status_editor_add_columns(dialog); | |
| 1158 | ||
| 1159 | /* Populate list */ | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1160 | status_editor_populate_list(dialog, saved_status); |
| 10418 | 1161 | |
|
13194
61b4e7bfc328
[gaim-migrate @ 15556]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13179
diff
changeset
|
1162 | /* Expand the treeview if we have substatuses */ |
|
61b4e7bfc328
[gaim-migrate @ 15556]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13179
diff
changeset
|
1163 | gtk_expander_set_expanded(GTK_EXPANDER(expander), |
|
61b4e7bfc328
[gaim-migrate @ 15556]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13179
diff
changeset
|
1164 | (saved_status != NULL) && gaim_savedstatus_has_substatuses(saved_status)); |
|
61b4e7bfc328
[gaim-migrate @ 15556]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13179
diff
changeset
|
1165 | |
| 10418 | 1166 | /* Button box */ |
| 1167 | bbox = gtk_hbutton_box_new(); | |
| 11243 | 1168 | gtk_box_set_spacing(GTK_BOX(bbox), GAIM_HIG_BOX_SPACE); |
| 10418 | 1169 | gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); |
| 1170 | gtk_box_pack_end(GTK_BOX(vbox), bbox, FALSE, TRUE, 0); | |
| 1171 | ||
| 1172 | /* Cancel button */ | |
| 1173 | button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); | |
| 1174 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); | |
| 1175 | ||
| 1176 | g_signal_connect(G_OBJECT(button), "clicked", | |
| 1177 | G_CALLBACK(status_editor_cancel_cb), dialog); | |
| 1178 | ||
|
12329
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1179 | /* Use button */ |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1180 | button = gaim_pixbuf_button_from_stock(_("_Use"), GTK_STOCK_EXECUTE, |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1181 | GAIM_BUTTON_HORIZONTAL); |
| 10418 | 1182 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
|
12329
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1183 | |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1184 | g_signal_connect(G_OBJECT(button), "clicked", |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1185 | G_CALLBACK(status_editor_ok_cb), dialog); |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1186 | |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1187 | /* Save & Use button */ |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1188 | button = gaim_pixbuf_button_from_stock(_("Sa_ve & Use"), GTK_STOCK_OK, |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1189 | GAIM_BUTTON_HORIZONTAL); |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1190 | dialog->saveanduse_button = GTK_BUTTON(button); |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1191 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1192 | if (dialog->original_title == NULL) |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1193 | gtk_widget_set_sensitive(button, FALSE); |
| 10418 | 1194 | |
| 1195 | g_signal_connect(G_OBJECT(button), "clicked", | |
|
12329
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1196 | G_CALLBACK(status_editor_ok_cb), dialog); |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1197 | |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1198 | /* Save button */ |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1199 | button = gtk_button_new_from_stock(GTK_STOCK_SAVE); |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1200 | dialog->save_button = GTK_BUTTON(button); |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1201 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1202 | if (dialog->original_title == NULL) |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1203 | gtk_widget_set_sensitive(button, FALSE); |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1204 | |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1205 | g_signal_connect(G_OBJECT(button), "clicked", |
|
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1206 | G_CALLBACK(status_editor_ok_cb), dialog); |
| 10418 | 1207 | |
|
13200
3769f413f073
[gaim-migrate @ 15562]
Mark Doliner <markdoliner@pidgin.im>
parents:
13195
diff
changeset
|
1208 | gtk_widget_show_all(win); |
| 10418 | 1209 | } |
| 1210 | ||
| 1211 | ||
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
1212 | /************************************************************************** |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1213 | * SubStatus editor |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1214 | **************************************************************************/ |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1215 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1216 | static void |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1217 | substatus_selection_changed_cb(GtkComboBox *box, gpointer user_data) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1218 | { |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1219 | SubStatusEditor *select = user_data; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1220 | GtkTreeIter iter; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1221 | char *id; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1222 | GaimStatusType *type; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1223 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1224 | if (!gtk_combo_box_get_active_iter(box, &iter)) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1225 | return; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1226 | gtk_tree_model_get(GTK_TREE_MODEL(select->model), &iter, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1227 | SUBSTATUS_COLUMN_STATUS_ID, &id, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1228 | -1); |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
1229 | type = gaim_account_get_status_type(select->account, id); |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1230 | g_free(id); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1231 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1232 | if (gaim_status_type_get_attr(type, "message") == NULL) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1233 | { |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1234 | gtk_widget_set_sensitive(GTK_WIDGET(select->message), FALSE); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1235 | gtk_widget_set_sensitive(GTK_WIDGET(select->toolbar), FALSE); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1236 | } |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1237 | else |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1238 | { |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1239 | gtk_widget_set_sensitive(GTK_WIDGET(select->message), TRUE); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1240 | gtk_widget_set_sensitive(GTK_WIDGET(select->toolbar), TRUE); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1241 | } |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1242 | } |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1243 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1244 | static gboolean |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1245 | status_editor_find_account_in_treemodel(GtkTreeIter *iter, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1246 | StatusEditor *status_editor, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1247 | GaimAccount *account) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1248 | { |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1249 | GtkTreeModel *model; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1250 | GaimAccount *cur; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1251 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1252 | g_return_val_if_fail(status_editor != NULL, FALSE); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1253 | g_return_val_if_fail(account != NULL, FALSE); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1254 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1255 | model = GTK_TREE_MODEL(status_editor->model); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1256 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1257 | if (!gtk_tree_model_get_iter_first(model, iter)) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1258 | return FALSE; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1259 | |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
1260 | do { |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1261 | gtk_tree_model_get(model, iter, STATUS_EDITOR_COLUMN_ACCOUNT, &cur, -1); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1262 | if (cur == account) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1263 | return TRUE; |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
1264 | } while (gtk_tree_model_iter_next(model, iter)); |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1265 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1266 | return FALSE; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1267 | } |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1268 | |
|
12246
7af1ef3b1cc4
[gaim-migrate @ 14548]
Mark Doliner <markdoliner@pidgin.im>
parents:
12238
diff
changeset
|
1269 | static void |
| 13145 | 1270 | substatus_editor_remove_dialog(SubStatusEditor *dialog) |
| 1271 | { | |
| 1272 | GtkTreeIter iter; | |
| 1273 | ||
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
1274 | if (status_editor_find_account_in_treemodel(&iter, dialog->status_editor, dialog->account)) |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
1275 | { |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
1276 | /* Remove the reference to this dialog from our parent's list store */ |
| 13145 | 1277 | gtk_list_store_set(dialog->status_editor->model, &iter, |
| 1278 | STATUS_EDITOR_COLUMN_WINDOW, NULL, | |
| 1279 | -1); | |
| 1280 | } | |
| 1281 | } | |
| 1282 | ||
| 1283 | static gboolean | |
| 1284 | substatus_editor_destroy_cb(GtkWidget *widget, GdkEvent *event, gpointer user_data) | |
| 1285 | { | |
| 1286 | SubStatusEditor *dialog = user_data; | |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
1287 | |
| 13145 | 1288 | substatus_editor_remove_dialog(dialog); |
| 1289 | g_free(dialog); | |
| 1290 | ||
| 1291 | return FALSE; | |
| 1292 | } | |
| 1293 | ||
| 1294 | static void | |
| 1295 | substatus_editor_cancel_cb(GtkButton *button, gpointer user_data) | |
| 1296 | { | |
| 1297 | SubStatusEditor *dialog = user_data; | |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
1298 | |
| 13145 | 1299 | substatus_editor_remove_dialog(dialog); |
| 1300 | gtk_widget_destroy(dialog->window); | |
| 1301 | g_free(dialog); | |
| 1302 | } | |
| 1303 | ||
| 1304 | ||
| 1305 | static void | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1306 | substatus_editor_ok_cb(GtkButton *button, gpointer user_data) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1307 | { |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1308 | SubStatusEditor *dialog = user_data; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1309 | StatusEditor *status_editor; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1310 | GtkTreeIter iter; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1311 | GaimStatusType *type; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1312 | char *id = NULL; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1313 | char *message = NULL; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1314 | const char *name = NULL; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1315 | |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
1316 | if (!gtk_combo_box_get_active_iter(dialog->box, &iter)) |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
1317 | { |
|
12856
3615684c6f1a
[gaim-migrate @ 15207]
Daniel Atallah <datallah@pidgin.im>
parents:
12823
diff
changeset
|
1318 | gtk_widget_destroy(dialog->window); |
|
3615684c6f1a
[gaim-migrate @ 15207]
Daniel Atallah <datallah@pidgin.im>
parents:
12823
diff
changeset
|
1319 | g_free(dialog); |
|
3615684c6f1a
[gaim-migrate @ 15207]
Daniel Atallah <datallah@pidgin.im>
parents:
12823
diff
changeset
|
1320 | return; |
|
3615684c6f1a
[gaim-migrate @ 15207]
Daniel Atallah <datallah@pidgin.im>
parents:
12823
diff
changeset
|
1321 | } |
|
3615684c6f1a
[gaim-migrate @ 15207]
Daniel Atallah <datallah@pidgin.im>
parents:
12823
diff
changeset
|
1322 | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1323 | gtk_tree_model_get(GTK_TREE_MODEL(dialog->model), &iter, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1324 | SUBSTATUS_COLUMN_STATUS_ID, &id, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1325 | -1); |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
1326 | type = gaim_account_get_status_type(dialog->account, id); |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1327 | if (gaim_status_type_get_attr(type, "message") != NULL) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1328 | message = gtk_imhtml_get_text(GTK_IMHTML(dialog->message), NULL, NULL); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1329 | name = gaim_status_type_get_name(type); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1330 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1331 | status_editor = dialog->status_editor; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1332 | |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
1333 | if (status_editor_find_account_in_treemodel(&iter, status_editor, dialog->account)) |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1334 | { |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1335 | gtk_list_store_set(status_editor->model, &iter, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1336 | STATUS_EDITOR_COLUMN_ENABLE_SUBSTATUS, TRUE, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1337 | STATUS_EDITOR_COLUMN_STATUS_ID, id, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1338 | STATUS_EDITOR_COLUMN_STATUS_NAME, name, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1339 | STATUS_EDITOR_COLUMN_STATUS_MESSAGE, message, |
| 13145 | 1340 | STATUS_EDITOR_COLUMN_WINDOW, NULL, |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1341 | -1); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1342 | } |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1343 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1344 | gtk_widget_destroy(dialog->window); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1345 | g_free(id); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1346 | g_free(message); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1347 | g_free(dialog); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1348 | } |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1349 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1350 | static void |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1351 | edit_substatus(StatusEditor *status_editor, GaimAccount *account) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1352 | { |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1353 | char *tmp; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1354 | SubStatusEditor *dialog; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1355 | GtkSizeGroup *sg; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1356 | GtkWidget *bbox; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1357 | GtkWidget *button; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1358 | GtkWidget *combo; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1359 | GtkWidget *hbox; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1360 | GtkWidget *frame; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1361 | GtkWidget *label; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1362 | GtkWidget *text; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1363 | GtkWidget *toolbar; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1364 | GtkWidget *vbox; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1365 | GtkWidget *win; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1366 | GtkTreeIter iter; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1367 | GtkCellRenderer *rend; |
|
13195
628d1077a0ba
[gaim-migrate @ 15557]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13194
diff
changeset
|
1368 | const char *status_id = NULL; |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1369 | const GList *list; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1370 | gboolean select = FALSE; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1371 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1372 | g_return_if_fail(status_editor != NULL); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1373 | g_return_if_fail(account != NULL); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1374 | |
| 13145 | 1375 | status_editor_find_account_in_treemodel(&iter, status_editor, account); |
| 1376 | gtk_tree_model_get(GTK_TREE_MODEL(status_editor->model), &iter, | |
| 1377 | STATUS_EDITOR_COLUMN_WINDOW, &dialog, | |
| 1378 | -1); | |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
1379 | if (dialog != NULL) |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
1380 | { |
| 13145 | 1381 | gtk_window_present(GTK_WINDOW(dialog->window)); |
| 1382 | return; | |
| 1383 | } | |
| 1384 | ||
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1385 | dialog = g_new0(SubStatusEditor, 1); |
| 13145 | 1386 | gtk_list_store_set(status_editor->model, &iter, |
| 1387 | STATUS_EDITOR_COLUMN_WINDOW, dialog, | |
| 1388 | -1); | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1389 | dialog->status_editor = status_editor; |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
1390 | dialog->account = account; |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1391 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1392 | dialog->window = win = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1393 | gtk_window_set_role(GTK_WINDOW(win), "substatus"); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1394 | tmp = g_strdup_printf(_("Status for %s"), gaim_account_get_username(account)); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1395 | gtk_window_set_title(GTK_WINDOW(win), tmp); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1396 | g_free(tmp); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1397 | gtk_window_set_resizable(GTK_WINDOW(win), FALSE); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1398 | gtk_container_set_border_width(GTK_CONTAINER(win), GAIM_HIG_BORDER); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1399 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1400 | g_signal_connect(G_OBJECT(win), "delete_event", |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1401 | G_CALLBACK(substatus_editor_destroy_cb), dialog); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1402 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1403 | /* Setup the vbox */ |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1404 | vbox = gtk_vbox_new(FALSE, GAIM_HIG_BORDER); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1405 | gtk_container_add(GTK_CONTAINER(win), vbox); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1406 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1407 | sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1408 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1409 | /* Status type */ |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1410 | hbox = gtk_hbox_new(FALSE, GAIM_HIG_BOX_SPACE); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1411 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1412 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1413 | label = gtk_label_new_with_mnemonic(_("_Status:")); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1414 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1415 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1416 | gtk_size_group_add_widget(sg, label); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1417 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1418 | dialog->model = gtk_list_store_new(SUBSTATUS_NUM_COLUMNS, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1419 | GDK_TYPE_PIXBUF, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1420 | G_TYPE_STRING, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1421 | G_TYPE_STRING); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1422 | combo = gtk_combo_box_new_with_model(GTK_TREE_MODEL(dialog->model)); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1423 | dialog->box = GTK_COMBO_BOX(combo); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1424 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1425 | rend = GTK_CELL_RENDERER(gtk_cell_renderer_pixbuf_new()); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1426 | gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), rend, FALSE); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1427 | gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), rend, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1428 | "pixbuf", SUBSTATUS_COLUMN_ICON, NULL); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1429 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1430 | rend = GTK_CELL_RENDERER(gtk_cell_renderer_text_new()); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1431 | gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), rend, TRUE); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1432 | gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), rend, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1433 | "text", SUBSTATUS_COLUMN_STATUS_NAME, NULL); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1434 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1435 | g_signal_connect(G_OBJECT(combo), "changed", |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1436 | G_CALLBACK(substatus_selection_changed_cb), dialog); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1437 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1438 | gtk_box_pack_start(GTK_BOX(hbox), combo, FALSE, FALSE, 0); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1439 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1440 | /* Status mesage */ |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1441 | hbox = gtk_hbox_new(FALSE, GAIM_HIG_BOX_SPACE); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1442 | gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1443 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1444 | label = gtk_label_new_with_mnemonic(_("_Message:")); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1445 | gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1446 | gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1447 | gtk_size_group_add_widget(sg, label); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1448 | |
|
13281
3558cb15ebb9
[gaim-migrate @ 15646]
Richard Laager <rlaager@pidgin.im>
parents:
13200
diff
changeset
|
1449 | frame = gaim_gtk_create_imhtml(TRUE, &text, &toolbar, NULL); |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1450 | dialog->message = GTK_IMHTML(text); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1451 | dialog->toolbar = GTK_IMHTMLTOOLBAR(toolbar); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1452 | gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, 0); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1453 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1454 | /* Button box */ |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1455 | bbox = gtk_hbutton_box_new(); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1456 | gtk_box_set_spacing(GTK_BOX(bbox), GAIM_HIG_BOX_SPACE); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1457 | gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1458 | gtk_box_pack_end(GTK_BOX(vbox), bbox, FALSE, TRUE, 0); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1459 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1460 | /* Cancel button */ |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1461 | button = gtk_button_new_from_stock(GTK_STOCK_CANCEL); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1462 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1463 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1464 | g_signal_connect(G_OBJECT(button), "clicked", |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1465 | G_CALLBACK(substatus_editor_cancel_cb), dialog); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1466 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1467 | /* OK button */ |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1468 | button = gtk_button_new_from_stock(GTK_STOCK_OK); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1469 | gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1470 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1471 | g_signal_connect(G_OBJECT(button), "clicked", |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1472 | G_CALLBACK(substatus_editor_ok_cb), dialog); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1473 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1474 | /* Seed the input widgets with the current values */ |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1475 | /* TODO: Get the current values from our parent's list store, not the saved_status! */ |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1476 | if (status_editor->original_title != NULL) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1477 | { |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1478 | GaimSavedStatus *saved_status = NULL; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1479 | GaimSavedStatusSub *substatus = NULL; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1480 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1481 | saved_status = gaim_savedstatus_find(status_editor->original_title); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1482 | if (saved_status != NULL) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1483 | substatus = gaim_savedstatus_get_substatus(saved_status, account); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1484 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1485 | if (substatus != NULL) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1486 | { |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1487 | gtk_imhtml_append_text(dialog->message, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1488 | gaim_savedstatus_substatus_get_message(substatus), |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1489 | 0); |
|
13195
628d1077a0ba
[gaim-migrate @ 15557]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13194
diff
changeset
|
1490 | status_id = gaim_status_type_get_id(gaim_savedstatus_substatus_get_type(substatus)); |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1491 | } |
|
13195
628d1077a0ba
[gaim-migrate @ 15557]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13194
diff
changeset
|
1492 | /* TODO: Else get the generic status type from our parent */ |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1493 | } |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1494 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1495 | for (list = gaim_account_get_status_types(account); list; list = list->next) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1496 | { |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1497 | GaimStatusType *status_type; |
|
13091
b5ed878998dd
[gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents:
13014
diff
changeset
|
1498 | GdkPixbuf *pixbuf; |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1499 | const char *id, *name; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1500 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1501 | status_type = list->data; |
|
13010
2fbe02bcd876
[gaim-migrate @ 15363]
Mark Doliner <markdoliner@pidgin.im>
parents:
12951
diff
changeset
|
1502 | |
|
2fbe02bcd876
[gaim-migrate @ 15363]
Mark Doliner <markdoliner@pidgin.im>
parents:
12951
diff
changeset
|
1503 | /* Only allow users to select statuses that are flagged as "user settable" */ |
|
2fbe02bcd876
[gaim-migrate @ 15363]
Mark Doliner <markdoliner@pidgin.im>
parents:
12951
diff
changeset
|
1504 | if (!gaim_status_type_is_user_settable(status_type)) |
|
2fbe02bcd876
[gaim-migrate @ 15363]
Mark Doliner <markdoliner@pidgin.im>
parents:
12951
diff
changeset
|
1505 | continue; |
|
2fbe02bcd876
[gaim-migrate @ 15363]
Mark Doliner <markdoliner@pidgin.im>
parents:
12951
diff
changeset
|
1506 | |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1507 | id = gaim_status_type_get_id(status_type); |
|
13091
b5ed878998dd
[gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents:
13014
diff
changeset
|
1508 | pixbuf = gaim_gtk_create_prpl_icon_with_status(account, status_type, 0.5); |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1509 | name = gaim_status_type_get_name(status_type); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1510 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1511 | gtk_list_store_append(dialog->model, &iter); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1512 | gtk_list_store_set(dialog->model, &iter, |
|
13091
b5ed878998dd
[gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents:
13014
diff
changeset
|
1513 | SUBSTATUS_COLUMN_ICON, pixbuf, |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1514 | SUBSTATUS_COLUMN_STATUS_ID, id, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1515 | SUBSTATUS_COLUMN_STATUS_NAME, name, |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1516 | -1); |
|
13091
b5ed878998dd
[gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents:
13014
diff
changeset
|
1517 | if (pixbuf != NULL) |
|
b5ed878998dd
[gaim-migrate @ 15452]
Mark Doliner <markdoliner@pidgin.im>
parents:
13014
diff
changeset
|
1518 | g_object_unref(pixbuf); |
|
13195
628d1077a0ba
[gaim-migrate @ 15557]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
13194
diff
changeset
|
1519 | if ((status_id != NULL) && !strcmp(status_id, id)) |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1520 | { |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1521 | gtk_combo_box_set_active_iter(GTK_COMBO_BOX(combo), &iter); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1522 | select = TRUE; |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1523 | } |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1524 | } |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1525 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1526 | if (!select) |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1527 | gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 0); |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1528 | |
|
13200
3769f413f073
[gaim-migrate @ 15562]
Mark Doliner <markdoliner@pidgin.im>
parents:
13195
diff
changeset
|
1529 | gtk_widget_show_all(win); |
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1530 | } |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1531 | |
|
12329
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1532 | |
| 12195 | 1533 | /************************************************************************** |
| 1534 | * Utilities * | |
| 1535 | **************************************************************************/ | |
| 1536 | ||
|
12246
7af1ef3b1cc4
[gaim-migrate @ 14548]
Mark Doliner <markdoliner@pidgin.im>
parents:
12238
diff
changeset
|
1537 | static void |
|
7af1ef3b1cc4
[gaim-migrate @ 14548]
Mark Doliner <markdoliner@pidgin.im>
parents:
12238
diff
changeset
|
1538 | status_menu_cb(GtkComboBox *widget, void(*callback)(GaimSavedStatus*)) |
| 12195 | 1539 | { |
|
12237
91cf841da813
[gaim-migrate @ 14539]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12199
diff
changeset
|
1540 | GtkTreeIter iter; |
|
91cf841da813
[gaim-migrate @ 14539]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12199
diff
changeset
|
1541 | gchar *title = NULL; |
|
91cf841da813
[gaim-migrate @ 14539]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12199
diff
changeset
|
1542 | |
|
91cf841da813
[gaim-migrate @ 14539]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12199
diff
changeset
|
1543 | if (!gtk_combo_box_get_active_iter(widget, &iter)) |
|
91cf841da813
[gaim-migrate @ 14539]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12199
diff
changeset
|
1544 | return; |
|
91cf841da813
[gaim-migrate @ 14539]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12199
diff
changeset
|
1545 | |
|
91cf841da813
[gaim-migrate @ 14539]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12199
diff
changeset
|
1546 | gtk_tree_model_get(gtk_combo_box_get_model(widget), &iter, |
|
91cf841da813
[gaim-migrate @ 14539]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12199
diff
changeset
|
1547 | STATUS_WINDOW_COLUMN_TITLE, &title, -1); |
|
91cf841da813
[gaim-migrate @ 14539]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12199
diff
changeset
|
1548 | callback(gaim_savedstatus_find(title)); |
|
91cf841da813
[gaim-migrate @ 14539]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12199
diff
changeset
|
1549 | g_free(title); |
| 12195 | 1550 | } |
| 1551 | ||
|
12817
d84b2c520f7d
[gaim-migrate @ 15165]
Mark Doliner <markdoliner@pidgin.im>
parents:
12726
diff
changeset
|
1552 | static gint |
|
d84b2c520f7d
[gaim-migrate @ 15165]
Mark Doliner <markdoliner@pidgin.im>
parents:
12726
diff
changeset
|
1553 | saved_status_sort_alphabetically_func(gconstpointer a, gconstpointer b) |
|
d84b2c520f7d
[gaim-migrate @ 15165]
Mark Doliner <markdoliner@pidgin.im>
parents:
12726
diff
changeset
|
1554 | { |
|
d84b2c520f7d
[gaim-migrate @ 15165]
Mark Doliner <markdoliner@pidgin.im>
parents:
12726
diff
changeset
|
1555 | const GaimSavedStatus *saved_status_a = a; |
|
d84b2c520f7d
[gaim-migrate @ 15165]
Mark Doliner <markdoliner@pidgin.im>
parents:
12726
diff
changeset
|
1556 | const GaimSavedStatus *saved_status_b = b; |
|
12823
d5f2222d76e1
[gaim-migrate @ 15171]
Richard Laager <rlaager@pidgin.im>
parents:
12817
diff
changeset
|
1557 | return g_utf8_collate(gaim_savedstatus_get_title(saved_status_a), |
|
12817
d84b2c520f7d
[gaim-migrate @ 15165]
Mark Doliner <markdoliner@pidgin.im>
parents:
12726
diff
changeset
|
1558 | gaim_savedstatus_get_title(saved_status_b)); |
|
d84b2c520f7d
[gaim-migrate @ 15165]
Mark Doliner <markdoliner@pidgin.im>
parents:
12726
diff
changeset
|
1559 | } |
|
d84b2c520f7d
[gaim-migrate @ 15165]
Mark Doliner <markdoliner@pidgin.im>
parents:
12726
diff
changeset
|
1560 | |
| 12195 | 1561 | GtkWidget *gaim_gtk_status_menu(GaimSavedStatus *current_status, GCallback callback) |
| 1562 | { | |
| 1563 | GtkWidget *combobox; | |
|
12817
d84b2c520f7d
[gaim-migrate @ 15165]
Mark Doliner <markdoliner@pidgin.im>
parents:
12726
diff
changeset
|
1564 | GList *sorted, *cur; |
| 12195 | 1565 | int i; |
| 1566 | int index = -1; | |
|
12329
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1567 | |
| 12199 | 1568 | combobox = gtk_combo_box_new_text(); |
|
12329
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1569 | |
|
12817
d84b2c520f7d
[gaim-migrate @ 15165]
Mark Doliner <markdoliner@pidgin.im>
parents:
12726
diff
changeset
|
1570 | sorted = g_list_copy((GList *)gaim_savedstatuses_get_all()); |
|
d84b2c520f7d
[gaim-migrate @ 15165]
Mark Doliner <markdoliner@pidgin.im>
parents:
12726
diff
changeset
|
1571 | sorted = g_list_sort(sorted, saved_status_sort_alphabetically_func); |
|
d84b2c520f7d
[gaim-migrate @ 15165]
Mark Doliner <markdoliner@pidgin.im>
parents:
12726
diff
changeset
|
1572 | for (cur = sorted, i = 0; |
|
d84b2c520f7d
[gaim-migrate @ 15165]
Mark Doliner <markdoliner@pidgin.im>
parents:
12726
diff
changeset
|
1573 | cur != NULL; |
|
d84b2c520f7d
[gaim-migrate @ 15165]
Mark Doliner <markdoliner@pidgin.im>
parents:
12726
diff
changeset
|
1574 | cur = g_list_next(cur)) |
|
12329
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1575 | { |
|
12817
d84b2c520f7d
[gaim-migrate @ 15165]
Mark Doliner <markdoliner@pidgin.im>
parents:
12726
diff
changeset
|
1576 | GaimSavedStatus *status = (GaimSavedStatus *)cur->data; |
|
13179
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
1577 | if (!gaim_savedstatus_is_transient(status)) |
|
e9e22c1cc839
[gaim-migrate @ 15541]
Mark Doliner <markdoliner@pidgin.im>
parents:
13177
diff
changeset
|
1578 | { |
|
12329
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1579 | gtk_combo_box_append_text(GTK_COMBO_BOX(combobox), |
| 12199 | 1580 | gaim_savedstatus_get_title(status)); |
| 1581 | if (status == current_status) | |
| 1582 | index = i; | |
| 1583 | i++; | |
| 1584 | } | |
| 12195 | 1585 | } |
|
12817
d84b2c520f7d
[gaim-migrate @ 15165]
Mark Doliner <markdoliner@pidgin.im>
parents:
12726
diff
changeset
|
1586 | g_list_free(sorted); |
|
12246
7af1ef3b1cc4
[gaim-migrate @ 14548]
Mark Doliner <markdoliner@pidgin.im>
parents:
12238
diff
changeset
|
1587 | |
| 12195 | 1588 | gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), index); |
| 1589 | g_signal_connect(G_OBJECT(combobox), "changed", G_CALLBACK(status_menu_cb), callback); | |
|
12329
987036c6c7f9
[gaim-migrate @ 14633]
Mark Doliner <markdoliner@pidgin.im>
parents:
12246
diff
changeset
|
1590 | |
| 12195 | 1591 | return combobox; |
| 1592 | } | |
| 1593 | ||
|
12080
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1594 | |
|
2aaca2265a51
[gaim-migrate @ 14377]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
11954
diff
changeset
|
1595 | /************************************************************************** |
|
10814
7e17cb56b019
[gaim-migrate @ 12468]
Luke Schierer <lschiere@pidgin.im>
parents:
10732
diff
changeset
|
1596 | * GTK+ saved status glue |
|
10421
34797f8b5742
[gaim-migrate @ 11672]
Mark Doliner <markdoliner@pidgin.im>
parents:
10420
diff
changeset
|
1597 | **************************************************************************/ |
| 10418 | 1598 | |
| 1599 | void * | |
|
13014
fa17f785b6fe
[gaim-migrate @ 15367]
Mark Doliner <markdoliner@pidgin.im>
parents:
13010
diff
changeset
|
1600 | gaim_gtk_status_get_handle(void) |
| 10418 | 1601 | { |
| 1602 | static int handle; | |
| 1603 | ||
| 1604 | return &handle; | |
| 1605 | } | |
| 1606 | ||
| 1607 | void | |
| 1608 | gaim_gtk_status_init(void) | |
| 1609 | { | |
| 1610 | gaim_prefs_add_none("/gaim/gtk/status"); | |
| 1611 | gaim_prefs_add_none("/gaim/gtk/status/dialog"); | |
| 1612 | gaim_prefs_add_int("/gaim/gtk/status/dialog/width", 550); | |
| 1613 | gaim_prefs_add_int("/gaim/gtk/status/dialog/height", 250); | |
| 1614 | } | |
| 1615 | ||
| 1616 | void | |
| 1617 | gaim_gtk_status_uninit(void) | |
| 1618 | { | |
| 1619 | gaim_gtk_status_window_hide(); | |
| 1620 | } |