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

#ifndef __SRC_WINDOWING_BUDGIE_WINDOWING_H__
#define __SRC_WINDOWING_BUDGIE_WINDOWING_H__

#include <glib-object.h>
#include <glib.h>
#include <gio/gio.h>
#include <libxfce4windowing/libxfce4windowing.h>
#include <gio/gdesktopappinfo.h>
#include <stdlib.h>
#include <string.h>
#include <gdk-pixbuf/gdk-pixbuf.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 BUDGIE_WINDOWING_SHOW_DESKTOP_FILTER (BUDGIE_WINDOWING_WINDOW_FILTER_SKIP_PAGER | BUDGIE_WINDOWING_WINDOW_FILTER_SKIP_TASKLIST)

#define BUDGIE_WINDOWING_TYPE_NOTIFICATION_DISPATCHER (budgie_windowing_notification_dispatcher_get_type ())
#define BUDGIE_WINDOWING_NOTIFICATION_DISPATCHER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_WINDOWING_TYPE_NOTIFICATION_DISPATCHER, BudgieWindowingNotificationDispatcher))
#define BUDGIE_WINDOWING_IS_NOTIFICATION_DISPATCHER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_WINDOWING_TYPE_NOTIFICATION_DISPATCHER))
#define BUDGIE_WINDOWING_NOTIFICATION_DISPATCHER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), BUDGIE_WINDOWING_TYPE_NOTIFICATION_DISPATCHER, BudgieWindowingNotificationDispatcherIface))

typedef struct _BudgieWindowingNotificationDispatcher BudgieWindowingNotificationDispatcher;
typedef struct _BudgieWindowingNotificationDispatcherIface BudgieWindowingNotificationDispatcherIface;

#define BUDGIE_WINDOWING_TYPE_NOTIFICATION_DISPATCHER_PROXY (budgie_windowing_notification_dispatcher_proxy_get_type ())
typedef enum  {
	BUDGIE_WINDOWING_WINDOW_FILTER_NONE = 0,
	BUDGIE_WINDOWING_WINDOW_FILTER_SKIP_PAGER = 1 << 0,
	BUDGIE_WINDOWING_WINDOW_FILTER_SKIP_TASKLIST = 1 << 1,
	BUDGIE_WINDOWING_WINDOW_FILTER_MINIMIZED = 1 << 2,
	BUDGIE_WINDOWING_WINDOW_FILTER_ALL = (BUDGIE_WINDOWING_WINDOW_FILTER_SKIP_PAGER | BUDGIE_WINDOWING_WINDOW_FILTER_SKIP_TASKLIST) | BUDGIE_WINDOWING_WINDOW_FILTER_MINIMIZED
} BudgieWindowingWindowFilter;

#define BUDGIE_WINDOWING_TYPE_WINDOW_FILTER (budgie_windowing_window_filter_get_type ())

#define BUDGIE_WINDOWING_TYPE_WINDOWING (budgie_windowing_windowing_get_type ())
#define BUDGIE_WINDOWING_WINDOWING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_WINDOWING_TYPE_WINDOWING, BudgieWindowingWindowing))
#define BUDGIE_WINDOWING_WINDOWING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BUDGIE_WINDOWING_TYPE_WINDOWING, BudgieWindowingWindowingClass))
#define BUDGIE_WINDOWING_IS_WINDOWING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_WINDOWING_TYPE_WINDOWING))
#define BUDGIE_WINDOWING_IS_WINDOWING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BUDGIE_WINDOWING_TYPE_WINDOWING))
#define BUDGIE_WINDOWING_WINDOWING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BUDGIE_WINDOWING_TYPE_WINDOWING, BudgieWindowingWindowingClass))

typedef struct _BudgieWindowingWindowing BudgieWindowingWindowing;
typedef struct _BudgieWindowingWindowingClass BudgieWindowingWindowingClass;
typedef struct _BudgieWindowingWindowingPrivate BudgieWindowingWindowingPrivate;

#define BUDGIE_WINDOWING_TYPE_WINDOW_GROUP (budgie_windowing_window_group_get_type ())
#define BUDGIE_WINDOWING_WINDOW_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BUDGIE_WINDOWING_TYPE_WINDOW_GROUP, BudgieWindowingWindowGroup))
#define BUDGIE_WINDOWING_WINDOW_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BUDGIE_WINDOWING_TYPE_WINDOW_GROUP, BudgieWindowingWindowGroupClass))
#define BUDGIE_WINDOWING_IS_WINDOW_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BUDGIE_WINDOWING_TYPE_WINDOW_GROUP))
#define BUDGIE_WINDOWING_IS_WINDOW_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BUDGIE_WINDOWING_TYPE_WINDOW_GROUP))
#define BUDGIE_WINDOWING_WINDOW_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BUDGIE_WINDOWING_TYPE_WINDOW_GROUP, BudgieWindowingWindowGroupClass))

typedef struct _BudgieWindowingWindowGroup BudgieWindowingWindowGroup;
typedef struct _BudgieWindowingWindowGroupClass BudgieWindowingWindowGroupClass;
typedef struct _BudgieWindowingWindowGroupPrivate BudgieWindowingWindowGroupPrivate;

struct _BudgieWindowingNotificationDispatcherIface {
	GTypeInterface parent_iface;
	gboolean (*get_notifications_paused) (BudgieWindowingNotificationDispatcher* self);
	void (*set_notifications_paused) (BudgieWindowingNotificationDispatcher* self, gboolean value);
};

struct _BudgieWindowingWindowing {
	GObject parent_instance;
	BudgieWindowingWindowingPrivate * priv;
};

struct _BudgieWindowingWindowingClass {
	GObjectClass parent_class;
};

struct _BudgieWindowingWindowGroup {
	GObject parent_instance;
	BudgieWindowingWindowGroupPrivate * priv;
};

struct _BudgieWindowingWindowGroupClass {
	GObjectClass parent_class;
};

VALA_EXTERN GType budgie_windowing_notification_dispatcher_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieWindowingNotificationDispatcher, g_object_unref)
VALA_EXTERN GType budgie_windowing_notification_dispatcher_proxy_get_type (void) G_GNUC_CONST ;
VALA_EXTERN guint budgie_windowing_notification_dispatcher_register_object (void* object,
                                                                GDBusConnection* connection,
                                                                const gchar* path,
                                                                GError** error);
VALA_EXTERN gboolean budgie_windowing_notification_dispatcher_get_notifications_paused (BudgieWindowingNotificationDispatcher* self);
VALA_EXTERN void budgie_windowing_notification_dispatcher_set_notifications_paused (BudgieWindowingNotificationDispatcher* self,
                                                                        gboolean value);
VALA_EXTERN GType budgie_windowing_window_filter_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType budgie_windowing_windowing_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieWindowingWindowing, g_object_unref)
VALA_EXTERN BudgieWindowingWindowing* budgie_windowing_windowing_new (void);
VALA_EXTERN BudgieWindowingWindowing* budgie_windowing_windowing_construct (GType object_type);
VALA_EXTERN XfwWorkspaceGroup* budgie_windowing_windowing_get_workspace_group (BudgieWindowingWindowing* self);
VALA_EXTERN void budgie_windowing_windowing_toggle_show_desktop (BudgieWindowingWindowing* self);
VALA_EXTERN void budgie_windowing_windowing_show_desktop (BudgieWindowingWindowing* self,
                                              gboolean show,
                                              BudgieWindowingWindowFilter filter);
VALA_EXTERN XfwWindow* budgie_windowing_windowing_get_active_window (BudgieWindowingWindowing* self);
VALA_EXTERN GType budgie_windowing_window_group_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (BudgieWindowingWindowGroup, g_object_unref)
VALA_EXTERN GList* budgie_windowing_windowing_get_window_groups (BudgieWindowingWindowing* self);
VALA_EXTERN XfwWorkspace* budgie_windowing_windowing_get_active_workspace (BudgieWindowingWindowing* self);
VALA_EXTERN gboolean budgie_windowing_windowing_get_has_windows (BudgieWindowingWindowing* self);
VALA_EXTERN GList* budgie_windowing_windowing_get_windows (BudgieWindowingWindowing* self);
VALA_EXTERN gboolean budgie_windowing_windowing_get_showing_desktop (BudgieWindowingWindowing* self);
VALA_EXTERN BudgieWindowingWindowGroup* budgie_windowing_window_group_new (XfwApplication* application,
                                                               GDesktopAppInfo* app_info);
VALA_EXTERN BudgieWindowingWindowGroup* budgie_windowing_window_group_construct (GType object_type,
                                                                     XfwApplication* application,
                                                                     GDesktopAppInfo* app_info);
VALA_EXTERN void budgie_windowing_window_group_add_window (BudgieWindowingWindowGroup* self,
                                               XfwWindow* window);
VALA_EXTERN void budgie_windowing_window_group_remove_window (BudgieWindowingWindowGroup* self,
                                                  XfwWindow* window);
VALA_EXTERN gchar* budgie_windowing_window_group_get_desktop_id (BudgieWindowingWindowGroup* self);
VALA_EXTERN XfwWindow* budgie_windowing_window_group_get_active_window (BudgieWindowingWindowGroup* self);
VALA_EXTERN XfwWindow* budgie_windowing_window_group_get_last_active_window (BudgieWindowingWindowGroup* self);
VALA_EXTERN XfwWindow* budgie_windowing_window_group_get_first_window (BudgieWindowingWindowGroup* self);
VALA_EXTERN GdkPixbuf* budgie_windowing_window_group_get_icon (BudgieWindowingWindowGroup* self,
                                                   gint size,
                                                   gint scale);
VALA_EXTERN XfwWindow* budgie_windowing_window_group_get_next_window (BudgieWindowingWindowGroup* self,
                                                          XfwWindow* window,
                                                          gboolean reverse);
VALA_EXTERN GList* budgie_windowing_window_group_get_windows (BudgieWindowingWindowGroup* self);
VALA_EXTERN gboolean budgie_windowing_window_group_has_window (BudgieWindowingWindowGroup* self,
                                                   XfwWindow* window);
VALA_EXTERN gboolean budgie_windowing_window_group_has_window_on_workspace (BudgieWindowingWindowGroup* self,
                                                                XfwWorkspace* workspace);
VALA_EXTERN gboolean budgie_windowing_window_group_has_windows (BudgieWindowingWindowGroup* self);
VALA_EXTERN void budgie_windowing_window_group_set_active_window (BudgieWindowingWindowGroup* self,
                                                      XfwWindow* window);
VALA_EXTERN void budgie_windowing_window_group_set_last_active_window (BudgieWindowingWindowGroup* self,
                                                           XfwWindow* window);
VALA_EXTERN XfwApplication* budgie_windowing_window_group_get_application (BudgieWindowingWindowGroup* self);
VALA_EXTERN const gchar* budgie_windowing_window_group_get_group_id (BudgieWindowingWindowGroup* self);
VALA_EXTERN GDesktopAppInfo* budgie_windowing_window_group_get_app_info (BudgieWindowingWindowGroup* self);

G_END_DECLS

#endif
