/* astal-tray.h generated by valac 0.56.19, the Vala compiler, do not modify */

#ifndef __ASTAL_TRAY_H__
#define __ASTAL_TRAY_H__

#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <glib-object.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gio/gio.h>

G_BEGIN_DECLS

#define ASTAL_TRAY_MAJOR_VERSION 0
#define ASTAL_TRAY_MINOR_VERSION 1
#define ASTAL_TRAY_MICRO_VERSION 0
#define ASTAL_TRAY_VERSION "0.1.0"
#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 ASTAL_TRAY_TYPE_PIXMAP (astal_tray_pixmap_get_type ())
typedef struct _AstalTrayPixmap AstalTrayPixmap;

#define ASTAL_TRAY_TYPE_TOOLTIP (astal_tray_tooltip_get_type ())
typedef struct _AstalTrayTooltip AstalTrayTooltip;
typedef enum  {
	ASTAL_TRAY_CATEGORY_APPLICATION,
	ASTAL_TRAY_CATEGORY_COMMUNICATIONS,
	ASTAL_TRAY_CATEGORY_SYSTEM,
	ASTAL_TRAY_CATEGORY_HARDWARE
} AstalTrayCategory;

#define ASTAL_TRAY_TYPE_CATEGORY (astal_tray_category_get_type ())
typedef enum  {
	ASTAL_TRAY_STATUS_PASSIVE,
	ASTAL_TRAY_STATUS_ACTIVE,
	ASTAL_TRAY_STATUS_NEEDS_ATTENTION
} AstalTrayStatus;

#define ASTAL_TRAY_TYPE_STATUS (astal_tray_status_get_type ())

#define ASTAL_TRAY_TYPE_TRAY_ITEM (astal_tray_tray_item_get_type ())
#define ASTAL_TRAY_TRAY_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASTAL_TRAY_TYPE_TRAY_ITEM, AstalTrayTrayItem))
#define ASTAL_TRAY_TRAY_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ASTAL_TRAY_TYPE_TRAY_ITEM, AstalTrayTrayItemClass))
#define ASTAL_TRAY_IS_TRAY_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASTAL_TRAY_TYPE_TRAY_ITEM))
#define ASTAL_TRAY_IS_TRAY_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASTAL_TRAY_TYPE_TRAY_ITEM))
#define ASTAL_TRAY_TRAY_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ASTAL_TRAY_TYPE_TRAY_ITEM, AstalTrayTrayItemClass))

typedef struct _AstalTrayTrayItem AstalTrayTrayItem;
typedef struct _AstalTrayTrayItemClass AstalTrayTrayItemClass;
typedef struct _AstalTrayTrayItemPrivate AstalTrayTrayItemPrivate;

#define ASTAL_TRAY_TYPE_TRAY (astal_tray_tray_get_type ())
#define ASTAL_TRAY_TRAY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASTAL_TRAY_TYPE_TRAY, AstalTrayTray))
#define ASTAL_TRAY_TRAY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ASTAL_TRAY_TYPE_TRAY, AstalTrayTrayClass))
#define ASTAL_TRAY_IS_TRAY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASTAL_TRAY_TYPE_TRAY))
#define ASTAL_TRAY_IS_TRAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASTAL_TRAY_TYPE_TRAY))
#define ASTAL_TRAY_TRAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ASTAL_TRAY_TYPE_TRAY, AstalTrayTrayClass))

typedef struct _AstalTrayTray AstalTrayTray;
typedef struct _AstalTrayTrayClass AstalTrayTrayClass;
typedef struct _AstalTrayTrayPrivate AstalTrayTrayPrivate;

struct _AstalTrayPixmap {
	gint width;
	gint height;
	guint8* bytes;
	gint bytes_length1;
};

struct _AstalTrayTooltip {
	gchar* icon_name;
	AstalTrayPixmap* icon;
	gint icon_length1;
	gchar* title;
	gchar* description;
};

struct _AstalTrayTrayItem {
	GObject parent_instance;
	AstalTrayTrayItemPrivate * priv;
};

struct _AstalTrayTrayItemClass {
	GObjectClass parent_class;
};

struct _AstalTrayTray {
	GObject parent_instance;
	AstalTrayTrayPrivate * priv;
};

struct _AstalTrayTrayClass {
	GObjectClass parent_class;
};

VALA_EXTERN GType astal_tray_pixmap_get_type (void) G_GNUC_CONST ;
VALA_EXTERN AstalTrayPixmap* astal_tray_pixmap_dup (const AstalTrayPixmap* self);
VALA_EXTERN void astal_tray_pixmap_free (AstalTrayPixmap* self);
VALA_EXTERN void astal_tray_pixmap_copy (const AstalTrayPixmap* self,
                             AstalTrayPixmap* dest);
VALA_EXTERN void astal_tray_pixmap_destroy (AstalTrayPixmap* self);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (AstalTrayPixmap, astal_tray_pixmap_destroy)
VALA_EXTERN GType astal_tray_tooltip_get_type (void) G_GNUC_CONST ;
VALA_EXTERN AstalTrayTooltip* astal_tray_tooltip_dup (const AstalTrayTooltip* self);
VALA_EXTERN void astal_tray_tooltip_free (AstalTrayTooltip* self);
VALA_EXTERN void astal_tray_tooltip_copy (const AstalTrayTooltip* self,
                              AstalTrayTooltip* dest);
VALA_EXTERN void astal_tray_tooltip_destroy (AstalTrayTooltip* self);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (AstalTrayTooltip, astal_tray_tooltip_destroy)
VALA_EXTERN GType astal_tray_category_get_type (void) G_GNUC_CONST ;
VALA_EXTERN AstalTrayCategory astal_tray_category_from_string (const char* str,
                                                   GError** error);
VALA_EXTERN const char* astal_tray_category_to_string (AstalTrayCategory value);
VALA_EXTERN gchar* astal_tray_category_to_nick (AstalTrayCategory self);
VALA_EXTERN GType astal_tray_status_get_type (void) G_GNUC_CONST ;
VALA_EXTERN AstalTrayStatus astal_tray_status_from_string (const char* str,
                                               GError** error);
VALA_EXTERN const char* astal_tray_status_to_string (AstalTrayStatus value);
VALA_EXTERN gchar* astal_tray_status_to_nick (AstalTrayStatus self);
VALA_EXTERN GType astal_tray_tray_item_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AstalTrayTrayItem, g_object_unref)
VALA_EXTERN void astal_tray_tray_item_about_to_show (AstalTrayTrayItem* self);
VALA_EXTERN void astal_tray_tray_item_activate (AstalTrayTrayItem* self,
                                    gint x,
                                    gint y);
VALA_EXTERN void astal_tray_tray_item_secondary_activate (AstalTrayTrayItem* self,
                                              gint x,
                                              gint y);
VALA_EXTERN void astal_tray_tray_item_scroll (AstalTrayTrayItem* self,
                                  gint delta,
                                  const gchar* orientation);
VALA_EXTERN gchar* astal_tray_tray_item_to_json_string (AstalTrayTrayItem* self);
VALA_EXTERN const gchar* astal_tray_tray_item_get_title (AstalTrayTrayItem* self);
VALA_EXTERN AstalTrayCategory astal_tray_tray_item_get_category (AstalTrayTrayItem* self);
VALA_EXTERN AstalTrayStatus astal_tray_tray_item_get_status (AstalTrayTrayItem* self);
VALA_EXTERN AstalTrayTooltip* astal_tray_tray_item_get_tooltip (AstalTrayTrayItem* self);
VALA_EXTERN gchar* astal_tray_tray_item_get_tooltip_markup (AstalTrayTrayItem* self);
VALA_EXTERN gchar* astal_tray_tray_item_get_tooltip_text (AstalTrayTrayItem* self);
VALA_EXTERN const gchar* astal_tray_tray_item_get_id (AstalTrayTrayItem* self);
VALA_EXTERN gboolean astal_tray_tray_item_get_is_menu (AstalTrayTrayItem* self);
VALA_EXTERN const gchar* astal_tray_tray_item_get_icon_theme_path (AstalTrayTrayItem* self);
VALA_EXTERN gchar* astal_tray_tray_item_get_icon_name (AstalTrayTrayItem* self);
VALA_EXTERN GdkPixbuf* astal_tray_tray_item_get_icon_pixbuf (AstalTrayTrayItem* self);
VALA_EXTERN GIcon* astal_tray_tray_item_get_gicon (AstalTrayTrayItem* self);
VALA_EXTERN const gchar* astal_tray_tray_item_get_item_id (AstalTrayTrayItem* self);
VALA_EXTERN const char* astal_tray_tray_item_get_menu_path (AstalTrayTrayItem* self);
VALA_EXTERN GMenuModel* astal_tray_tray_item_get_menu_model (AstalTrayTrayItem* self);
VALA_EXTERN GActionGroup* astal_tray_tray_item_get_action_group (AstalTrayTrayItem* self);
VALA_EXTERN GType astal_tray_tray_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AstalTrayTray, g_object_unref)
VALA_EXTERN AstalTrayTray* astal_tray_get_default (void);
VALA_EXTERN AstalTrayTray* astal_tray_tray_get_default (void);
VALA_EXTERN AstalTrayTrayItem* astal_tray_tray_get_item (AstalTrayTray* self,
                                             const gchar* item_id);
VALA_EXTERN AstalTrayTray* astal_tray_tray_new (void);
VALA_EXTERN AstalTrayTray* astal_tray_tray_construct (GType object_type);
VALA_EXTERN GList* astal_tray_tray_get_items (AstalTrayTray* self);
VALA_EXTERN GListModel* astal_tray_tray_get_items_model (AstalTrayTray* self);

G_END_DECLS

#endif
