/* switchboard.h generated by valac 0.42.5, the Vala compiler, do not modify */


#ifndef __LIB_SWITCHBOARD_H__
#define __LIB_SWITCHBOARD_H__

#include <glib.h>
#include <glib-object.h>
#include <gee.h>
#include <gtk/gtk.h>
#include <gio/gio.h>
#include <stdlib.h>
#include <string.h>

G_BEGIN_DECLS


#define SWITCHBOARD_TYPE_PLUGS_MANAGER (switchboard_plugs_manager_get_type ())
#define SWITCHBOARD_PLUGS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWITCHBOARD_TYPE_PLUGS_MANAGER, SwitchboardPlugsManager))
#define SWITCHBOARD_PLUGS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWITCHBOARD_TYPE_PLUGS_MANAGER, SwitchboardPlugsManagerClass))
#define SWITCHBOARD_IS_PLUGS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWITCHBOARD_TYPE_PLUGS_MANAGER))
#define SWITCHBOARD_IS_PLUGS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWITCHBOARD_TYPE_PLUGS_MANAGER))
#define SWITCHBOARD_PLUGS_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWITCHBOARD_TYPE_PLUGS_MANAGER, SwitchboardPlugsManagerClass))

typedef struct _SwitchboardPlugsManager SwitchboardPlugsManager;
typedef struct _SwitchboardPlugsManagerClass SwitchboardPlugsManagerClass;
typedef struct _SwitchboardPlugsManagerPrivate SwitchboardPlugsManagerPrivate;

#define SWITCHBOARD_TYPE_PLUG (switchboard_plug_get_type ())
#define SWITCHBOARD_PLUG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SWITCHBOARD_TYPE_PLUG, SwitchboardPlug))
#define SWITCHBOARD_PLUG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWITCHBOARD_TYPE_PLUG, SwitchboardPlugClass))
#define SWITCHBOARD_IS_PLUG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWITCHBOARD_TYPE_PLUG))
#define SWITCHBOARD_IS_PLUG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SWITCHBOARD_TYPE_PLUG))
#define SWITCHBOARD_PLUG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWITCHBOARD_TYPE_PLUG, SwitchboardPlugClass))

typedef struct _SwitchboardPlug SwitchboardPlug;
typedef struct _SwitchboardPlugClass SwitchboardPlugClass;
typedef struct _SwitchboardPlugPrivate SwitchboardPlugPrivate;
typedef enum  {
	SWITCHBOARD_PLUG_CATEGORY_PERSONAL = 0,
	SWITCHBOARD_PLUG_CATEGORY_HARDWARE = 1,
	SWITCHBOARD_PLUG_CATEGORY_NETWORK = 2,
	SWITCHBOARD_PLUG_CATEGORY_SYSTEM = 3,
	SWITCHBOARD_PLUG_CATEGORY_OTHER = 4
} SwitchboardPlugCategory;


#define SWITCHBOARD_PLUG_TYPE_CATEGORY (switchboard_plug_category_get_type ())

struct _SwitchboardPlugsManager {
	GObject parent_instance;
	SwitchboardPlugsManagerPrivate * priv;
};

struct _SwitchboardPlugsManagerClass {
	GObjectClass parent_class;
};

struct _SwitchboardPlug {
	GObject parent_instance;
	SwitchboardPlugPrivate * priv;
};

struct _SwitchboardPlugClass {
	GObjectClass parent_class;
	GtkWidget* (*get_widget) (SwitchboardPlug* self);
	void (*shown) (SwitchboardPlug* self);
	void (*hidden) (SwitchboardPlug* self);
	void (*search) (SwitchboardPlug* self, const gchar* search, GAsyncReadyCallback _callback_, gpointer _user_data_);
	GeeTreeMap* (*search_finish) (SwitchboardPlug* self, GAsyncResult* _res_);
	void (*search_callback) (SwitchboardPlug* self, const gchar* location);
};


GType switchboard_plugs_manager_get_type (void) G_GNUC_CONST;
SwitchboardPlugsManager* switchboard_plugs_manager_get_default (void);
gboolean switchboard_plugs_manager_has_plugs (SwitchboardPlugsManager* self);
GType switchboard_plug_get_type (void) G_GNUC_CONST;
GeeCollection* switchboard_plugs_manager_get_plugs (SwitchboardPlugsManager* self);
GType switchboard_plug_category_get_type (void) G_GNUC_CONST;
#define SWITCHBOARD_PLUG_SEP "<sep>"
GtkWidget* switchboard_plug_get_widget (SwitchboardPlug* self);
void switchboard_plug_shown (SwitchboardPlug* self);
void switchboard_plug_hidden (SwitchboardPlug* self);
void switchboard_plug_search (SwitchboardPlug* self,
                              const gchar* search,
                              GAsyncReadyCallback _callback_,
                              gpointer _user_data_);
GeeTreeMap* switchboard_plug_search_finish (SwitchboardPlug* self,
                                            GAsyncResult* _res_);
void switchboard_plug_search_callback (SwitchboardPlug* self,
                                       const gchar* location);
SwitchboardPlug* switchboard_plug_construct (GType object_type);
SwitchboardPlugCategory switchboard_plug_get_category (SwitchboardPlug* self);
const gchar* switchboard_plug_get_code_name (SwitchboardPlug* self);
const gchar* switchboard_plug_get_display_name (SwitchboardPlug* self);
const gchar* switchboard_plug_get_description (SwitchboardPlug* self);
const gchar* switchboard_plug_get_icon (SwitchboardPlug* self);
GeeTreeMap* switchboard_plug_get_supported_settings (SwitchboardPlug* self);
gboolean switchboard_plug_get_can_show (SwitchboardPlug* self);
void switchboard_plug_set_can_show (SwitchboardPlug* self,
                                    gboolean value);


G_END_DECLS

#endif
