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

#ifndef __LIB_GALA_H__
#define __LIB_GALA_H__

#include <glib-object.h>
#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <meta/meta-startup-notification.h>
#include <gio/gdesktopappinfo.h>
#include <meta/window.h>
#include <sys/types.h>
#include <gio/gio.h>
#include <meta/meta-background-group.h>
#include <meta/meta-background-actor.h>
#include <clutter/clutter.h>
#include <cairo-gobject.h>
#include <float.h>
#include <math.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gdk/gdk.h>
#include <meta/meta-plugin.h>
#include <meta/workspace.h>
#include <meta/common.h>
#include <mtk/mtk.h>
#include <meta/meta-window-actor.h>
#include <meta/keybindings.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 GALA_NOTIFICATION_DATA_KEY "elementary-notification"
#define GALA_ACTION_KEYS_INTERACTIVE_SCREENSHOT_ACTION "interactive-screenshot-action"
#define GALA_ACTION_KEYS_OVERLAY_ACTION "overlay-action"
#define GALA_ACTION_KEYS_PANEL_MAIN_MENU_ACTION "panel-main-menu-action"
#define GALA_ACTION_KEYS_TOGGLE_RECORDING_ACTION "toggle-recording-action"

#define GALA_TYPE_ACTIVATABLE_COMPONENT (gala_activatable_component_get_type ())
#define GALA_ACTIVATABLE_COMPONENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_ACTIVATABLE_COMPONENT, GalaActivatableComponent))
#define GALA_IS_ACTIVATABLE_COMPONENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_ACTIVATABLE_COMPONENT))
#define GALA_ACTIVATABLE_COMPONENT_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GALA_TYPE_ACTIVATABLE_COMPONENT, GalaActivatableComponentIface))

typedef struct _GalaActivatableComponent GalaActivatableComponent;
typedef struct _GalaActivatableComponentIface GalaActivatableComponentIface;
typedef enum  {
	GALA_APP_STATE_STOPPED,
	GALA_APP_STATE_STARTING,
	GALA_APP_STATE_RUNNING
} GalaAppState;

#define GALA_TYPE_APP_STATE (gala_app_state_get_type ())

#define GALA_TYPE_APP (gala_app_get_type ())
#define GALA_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_APP, GalaApp))
#define GALA_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_APP, GalaAppClass))
#define GALA_IS_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_APP))
#define GALA_IS_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_APP))
#define GALA_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_APP, GalaAppClass))

typedef struct _GalaApp GalaApp;
typedef struct _GalaAppClass GalaAppClass;
typedef struct _GalaAppPrivate GalaAppPrivate;

#define GALA_TYPE_APP_CACHE (gala_app_cache_get_type ())
#define GALA_APP_CACHE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_APP_CACHE, GalaAppCache))
#define GALA_APP_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_APP_CACHE, GalaAppCacheClass))
#define GALA_IS_APP_CACHE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_APP_CACHE))
#define GALA_IS_APP_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_APP_CACHE))
#define GALA_APP_CACHE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_APP_CACHE, GalaAppCacheClass))

typedef struct _GalaAppCache GalaAppCache;
typedef struct _GalaAppCacheClass GalaAppCacheClass;
typedef struct _GalaAppCachePrivate GalaAppCachePrivate;

#define GALA_TYPE_APP_SYSTEM (gala_app_system_get_type ())
#define GALA_APP_SYSTEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_APP_SYSTEM, GalaAppSystem))
#define GALA_APP_SYSTEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_APP_SYSTEM, GalaAppSystemClass))
#define GALA_IS_APP_SYSTEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_APP_SYSTEM))
#define GALA_IS_APP_SYSTEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_APP_SYSTEM))
#define GALA_APP_SYSTEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_APP_SYSTEM, GalaAppSystemClass))

typedef struct _GalaAppSystem GalaAppSystem;
typedef struct _GalaAppSystemClass GalaAppSystemClass;
typedef struct _GalaAppSystemPrivate GalaAppSystemPrivate;

#define GALA_TYPE_BACKGROUND_MANAGER_INTERFACE (gala_background_manager_interface_get_type ())
#define GALA_BACKGROUND_MANAGER_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_BACKGROUND_MANAGER_INTERFACE, GalaBackgroundManagerInterface))
#define GALA_IS_BACKGROUND_MANAGER_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_BACKGROUND_MANAGER_INTERFACE))
#define GALA_BACKGROUND_MANAGER_INTERFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GALA_TYPE_BACKGROUND_MANAGER_INTERFACE, GalaBackgroundManagerInterfaceIface))

typedef struct _GalaBackgroundManagerInterface GalaBackgroundManagerInterface;
typedef struct _GalaBackgroundManagerInterfaceIface GalaBackgroundManagerInterfaceIface;

#define GALA_TYPE_CANVAS_ACTOR (gala_canvas_actor_get_type ())
#define GALA_CANVAS_ACTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_CANVAS_ACTOR, GalaCanvasActor))
#define GALA_CANVAS_ACTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_CANVAS_ACTOR, GalaCanvasActorClass))
#define GALA_IS_CANVAS_ACTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_CANVAS_ACTOR))
#define GALA_IS_CANVAS_ACTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_CANVAS_ACTOR))
#define GALA_CANVAS_ACTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_CANVAS_ACTOR, GalaCanvasActorClass))

typedef struct _GalaCanvasActor GalaCanvasActor;
typedef struct _GalaCanvasActorClass GalaCanvasActorClass;
typedef struct _GalaCanvasActorPrivate GalaCanvasActorPrivate;

#define GALA_TYPE_CLOSE_BUTTON (gala_close_button_get_type ())
#define GALA_CLOSE_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_CLOSE_BUTTON, GalaCloseButton))
#define GALA_CLOSE_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_CLOSE_BUTTON, GalaCloseButtonClass))
#define GALA_IS_CLOSE_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_CLOSE_BUTTON))
#define GALA_IS_CLOSE_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_CLOSE_BUTTON))
#define GALA_CLOSE_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_CLOSE_BUTTON, GalaCloseButtonClass))

typedef struct _GalaCloseButton GalaCloseButton;
typedef struct _GalaCloseButtonClass GalaCloseButtonClass;
typedef struct _GalaCloseButtonPrivate GalaCloseButtonPrivate;
typedef enum  {
	GALA_ANIMATION_DURATION_OPEN = 350,
	GALA_ANIMATION_DURATION_CLOSE = 195,
	GALA_ANIMATION_DURATION_HIDE = 200,
	GALA_ANIMATION_DURATION_MENU_MAP = 150,
	GALA_ANIMATION_DURATION_SNAP = 250,
	GALA_ANIMATION_DURATION_WORKSPACE_SWITCH_MIN = 300,
	GALA_ANIMATION_DURATION_WORKSPACE_SWITCH = 400,
	GALA_ANIMATION_DURATION_NUDGE = 360
} GalaAnimationDuration;

typedef enum  {
	GALA_GESTURE_ACTION_NONE,
	GALA_GESTURE_ACTION_SWITCH_WORKSPACE,
	GALA_GESTURE_ACTION_SWITCH_WINDOWS,
	GALA_GESTURE_ACTION_MULTITASKING_VIEW,
	GALA_GESTURE_ACTION_DOCK,
	GALA_GESTURE_ACTION_ZOOM,
	GALA_GESTURE_ACTION_CLOSE_WINDOW,
	GALA_GESTURE_ACTION_N_ACTIONS
} GalaGestureAction;

#define GALA_TYPE_GESTURE_ACTION (gala_gesture_action_get_type ())
typedef enum  {
	GALA_DRAG_DROP_ACTION_TYPE_SOURCE = 1 << 0,
	GALA_DRAG_DROP_ACTION_TYPE_DESTINATION = 1 << 1
} GalaDragDropActionType;

#define GALA_TYPE_DRAG_DROP_ACTION_TYPE (gala_drag_drop_action_type_get_type ())

#define GALA_TYPE_DRAG_DROP_ACTION (gala_drag_drop_action_get_type ())
#define GALA_DRAG_DROP_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_DRAG_DROP_ACTION, GalaDragDropAction))
#define GALA_DRAG_DROP_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_DRAG_DROP_ACTION, GalaDragDropActionClass))
#define GALA_IS_DRAG_DROP_ACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_DRAG_DROP_ACTION))
#define GALA_IS_DRAG_DROP_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_DRAG_DROP_ACTION))
#define GALA_DRAG_DROP_ACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_DRAG_DROP_ACTION, GalaDragDropActionClass))

typedef struct _GalaDragDropAction GalaDragDropAction;
typedef struct _GalaDragDropActionClass GalaDragDropActionClass;
typedef struct _GalaDragDropActionPrivate GalaDragDropActionPrivate;

#define GALA_DRAWING_TYPE_BUFFER_SURFACE (gala_drawing_buffer_surface_get_type ())
#define GALA_DRAWING_BUFFER_SURFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_DRAWING_TYPE_BUFFER_SURFACE, GalaDrawingBufferSurface))
#define GALA_DRAWING_BUFFER_SURFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_DRAWING_TYPE_BUFFER_SURFACE, GalaDrawingBufferSurfaceClass))
#define GALA_DRAWING_IS_BUFFER_SURFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_DRAWING_TYPE_BUFFER_SURFACE))
#define GALA_DRAWING_IS_BUFFER_SURFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_DRAWING_TYPE_BUFFER_SURFACE))
#define GALA_DRAWING_BUFFER_SURFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_DRAWING_TYPE_BUFFER_SURFACE, GalaDrawingBufferSurfaceClass))

typedef struct _GalaDrawingBufferSurface GalaDrawingBufferSurface;
typedef struct _GalaDrawingBufferSurfaceClass GalaDrawingBufferSurfaceClass;
typedef struct _GalaDrawingBufferSurfacePrivate GalaDrawingBufferSurfacePrivate;

#define GALA_DRAWING_TYPE_COLOR (gala_drawing_color_get_type ())
#define GALA_DRAWING_COLOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_DRAWING_TYPE_COLOR, GalaDrawingColor))
#define GALA_DRAWING_COLOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_DRAWING_TYPE_COLOR, GalaDrawingColorClass))
#define GALA_DRAWING_IS_COLOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_DRAWING_TYPE_COLOR))
#define GALA_DRAWING_IS_COLOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_DRAWING_TYPE_COLOR))
#define GALA_DRAWING_COLOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_DRAWING_TYPE_COLOR, GalaDrawingColorClass))

typedef struct _GalaDrawingColor GalaDrawingColor;
typedef struct _GalaDrawingColorClass GalaDrawingColorClass;

#define GALA_DRAWING_TYPE_CANVAS (gala_drawing_canvas_get_type ())
#define GALA_DRAWING_CANVAS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_DRAWING_TYPE_CANVAS, GalaDrawingCanvas))
#define GALA_DRAWING_CANVAS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_DRAWING_TYPE_CANVAS, GalaDrawingCanvasClass))
#define GALA_DRAWING_IS_CANVAS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_DRAWING_TYPE_CANVAS))
#define GALA_DRAWING_IS_CANVAS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_DRAWING_TYPE_CANVAS))
#define GALA_DRAWING_CANVAS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_DRAWING_TYPE_CANVAS, GalaDrawingCanvasClass))

typedef struct _GalaDrawingCanvas GalaDrawingCanvas;
typedef struct _GalaDrawingCanvasClass GalaDrawingCanvasClass;
typedef struct _GalaDrawingCanvasPrivate GalaDrawingCanvasPrivate;
typedef struct _GalaDrawingColorPrivate GalaDrawingColorPrivate;

#define GALA_DRAWING_TYPE_STYLE_MANAGER (gala_drawing_style_manager_get_type ())
#define GALA_DRAWING_STYLE_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_DRAWING_TYPE_STYLE_MANAGER, GalaDrawingStyleManager))
#define GALA_DRAWING_STYLE_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_DRAWING_TYPE_STYLE_MANAGER, GalaDrawingStyleManagerClass))
#define GALA_DRAWING_IS_STYLE_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_DRAWING_TYPE_STYLE_MANAGER))
#define GALA_DRAWING_IS_STYLE_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_DRAWING_TYPE_STYLE_MANAGER))
#define GALA_DRAWING_STYLE_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_DRAWING_TYPE_STYLE_MANAGER, GalaDrawingStyleManagerClass))

typedef struct _GalaDrawingStyleManager GalaDrawingStyleManager;
typedef struct _GalaDrawingStyleManagerClass GalaDrawingStyleManagerClass;
typedef struct _GalaDrawingStyleManagerPrivate GalaDrawingStyleManagerPrivate;
typedef enum  {
	GALA_DRAWING_STYLE_MANAGER_COLOR_SCHEME_NO_PREFERENCE,
	GALA_DRAWING_STYLE_MANAGER_COLOR_SCHEME_DARK,
	GALA_DRAWING_STYLE_MANAGER_COLOR_SCHEME_LIGHT
} GalaDrawingStyleManagerColorScheme;

#define GALA_DRAWING_STYLE_MANAGER_TYPE_COLOR_SCHEME (gala_drawing_style_manager_color_scheme_get_type ())

#define GALA_DRAWING_TYPE_UTILITIES (gala_drawing_utilities_get_type ())
#define GALA_DRAWING_UTILITIES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_DRAWING_TYPE_UTILITIES, GalaDrawingUtilities))
#define GALA_DRAWING_UTILITIES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_DRAWING_TYPE_UTILITIES, GalaDrawingUtilitiesClass))
#define GALA_DRAWING_IS_UTILITIES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_DRAWING_TYPE_UTILITIES))
#define GALA_DRAWING_IS_UTILITIES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_DRAWING_TYPE_UTILITIES))
#define GALA_DRAWING_UTILITIES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_DRAWING_TYPE_UTILITIES, GalaDrawingUtilitiesClass))

typedef struct _GalaDrawingUtilities GalaDrawingUtilities;
typedef struct _GalaDrawingUtilitiesClass GalaDrawingUtilitiesClass;
typedef struct _GalaDrawingUtilitiesPrivate GalaDrawingUtilitiesPrivate;

#define GALA_TYPE_IMAGE (gala_image_get_type ())
#define GALA_IMAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_IMAGE, GalaImage))
#define GALA_IMAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_IMAGE, GalaImageClass))
#define GALA_IS_IMAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_IMAGE))
#define GALA_IS_IMAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_IMAGE))
#define GALA_IMAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_IMAGE, GalaImageClass))

typedef struct _GalaImage GalaImage;
typedef struct _GalaImageClass GalaImageClass;
typedef struct _GalaImagePrivate GalaImagePrivate;
typedef enum  {
	GALA_PLUGIN_FUNCTION_ADDITION,
	GALA_PLUGIN_FUNCTION_WINDOW_SWITCHER,
	GALA_PLUGIN_FUNCTION_WINDOW_OVERVIEW
} GalaPluginFunction;

#define GALA_TYPE_PLUGIN_FUNCTION (gala_plugin_function_get_type ())
typedef enum  {
	GALA_LOAD_PRIORITY_IMMEDIATE,
	GALA_LOAD_PRIORITY_DEFERRED
} GalaLoadPriority;

#define GALA_TYPE_LOAD_PRIORITY (gala_load_priority_get_type ())

#define GALA_TYPE_PLUGIN_INFO (gala_plugin_info_get_type ())
typedef struct _GalaPluginInfo GalaPluginInfo;

#define GALA_TYPE_PLUGIN (gala_plugin_get_type ())
#define GALA_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_PLUGIN, GalaPlugin))
#define GALA_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_PLUGIN, GalaPluginClass))
#define GALA_IS_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_PLUGIN))
#define GALA_IS_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_PLUGIN))
#define GALA_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_PLUGIN, GalaPluginClass))

typedef struct _GalaPlugin GalaPlugin;
typedef struct _GalaPluginClass GalaPluginClass;
typedef struct _GalaPluginPrivate GalaPluginPrivate;

#define GALA_TYPE_WINDOW_MANAGER (gala_window_manager_get_type ())
#define GALA_WINDOW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_WINDOW_MANAGER, GalaWindowManager))
#define GALA_IS_WINDOW_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_WINDOW_MANAGER))
#define GALA_WINDOW_MANAGER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GALA_TYPE_WINDOW_MANAGER, GalaWindowManagerIface))

typedef struct _GalaWindowManager GalaWindowManager;
typedef struct _GalaWindowManagerIface GalaWindowManagerIface;

#define GALA_TYPE_MODAL_PROXY (gala_modal_proxy_get_type ())
#define GALA_MODAL_PROXY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_MODAL_PROXY, GalaModalProxy))
#define GALA_MODAL_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_MODAL_PROXY, GalaModalProxyClass))
#define GALA_IS_MODAL_PROXY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_MODAL_PROXY))
#define GALA_IS_MODAL_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_MODAL_PROXY))
#define GALA_MODAL_PROXY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_MODAL_PROXY, GalaModalProxyClass))

typedef struct _GalaModalProxy GalaModalProxy;
typedef struct _GalaModalProxyClass GalaModalProxyClass;
typedef enum  {
	GALA_ACTION_TYPE_NONE = 0,
	GALA_ACTION_TYPE_SHOW_MULTITASKING_VIEW,
	GALA_ACTION_TYPE_MAXIMIZE_CURRENT,
	GALA_ACTION_TYPE_HIDE_CURRENT,
	GALA_ACTION_TYPE_OPEN_LAUNCHER,
	GALA_ACTION_TYPE_CUSTOM_COMMAND,
	GALA_ACTION_TYPE_WINDOW_OVERVIEW,
	GALA_ACTION_TYPE_WINDOW_OVERVIEW_ALL,
	GALA_ACTION_TYPE_SWITCH_TO_WORKSPACE_PREVIOUS,
	GALA_ACTION_TYPE_SWITCH_TO_WORKSPACE_NEXT,
	GALA_ACTION_TYPE_SWITCH_TO_WORKSPACE_LAST,
	GALA_ACTION_TYPE_START_MOVE_CURRENT,
	GALA_ACTION_TYPE_START_RESIZE_CURRENT,
	GALA_ACTION_TYPE_TOGGLE_ALWAYS_ON_TOP_CURRENT,
	GALA_ACTION_TYPE_TOGGLE_ALWAYS_ON_VISIBLE_WORKSPACE_CURRENT,
	GALA_ACTION_TYPE_MOVE_CURRENT_WORKSPACE_LEFT,
	GALA_ACTION_TYPE_MOVE_CURRENT_WORKSPACE_RIGHT,
	GALA_ACTION_TYPE_CLOSE_CURRENT,
	GALA_ACTION_TYPE_SCREENSHOT_CURRENT
} GalaActionType;

#define GALA_TYPE_ACTION_TYPE (gala_action_type_get_type ())

#define GALA_TYPE_SHADOW_EFFECT (gala_shadow_effect_get_type ())
#define GALA_SHADOW_EFFECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_SHADOW_EFFECT, GalaShadowEffect))
#define GALA_SHADOW_EFFECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_SHADOW_EFFECT, GalaShadowEffectClass))
#define GALA_IS_SHADOW_EFFECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_SHADOW_EFFECT))
#define GALA_IS_SHADOW_EFFECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_SHADOW_EFFECT))
#define GALA_SHADOW_EFFECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_SHADOW_EFFECT, GalaShadowEffectClass))

typedef struct _GalaShadowEffect GalaShadowEffect;
typedef struct _GalaShadowEffectClass GalaShadowEffectClass;
typedef struct _GalaShadowEffectPrivate GalaShadowEffectPrivate;

#define GALA_TYPE_UTILS (gala_utils_get_type ())
#define GALA_UTILS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_UTILS, GalaUtils))
#define GALA_UTILS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_UTILS, GalaUtilsClass))
#define GALA_IS_UTILS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_UTILS))
#define GALA_IS_UTILS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_UTILS))
#define GALA_UTILS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_UTILS, GalaUtilsClass))

typedef struct _GalaUtils GalaUtils;
typedef struct _GalaUtilsClass GalaUtilsClass;
typedef struct _GalaUtilsPrivate GalaUtilsPrivate;

#define GALA_TYPE_WINDOW_ICON (gala_window_icon_get_type ())
#define GALA_WINDOW_ICON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_WINDOW_ICON, GalaWindowIcon))
#define GALA_WINDOW_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_WINDOW_ICON, GalaWindowIconClass))
#define GALA_IS_WINDOW_ICON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_WINDOW_ICON))
#define GALA_IS_WINDOW_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_WINDOW_ICON))
#define GALA_WINDOW_ICON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_WINDOW_ICON, GalaWindowIconClass))

typedef struct _GalaWindowIcon GalaWindowIcon;
typedef struct _GalaWindowIconClass GalaWindowIconClass;
typedef struct _GalaWindowIconPrivate GalaWindowIconPrivate;
typedef enum  {
	GALA_WINDOW_FLAGS_NONE = 0,
	GALA_WINDOW_FLAGS_CAN_HIDE = 1 << 0,
	GALA_WINDOW_FLAGS_CAN_MAXIMIZE = 1 << 1,
	GALA_WINDOW_FLAGS_IS_MAXIMIZED = 1 << 2,
	GALA_WINDOW_FLAGS_ALLOWS_MOVE = 1 << 3,
	GALA_WINDOW_FLAGS_ALLOWS_RESIZE = 1 << 4,
	GALA_WINDOW_FLAGS_ALWAYS_ON_TOP = 1 << 5,
	GALA_WINDOW_FLAGS_ON_ALL_WORKSPACES = 1 << 6,
	GALA_WINDOW_FLAGS_CAN_CLOSE = 1 << 7,
	GALA_WINDOW_FLAGS_IS_TILED = 1 << 8,
	GALA_WINDOW_FLAGS_ALLOWS_MOVE_LEFT = 1 << 9,
	GALA_WINDOW_FLAGS_ALLOWS_MOVE_RIGHT = 1 << 10
} GalaWindowFlags;

#define GALA_TYPE_WINDOW_FLAGS (gala_window_flags_get_type ())
typedef gboolean (*GalaKeybindingFilter) (MetaKeyBinding* binding, gpointer user_data);
typedef struct _GalaModalProxyPrivate GalaModalProxyPrivate;

struct _GalaActivatableComponentIface {
	GTypeInterface parent_iface;
	void (*open) (GalaActivatableComponent* self, GHashTable* hints);
	void (*close) (GalaActivatableComponent* self, GHashTable* hints);
	gboolean (*is_opened) (GalaActivatableComponent* self);
};

struct _GalaApp {
	GObject parent_instance;
	GalaAppPrivate * priv;
};

struct _GalaAppClass {
	GObjectClass parent_class;
};

struct _GalaAppCache {
	GObject parent_instance;
	GalaAppCachePrivate * priv;
};

struct _GalaAppCacheClass {
	GObjectClass parent_class;
};

struct _GalaAppSystem {
	GObject parent_instance;
	GalaAppSystemPrivate * priv;
};

struct _GalaAppSystemClass {
	GObjectClass parent_class;
};

struct _GalaBackgroundManagerInterfaceIface {
	GTypeInterface parent_iface;
	MetaBackgroundActor* (*get_newest_background_actor) (GalaBackgroundManagerInterface* self);
};

struct _GalaCanvasActor {
	ClutterActor parent_instance;
	GalaCanvasActorPrivate * priv;
};

struct _GalaCanvasActorClass {
	ClutterActorClass parent_class;
	void (*draw) (GalaCanvasActor* self, cairo_t* canvas, gint width, gint height);
};

struct _GalaCloseButton {
	ClutterActor parent_instance;
	GalaCloseButtonPrivate * priv;
};

struct _GalaCloseButtonClass {
	ClutterActorClass parent_class;
};

struct _GalaDragDropAction {
	ClutterAction parent_instance;
	GalaDragDropActionPrivate * priv;
};

struct _GalaDragDropActionClass {
	ClutterActionClass parent_class;
};

struct _GalaDrawingBufferSurface {
	GObject parent_instance;
	GalaDrawingBufferSurfacePrivate * priv;
};

struct _GalaDrawingBufferSurfaceClass {
	GObjectClass parent_class;
};

struct _GalaDrawingCanvas {
	GObject parent_instance;
	GalaDrawingCanvasPrivate * priv;
};

struct _GalaDrawingCanvasClass {
	GObjectClass parent_class;
};

struct _GalaDrawingColor {
	GObject parent_instance;
	GalaDrawingColorPrivate * priv;
	gdouble R;
	gdouble G;
	gdouble B;
	gdouble A;
};

struct _GalaDrawingColorClass {
	GObjectClass parent_class;
};

struct _GalaDrawingStyleManager {
	GObject parent_instance;
	GalaDrawingStyleManagerPrivate * priv;
};

struct _GalaDrawingStyleManagerClass {
	GObjectClass parent_class;
};

struct _GalaDrawingUtilities {
	GObject parent_instance;
	GalaDrawingUtilitiesPrivate * priv;
};

struct _GalaDrawingUtilitiesClass {
	GObjectClass parent_class;
};

struct _GalaImage {
	ClutterImage parent_instance;
	GalaImagePrivate * priv;
};

struct _GalaImageClass {
	ClutterImageClass parent_class;
};

struct _GalaPluginInfo {
	gchar* name;
	gchar* author;
	GType plugin_type;
	GalaPluginFunction provides;
	GalaLoadPriority load_priority;
	gchar* module_name;
};

struct _GalaWindowManagerIface {
	GTypeInterface parent_iface;
	GalaModalProxy* (*push_modal) (GalaWindowManager* self, ClutterActor* actor);
	void (*pop_modal) (GalaWindowManager* self, GalaModalProxy* proxy);
	gboolean (*is_modal) (GalaWindowManager* self);
	gboolean (*modal_proxy_valid) (GalaWindowManager* self, GalaModalProxy* proxy);
	void (*perform_action) (GalaWindowManager* self, GalaActionType type);
	void (*move_window) (GalaWindowManager* self, MetaWindow* window, MetaWorkspace* workspace, guint32 timestamp);
	void (*switch_to_next_workspace) (GalaWindowManager* self, MetaMotionDirection direction, guint32 timestamp);
	void (*launch_action) (GalaWindowManager* self, const gchar* action_key);
	gboolean (*filter_action) (GalaWindowManager* self, GalaGestureAction action);
	ClutterActor* (*get_ui_group) (GalaWindowManager* self);
	void (*set_ui_group) (GalaWindowManager* self, ClutterActor* value);
	ClutterStage* (*get_stage) (GalaWindowManager* self);
	void (*set_stage) (GalaWindowManager* self, ClutterStage* value);
	ClutterActor* (*get_window_group) (GalaWindowManager* self);
	void (*set_window_group) (GalaWindowManager* self, ClutterActor* value);
	ClutterActor* (*get_top_window_group) (GalaWindowManager* self);
	void (*set_top_window_group) (GalaWindowManager* self, ClutterActor* value);
	MetaBackgroundGroup* (*get_background_group) (GalaWindowManager* self);
	void (*set_background_group) (GalaWindowManager* self, MetaBackgroundGroup* value);
};

struct _GalaPlugin {
	GObject parent_instance;
	GalaPluginPrivate * priv;
};

struct _GalaPluginClass {
	GObjectClass parent_class;
	void (*initialize) (GalaPlugin* self, GalaWindowManager* wm);
	void (*destroy) (GalaPlugin* self);
};

struct _GalaShadowEffect {
	ClutterEffect parent_instance;
	GalaShadowEffectPrivate * priv;
};

struct _GalaShadowEffectClass {
	ClutterEffectClass parent_class;
};

struct _GalaUtils {
	GTypeInstance parent_instance;
	volatile int ref_count;
	GalaUtilsPrivate * priv;
};

struct _GalaUtilsClass {
	GTypeClass parent_class;
	void (*finalize) (GalaUtils *self);
};

struct _GalaWindowIcon {
	ClutterActor parent_instance;
	GalaWindowIconPrivate * priv;
};

struct _GalaWindowIconClass {
	ClutterActorClass parent_class;
};

struct _GalaModalProxy {
	GObject parent_instance;
	GalaModalProxyPrivate * priv;
};

struct _GalaModalProxyClass {
	GObjectClass parent_class;
};

VALA_EXTERN GType gala_activatable_component_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaActivatableComponent, g_object_unref)
VALA_EXTERN void gala_activatable_component_open (GalaActivatableComponent* self,
                                      GHashTable* hints);
VALA_EXTERN void gala_activatable_component_close (GalaActivatableComponent* self,
                                       GHashTable* hints);
VALA_EXTERN gboolean gala_activatable_component_is_opened (GalaActivatableComponent* self);
VALA_EXTERN GType gala_app_state_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType gala_app_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaApp, g_object_unref)
VALA_EXTERN GalaApp* gala_app_new_from_startup_sequence (MetaStartupSequence* sequence);
VALA_EXTERN GalaApp* gala_app_new (GDesktopAppInfo* info);
VALA_EXTERN GalaApp* gala_app_construct (GType object_type,
                             GDesktopAppInfo* info);
VALA_EXTERN GalaApp* gala_app_new_for_window (MetaWindow* window);
VALA_EXTERN GalaApp* gala_app_construct_for_window (GType object_type,
                                        MetaWindow* window);
VALA_EXTERN GSList* gala_app_get_windows (GalaApp* self);
VALA_EXTERN void gala_app_add_window (GalaApp* self,
                          MetaWindow* window);
VALA_EXTERN void gala_app_remove_window (GalaApp* self,
                             MetaWindow* window);
VALA_EXTERN void gala_app_handle_startup_sequence (GalaApp* self,
                                       MetaStartupSequence* sequence);
VALA_EXTERN GSList* gala_app_get_pids (GalaApp* self);
VALA_EXTERN const gchar* gala_app_get_id (GalaApp* self);
VALA_EXTERN GDesktopAppInfo* gala_app_get_app_info (GalaApp* self);
VALA_EXTERN GIcon* gala_app_get_icon (GalaApp* self);
VALA_EXTERN const gchar* gala_app_get_name (GalaApp* self);
VALA_EXTERN const gchar* gala_app_get_description (GalaApp* self);
VALA_EXTERN GalaAppState gala_app_get_state (GalaApp* self);
VALA_EXTERN GType gala_app_cache_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaAppCache, g_object_unref)
VALA_EXTERN GDesktopAppInfo* gala_app_cache_lookup_id (GalaAppCache* self,
                                           const gchar* id);
VALA_EXTERN GDesktopAppInfo* gala_app_cache_lookup_startup_wmclass (GalaAppCache* self,
                                                        const gchar* wm_class);
VALA_EXTERN GalaAppCache* gala_app_cache_new (void);
VALA_EXTERN GalaAppCache* gala_app_cache_construct (GType object_type);
VALA_EXTERN GType gala_app_system_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaAppSystem, g_object_unref)
VALA_EXTERN GalaAppSystem* gala_app_system_get_default (void);
VALA_EXTERN GalaApp* gala_app_system_lookup_app (GalaAppSystem* self,
                                     const gchar* id);
VALA_EXTERN GalaApp* gala_app_system_lookup_startup_wmclass (GalaAppSystem* self,
                                                 const gchar* wmclass);
VALA_EXTERN GalaApp* gala_app_system_lookup_desktop_wmclass (GalaAppSystem* self,
                                                 const gchar* wmclass);
VALA_EXTERN GalaApp* gala_app_system_guess_app_by_id (GalaAppSystem* self,
                                          const gchar* _id);
VALA_EXTERN void gala_app_system_notify_app_state_changed (GalaAppSystem* self,
                                               GalaApp* app);
VALA_EXTERN GList* gala_app_system_get_running_apps (GalaAppSystem* self);
VALA_EXTERN GalaAppSystem* gala_app_system_new (void);
VALA_EXTERN GalaAppSystem* gala_app_system_construct (GType object_type);
VALA_EXTERN GType gala_background_manager_interface_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaBackgroundManagerInterface, g_object_unref)
VALA_EXTERN MetaBackgroundActor* gala_background_manager_interface_get_newest_background_actor (GalaBackgroundManagerInterface* self);
VALA_EXTERN GType gala_canvas_actor_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaCanvasActor, g_object_unref)
VALA_EXTERN void gala_canvas_actor_draw (GalaCanvasActor* self,
                             cairo_t* canvas,
                             gint width,
                             gint height);
VALA_EXTERN GalaCanvasActor* gala_canvas_actor_new (void);
VALA_EXTERN GalaCanvasActor* gala_canvas_actor_construct (GType object_type);
VALA_EXTERN GType gala_close_button_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaCloseButton, g_object_unref)
VALA_EXTERN GalaCloseButton* gala_close_button_new (gfloat scale);
VALA_EXTERN GalaCloseButton* gala_close_button_construct (GType object_type,
                                              gfloat scale);
VALA_EXTERN gfloat gala_close_button_get_scale (GalaCloseButton* self);
VALA_EXTERN void gala_close_button_set_scale (GalaCloseButton* self,
                                  gfloat value);
VALA_EXTERN GType gala_gesture_action_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType gala_drag_drop_action_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType gala_drag_drop_action_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaDragDropAction, g_object_unref)
VALA_EXTERN GalaDragDropAction* gala_drag_drop_action_new (GalaDragDropActionType type,
                                               const gchar* id);
VALA_EXTERN GalaDragDropAction* gala_drag_drop_action_construct (GType object_type,
                                                     GalaDragDropActionType type,
                                                     const gchar* id);
VALA_EXTERN void gala_drag_drop_action_cancel (GalaDragDropAction* self);
VALA_EXTERN void gala_drag_drop_action_cancel_all_by_id (const gchar* id);
VALA_EXTERN GalaDragDropActionType gala_drag_drop_action_get_drag_type (GalaDragDropAction* self);
VALA_EXTERN const gchar* gala_drag_drop_action_get_drag_id (GalaDragDropAction* self);
VALA_EXTERN ClutterActor* gala_drag_drop_action_get_handle (GalaDragDropAction* self);
VALA_EXTERN gboolean gala_drag_drop_action_get_dragging (GalaDragDropAction* self);
VALA_EXTERN gboolean gala_drag_drop_action_get_allow_bubbling (GalaDragDropAction* self);
VALA_EXTERN void gala_drag_drop_action_set_allow_bubbling (GalaDragDropAction* self,
                                               gboolean value);
VALA_EXTERN void gala_drag_drop_action_set_hovered (GalaDragDropAction* self,
                                        ClutterActor* value);
VALA_EXTERN GType gala_drawing_buffer_surface_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaDrawingBufferSurface, g_object_unref)
VALA_EXTERN GalaDrawingBufferSurface* gala_drawing_buffer_surface_new (gint width,
                                                           gint height);
VALA_EXTERN GalaDrawingBufferSurface* gala_drawing_buffer_surface_construct (GType object_type,
                                                                 gint width,
                                                                 gint height);
VALA_EXTERN GalaDrawingBufferSurface* gala_drawing_buffer_surface_new_with_surface (gint width,
                                                                        gint height,
                                                                        cairo_surface_t* model);
VALA_EXTERN GalaDrawingBufferSurface* gala_drawing_buffer_surface_construct_with_surface (GType object_type,
                                                                              gint width,
                                                                              gint height,
                                                                              cairo_surface_t* model);
VALA_EXTERN GalaDrawingBufferSurface* gala_drawing_buffer_surface_new_with_buffer_surface (gint width,
                                                                               gint height,
                                                                               GalaDrawingBufferSurface* model);
VALA_EXTERN GalaDrawingBufferSurface* gala_drawing_buffer_surface_construct_with_buffer_surface (GType object_type,
                                                                                     gint width,
                                                                                     gint height,
                                                                                     GalaDrawingBufferSurface* model);
VALA_EXTERN void gala_drawing_buffer_surface_clear (GalaDrawingBufferSurface* self);
VALA_EXTERN GdkPixbuf* gala_drawing_buffer_surface_load_to_pixbuf (GalaDrawingBufferSurface* self);
VALA_EXTERN GType gala_drawing_color_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaDrawingColor, g_object_unref)
VALA_EXTERN GalaDrawingColor* gala_drawing_buffer_surface_average_color (GalaDrawingBufferSurface* self);
VALA_EXTERN void gala_drawing_buffer_surface_fast_blur (GalaDrawingBufferSurface* self,
                                            gint radius,
                                            gint process_count);
VALA_EXTERN void gala_drawing_buffer_surface_exponential_blur (GalaDrawingBufferSurface* self,
                                                   gint radius);
VALA_EXTERN void gala_drawing_buffer_surface_gaussian_blur (GalaDrawingBufferSurface* self,
                                                gint radius);
VALA_EXTERN cairo_surface_t* gala_drawing_buffer_surface_get_surface (GalaDrawingBufferSurface* self);
VALA_EXTERN gint gala_drawing_buffer_surface_get_width (GalaDrawingBufferSurface* self);
VALA_EXTERN gint gala_drawing_buffer_surface_get_height (GalaDrawingBufferSurface* self);
VALA_EXTERN cairo_t* gala_drawing_buffer_surface_get_context (GalaDrawingBufferSurface* self);
VALA_EXTERN GType gala_drawing_canvas_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaDrawingCanvas, g_object_unref)
VALA_EXTERN void gala_drawing_canvas_set_size (GalaDrawingCanvas* self,
                                   gint new_width,
                                   gint new_height);
VALA_EXTERN void gala_drawing_canvas_set_scale_factor (GalaDrawingCanvas* self,
                                           gfloat new_scale_factor);
VALA_EXTERN GalaDrawingCanvas* gala_drawing_canvas_new (void);
VALA_EXTERN GalaDrawingCanvas* gala_drawing_canvas_construct (GType object_type);
VALA_EXTERN guint8 gala_drawing_color_alpha_from_int (gint color);
VALA_EXTERN guint8 gala_drawing_color_red_from_int (gint color);
VALA_EXTERN guint8 gala_drawing_color_green_from_int (gint color);
VALA_EXTERN guint8 gala_drawing_color_blue_from_int (gint color);
VALA_EXTERN GalaDrawingColor* gala_drawing_color_new (gdouble R,
                                          gdouble G,
                                          gdouble B,
                                          gdouble A);
VALA_EXTERN GalaDrawingColor* gala_drawing_color_construct (GType object_type,
                                                gdouble R,
                                                gdouble G,
                                                gdouble B,
                                                gdouble A);
VALA_EXTERN GalaDrawingColor* gala_drawing_color_new_from_rgba (GdkRGBA* color);
VALA_EXTERN GalaDrawingColor* gala_drawing_color_construct_from_rgba (GType object_type,
                                                          GdkRGBA* color);
VALA_EXTERN GalaDrawingColor* gala_drawing_color_new_from_string (const gchar* color);
VALA_EXTERN GalaDrawingColor* gala_drawing_color_construct_from_string (GType object_type,
                                                            const gchar* color);
VALA_EXTERN GalaDrawingColor* gala_drawing_color_new_from_int (gint color);
VALA_EXTERN GalaDrawingColor* gala_drawing_color_construct_from_int (GType object_type,
                                                         gint color);
VALA_EXTERN GalaDrawingColor* gala_drawing_color_set_hue (GalaDrawingColor* self,
                                              gdouble hue);
VALA_EXTERN GalaDrawingColor* gala_drawing_color_set_sat (GalaDrawingColor* self,
                                              gdouble sat);
VALA_EXTERN GalaDrawingColor* gala_drawing_color_set_val (GalaDrawingColor* self,
                                              gdouble val);
VALA_EXTERN GalaDrawingColor* gala_drawing_color_set_alpha (GalaDrawingColor* self,
                                                gdouble alpha);
VALA_EXTERN gdouble gala_drawing_color_get_hue (GalaDrawingColor* self);
VALA_EXTERN gdouble gala_drawing_color_get_sat (GalaDrawingColor* self);
VALA_EXTERN gdouble gala_drawing_color_get_val (GalaDrawingColor* self);
VALA_EXTERN GalaDrawingColor* gala_drawing_color_add_hue (GalaDrawingColor* self,
                                              gdouble val);
VALA_EXTERN GalaDrawingColor* gala_drawing_color_set_min_sat (GalaDrawingColor* self,
                                                  gdouble sat);
VALA_EXTERN GalaDrawingColor* gala_drawing_color_set_min_value (GalaDrawingColor* self,
                                                    gdouble val);
VALA_EXTERN GalaDrawingColor* gala_drawing_color_set_max_sat (GalaDrawingColor* self,
                                                  gdouble sat);
VALA_EXTERN GalaDrawingColor* gala_drawing_color_set_max_val (GalaDrawingColor* self,
                                                  gdouble val);
VALA_EXTERN GalaDrawingColor* gala_drawing_color_multiply_sat (GalaDrawingColor* self,
                                                   gdouble amount);
VALA_EXTERN GalaDrawingColor* gala_drawing_color_brighten_val (GalaDrawingColor* self,
                                                   gdouble amount);
VALA_EXTERN GalaDrawingColor* gala_drawing_color_darken_val (GalaDrawingColor* self,
                                                 gdouble amount);
VALA_EXTERN GalaDrawingColor* gala_drawing_color_darken_by_sat (GalaDrawingColor* self,
                                                    gdouble amount);
VALA_EXTERN gchar* gala_drawing_color_settings_serialize (GalaDrawingColor* self);
VALA_EXTERN void gala_drawing_color_settings_deserialize (GalaDrawingColor* self,
                                              const gchar* s);
VALA_EXTERN gchar* gala_drawing_color_to_string (GalaDrawingColor* self);
VALA_EXTERN gint gala_drawing_color_to_int (GalaDrawingColor* self);
VALA_EXTERN GType gala_drawing_style_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaDrawingStyleManager, g_object_unref)
VALA_EXTERN GType gala_drawing_style_manager_color_scheme_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GalaDrawingStyleManager* gala_drawing_style_manager_get_instance (void);
VALA_EXTERN GalaDrawingStyleManager* gala_drawing_style_manager_new (void);
VALA_EXTERN GalaDrawingStyleManager* gala_drawing_style_manager_construct (GType object_type);
VALA_EXTERN GalaDrawingStyleManagerColorScheme gala_drawing_style_manager_get_prefers_color_scheme (GalaDrawingStyleManager* self);
VALA_EXTERN void gala_drawing_style_manager_get_theme_accent_color (GalaDrawingStyleManager* self,
                                                        GdkRGBA * result);
VALA_EXTERN GType gala_drawing_utilities_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaDrawingUtilities, g_object_unref)
VALA_EXTERN void gala_drawing_utilities_cairo_rounded_rectangle (cairo_t* cr,
                                                     gdouble x,
                                                     gdouble y,
                                                     gdouble width,
                                                     gdouble height,
                                                     gdouble radius);
VALA_EXTERN GalaDrawingColor* gala_drawing_utilities_average_color (GdkPixbuf* source);
VALA_EXTERN GalaDrawingUtilities* gala_drawing_utilities_new (void);
VALA_EXTERN GalaDrawingUtilities* gala_drawing_utilities_construct (GType object_type);
VALA_EXTERN GType gala_image_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaImage, g_object_unref)
VALA_EXTERN GalaImage* gala_image_new_from_pixbuf (GdkPixbuf* pixbuf);
VALA_EXTERN GalaImage* gala_image_construct_from_pixbuf (GType object_type,
                                             GdkPixbuf* pixbuf);
VALA_EXTERN GalaImage* gala_image_new (void);
VALA_EXTERN GalaImage* gala_image_construct (GType object_type);
VALA_EXTERN GType gala_plugin_function_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType gala_load_priority_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType gala_plugin_info_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GalaPluginInfo* gala_plugin_info_dup (const GalaPluginInfo* self);
VALA_EXTERN void gala_plugin_info_free (GalaPluginInfo* self);
VALA_EXTERN void gala_plugin_info_copy (const GalaPluginInfo* self,
                            GalaPluginInfo* dest);
VALA_EXTERN void gala_plugin_info_destroy (GalaPluginInfo* self);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (GalaPluginInfo, gala_plugin_info_destroy)
VALA_EXTERN GType gala_plugin_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaPlugin, g_object_unref)
VALA_EXTERN GType gala_modal_proxy_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaModalProxy, g_object_unref)
VALA_EXTERN GType gala_action_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType gala_window_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaWindowManager, g_object_unref)
VALA_EXTERN MtkRectangle* gala_plugin_get_region (GalaPlugin* self,
                                      gint* result_length1);
VALA_EXTERN MtkRectangle* gala_plugin_get_custom_region (GalaPlugin* self,
                                             gint* result_length1);
VALA_EXTERN void gala_plugin_set_custom_region (GalaPlugin* self,
                                    MtkRectangle* custom_region,
                                    gint custom_region_length1);
VALA_EXTERN void gala_plugin_initialize (GalaPlugin* self,
                             GalaWindowManager* wm);
VALA_EXTERN void gala_plugin_destroy (GalaPlugin* self);
VALA_EXTERN void gala_plugin_track_actor (GalaPlugin* self,
                              ClutterActor* actor);
VALA_EXTERN void gala_plugin_untrack_actor (GalaPlugin* self,
                                ClutterActor* actor);
VALA_EXTERN void gala_plugin_update_region (GalaPlugin* self);
VALA_EXTERN GalaPlugin* gala_plugin_construct (GType object_type);
VALA_EXTERN gboolean gala_plugin_get_freeze_track (GalaPlugin* self);
VALA_EXTERN void gala_plugin_set_freeze_track (GalaPlugin* self,
                                   gboolean value);
VALA_EXTERN GType gala_shadow_effect_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaShadowEffect, g_object_unref)
VALA_EXTERN GalaShadowEffect* gala_shadow_effect_new (const gchar* css_class,
                                          gfloat monitor_scale);
VALA_EXTERN GalaShadowEffect* gala_shadow_effect_construct (GType object_type,
                                                const gchar* css_class,
                                                gfloat monitor_scale);
VALA_EXTERN const gchar* gala_shadow_effect_get_css_class (GalaShadowEffect* self);
VALA_EXTERN void gala_shadow_effect_set_css_class (GalaShadowEffect* self,
                                       const gchar* value);
VALA_EXTERN gfloat gala_shadow_effect_get_monitor_scale (GalaShadowEffect* self);
VALA_EXTERN void gala_shadow_effect_set_monitor_scale (GalaShadowEffect* self,
                                           gfloat value);
VALA_EXTERN guint8 gala_shadow_effect_get_shadow_opacity (GalaShadowEffect* self);
VALA_EXTERN void gala_shadow_effect_set_shadow_opacity (GalaShadowEffect* self,
                                            guint8 value);
VALA_EXTERN gint gala_shadow_effect_get_border_radius (GalaShadowEffect* self);
VALA_EXTERN void gala_shadow_effect_set_border_radius (GalaShadowEffect* self,
                                           gint value);
VALA_EXTERN gpointer gala_utils_ref (gpointer instance);
VALA_EXTERN void gala_utils_unref (gpointer instance);
VALA_EXTERN GParamSpec* gala_param_spec_utils (const gchar* name,
                                   const gchar* nick,
                                   const gchar* blurb,
                                   GType object_type,
                                   GParamFlags flags);
VALA_EXTERN void gala_value_set_utils (GValue* value,
                           gpointer v_object);
VALA_EXTERN void gala_value_take_utils (GValue* value,
                            gpointer v_object);
VALA_EXTERN gpointer gala_value_get_utils (const GValue* value);
VALA_EXTERN GType gala_utils_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaUtils, gala_utils_unref)
VALA_EXTERN GdkPixbuf* gala_utils_get_icon_for_window (MetaWindow* window,
                                           gint icon_size,
                                           gint scale);
VALA_EXTERN void gala_utils_clear_window_cache (MetaWindow* window);
VALA_EXTERN gint gala_utils_scale_to_int (gint value,
                              gfloat scale_factor);
VALA_EXTERN guint gala_utils_get_n_windows (MetaWorkspace* workspace,
                                gboolean on_primary,
                                MetaWindow* exclude);
VALA_EXTERN ClutterActor* gala_utils_get_window_actor_snapshot (MetaWindowActor* actor,
                                                    MtkRectangle* inner_rect);
VALA_EXTERN gint gala_utils_get_ui_scaling_factor (void) G_GNUC_DEPRECATED ;
VALA_EXTERN GdkPixbuf* gala_utils_get_resize_button_pixbuf (gfloat scale);
VALA_EXTERN ClutterActor* gala_utils_create_resize_button (gfloat scale);
VALA_EXTERN void gala_utils_x11_set_window_pass_through (MetaWindow* window);
VALA_EXTERN void gala_utils_x11_unset_window_pass_through (MetaWindow* window,
                                               gboolean restore_previous_region);
VALA_EXTERN guint gala_utils_get_animation_duration (guint duration);
VALA_EXTERN GalaUtils* gala_utils_new (void);
VALA_EXTERN GalaUtils* gala_utils_construct (GType object_type);
VALA_EXTERN GType gala_window_icon_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaWindowIcon, g_object_unref)
VALA_EXTERN GalaWindowIcon* gala_window_icon_new (MetaWindow* window,
                                      gint icon_size,
                                      gint scale);
VALA_EXTERN GalaWindowIcon* gala_window_icon_construct (GType object_type,
                                            MetaWindow* window,
                                            gint icon_size,
                                            gint scale);
VALA_EXTERN MetaWindow* gala_window_icon_get_window (GalaWindowIcon* self);
VALA_EXTERN gint gala_window_icon_get_icon_size (GalaWindowIcon* self);
VALA_EXTERN gint gala_window_icon_get_scale (GalaWindowIcon* self);
VALA_EXTERN GType gala_window_flags_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GalaKeybindingFilter gala_modal_proxy_get_keybinding_filter (GalaModalProxy* self,
                                                             gpointer* result_target);
VALA_EXTERN void gala_modal_proxy_set_keybinding_filter (GalaModalProxy* self,
                                             GalaKeybindingFilter filter,
                                             gpointer filter_target);
VALA_EXTERN GalaModalProxy* gala_modal_proxy_new (void);
VALA_EXTERN GalaModalProxy* gala_modal_proxy_construct (GType object_type);
VALA_EXTERN void gala_modal_proxy_allow_all_keybindings (GalaModalProxy* self);
VALA_EXTERN void gala_modal_proxy_allow_actions (GalaModalProxy* self,
                                     GalaGestureAction* actions,
                                     gint actions_length1);
VALA_EXTERN gboolean gala_modal_proxy_filter_action (GalaModalProxy* self,
                                         GalaGestureAction action);
VALA_EXTERN ClutterGrab* gala_modal_proxy_get_grab (GalaModalProxy* self);
VALA_EXTERN void gala_modal_proxy_set_grab (GalaModalProxy* self,
                                ClutterGrab* value);
VALA_EXTERN GalaModalProxy* gala_window_manager_push_modal (GalaWindowManager* self,
                                                ClutterActor* actor);
VALA_EXTERN void gala_window_manager_pop_modal (GalaWindowManager* self,
                                    GalaModalProxy* proxy);
VALA_EXTERN gboolean gala_window_manager_is_modal (GalaWindowManager* self);
VALA_EXTERN gboolean gala_window_manager_modal_proxy_valid (GalaWindowManager* self,
                                                GalaModalProxy* proxy);
VALA_EXTERN void gala_window_manager_perform_action (GalaWindowManager* self,
                                         GalaActionType type);
VALA_EXTERN void gala_window_manager_move_window (GalaWindowManager* self,
                                      MetaWindow* window,
                                      MetaWorkspace* workspace,
                                      guint32 timestamp);
VALA_EXTERN void gala_window_manager_switch_to_next_workspace (GalaWindowManager* self,
                                                   MetaMotionDirection direction,
                                                   guint32 timestamp);
VALA_EXTERN void gala_window_manager_launch_action (GalaWindowManager* self,
                                        const gchar* action_key);
VALA_EXTERN gboolean gala_window_manager_filter_action (GalaWindowManager* self,
                                            GalaGestureAction action);
VALA_EXTERN ClutterActor* gala_window_manager_get_ui_group (GalaWindowManager* self);
VALA_EXTERN void gala_window_manager_set_ui_group (GalaWindowManager* self,
                                       ClutterActor* value);
VALA_EXTERN ClutterStage* gala_window_manager_get_stage (GalaWindowManager* self);
VALA_EXTERN void gala_window_manager_set_stage (GalaWindowManager* self,
                                    ClutterStage* value);
VALA_EXTERN ClutterActor* gala_window_manager_get_window_group (GalaWindowManager* self);
VALA_EXTERN void gala_window_manager_set_window_group (GalaWindowManager* self,
                                           ClutterActor* value);
VALA_EXTERN ClutterActor* gala_window_manager_get_top_window_group (GalaWindowManager* self);
VALA_EXTERN void gala_window_manager_set_top_window_group (GalaWindowManager* self,
                                               ClutterActor* value);
VALA_EXTERN MetaBackgroundGroup* gala_window_manager_get_background_group (GalaWindowManager* self);
VALA_EXTERN void gala_window_manager_set_background_group (GalaWindowManager* self,
                                               MetaBackgroundGroup* value);

VALA_EXTERN const GdkRGBA GALA_DRAWING_COLOR_LIGHT_BACKGROUND;
VALA_EXTERN const GdkRGBA GALA_DRAWING_COLOR_DARK_BACKGROUND;
VALA_EXTERN const GdkRGBA GALA_DRAWING_COLOR_LIGHT_BORDER;
VALA_EXTERN const GdkRGBA GALA_DRAWING_COLOR_DARK_BORDER;
VALA_EXTERN const GdkRGBA GALA_DRAWING_COLOR_LIGHT_HIGHLIGHT;
VALA_EXTERN const GdkRGBA GALA_DRAWING_COLOR_DARK_HIGHLIGHT;
VALA_EXTERN const GdkRGBA GALA_DRAWING_COLOR_TOOLTIP_BACKGROUND;
VALA_EXTERN const GdkRGBA GALA_DRAWING_COLOR_TOOLTIP_TEXT_COLOR;

G_END_DECLS

#endif
