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

#ifndef __PLANK_INTERNAL_H__
#define __PLANK_INTERNAL_H__

#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <glib-object.h>
#include <gee.h>
#include <libbamf/libbamf.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <libwnck/libwnck.h>
#include <gdk/gdk.h>
#include <gio/gio.h>
#include <float.h>
#include <math.h>
#include <gtk/gtk.h>

G_BEGIN_DECLS

#define PLANK_DOCK_ZOOM_DURATION ((guint) 200)
#define PLANK_ITEM_HOVER_DURATION ((guint) 150)
#define PLANK_ITEM_INVALID_DURATION ((guint) 60000)
#define PLANK_ITEM_SCROLL_DURATION ((guint) 300)
#define PLANK_ITEM_SERIALIZATION_DELAY ((guint) 3000)
#define PLANK_UNITY_UPDATE_THRESHOLD_DURATION ((guint) 32)
#define PLANK_UNITY_UPDATE_THRESHOLD_FAST_COUNT ((guint) 3)
#define PLANK_DOCKLET_URI_PREFIX "docklet://"
#define PLANK_SURFACE_STATS_DRAWING_TIME_EXCEEDED "drawing-time-exceeded"
#define PLANK_FOLDER_MAX_FILE_COUNT ((guint) 192)
#define PLANK_LAUNCHER_DIR_MAX_FILE_COUNT ((guint) 128)
#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 PLANK_WINDOW_CONTROL_WINDOW_GROUP_DELAY 10000U
#define PLANK_WINDOW_CONTROL_VIEWPORT_CHANGE_DELAY 200U

#define PLANK_TYPE_MATCHER (plank_matcher_get_type ())
#define PLANK_MATCHER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLANK_TYPE_MATCHER, PlankMatcher))
#define PLANK_MATCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLANK_TYPE_MATCHER, PlankMatcherClass))
#define PLANK_IS_MATCHER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLANK_TYPE_MATCHER))
#define PLANK_IS_MATCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLANK_TYPE_MATCHER))
#define PLANK_MATCHER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLANK_TYPE_MATCHER, PlankMatcherClass))

typedef struct _PlankMatcher PlankMatcher;
typedef struct _PlankMatcherClass PlankMatcherClass;
typedef struct _PlankMatcherPrivate PlankMatcherPrivate;
typedef enum  {
	PLANK_STRUTS_LEFT,
	PLANK_STRUTS_RIGHT,
	PLANK_STRUTS_TOP,
	PLANK_STRUTS_BOTTOM,
	PLANK_STRUTS_LEFT_START,
	PLANK_STRUTS_LEFT_END,
	PLANK_STRUTS_RIGHT_START,
	PLANK_STRUTS_RIGHT_END,
	PLANK_STRUTS_TOP_START,
	PLANK_STRUTS_TOP_END,
	PLANK_STRUTS_BOTTOM_START,
	PLANK_STRUTS_BOTTOM_END,
	PLANK_STRUTS_N_VALUES
} PlankStruts;

#define PLANK_TYPE_STRUTS (plank_struts_get_type ())

#define PLANK_TYPE_WINDOW_CONTROL (plank_window_control_get_type ())
#define PLANK_WINDOW_CONTROL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLANK_TYPE_WINDOW_CONTROL, PlankWindowControl))
#define PLANK_WINDOW_CONTROL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLANK_TYPE_WINDOW_CONTROL, PlankWindowControlClass))
#define PLANK_IS_WINDOW_CONTROL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLANK_TYPE_WINDOW_CONTROL))
#define PLANK_IS_WINDOW_CONTROL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLANK_TYPE_WINDOW_CONTROL))
#define PLANK_WINDOW_CONTROL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLANK_TYPE_WINDOW_CONTROL, PlankWindowControlClass))

typedef struct _PlankWindowControl PlankWindowControl;
typedef struct _PlankWindowControlClass PlankWindowControlClass;
typedef struct _PlankWindowControlPrivate PlankWindowControlPrivate;

#define PLANK_TYPE_DOCKLET_VIEW_MODEL (plank_docklet_view_model_get_type ())
#define PLANK_DOCKLET_VIEW_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLANK_TYPE_DOCKLET_VIEW_MODEL, PlankDockletViewModel))
#define PLANK_DOCKLET_VIEW_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLANK_TYPE_DOCKLET_VIEW_MODEL, PlankDockletViewModelClass))
#define PLANK_IS_DOCKLET_VIEW_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLANK_TYPE_DOCKLET_VIEW_MODEL))
#define PLANK_IS_DOCKLET_VIEW_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLANK_TYPE_DOCKLET_VIEW_MODEL))
#define PLANK_DOCKLET_VIEW_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLANK_TYPE_DOCKLET_VIEW_MODEL, PlankDockletViewModelClass))

typedef struct _PlankDockletViewModel PlankDockletViewModel;
typedef struct _PlankDockletViewModelClass PlankDockletViewModelClass;
typedef struct _PlankDockletViewModelPrivate PlankDockletViewModelPrivate;
typedef enum  {
	PLANK_DOCKLET_VIEW_MODEL_COLUMN_ID,
	PLANK_DOCKLET_VIEW_MODEL_COLUMN_NAME,
	PLANK_DOCKLET_VIEW_MODEL_COLUMN_DESCRIPTION,
	PLANK_DOCKLET_VIEW_MODEL_COLUMN_ICON,
	PLANK_DOCKLET_VIEW_MODEL_COLUMN_PIXBUF,
	PLANK_DOCKLET_VIEW_MODEL_COLUMN_N_COLUMNS
} PlankDockletViewModelColumn;

#define PLANK_DOCKLET_VIEW_MODEL_TYPE_COLUMN (plank_docklet_view_model_column_get_type ())

struct _PlankMatcher {
	GObject parent_instance;
	PlankMatcherPrivate * priv;
};

struct _PlankMatcherClass {
	GObjectClass parent_class;
};

struct _PlankWindowControl {
	GObject parent_instance;
	PlankWindowControlPrivate * priv;
};

struct _PlankWindowControlClass {
	GObjectClass parent_class;
};

struct _PlankDockletViewModel {
	GObject parent_instance;
	PlankDockletViewModelPrivate * priv;
};

struct _PlankDockletViewModelClass {
	GObjectClass parent_class;
};

VALA_EXTERN GQuark plank_quark_surface_stats;
VALA_EXTERN void plank_internal_quarks_initialize (void);
VALA_EXTERN GType plank_matcher_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PlankMatcher, g_object_unref)
VALA_EXTERN PlankMatcher* plank_matcher_get_default (void);
VALA_EXTERN GeeArrayList* plank_matcher_active_launchers (PlankMatcher* self);
VALA_EXTERN BamfApplication* plank_matcher_app_for_uri (PlankMatcher* self,
                                            const gchar* uri);
VALA_EXTERN void plank_matcher_set_favorites (PlankMatcher* self,
                                  GeeArrayList* favs);
VALA_EXTERN GType plank_struts_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType plank_window_control_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PlankWindowControl, g_object_unref)
VALA_EXTERN void plank_window_control_initialize (void);
VALA_EXTERN GdkPixbuf* plank_window_control_get_app_icon (BamfApplication* app);
VALA_EXTERN GdkPixbuf* plank_window_control_get_window_icon (BamfWindow* window);
VALA_EXTERN gboolean plank_window_control_has_maximized_window (BamfApplication* app);
VALA_EXTERN gboolean plank_window_control_has_minimized_window (BamfApplication* app);
VALA_EXTERN gboolean plank_window_control_has_window_on_workspace (BamfApplication* app,
                                                       WnckWorkspace* workspace);
VALA_EXTERN void plank_window_control_update_icon_regions (BamfApplication* app,
                                               GdkRectangle* rect);
VALA_EXTERN void plank_window_control_close_all (BamfApplication* app,
                                     guint32 event_time);
VALA_EXTERN void plank_window_control_focus_window (BamfWindow* window,
                                        guint32 event_time);
VALA_EXTERN void plank_window_control_focus_previous (BamfApplication* app,
                                          guint32 event_time);
VALA_EXTERN void plank_window_control_focus_next (BamfApplication* app,
                                      guint32 event_time);
VALA_EXTERN void plank_window_control_minimize (BamfApplication* app);
VALA_EXTERN void plank_window_control_restore (BamfApplication* app,
                                   guint32 event_time);
VALA_EXTERN void plank_window_control_maximize (BamfApplication* app);
VALA_EXTERN void plank_window_control_unmaximize (BamfApplication* app);
VALA_EXTERN GList* plank_window_control_get_ordered_window_stack (BamfApplication* app);
VALA_EXTERN void plank_window_control_smart_focus (BamfApplication* app,
                                       guint32 event_time);
VALA_EXTERN void plank_window_control_get_easy_geometry (WnckWindow* w,
                                             GdkRectangle* result);
VALA_EXTERN GSettings* plank_create_settings (const gchar* schema_id,
                                  const gchar* path);
VALA_EXTERN GSettings* plank_try_create_settings (const gchar* schema_id,
                                      const gchar* path);
VALA_EXTERN gchar** plank_string_split_combine (const gchar* s,
                                    const gchar* delimiter,
                                    gint* result_length1);
VALA_EXTERN gboolean plank_file_is_dockitem (GFile* file);
VALA_EXTERN gdouble plank_nround (gdouble d,
                      guint n);
VALA_EXTERN GType plank_docklet_view_model_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (PlankDockletViewModel, g_object_unref)
VALA_EXTERN GType plank_docklet_view_model_column_get_type (void) G_GNUC_CONST ;
VALA_EXTERN PlankDockletViewModel* plank_docklet_view_model_new (void);
VALA_EXTERN PlankDockletViewModel* plank_docklet_view_model_construct (GType object_type);
VALA_EXTERN void plank_docklet_view_model_add (PlankDockletViewModel* self,
                                   const gchar* id,
                                   const gchar* name,
                                   const gchar* descpription,
                                   const gchar* icon,
                                   GdkPixbuf* pixbuf);

G_END_DECLS

#endif
