Mercurial > pidgin
annotate src/gtkutils.h @ 6064:ed3c3c38e182
[gaim-migrate @ 6514]
clee|work (who I suppose is at work right now) points out that we allow the
Idle Maker plugin to set idle times of sizes up to an int, whereas OSCAR only
accepts them up to a short int.
Actually, he just complained that it wasn't working and I explained that it
was overflowing. I'm not quite sure he understands, but this is a nice fix,
regardless.
committer: Tailor Script <tailor@pidgin.im>
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Tue, 08 Jul 2003 23:07:13 +0000 |
parents | 5fb6bd688a5b |
children | 9dd4bb3cf1df |
rev | line source |
---|---|
4359 | 1 /** |
2 * @file gtkutils.h GTK+ utility functions | |
5034
4691c5936c01
[gaim-migrate @ 5377]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
3 * @ingroup gtkui |
4359 | 4 * |
5 * gaim | |
6 * | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
7 * Copyright (C) 2003 Christian Hammond <chipx86@gnupdate.org> |
4359 | 8 * |
9 * This program is free software; you can redistribute it and/or modify | |
10 * it under the terms of the GNU General Public License as published by | |
11 * the Free Software Foundation; either version 2 of the License, or | |
12 * (at your option) any later version. | |
13 * | |
14 * This program is distributed in the hope that it will be useful, | |
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 * GNU General Public License for more details. | |
18 * | |
19 * You should have received a copy of the GNU General Public License | |
20 * along with this program; if not, write to the Free Software | |
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
22 */ | |
23 #ifndef _GAIM_GTK_UTILS_H_ | |
24 #define _GAIM_GTK_UTILS_H_ | |
25 | |
5872
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
26 #include <gtk/gtk.h> |
059d95c67cda
[gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents:
5676
diff
changeset
|
27 #include "gtkconv.h" |
5644
213e999fa5cc
[gaim-migrate @ 6058]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
28 #include "prpl.h" |
4359 | 29 |
30 /** | |
31 * Sets up a gtkimhtml widget, loads it with smileys, and sets the | |
32 * default signal handlers. | |
33 * | |
34 * @param imhtml The gtkimhtml widget to setup. | |
35 */ | |
36 void gaim_setup_imhtml(GtkWidget *imhtml); | |
37 | |
38 /** | |
39 * Surrounds the selected text in a conversation with the specified | |
40 * pre and post strings. | |
41 * | |
42 * @param gtkconv The GTK+ conversation. | |
43 * @param pre The prefix string. | |
44 * @param post The postfix string. | |
45 */ | |
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5644
diff
changeset
|
46 void gaim_gtk_surround(GaimGtkConversation *gtkconv, |
4359 | 47 const char *pre, const char *post); |
48 | |
49 /** | |
50 * Advances the cursor past the position of the specified tags. | |
51 * | |
52 * @param gtkconv The GTK+ conversation. | |
53 * @param pre The prefix string. | |
54 * @param post The postfix string. | |
55 */ | |
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5644
diff
changeset
|
56 void gaim_gtk_advance_past(GaimGtkConversation *gtkconv, |
4359 | 57 const char *pre, const char *post); |
58 | |
59 /** | |
60 * Surrounds the selected text with the specified font. | |
61 * | |
62 * @param conv The conversation. | |
63 * @param font The new font. | |
64 */ | |
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5644
diff
changeset
|
65 void gaim_gtk_set_font_face(GaimGtkConversation *gtkconv, |
4359 | 66 const char *font); |
67 | |
68 /** | |
69 * Displays a dialog for saving the buddy icon in a conversation. | |
70 * | |
71 * @param obj @c NULL | |
72 * @param conv The conversation. | |
73 */ | |
5676
dae79aefac8d
[gaim-migrate @ 6094]
Christian Hammond <chipx86@chipx86.com>
parents:
5644
diff
changeset
|
74 void gaim_gtk_save_icon_dialog(GtkObject *obj, GaimConversation *conv); |
4359 | 75 |
76 /** | |
77 * Returns the display style for buttons for the specified conversation | |
78 * type. | |
79 * | |
80 * @param type The conversation type. | |
81 * | |
82 * @return The display style. | |
83 */ | |
84 int gaim_gtk_get_dispstyle(GaimConversationType type); | |
85 | |
86 /** | |
87 * Changes a button to be either text or image, depending on | |
88 * preferences. | |
89 * | |
90 * This function destroys the old button pointed to by @a button and | |
91 * returns the new replacement button. | |
92 * | |
93 * @param text The text for the button. | |
94 * @param button The button widget. | |
95 * @param stock The stock image. | |
96 * @param type The conversation type the button belongs to. | |
97 * | |
98 * @return The new button widget to replace the old one. | |
99 */ | |
100 GtkWidget *gaim_gtk_change_text(const char *text, GtkWidget *button, | |
101 const char *stock, GaimConversationType type); | |
102 | |
103 /** | |
104 * Toggles the sensitivity of a widget. | |
105 * | |
106 * @param widget @c NULL. Used for signal handlers. | |
107 * @param to_toggle The widget to toggle. | |
108 */ | |
109 void gaim_gtk_toggle_sensitive(GtkWidget *widget, GtkWidget *to_toggle); | |
110 | |
4687 | 111 /** |
5319
3adb20b869b4
[gaim-migrate @ 5691]
Christian Hammond <chipx86@chipx86.com>
parents:
5162
diff
changeset
|
112 * Toggles the sensitivity of all widgets in a pointer array. |
3adb20b869b4
[gaim-migrate @ 5691]
Christian Hammond <chipx86@chipx86.com>
parents:
5162
diff
changeset
|
113 * |
3adb20b869b4
[gaim-migrate @ 5691]
Christian Hammond <chipx86@chipx86.com>
parents:
5162
diff
changeset
|
114 * @param widget @c NULL. Used for signal handlers. |
3adb20b869b4
[gaim-migrate @ 5691]
Christian Hammond <chipx86@chipx86.com>
parents:
5162
diff
changeset
|
115 * @param to_toggle The array containing the widgets to toggle. |
3adb20b869b4
[gaim-migrate @ 5691]
Christian Hammond <chipx86@chipx86.com>
parents:
5162
diff
changeset
|
116 */ |
3adb20b869b4
[gaim-migrate @ 5691]
Christian Hammond <chipx86@chipx86.com>
parents:
5162
diff
changeset
|
117 void gtk_toggle_sensitive_array(GtkWidget *w, GPtrArray *data); |
3adb20b869b4
[gaim-migrate @ 5691]
Christian Hammond <chipx86@chipx86.com>
parents:
5162
diff
changeset
|
118 |
3adb20b869b4
[gaim-migrate @ 5691]
Christian Hammond <chipx86@chipx86.com>
parents:
5162
diff
changeset
|
119 /** |
4687 | 120 * Adds a seperator to a menu. |
121 * | |
5162 | 122 * @param menu The menu to add a seperator to. |
4687 | 123 */ |
124 void gaim_separator(GtkWidget *menu); | |
125 | |
5162 | 126 /** |
127 * Creates a menu item. | |
128 * | |
129 * @param menu The menu to which to append the menu item. | |
130 * @param str The title to use for the newly created menu item. | |
131 * | |
132 * @return The newly created menu item. | |
133 */ | |
5906 | 134 GtkWidget *gaim_new_item(GtkWidget *menu, const char *str); |
135 | |
136 /** | |
137 * Creates a check menu item. | |
138 * | |
139 * @param menu The menu to which to append the check menu item. | |
140 * @param str The title to use for the newly created menu item. | |
141 * @param sf A function to call when the menu item is activated. | |
142 * @param data Data to pass to the signal function. | |
143 * @param checked The initial state of the check item | |
144 * | |
145 * @return The newly created menu item. | |
146 */ | |
147 GtkWidget *gaim_new_check_item(GtkWidget *menu, const char *str, | |
148 GtkSignalFunc sf, gpointer data, gboolean checked); | |
5162 | 149 |
150 /** | |
151 * Creates a menu item. | |
152 * | |
153 * @param menu The menu to which to append the menu item. | |
154 * @param str The title for the menu item. | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5319
diff
changeset
|
155 * @param icon An icon to place to the left of the menu item, |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5319
diff
changeset
|
156 * or @c NULL for no icon. |
5162 | 157 * @param sf A function to call when the menu item is activated. |
158 * @param data Data to pass to the signal function. | |
159 * @param accel_key Something. | |
160 * @param accel_mods Something. | |
161 * @param mod Something. | |
162 * | |
163 * @return The newly created menu item. | |
164 */ | |
5530
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5319
diff
changeset
|
165 GtkWidget *gaim_new_item_from_stock(GtkWidget *menu, const char *str, |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5319
diff
changeset
|
166 const char *icon, GtkSignalFunc sf, |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5319
diff
changeset
|
167 gpointer data, guint accel_key, |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5319
diff
changeset
|
168 guint accel_mods, char *mod); |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5319
diff
changeset
|
169 |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5319
diff
changeset
|
170 /** |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5319
diff
changeset
|
171 * Creates a HIG preferences frame. |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5319
diff
changeset
|
172 * |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5319
diff
changeset
|
173 * @param parent The widget to put the frame into. |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5319
diff
changeset
|
174 * @param title The title for the frame. |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5319
diff
changeset
|
175 * |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5319
diff
changeset
|
176 * @return The vbox to put things into. |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5319
diff
changeset
|
177 */ |
2c4c975620f0
[gaim-migrate @ 5930]
Christian Hammond <chipx86@chipx86.com>
parents:
5319
diff
changeset
|
178 GtkWidget *gaim_gtk_make_frame(GtkWidget *parent, const char *title); |
5162 | 179 |
5644
213e999fa5cc
[gaim-migrate @ 6058]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
180 /** |
213e999fa5cc
[gaim-migrate @ 6058]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
181 * Creates a drop-down option menu filled with protocols. |
213e999fa5cc
[gaim-migrate @ 6058]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
182 * |
213e999fa5cc
[gaim-migrate @ 6058]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
183 * @param protocol The protocol to select by default. |
213e999fa5cc
[gaim-migrate @ 6058]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
184 * @param cb The callback to call when a protocol is selected. |
213e999fa5cc
[gaim-migrate @ 6058]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
185 * @param user_data Data to pass to the callback function. |
213e999fa5cc
[gaim-migrate @ 6058]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
186 * |
213e999fa5cc
[gaim-migrate @ 6058]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
187 * @return The drop-down option menu. |
213e999fa5cc
[gaim-migrate @ 6058]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
188 */ |
213e999fa5cc
[gaim-migrate @ 6058]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
189 GtkWidget *gaim_gtk_protocol_option_menu_new(GaimProtocol protocol, |
213e999fa5cc
[gaim-migrate @ 6058]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
190 GCallback cb, |
213e999fa5cc
[gaim-migrate @ 6058]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
191 gpointer user_data); |
213e999fa5cc
[gaim-migrate @ 6058]
Christian Hammond <chipx86@chipx86.com>
parents:
5530
diff
changeset
|
192 |
5877
f336fc0a7b8b
[gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
193 /** |
f336fc0a7b8b
[gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
194 * Creates a drop-down option menu filled with accounts. |
f336fc0a7b8b
[gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
195 * |
f336fc0a7b8b
[gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
196 * @param default_account The account to select by default. |
f336fc0a7b8b
[gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
197 * @param show_all Whether or not to show all accounts, or just active |
f336fc0a7b8b
[gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
198 * accounts. |
f336fc0a7b8b
[gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
199 * @param cb The callback to call when an account is selected. |
f336fc0a7b8b
[gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
200 * @param user_data Data to pass to the callback function. |
f336fc0a7b8b
[gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
201 * |
f336fc0a7b8b
[gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
202 * @return The drop-down option menu. |
f336fc0a7b8b
[gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
203 */ |
f336fc0a7b8b
[gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
204 GtkWidget *gaim_gtk_account_option_menu_new(GaimAccount *default_account, |
f336fc0a7b8b
[gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
205 gboolean show_all, GCallback cb, |
f336fc0a7b8b
[gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
206 gpointer user_data); |
f336fc0a7b8b
[gaim-migrate @ 6309]
Christian Hammond <chipx86@chipx86.com>
parents:
5872
diff
changeset
|
207 |
5943
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
208 /** |
5966 | 209 * Check if the given path is a directory or not. If it is, then modify |
210 * the given GtkFileSelection dialog so that it displays the given path. | |
211 * If the given path is not a directory, then do nothing. | |
212 * | |
213 * @param path The path entered in the file selection window by the user. | |
214 * @param filesel The file selection window. | |
215 * | |
216 * @return TRUE if given path is a directory, FALSE otherwise. | |
217 */ | |
218 gboolean gaim_gtk_check_if_dir(const char *path, GtkFileSelection *filesel); | |
219 | |
220 /** | |
5943
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
221 * Stylizes the specified text using HTML, according to the current |
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
222 * font options. |
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
223 * |
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
224 * @param text The text to stylize. |
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
225 * @param len The intended length of the new buffer. |
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
226 * |
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
227 * @return A newly allocated string of length @a len, containing the |
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
228 * stylized version of @a text. |
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
229 * |
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
230 * @todo Move this to a UI-specific file. |
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
231 */ |
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
232 char *stylize(const gchar *text, int len); |
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
233 |
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
234 /** |
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
235 * Shows the usage options for the gaim binary. |
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
236 * |
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
237 * @param mode @c 0 for full options, or @c 1 for a short summary. |
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
238 * @param name The name of the binary. |
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
239 * |
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
240 * @todo Move this to the binary, when a library is formed. |
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
241 */ |
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
242 void show_usage(int mode, const char *name); |
a4f2aba0848d
[gaim-migrate @ 6384]
Christian Hammond <chipx86@chipx86.com>
parents:
5906
diff
changeset
|
243 |
4359 | 244 #endif /* _GAIM_GTK_UTILS_H_ */ |