annotate src/gtkthemes.h @ 12498:a2de852981c1

[gaim-migrate @ 14810] SF Patch #1380806 from charkins "leave docklet loaded when notification area is not present" "From the summary, this sounds weird, but I think its better behavior. This really only effects some odd corner cases. The existing behavior is that the docklet plugin unloads itself after 10 seconds if the tray icon isn't created. The behavior with this patch is that there is a 3 second timeout (this is necessary to avoid race condition when restoring the gtkblist's visibility state on startup). After this timeout, the docklet plugin stays loaded waiting for a notification to appear, but is essentially non-functional. In the typical scenario, this patch doesn't effect the behavior. Here are some examples of where it does matter: 1) If gaim is closed with the buddy list hidden to the docklet, then gaim is started again without a notification area, the buddy list doesn't show up for 10 seconds (the time it takes for the docklet to timeout). This patch would reduce this to 3 seconds. 2) If the user removes the notification area from their panel, maybe to remove it from one panel and add it to a different panel, but doesn't add a new one back within 10 seconds, the current behavior would cause the docklet plugin to be unloaded. With this patch, the tray icon would automatically be added to the new notification area when it becomes available. 3) The gnome-panel dies and is not restarted within 10 seconds. Similar to #2. (There was a bug filed for this, but can't find it right now). My main concern was that it could be confusing to the user if they enable the docklet plugin, then 10 seconds later it gets disabled without any notification. This patch doesn't add any notification, but leaves the plugin running so it will automatically use a notification area when one becomes available. I also removed an unused parameter from docklet_remove() and changed the plugin description slightly to reflect the change in queuing/notification. Not sure how clear this is, so bug me on #gaim if you have any questions. --charkins" I made a few changes to this patch, but nothing terribly significant... committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Fri, 16 Dec 2005 09:16:14 +0000
parents 202ce52b77a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11529
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
1 /**
11580
24169af08585 [gaim-migrate @ 13850]
Mark Doliner <mark@kingant.net>
parents: 11557
diff changeset
2 * @file gtkthemes.h GTK+ Smiley Theme API
24169af08585 [gaim-migrate @ 13850]
Mark Doliner <mark@kingant.net>
parents: 11557
diff changeset
3 * @ingroup gtkui
11529
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
4 *
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
5 * gaim
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
6 *
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
7 * Gaim is the legal property of its developers, whose names are too numerous
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
9 * source distribution.
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
10 *
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
14 * (at your option) any later version.
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
15 *
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
19 * GNU General Public License for more details.
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
20 *
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
24 */
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
25 #ifndef _GAIM_GTKTHEMES_H_
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
26 #define _GAIM_GTKTHEMES_H_
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
27
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
28 struct smiley_list {
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
29 char *sml;
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
30 GSList *smileys;
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
31 struct smiley_list *next;
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
32 };
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
33
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
34 struct smiley_theme {
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
35 char *path;
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
36 char *name;
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
37 char *desc;
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
38 char *icon;
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
39 char *author;
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
40
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
41 struct smiley_list *list;
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
42 };
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
43
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
44 extern struct smiley_theme *current_smiley_theme;
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
45 extern GSList *smiley_themes;
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
46
12497
202ce52b77a9 [gaim-migrate @ 14809]
Richard Laager <rlaager@wiktel.com>
parents: 12323
diff changeset
47 void gaim_gtkthemes_init(void);
12323
fc464a0abccc [gaim-migrate @ 14627]
Richard Laager <rlaager@wiktel.com>
parents: 11580
diff changeset
48 gboolean gaim_gtkthemes_smileys_disabled(void);
12497
202ce52b77a9 [gaim-migrate @ 14809]
Richard Laager <rlaager@wiktel.com>
parents: 12323
diff changeset
49 void gaim_gtkthemes_smiley_themeize(GtkWidget *);
202ce52b77a9 [gaim-migrate @ 14809]
Richard Laager <rlaager@wiktel.com>
parents: 12323
diff changeset
50 void gaim_gtkthemes_smiley_theme_probe(void);
202ce52b77a9 [gaim-migrate @ 14809]
Richard Laager <rlaager@wiktel.com>
parents: 12323
diff changeset
51 void gaim_gtkthemes_load_smiley_theme(const char *file, gboolean load);
202ce52b77a9 [gaim-migrate @ 14809]
Richard Laager <rlaager@wiktel.com>
parents: 12323
diff changeset
52 GSList *gaim_gtkthemes_get_proto_smileys(const char *id);
11529
dde21fe88bf7 [gaim-migrate @ 13778]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
53 #endif /* _GAIM_GTKDIALOGS_H_ */