This file is indexed.

/usr/include/xfce4/libxfcegui4/xfce_systemtray.h is in libxfcegui4-dev 4.8.1-5ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
/*
 * Copyright (c) 2003-2004 Benedikt Meurer <benny@xfce.org>
 * Copyright (c) 2003-2004 Olivier Fourdan <fourdan@xfce.org>
 * All rights reserved.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 *
 * A complete system tray implementation. See the specification:
 *
 *	 http://www.freedesktop.org/standards/systemtray.html
 */

#ifndef __HAVE_XFCE_SYSTEM_TRAY_H__
#define __HAVE_XFCE_SYSTEM_TRAY_H__

#if defined(LIBXFCEGUI4_COMPILATION) || !defined(XFCE_DISABLE_DEPRECATED)

#include <glib.h>
#if defined (GTK_CHECK_VERSION) && GTK_CHECK_VERSION(2,2,0)
#include <gdk/gdkscreen.h>
#endif
#include <gtk/gtkwidget.h>

#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xmd.h>

G_BEGIN_DECLS

/*
 * Tray icons can send "opcodes" to the system tray. These are X client
 * messages, sent with NoEventMask, a message_type of _NET_SYSTEM_TRAY_OPCODE,
 * and format 32.
 */
#define SYSTEM_TRAY_REQUEST_DOCK	0
#define SYSTEM_TRAY_BEGIN_MESSAGE	1
#define SYSTEM_TRAY_CANCEL_MESSAGE	2
typedef struct _XfceSystemTray XfceSystemTray;
typedef struct _XfceSystemTrayClass XfceSystemTrayClass;

#define XFCE_TYPE_SYSTEM_TRAY       (xfce_system_tray_get_type())
#define XFCE_SYSTEM_TRAY(obj)						\
	G_TYPE_CHECK_INSTANCE_CAST(obj, xfce_system_tray_get_type(),	\
			XfceSystemTray)
#define XFCE_SYSTEM_TRAY_CLASS(klass)					\
	G_TYPE_CHECK_CLASS_CAST(klass, xfce_system_tray_get_type(),	\
			XfceSystemTrayClass)
#define XFCE_IS_SYSTEM_TRAY(obj)					\
	G_TYPE_CHECK_INSTANCE_TYPE(obj, xfce_system_tray_get_type())

#define XFCE_SYSTEM_TRAY_ERROR		(xfce_system_tray_error_quark())

/* errors */
enum
{
    XFCE_SYSTEM_TRAY_ERROR_GET_SELECTION_FAILED
};

struct _XfceSystemTray
{
    GObject parent;

    /*
     * The specification requires three Atoms to be used by the system
     * tray.
     */
    struct
    {
	/* _NET_SYSTEM_TRAY_MESSAGE_DATA */
	Atom message_data;

	/* _NET_SYSTEM_TRAY_OPCODE */
	Atom opcode;

	/* _NET_SYSTEM_TRAY_Sn */
	Atom selection;
    }
    atoms;

    /* an invisible window */
    GtkWidget *window;

    /* list of client sockets */
    GHashTable *sockets;

    /* list of pending balloon messages */
    GList *messages;
};

/*
 * Description:
 *
 *	message_new(tray, socket, id, timeout, text)
 *	message_clear(tray, socket, id)
 */
struct _XfceSystemTrayClass
{
    GObjectClass parent;

    void (*icon_docked) (XfceSystemTray *tray, GtkWidget *item);
    void (*icon_undocked) (XfceSystemTray *tray, GtkWidget *item);
    void (*selection_cleared) (XfceSystemTray *tray);
    void (*message_new) (XfceSystemTray *tray, GtkWidget *item, guint id, guint timeout,
			 const gchar *text);
    void (*message_clear) (XfceSystemTray *tray, GtkWidget *item, guint id);
};

/* get XfceSystemTray error source identifier */
GQuark xfce_system_tray_error_quark (void);

/* get XfceSystemTray object type identifier */
GType xfce_system_tray_get_type (void);

/* create a new system tray */
XfceSystemTray *xfce_system_tray_new (void);

/* register a system tray for a specific screen */
gboolean xfce_system_tray_register (XfceSystemTray *tray,
					   Screen *screen, GError **error);

/* unregister a system tray */
void xfce_system_tray_unregister (XfceSystemTray *tray);

/* check if a system tray is already running for the screen */
gboolean xfce_system_tray_check_running (Screen *screen);

G_END_DECLS

#endif /* !XFCE_DISABLE_DEPRECATED */

#endif /* !__HAVE_XFCE_SYSTEM_TRAY_H__ */