/* trayapplet.h generated by valac 0.56.18-dirty, the Vala compiler, do not modify */

#ifndef __SRC_PANEL_APPLETS_TRAY_TRAYAPPLET_H__
#define __SRC_PANEL_APPLETS_TRAY_TRAYAPPLET_H__

#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <gio/gio.h>
#include <gdk/gdk.h>
#include <gtk/gtk.h>
#include <libpeas.h>
#include "plugin.h"

G_BEGIN_DECLS

#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define TYPE_DBUS_MENU (dbus_menu_get_type ())
#define DBUS_MENU(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DBUS_MENU, DBusMenu))
#define DBUS_MENU_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DBUS_MENU, DBusMenuClass))
#define IS_DBUS_MENU(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DBUS_MENU))
#define IS_DBUS_MENU_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DBUS_MENU))
#define DBUS_MENU_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DBUS_MENU, DBusMenuClass))

typedef struct _DBusMenu DBusMenu;
typedef struct _DBusMenuClass DBusMenuClass;
typedef struct _DBusMenuPrivate DBusMenuPrivate;

#define TYPE_DBUS_MENU_NODE (dbus_menu_node_get_type ())
#define DBUS_MENU_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DBUS_MENU_NODE, DBusMenuNode))
#define DBUS_MENU_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DBUS_MENU_NODE, DBusMenuNodeClass))
#define IS_DBUS_MENU_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DBUS_MENU_NODE))
#define IS_DBUS_MENU_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DBUS_MENU_NODE))
#define DBUS_MENU_NODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DBUS_MENU_NODE, DBusMenuNodeClass))

typedef struct _DBusMenuNode DBusMenuNode;
typedef struct _DBusMenuNodeClass DBusMenuNodeClass;
typedef struct _DBusMenuNodePrivate DBusMenuNodePrivate;

#define TYPE_TRAY_PLUGIN (tray_plugin_get_type ())
#define TRAY_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRAY_PLUGIN, TrayPlugin))
#define TRAY_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRAY_PLUGIN, TrayPluginClass))
#define IS_TRAY_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRAY_PLUGIN))
#define IS_TRAY_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRAY_PLUGIN))
#define TRAY_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRAY_PLUGIN, TrayPluginClass))

typedef struct _TrayPlugin TrayPlugin;
typedef struct _TrayPluginClass TrayPluginClass;
typedef struct _TrayPluginPrivate TrayPluginPrivate;

#define TYPE_TRAY_SETTINGS (tray_settings_get_type ())
#define TRAY_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRAY_SETTINGS, TraySettings))
#define TRAY_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRAY_SETTINGS, TraySettingsClass))
#define IS_TRAY_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRAY_SETTINGS))
#define IS_TRAY_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRAY_SETTINGS))
#define TRAY_SETTINGS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRAY_SETTINGS, TraySettingsClass))

typedef struct _TraySettings TraySettings;
typedef struct _TraySettingsClass TraySettingsClass;
typedef struct _TraySettingsPrivate TraySettingsPrivate;

#define TYPE_TRAY_APPLET (tray_applet_get_type ())
#define TRAY_APPLET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRAY_APPLET, TrayApplet))
#define TRAY_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRAY_APPLET, TrayAppletClass))
#define IS_TRAY_APPLET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRAY_APPLET))
#define IS_TRAY_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRAY_APPLET))
#define TRAY_APPLET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRAY_APPLET, TrayAppletClass))

typedef struct _TrayApplet TrayApplet;
typedef struct _TrayAppletClass TrayAppletClass;
typedef struct _TrayAppletPrivate TrayAppletPrivate;

#define TYPE_SN_ICON_PIXMAP (sn_icon_pixmap_get_type ())
typedef struct _SnIconPixmap SnIconPixmap;

#define TYPE_SN_TOOL_TIP (sn_tool_tip_get_type ())
typedef struct _SnToolTip SnToolTip;

struct _DBusMenu {
	GObject parent_instance;
	DBusMenuPrivate * priv;
};

struct _DBusMenuClass {
	GObjectClass parent_class;
};

struct _DBusMenuNode {
	GObject parent_instance;
	DBusMenuNodePrivate * priv;
	gint32 id;
	GtkMenuItem* item;
	GtkMenu* submenu;
};

struct _DBusMenuNodeClass {
	GObjectClass parent_class;
};

struct _TrayPlugin {
	PeasExtensionBase parent_instance;
	TrayPluginPrivate * priv;
};

struct _TrayPluginClass {
	PeasExtensionBaseClass parent_class;
};

struct _TraySettings {
	GtkGrid parent_instance;
	TraySettingsPrivate * priv;
};

struct _TraySettingsClass {
	GtkGridClass parent_class;
};

struct _TrayApplet {
	BudgieApplet parent_instance;
	TrayAppletPrivate * priv;
};

struct _TrayAppletClass {
	BudgieAppletClass parent_class;
};

struct _SnIconPixmap {
	gint width;
	gint height;
	guint8* data;
	gint data_length1;
};

struct _SnToolTip {
	gchar* icon_name;
	SnIconPixmap* icon_data;
	gint icon_data_length1;
	gchar* title;
	gchar* markup;
};

GType dbus_menu_register_type (GTypeModule * module);
VALA_EXTERN GType dbus_menu_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DBusMenu, g_object_unref)
VALA_EXTERN DBusMenu* dbus_menu_new (const gchar* dbus_name,
                         const char* dbus_object_path,
                         GError** error);
VALA_EXTERN DBusMenu* dbus_menu_construct (GType object_type,
                               const gchar* dbus_name,
                               const char* dbus_object_path,
                               GError** error);
VALA_EXTERN void dbus_menu_popup_at_pointer (DBusMenu* self,
                                 GdkEvent* event);
GType dbus_menu_node_register_type (GTypeModule * module);
VALA_EXTERN GType dbus_menu_node_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (DBusMenuNode, g_object_unref)
VALA_EXTERN DBusMenuNode* dbus_menu_node_new (gint32 id,
                                  GVariant* props);
VALA_EXTERN DBusMenuNode* dbus_menu_node_construct (GType object_type,
                                        gint32 id,
                                        GVariant* props);
VALA_EXTERN void dbus_menu_node_update_children (DBusMenuNode* self,
                                     GList* new_children);
VALA_EXTERN void dbus_menu_node_update_property (DBusMenuNode* self,
                                     const gchar* key,
                                     GVariant* value);
GType tray_plugin_register_type (GTypeModule * module);
VALA_EXTERN GType tray_plugin_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TrayPlugin, g_object_unref)
VALA_EXTERN TrayPlugin* tray_plugin_new (void);
VALA_EXTERN TrayPlugin* tray_plugin_construct (GType object_type);
GType tray_settings_register_type (GTypeModule * module);
VALA_EXTERN GType tray_settings_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TraySettings, g_object_unref)
VALA_EXTERN TraySettings* tray_settings_new (GSettings* settings);
VALA_EXTERN TraySettings* tray_settings_construct (GType object_type,
                                       GSettings* settings);
GType tray_applet_register_type (GTypeModule * module);
VALA_EXTERN GType tray_applet_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TrayApplet, g_object_unref)
VALA_EXTERN TrayApplet* tray_applet_new (const gchar* uuid);
VALA_EXTERN TrayApplet* tray_applet_construct (GType object_type,
                                   const gchar* uuid);
VALA_EXTERN const gchar* tray_applet_get_uuid (TrayApplet* self);
VALA_EXTERN void tray_applet_set_uuid (TrayApplet* self,
                           const gchar* value);
VALA_EXTERN void peas_register_types (GTypeModule* module);
VALA_EXTERN GType sn_icon_pixmap_get_type (void) G_GNUC_CONST ;
VALA_EXTERN SnIconPixmap* sn_icon_pixmap_dup (const SnIconPixmap* self);
VALA_EXTERN void sn_icon_pixmap_free (SnIconPixmap* self);
VALA_EXTERN void sn_icon_pixmap_copy (const SnIconPixmap* self,
                          SnIconPixmap* dest);
VALA_EXTERN void sn_icon_pixmap_destroy (SnIconPixmap* self);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (SnIconPixmap, sn_icon_pixmap_destroy)
VALA_EXTERN GType sn_tool_tip_get_type (void) G_GNUC_CONST ;
VALA_EXTERN SnToolTip* sn_tool_tip_dup (const SnToolTip* self);
VALA_EXTERN void sn_tool_tip_free (SnToolTip* self);
VALA_EXTERN void sn_tool_tip_copy (const SnToolTip* self,
                       SnToolTip* dest);
VALA_EXTERN void sn_tool_tip_destroy (SnToolTip* self);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (SnToolTip, sn_tool_tip_destroy)

G_END_DECLS

#endif
