/* gca.h generated by valac 0.27.1, the Vala compiler, do not modify */


#ifndef __SRC_GCA_H__
#define __SRC_GCA_H__

#include <glib.h>
#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <stdlib.h>
#include <string.h>
#include <glib-object.h>
#include <gedit/gedit-document.h>
#include <gio/gio.h>
#include <gedit/gedit-view.h>

G_BEGIN_DECLS


#define GCA_TYPE_SOURCE_LOCATION (gca_source_location_get_type ())
typedef struct _GcaSourceLocation GcaSourceLocation;

#define GCA_DBUS_TYPE_SOURCE_LOCATION (gca_dbus_source_location_get_type ())
typedef struct _GcaDBusSourceLocation GcaDBusSourceLocation;

#define GCA_TYPE_SOURCE_RANGE (gca_source_range_get_type ())
typedef struct _GcaSourceRange GcaSourceRange;

#define GCA_DBUS_TYPE_SOURCE_RANGE (gca_dbus_source_range_get_type ())
typedef struct _GcaDBusSourceRange GcaDBusSourceRange;

#define GCA_TYPE_DOCUMENT (gca_document_get_type ())
#define GCA_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCA_TYPE_DOCUMENT, GcaDocument))
#define GCA_DOCUMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCA_TYPE_DOCUMENT, GcaDocumentClass))
#define GCA_IS_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCA_TYPE_DOCUMENT))
#define GCA_IS_DOCUMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCA_TYPE_DOCUMENT))
#define GCA_DOCUMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCA_TYPE_DOCUMENT, GcaDocumentClass))

typedef struct _GcaDocument GcaDocument;
typedef struct _GcaDocumentClass GcaDocumentClass;
typedef struct _GcaDocumentPrivate GcaDocumentPrivate;

#define GCA_TYPE_UNSAVED_FILE (gca_unsaved_file_get_type ())
typedef struct _GcaUnsavedFile GcaUnsavedFile;

#define GCA_TYPE_SYMBOL_BROWSER (gca_symbol_browser_get_type ())
#define GCA_SYMBOL_BROWSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCA_TYPE_SYMBOL_BROWSER, GcaSymbolBrowser))
#define GCA_SYMBOL_BROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCA_TYPE_SYMBOL_BROWSER, GcaSymbolBrowserClass))
#define GCA_IS_SYMBOL_BROWSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCA_TYPE_SYMBOL_BROWSER))
#define GCA_IS_SYMBOL_BROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCA_TYPE_SYMBOL_BROWSER))
#define GCA_SYMBOL_BROWSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCA_TYPE_SYMBOL_BROWSER, GcaSymbolBrowserClass))

typedef struct _GcaSymbolBrowser GcaSymbolBrowser;
typedef struct _GcaSymbolBrowserClass GcaSymbolBrowserClass;
typedef struct _GcaSymbolBrowserPrivate GcaSymbolBrowserPrivate;

#define GCA_TYPE_SYMBOL_BROWSER_SUPPORT (gca_symbol_browser_support_get_type ())
#define GCA_SYMBOL_BROWSER_SUPPORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCA_TYPE_SYMBOL_BROWSER_SUPPORT, GcaSymbolBrowserSupport))
#define GCA_IS_SYMBOL_BROWSER_SUPPORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCA_TYPE_SYMBOL_BROWSER_SUPPORT))
#define GCA_SYMBOL_BROWSER_SUPPORT_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GCA_TYPE_SYMBOL_BROWSER_SUPPORT, GcaSymbolBrowserSupportIface))

typedef struct _GcaSymbolBrowserSupport GcaSymbolBrowserSupport;
typedef struct _GcaSymbolBrowserSupportIface GcaSymbolBrowserSupportIface;

#define GCA_DBUS_TYPE_OPEN_DOCUMENT (gca_dbus_open_document_get_type ())
typedef struct _GcaDBusOpenDocument GcaDBusOpenDocument;

#define GCA_DBUS_TYPE_REMOTE_DOCUMENT (gca_dbus_remote_document_get_type ())
typedef struct _GcaDBusRemoteDocument GcaDBusRemoteDocument;

#define GCA_DBUS_TYPE_FIXIT (gca_dbus_fixit_get_type ())
typedef struct _GcaDBusFixit GcaDBusFixit;

#define GCA_DBUS_TYPE_DIAGNOSTIC (gca_dbus_diagnostic_get_type ())
typedef struct _GcaDBusDiagnostic GcaDBusDiagnostic;

#define GCA_TYPE_LOG (gca_log_get_type ())
#define GCA_LOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCA_TYPE_LOG, GcaLog))
#define GCA_LOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GCA_TYPE_LOG, GcaLogClass))
#define GCA_IS_LOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCA_TYPE_LOG))
#define GCA_IS_LOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GCA_TYPE_LOG))
#define GCA_LOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GCA_TYPE_LOG, GcaLogClass))

typedef struct _GcaLog GcaLog;
typedef struct _GcaLogClass GcaLogClass;
typedef struct _GcaLogPrivate GcaLogPrivate;

#define GCA_TYPE_INDENT_LEVEL (gca_indent_level_get_type ())
typedef struct _GcaIndentLevel GcaIndentLevel;

#define GCA_TYPE_INDENT_BACKEND (gca_indent_backend_get_type ())
#define GCA_INDENT_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GCA_TYPE_INDENT_BACKEND, GcaIndentBackend))
#define GCA_IS_INDENT_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GCA_TYPE_INDENT_BACKEND))
#define GCA_INDENT_BACKEND_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GCA_TYPE_INDENT_BACKEND, GcaIndentBackendIface))

typedef struct _GcaIndentBackend GcaIndentBackend;
typedef struct _GcaIndentBackendIface GcaIndentBackendIface;

struct _GcaSourceLocation {
	gint line;
	gint column;
};

struct _GcaDBusSourceLocation {
	gint64 line;
	gint64 column;
};

struct _GcaSourceRange {
	GcaSourceLocation start;
	GcaSourceLocation end;
};

struct _GcaDBusSourceRange {
	gint64 file;
	GcaDBusSourceLocation start;
	GcaDBusSourceLocation end;
};

struct _GcaDocument {
	GObject parent_instance;
	GcaDocumentPrivate * priv;
};

struct _GcaDocumentClass {
	GObjectClass parent_class;
};

struct _GcaUnsavedFile {
	gchar* filename;
	gchar* contents;
	gulong length;
};

struct _GcaSymbolBrowser {
	GtkTreeStore parent_instance;
	GcaSymbolBrowserPrivate * priv;
};

struct _GcaSymbolBrowserClass {
	GtkTreeStoreClass parent_class;
};

struct _GcaSymbolBrowserSupportIface {
	GTypeInterface parent_iface;
	GcaSymbolBrowser* (*get_symbol_browser) (GcaSymbolBrowserSupport* self);
};

struct _GcaDBusOpenDocument {
	gchar* path;
	gchar* data_path;
};

struct _GcaDBusRemoteDocument {
	gchar* path;
	char* remote_path;
};

struct _GcaDBusFixit {
	GcaDBusSourceRange location;
	gchar* replacement;
};

struct _GcaDBusDiagnostic {
	guint32 severity;
	GcaDBusFixit* fixits;
	gint fixits_length1;
	GcaDBusSourceRange* locations;
	gint locations_length1;
	gchar* message;
};

struct _GcaLog {
	GTypeInstance parent_instance;
	volatile int ref_count;
	GcaLogPrivate * priv;
};

struct _GcaLogClass {
	GTypeClass parent_class;
	void (*finalize) (GcaLog *self);
};

struct _GcaIndentLevel {
	guint indent;
	guint alignment;
};

struct _GcaIndentBackendIface {
	GTypeInterface parent_iface;
	gchar** (*get_triggers) (GcaIndentBackend* self, int* result_length1);
	void (*get_indent) (GcaIndentBackend* self, GeditDocument* document, GtkTextIter* place, GcaIndentLevel* result);
	GeditView* (*get_view) (GcaIndentBackend* self);
	void (*set_view) (GcaIndentBackend* self, GeditView* value);
};


GType gca_source_location_get_type (void) G_GNUC_CONST;
GcaSourceLocation* gca_source_location_dup (const GcaSourceLocation* self);
void gca_source_location_free (GcaSourceLocation* self);
void gca_source_location_from_iter (GtkTextIter* iter, GcaSourceLocation* result);
GType gca_dbus_source_location_get_type (void) G_GNUC_CONST;
GcaDBusSourceLocation* gca_dbus_source_location_dup (const GcaDBusSourceLocation* self);
void gca_dbus_source_location_free (GcaDBusSourceLocation* self);
void gca_source_location_from_dbus (GcaDBusSourceLocation* location, GcaSourceLocation* result);
GType gca_source_range_get_type (void) G_GNUC_CONST;
GcaSourceRange* gca_source_range_dup (const GcaSourceRange* self);
void gca_source_range_free (GcaSourceRange* self);
void gca_source_location_to_range (GcaSourceLocation *self, GcaSourceRange* result);
gint gca_source_location_compare_to (GcaSourceLocation *self, GcaSourceLocation* other);
gboolean gca_source_location_get_iter (GcaSourceLocation *self, GtkTextBuffer* buffer, GtkTextIter* iter);
gboolean gca_source_location_buffer_coordinates (GcaSourceLocation *self, GtkTextView* view, GdkRectangle* rect);
gchar* gca_source_location_to_string (GcaSourceLocation *self);
void gca_source_range_from_iter (GtkTextIter* iter, GcaSourceRange* result);
GType gca_dbus_source_range_get_type (void) G_GNUC_CONST;
GcaDBusSourceRange* gca_dbus_source_range_dup (const GcaDBusSourceRange* self);
void gca_dbus_source_range_free (GcaDBusSourceRange* self);
void gca_source_range_from_dbus (GcaDBusSourceRange* range, GcaSourceRange* result);
gint gca_source_range_compare_to (GcaSourceRange *self, GcaSourceRange* other);
gboolean gca_source_range_get_iters (GcaSourceRange *self, GtkTextBuffer* buffer, GtkTextIter* start, GtkTextIter* end);
gboolean gca_source_range_contains_range (GcaSourceRange *self, GcaSourceRange* range);
gboolean gca_source_range_contains_location (GcaSourceRange *self, GcaSourceLocation* location);
gboolean gca_source_range_contains (GcaSourceRange *self, gint line, gint column);
gboolean gca_source_range_contains_line (GcaSourceRange *self, gint line);
gchar* gca_source_range_to_string (GcaSourceRange *self);
GType gca_document_get_type (void) G_GNUC_CONST;
GcaDocument* gca_document_new (GeditDocument* document);
GcaDocument* gca_document_construct (GType object_type, GeditDocument* document);
void gca_document_emit_changed (GcaDocument* self);
void gca_document_unsaved_data_path (GcaDocument* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
gchar* gca_document_unsaved_data_path_finish (GcaDocument* self, GAsyncResult* _res_, GError** error);
GeditDocument* gca_document_get_document (GcaDocument* self);
GFile* gca_document_get_location (GcaDocument* self);
const gchar* gca_document_get_text (GcaDocument* self);
gboolean gca_document_get_is_modified (GcaDocument* self);
void gca_document_get_cursor (GcaDocument* self, GcaSourceLocation* result);
gchar* gca_document_get_path (GcaDocument* self);
GType gca_unsaved_file_get_type (void) G_GNUC_CONST;
GcaUnsavedFile* gca_unsaved_file_dup (const GcaUnsavedFile* self);
void gca_unsaved_file_free (GcaUnsavedFile* self);
void gca_unsaved_file_copy (const GcaUnsavedFile* self, GcaUnsavedFile* dest);
void gca_unsaved_file_destroy (GcaUnsavedFile* self);
void gca_unsaved_file_init (GcaUnsavedFile *self, const gchar* f, const gchar* c);
GType gca_symbol_browser_get_type (void) G_GNUC_CONST;
GcaSymbolBrowser* gca_symbol_browser_new (void);
GcaSymbolBrowser* gca_symbol_browser_construct (GType object_type);
void gca_symbol_browser_begin_update (GcaSymbolBrowser* self);
void gca_symbol_browser_end_update (GcaSymbolBrowser* self);
gboolean gca_symbol_browser_get_tainted (GcaSymbolBrowser* self);
void gca_symbol_browser_set_tainted (GcaSymbolBrowser* self, gboolean value);
GType gca_symbol_browser_support_get_type (void) G_GNUC_CONST;
GcaSymbolBrowser* gca_symbol_browser_support_get_symbol_browser (GcaSymbolBrowserSupport* self);
GType gca_dbus_open_document_get_type (void) G_GNUC_CONST;
GcaDBusOpenDocument* gca_dbus_open_document_dup (const GcaDBusOpenDocument* self);
void gca_dbus_open_document_free (GcaDBusOpenDocument* self);
void gca_dbus_open_document_copy (const GcaDBusOpenDocument* self, GcaDBusOpenDocument* dest);
void gca_dbus_open_document_destroy (GcaDBusOpenDocument* self);
GType gca_dbus_remote_document_get_type (void) G_GNUC_CONST;
GcaDBusRemoteDocument* gca_dbus_remote_document_dup (const GcaDBusRemoteDocument* self);
void gca_dbus_remote_document_free (GcaDBusRemoteDocument* self);
void gca_dbus_remote_document_copy (const GcaDBusRemoteDocument* self, GcaDBusRemoteDocument* dest);
void gca_dbus_remote_document_destroy (GcaDBusRemoteDocument* self);
GType gca_dbus_fixit_get_type (void) G_GNUC_CONST;
GcaDBusFixit* gca_dbus_fixit_dup (const GcaDBusFixit* self);
void gca_dbus_fixit_free (GcaDBusFixit* self);
void gca_dbus_fixit_copy (const GcaDBusFixit* self, GcaDBusFixit* dest);
void gca_dbus_fixit_destroy (GcaDBusFixit* self);
GType gca_dbus_diagnostic_get_type (void) G_GNUC_CONST;
GcaDBusDiagnostic* gca_dbus_diagnostic_dup (const GcaDBusDiagnostic* self);
void gca_dbus_diagnostic_free (GcaDBusDiagnostic* self);
void gca_dbus_diagnostic_copy (const GcaDBusDiagnostic* self, GcaDBusDiagnostic* dest);
void gca_dbus_diagnostic_destroy (GcaDBusDiagnostic* self);
gpointer gca_log_ref (gpointer instance);
void gca_log_unref (gpointer instance);
GParamSpec* gca_param_spec_log (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void gca_value_set_log (GValue* value, gpointer v_object);
void gca_value_take_log (GValue* value, gpointer v_object);
gpointer gca_value_get_log (const GValue* value);
GType gca_log_get_type (void) G_GNUC_CONST;
void gca_log_error (const gchar* format, ...);
void gca_log_warning (const gchar* format, ...);
void gca_log_message (const gchar* format, ...);
void gca_log_info (const gchar* format, ...);
void gca_log_debug (const gchar* format, ...);
void gca_log_critical (const gchar* format, ...);
GcaLog* gca_log_new (void);
GcaLog* gca_log_construct (GType object_type);
GType gca_indent_level_get_type (void) G_GNUC_CONST;
GcaIndentLevel* gca_indent_level_dup (const GcaIndentLevel* self);
void gca_indent_level_free (GcaIndentLevel* self);
GType gca_indent_backend_get_type (void) G_GNUC_CONST;
gchar** gca_indent_backend_get_triggers (GcaIndentBackend* self, int* result_length1);
void gca_indent_backend_get_indent (GcaIndentBackend* self, GeditDocument* document, GtkTextIter* place, GcaIndentLevel* result);
guint gca_indent_backend_get_indent_width (GcaIndentBackend* self);
void gca_indent_backend_get_line_indents (GcaIndentBackend* self, GtkTextIter* place, GcaIndentLevel* result);
void gca_indent_backend_get_amount_indents_from_position (GcaIndentBackend* self, GtkTextIter* place, GcaIndentLevel* result);
GeditView* gca_indent_backend_get_view (GcaIndentBackend* self);
void gca_indent_backend_set_view (GcaIndentBackend* self, GeditView* value);


G_END_DECLS

#endif
