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

#ifndef __SRC_PANEL_APPLETS_CLOCK_CLOCKAPPLET_H__
#define __SRC_PANEL_APPLETS_CLOCK_CLOCKAPPLET_H__

#include <libpeas.h>
#include "plugin.h"
#include <glib-object.h>
#include <gtk/gtk.h>
#include <gio/gio.h>
#include <stdlib.h>
#include <string.h>
#include <glib.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 TYPE_CLOCK_PLUGIN (clock_plugin_get_type ())
#define CLOCK_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CLOCK_PLUGIN, ClockPlugin))
#define CLOCK_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CLOCK_PLUGIN, ClockPluginClass))
#define IS_CLOCK_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CLOCK_PLUGIN))
#define IS_CLOCK_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CLOCK_PLUGIN))
#define CLOCK_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CLOCK_PLUGIN, ClockPluginClass))

typedef struct _ClockPlugin ClockPlugin;
typedef struct _ClockPluginClass ClockPluginClass;
typedef struct _ClockPluginPrivate ClockPluginPrivate;

#define TYPE_CLOCK_APPLET (clock_applet_get_type ())
#define CLOCK_APPLET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CLOCK_APPLET, ClockApplet))
#define CLOCK_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CLOCK_APPLET, ClockAppletClass))
#define IS_CLOCK_APPLET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CLOCK_APPLET))
#define IS_CLOCK_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CLOCK_APPLET))
#define CLOCK_APPLET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CLOCK_APPLET, ClockAppletClass))

typedef struct _ClockApplet ClockApplet;
typedef struct _ClockAppletClass ClockAppletClass;
typedef struct _ClockAppletPrivate ClockAppletPrivate;

#define TYPE_CLOCK_SETTINGS (clock_settings_get_type ())
#define CLOCK_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CLOCK_SETTINGS, ClockSettings))
#define CLOCK_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CLOCK_SETTINGS, ClockSettingsClass))
#define IS_CLOCK_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CLOCK_SETTINGS))
#define IS_CLOCK_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CLOCK_SETTINGS))
#define CLOCK_SETTINGS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CLOCK_SETTINGS, ClockSettingsClass))

typedef struct _ClockSettings ClockSettings;
typedef struct _ClockSettingsClass ClockSettingsClass;
typedef struct _ClockSettingsPrivate ClockSettingsPrivate;

struct _ClockPlugin {
	PeasExtensionBase parent_instance;
	ClockPluginPrivate * priv;
};

struct _ClockPluginClass {
	PeasExtensionBaseClass parent_class;
};

struct _ClockApplet {
	BudgieApplet parent_instance;
	ClockAppletPrivate * priv;
	GtkEventBox* widget;
	GtkBox* layout;
	GtkLabel* clock_label;
	GtkLabel* date_label;
	GtkLabel* seconds_label;
	GSettings* settings;
	GSettings* gnome_settings;
};

struct _ClockAppletClass {
	BudgieAppletClass parent_class;
};

struct _ClockSettings {
	GtkGrid parent_instance;
	ClockSettingsPrivate * priv;
};

struct _ClockSettingsClass {
	GtkGridClass parent_class;
};

GType clock_plugin_register_type (GTypeModule * module);
VALA_EXTERN GType clock_plugin_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClockPlugin, g_object_unref)
VALA_EXTERN ClockPlugin* clock_plugin_new (void);
VALA_EXTERN ClockPlugin* clock_plugin_construct (GType object_type);
GType clock_applet_register_type (GTypeModule * module);
VALA_EXTERN GType clock_applet_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClockApplet, g_object_unref)
VALA_EXTERN ClockApplet* clock_applet_new (const gchar* uuid);
VALA_EXTERN ClockApplet* clock_applet_construct (GType object_type,
                                     const gchar* uuid);
VALA_EXTERN void clock_applet_update_date (ClockApplet* self);
VALA_EXTERN void clock_applet_update_seconds (ClockApplet* self);
VALA_EXTERN gboolean clock_applet_update_clock (ClockApplet* self);
VALA_EXTERN const gchar* clock_applet_get_uuid (ClockApplet* self);
VALA_EXTERN void clock_applet_set_uuid (ClockApplet* self,
                            const gchar* value);
GType clock_settings_register_type (GTypeModule * module);
VALA_EXTERN GType clock_settings_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (ClockSettings, g_object_unref)
VALA_EXTERN ClockSettings* clock_settings_new (GSettings* settings,
                                   GSettings* gnome_settings);
VALA_EXTERN ClockSettings* clock_settings_construct (GType object_type,
                                         GSettings* settings,
                                         GSettings* gnome_settings);
VALA_EXTERN void peas_register_types (GTypeModule* module);

G_END_DECLS

#endif
