plugins/docklet/eggtrayicon.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 10779
553d127bb300
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>

3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
2 /* eggtrayicon.h
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
3 * Copyright (C) 2002 Anders Carlsson <andersca@gnu.org>
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
4 *
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
5 * This library is free software; you can redistribute it and/or
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
6 * modify it under the terms of the GNU Lesser General Public
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
7 * License as published by the Free Software Foundation; either
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
8 * version 2 of the License, or (at your option) any later version.
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
9 *
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
10 * This library is distributed in the hope that it will be useful,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
13 * Lesser General Public License for more details.
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
14 *
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
15 * You should have received a copy of the GNU Lesser General Public
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
16 * License along with this library; if not, write to the
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
18 * Boston, MA 02111-1307, USA.
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
19 */
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
20
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
21 #ifndef __EGG_TRAY_ICON_H__
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
22 #define __EGG_TRAY_ICON_H__
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
23
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
24 #include <gtk/gtkplug.h>
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 3510
diff changeset
25 #include <gtk/gtkversion.h>
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
26 #include <gdk/gdkx.h>
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
27
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
28 G_BEGIN_DECLS
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
29
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
30 #define EGG_TYPE_TRAY_ICON (egg_tray_icon_get_type ())
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
31 #define EGG_TRAY_ICON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_TRAY_ICON, EggTrayIcon))
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
32 #define EGG_TRAY_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_TRAY_ICON, EggTrayIconClass))
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
33 #define EGG_IS_TRAY_ICON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_TRAY_ICON))
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
34 #define EGG_IS_TRAY_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_TRAY_ICON))
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
35 #define EGG_TRAY_ICON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_TRAY_ICON, EggTrayIconClass))
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
36
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
37 typedef struct _EggTrayIcon EggTrayIcon;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
38 typedef struct _EggTrayIconClass EggTrayIconClass;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
39
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
40 struct _EggTrayIcon
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
41 {
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
42 GtkPlug parent_instance;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
43
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
44 guint stamp;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
45
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
46 Atom selection_atom;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
47 Atom manager_atom;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
48 Atom system_tray_opcode_atom;
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 3510
diff changeset
49 Atom orientation_atom;
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
50 Window manager_window;
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 3510
diff changeset
51
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 3510
diff changeset
52 GtkOrientation orientation;
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
53 };
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
54
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
55 struct _EggTrayIconClass
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
56 {
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
57 GtkPlugClass parent_class;
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
58 };
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
59
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
60 GType egg_tray_icon_get_type (void);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
61
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 3510
diff changeset
62 #if GTK_CHECK_VERSION(2,1,0)
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
63 EggTrayIcon *egg_tray_icon_new_for_screen (GdkScreen *screen,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
64 const gchar *name);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
65 #endif
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
66
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
67 EggTrayIcon *egg_tray_icon_new (const gchar *name);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
68
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
69 guint egg_tray_icon_send_message (EggTrayIcon *icon,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
70 gint timeout,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
71 const char *message,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
72 gint len);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
73 void egg_tray_icon_cancel_message (EggTrayIcon *icon,
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
74 guint id);
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
75
10779
553d127bb300 [gaim-migrate @ 12402]
Luke Schierer <lschiere@pidgin.im>
parents: 3510
diff changeset
76 GtkOrientation egg_tray_icon_get_orientation (EggTrayIcon *icon);
3510
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
77
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
78 G_END_DECLS
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
79
eb451ec1bf1c [gaim-migrate @ 3576]
Robert McQueen <robot101@debian.org>
parents:
diff changeset
80 #endif /* __EGG_TRAY_ICON_H__ */

mercurial