plugins/docklet/docklet.h

Mon, 12 Dec 2005 20:38:10 +0000

author
Casey Harkins <charkins@pidgin.im>
date
Mon, 12 Dec 2005 20:38:10 +0000
changeset 12472
1a11e00f8c88
parent 12471
5d7c12d525ed
child 12497
a17568773be3
permissions
-rw-r--r--

[gaim-migrate @ 14782]
SF Patch #1373967 from charkins

"This patch requires #1372898 to be applied first. It
adds two 3-way preferences to the docklet plugin to
determine when the tray icon should blink. One pref is
for unread IM messages, the other for unread chat
messages. The options for each:

im: never, when hidden, always
chat: never, when nick said, always

I've set the defaults to match the 1.x behavior (when
hidden for im, never for chat)."

This patch provided a function used by a previous patch. I undid my (now incorrect) changes there. I modified this to have a limit to the number of tooltips to display. I also tweaked the preference strings a bit. So, blame me if those things are wrong. ;)

committer: Richard Laager <rlaager@pidgin.im>

6208
46464ee45f48 [gaim-migrate @ 6694]
Robert McQueen <robot101@debian.org>
parents: 6077
diff changeset
1 /*
46464ee45f48 [gaim-migrate @ 6694]
Robert McQueen <robot101@debian.org>
parents: 6077
diff changeset
2 * System tray icon (aka docklet) plugin for Gaim
46464ee45f48 [gaim-migrate @ 6694]
Robert McQueen <robot101@debian.org>
parents: 6077
diff changeset
3 *
46464ee45f48 [gaim-migrate @ 6694]
Robert McQueen <robot101@debian.org>
parents: 6077
diff changeset
4 * Copyright (C) 2002-3 Robert McQueen <robot101@debian.org>
6077
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
5 * Copyright (C) 2003 Herman Bloggs <hermanator12002@yahoo.com>
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
6 * Inspired by a similar plugin by:
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
7 * John (J5) Palmieri <johnp@martianrock.com>
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
8 *
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
9 * This program is free software; you can redistribute it and/or
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
10 * modify it under the terms of the GNU General Public License as
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
11 * published by the Free Software Foundation; either version 2 of the
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
12 * License, or (at your option) any later version.
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
13 *
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
14 * This program is distributed in the hope that it will be useful, but
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
15 * WITHOUT ANY WARRANTY; without even the implied warranty of
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
17 * General Public License for more details.
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
18 *
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
20 * along with this program; if not, write to the Free Software
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
21 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
22 * 02111-1307, USA.
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
23 */
6208
46464ee45f48 [gaim-migrate @ 6694]
Robert McQueen <robot101@debian.org>
parents: 6077
diff changeset
24
6077
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
25 #ifndef _DOCKLET_H_
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
26 #define _DOCKLET_H_
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
27
11709
da6e9cd5f6d9 [gaim-migrate @ 14000]
Casey Harkins <charkins@pidgin.im>
parents: 10504
diff changeset
28 typedef enum
6208
46464ee45f48 [gaim-migrate @ 6694]
Robert McQueen <robot101@debian.org>
parents: 6077
diff changeset
29 {
11709
da6e9cd5f6d9 [gaim-migrate @ 14000]
Casey Harkins <charkins@pidgin.im>
parents: 10504
diff changeset
30 DOCKLET_STATUS_OFFLINE,
da6e9cd5f6d9 [gaim-migrate @ 14000]
Casey Harkins <charkins@pidgin.im>
parents: 10504
diff changeset
31 DOCKLET_STATUS_ONLINE,
da6e9cd5f6d9 [gaim-migrate @ 14000]
Casey Harkins <charkins@pidgin.im>
parents: 10504
diff changeset
32 DOCKLET_STATUS_ONLINE_PENDING,
da6e9cd5f6d9 [gaim-migrate @ 14000]
Casey Harkins <charkins@pidgin.im>
parents: 10504
diff changeset
33 DOCKLET_STATUS_AWAY,
da6e9cd5f6d9 [gaim-migrate @ 14000]
Casey Harkins <charkins@pidgin.im>
parents: 10504
diff changeset
34 DOCKLET_STATUS_AWAY_PENDING,
da6e9cd5f6d9 [gaim-migrate @ 14000]
Casey Harkins <charkins@pidgin.im>
parents: 10504
diff changeset
35 DOCKLET_STATUS_CONNECTING
da6e9cd5f6d9 [gaim-migrate @ 14000]
Casey Harkins <charkins@pidgin.im>
parents: 10504
diff changeset
36 } DockletStatus;
6077
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
37
6208
46464ee45f48 [gaim-migrate @ 6694]
Robert McQueen <robot101@debian.org>
parents: 6077
diff changeset
38 struct docklet_ui_ops
6077
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
39 {
12323
f52908fb23b0 [gaim-migrate @ 14627]
Richard Laager <rlaager@pidgin.im>
parents: 12016
diff changeset
40 void (*create)(void);
f52908fb23b0 [gaim-migrate @ 14627]
Richard Laager <rlaager@pidgin.im>
parents: 12016
diff changeset
41 void (*destroy)(void);
11709
da6e9cd5f6d9 [gaim-migrate @ 14000]
Casey Harkins <charkins@pidgin.im>
parents: 10504
diff changeset
42 void (*update_icon)(DockletStatus);
12323
f52908fb23b0 [gaim-migrate @ 14627]
Richard Laager <rlaager@pidgin.im>
parents: 12016
diff changeset
43 void (*blank_icon)(void);
12471
5d7c12d525ed [gaim-migrate @ 14781]
Casey Harkins <charkins@pidgin.im>
parents: 12323
diff changeset
44 void (*set_tooltip)(gchar *);
10268
862ed5d3f227 [gaim-migrate @ 11414]
Christian Hammond <chipx86@chipx86.com>
parents: 6894
diff changeset
45 GtkMenuPositionFunc position_menu;
6077
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
46 };
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
47
6208
46464ee45f48 [gaim-migrate @ 6694]
Robert McQueen <robot101@debian.org>
parents: 6077
diff changeset
48 /* useful for setting idle callbacks that will be cleaned up */
46464ee45f48 [gaim-migrate @ 6694]
Robert McQueen <robot101@debian.org>
parents: 6077
diff changeset
49 extern GaimPlugin *handle;
46464ee45f48 [gaim-migrate @ 6694]
Robert McQueen <robot101@debian.org>
parents: 6077
diff changeset
50
46464ee45f48 [gaim-migrate @ 6694]
Robert McQueen <robot101@debian.org>
parents: 6077
diff changeset
51 /* functions in docklet.c */
46464ee45f48 [gaim-migrate @ 6694]
Robert McQueen <robot101@debian.org>
parents: 6077
diff changeset
52 extern void docklet_clicked(int);
12323
f52908fb23b0 [gaim-migrate @ 14627]
Richard Laager <rlaager@pidgin.im>
parents: 12016
diff changeset
53 extern void docklet_embedded(void);
6208
46464ee45f48 [gaim-migrate @ 6694]
Robert McQueen <robot101@debian.org>
parents: 6077
diff changeset
54 extern void docklet_remove(gboolean);
46464ee45f48 [gaim-migrate @ 6694]
Robert McQueen <robot101@debian.org>
parents: 6077
diff changeset
55 extern void docklet_set_ui_ops(struct docklet_ui_ops *);
12323
f52908fb23b0 [gaim-migrate @ 14627]
Richard Laager <rlaager@pidgin.im>
parents: 12016
diff changeset
56 extern void docklet_unload(void);
6208
46464ee45f48 [gaim-migrate @ 6694]
Robert McQueen <robot101@debian.org>
parents: 6077
diff changeset
57
46464ee45f48 [gaim-migrate @ 6694]
Robert McQueen <robot101@debian.org>
parents: 6077
diff changeset
58 /* function in docklet-{x11,win32}.c */
12323
f52908fb23b0 [gaim-migrate @ 14627]
Richard Laager <rlaager@pidgin.im>
parents: 12016
diff changeset
59 extern void docklet_ui_init(void);
6077
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
60
a4e87d8f61a0 [gaim-migrate @ 6536]
Herman Bloggs <herman@bluedigits.com>
parents:
diff changeset
61 #endif /* _DOCKLET_H_ */

mercurial