/* codecore.h generated by valac 0.44.0, the Vala compiler, do not modify */

#ifndef __SRC_CODECORE_H__
#define __SRC_CODECORE_H__

#include <granite.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <gee.h>
#include <gio/gio.h>
#include <float.h>
#include <math.h>
#include <gtksourceview/gtksource.h>
#include <gdk-pixbuf/gdk-pixbuf.h>

G_BEGIN_DECLS

#define SCRATCH_TYPE_SAVED_STATE (scratch_saved_state_get_type ())
#define SCRATCH_SAVED_STATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCRATCH_TYPE_SAVED_STATE, ScratchSavedState))
#define SCRATCH_SAVED_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCRATCH_TYPE_SAVED_STATE, ScratchSavedStateClass))
#define SCRATCH_IS_SAVED_STATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCRATCH_TYPE_SAVED_STATE))
#define SCRATCH_IS_SAVED_STATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCRATCH_TYPE_SAVED_STATE))
#define SCRATCH_SAVED_STATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCRATCH_TYPE_SAVED_STATE, ScratchSavedStateClass))

typedef struct _ScratchSavedState ScratchSavedState;
typedef struct _ScratchSavedStateClass ScratchSavedStateClass;

#define SCRATCH_TYPE_SETTINGS (scratch_settings_get_type ())
#define SCRATCH_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCRATCH_TYPE_SETTINGS, ScratchSettings))
#define SCRATCH_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCRATCH_TYPE_SETTINGS, ScratchSettingsClass))
#define SCRATCH_IS_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCRATCH_TYPE_SETTINGS))
#define SCRATCH_IS_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCRATCH_TYPE_SETTINGS))
#define SCRATCH_SETTINGS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCRATCH_TYPE_SETTINGS, ScratchSettingsClass))

typedef struct _ScratchSettings ScratchSettings;
typedef struct _ScratchSettingsClass ScratchSettingsClass;

#define SCRATCH_TYPE_SERVICES_SETTINGS (scratch_services_settings_get_type ())
#define SCRATCH_SERVICES_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCRATCH_TYPE_SERVICES_SETTINGS, ScratchServicesSettings))
#define SCRATCH_SERVICES_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCRATCH_TYPE_SERVICES_SETTINGS, ScratchServicesSettingsClass))
#define SCRATCH_IS_SERVICES_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCRATCH_TYPE_SERVICES_SETTINGS))
#define SCRATCH_IS_SERVICES_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCRATCH_TYPE_SERVICES_SETTINGS))
#define SCRATCH_SERVICES_SETTINGS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCRATCH_TYPE_SERVICES_SETTINGS, ScratchServicesSettingsClass))

typedef struct _ScratchServicesSettings ScratchServicesSettings;
typedef struct _ScratchServicesSettingsClass ScratchServicesSettingsClass;

#define SCRATCH_TYPE_APPLICATION (scratch_application_get_type ())
#define SCRATCH_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCRATCH_TYPE_APPLICATION, ScratchApplication))
#define SCRATCH_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCRATCH_TYPE_APPLICATION, ScratchApplicationClass))
#define SCRATCH_IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCRATCH_TYPE_APPLICATION))
#define SCRATCH_IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCRATCH_TYPE_APPLICATION))
#define SCRATCH_APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCRATCH_TYPE_APPLICATION, ScratchApplicationClass))

typedef struct _ScratchApplication ScratchApplication;
typedef struct _ScratchApplicationClass ScratchApplicationClass;
typedef struct _ScratchApplicationPrivate ScratchApplicationPrivate;

#define SCRATCH_TYPE_MAIN_WINDOW (scratch_main_window_get_type ())
#define SCRATCH_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCRATCH_TYPE_MAIN_WINDOW, ScratchMainWindow))
#define SCRATCH_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCRATCH_TYPE_MAIN_WINDOW, ScratchMainWindowClass))
#define SCRATCH_IS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCRATCH_TYPE_MAIN_WINDOW))
#define SCRATCH_IS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCRATCH_TYPE_MAIN_WINDOW))
#define SCRATCH_MAIN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCRATCH_TYPE_MAIN_WINDOW, ScratchMainWindowClass))

typedef struct _ScratchMainWindow ScratchMainWindow;
typedef struct _ScratchMainWindowClass ScratchMainWindowClass;
typedef struct _ScratchMainWindowPrivate ScratchMainWindowPrivate;

#define SCRATCH_WIDGETS_TYPE_HEADER_BAR (scratch_widgets_header_bar_get_type ())
#define SCRATCH_WIDGETS_HEADER_BAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCRATCH_WIDGETS_TYPE_HEADER_BAR, ScratchWidgetsHeaderBar))
#define SCRATCH_WIDGETS_HEADER_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCRATCH_WIDGETS_TYPE_HEADER_BAR, ScratchWidgetsHeaderBarClass))
#define SCRATCH_WIDGETS_IS_HEADER_BAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCRATCH_WIDGETS_TYPE_HEADER_BAR))
#define SCRATCH_WIDGETS_IS_HEADER_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCRATCH_WIDGETS_TYPE_HEADER_BAR))
#define SCRATCH_WIDGETS_HEADER_BAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCRATCH_WIDGETS_TYPE_HEADER_BAR, ScratchWidgetsHeaderBarClass))

typedef struct _ScratchWidgetsHeaderBar ScratchWidgetsHeaderBar;
typedef struct _ScratchWidgetsHeaderBarClass ScratchWidgetsHeaderBarClass;

#define SCRATCH_WIDGETS_TYPE_SEARCH_BAR (scratch_widgets_search_bar_get_type ())
#define SCRATCH_WIDGETS_SEARCH_BAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCRATCH_WIDGETS_TYPE_SEARCH_BAR, ScratchWidgetsSearchBar))
#define SCRATCH_WIDGETS_SEARCH_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCRATCH_WIDGETS_TYPE_SEARCH_BAR, ScratchWidgetsSearchBarClass))
#define SCRATCH_WIDGETS_IS_SEARCH_BAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCRATCH_WIDGETS_TYPE_SEARCH_BAR))
#define SCRATCH_WIDGETS_IS_SEARCH_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCRATCH_WIDGETS_TYPE_SEARCH_BAR))
#define SCRATCH_WIDGETS_SEARCH_BAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCRATCH_WIDGETS_TYPE_SEARCH_BAR, ScratchWidgetsSearchBarClass))

typedef struct _ScratchWidgetsSearchBar ScratchWidgetsSearchBar;
typedef struct _ScratchWidgetsSearchBarClass ScratchWidgetsSearchBarClass;

#define SCRATCH_WIDGETS_TYPE_SPLIT_VIEW (scratch_widgets_split_view_get_type ())
#define SCRATCH_WIDGETS_SPLIT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCRATCH_WIDGETS_TYPE_SPLIT_VIEW, ScratchWidgetsSplitView))
#define SCRATCH_WIDGETS_SPLIT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCRATCH_WIDGETS_TYPE_SPLIT_VIEW, ScratchWidgetsSplitViewClass))
#define SCRATCH_WIDGETS_IS_SPLIT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCRATCH_WIDGETS_TYPE_SPLIT_VIEW))
#define SCRATCH_WIDGETS_IS_SPLIT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCRATCH_WIDGETS_TYPE_SPLIT_VIEW))
#define SCRATCH_WIDGETS_SPLIT_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCRATCH_WIDGETS_TYPE_SPLIT_VIEW, ScratchWidgetsSplitViewClass))

typedef struct _ScratchWidgetsSplitView ScratchWidgetsSplitView;
typedef struct _ScratchWidgetsSplitViewClass ScratchWidgetsSplitViewClass;

#define CODE_TYPE_PANE (code_pane_get_type ())
#define CODE_PANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CODE_TYPE_PANE, CodePane))
#define CODE_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CODE_TYPE_PANE, CodePaneClass))
#define CODE_IS_PANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CODE_TYPE_PANE))
#define CODE_IS_PANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CODE_TYPE_PANE))
#define CODE_PANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CODE_TYPE_PANE, CodePaneClass))

typedef struct _CodePane CodePane;
typedef struct _CodePaneClass CodePaneClass;

#define SCRATCH_WIDGETS_TYPE_DOCUMENT_VIEW (scratch_widgets_document_view_get_type ())
#define SCRATCH_WIDGETS_DOCUMENT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCRATCH_WIDGETS_TYPE_DOCUMENT_VIEW, ScratchWidgetsDocumentView))
#define SCRATCH_WIDGETS_DOCUMENT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCRATCH_WIDGETS_TYPE_DOCUMENT_VIEW, ScratchWidgetsDocumentViewClass))
#define SCRATCH_WIDGETS_IS_DOCUMENT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCRATCH_WIDGETS_TYPE_DOCUMENT_VIEW))
#define SCRATCH_WIDGETS_IS_DOCUMENT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCRATCH_WIDGETS_TYPE_DOCUMENT_VIEW))
#define SCRATCH_WIDGETS_DOCUMENT_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCRATCH_WIDGETS_TYPE_DOCUMENT_VIEW, ScratchWidgetsDocumentViewClass))

typedef struct _ScratchWidgetsDocumentView ScratchWidgetsDocumentView;
typedef struct _ScratchWidgetsDocumentViewClass ScratchWidgetsDocumentViewClass;

#define SCRATCH_SERVICES_TYPE_DOCUMENT (scratch_services_document_get_type ())
#define SCRATCH_SERVICES_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCRATCH_SERVICES_TYPE_DOCUMENT, ScratchServicesDocument))
#define SCRATCH_SERVICES_DOCUMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCRATCH_SERVICES_TYPE_DOCUMENT, ScratchServicesDocumentClass))
#define SCRATCH_SERVICES_IS_DOCUMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCRATCH_SERVICES_TYPE_DOCUMENT))
#define SCRATCH_SERVICES_IS_DOCUMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCRATCH_SERVICES_TYPE_DOCUMENT))
#define SCRATCH_SERVICES_DOCUMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCRATCH_SERVICES_TYPE_DOCUMENT, ScratchServicesDocumentClass))

typedef struct _ScratchServicesDocument ScratchServicesDocument;
typedef struct _ScratchServicesDocumentClass ScratchServicesDocumentClass;

#define SCRATCH_DIALOGS_TYPE_PREFERENCES (scratch_dialogs_preferences_get_type ())
#define SCRATCH_DIALOGS_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCRATCH_DIALOGS_TYPE_PREFERENCES, ScratchDialogsPreferences))
#define SCRATCH_DIALOGS_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCRATCH_DIALOGS_TYPE_PREFERENCES, ScratchDialogsPreferencesClass))
#define SCRATCH_DIALOGS_IS_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCRATCH_DIALOGS_TYPE_PREFERENCES))
#define SCRATCH_DIALOGS_IS_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCRATCH_DIALOGS_TYPE_PREFERENCES))
#define SCRATCH_DIALOGS_PREFERENCES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCRATCH_DIALOGS_TYPE_PREFERENCES, ScratchDialogsPreferencesClass))

typedef struct _ScratchDialogsPreferences ScratchDialogsPreferences;
typedef struct _ScratchDialogsPreferencesClass ScratchDialogsPreferencesClass;
typedef struct _ScratchDialogsPreferencesPrivate ScratchDialogsPreferencesPrivate;

#define SCRATCH_SERVICES_TYPE_PLUGINS_MANAGER (scratch_services_plugins_manager_get_type ())
#define SCRATCH_SERVICES_PLUGINS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCRATCH_SERVICES_TYPE_PLUGINS_MANAGER, ScratchServicesPluginsManager))
#define SCRATCH_SERVICES_PLUGINS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCRATCH_SERVICES_TYPE_PLUGINS_MANAGER, ScratchServicesPluginsManagerClass))
#define SCRATCH_SERVICES_IS_PLUGINS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCRATCH_SERVICES_TYPE_PLUGINS_MANAGER))
#define SCRATCH_SERVICES_IS_PLUGINS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCRATCH_SERVICES_TYPE_PLUGINS_MANAGER))
#define SCRATCH_SERVICES_PLUGINS_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCRATCH_SERVICES_TYPE_PLUGINS_MANAGER, ScratchServicesPluginsManagerClass))

typedef struct _ScratchServicesPluginsManager ScratchServicesPluginsManager;
typedef struct _ScratchServicesPluginsManagerClass ScratchServicesPluginsManagerClass;

#define TYPE_CONTRACT_MENU_ITEM (contract_menu_item_get_type ())
#define CONTRACT_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONTRACT_MENU_ITEM, ContractMenuItem))
#define CONTRACT_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONTRACT_MENU_ITEM, ContractMenuItemClass))
#define IS_CONTRACT_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONTRACT_MENU_ITEM))
#define IS_CONTRACT_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONTRACT_MENU_ITEM))
#define CONTRACT_MENU_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONTRACT_MENU_ITEM, ContractMenuItemClass))

typedef struct _ContractMenuItem ContractMenuItem;
typedef struct _ContractMenuItemClass ContractMenuItemClass;
typedef struct _ContractMenuItemPrivate ContractMenuItemPrivate;

#define SCRATCH_TYPE_COMMENT_TOGGLER (scratch_comment_toggler_get_type ())
#define SCRATCH_COMMENT_TOGGLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCRATCH_TYPE_COMMENT_TOGGLER, ScratchCommentToggler))
#define SCRATCH_COMMENT_TOGGLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCRATCH_TYPE_COMMENT_TOGGLER, ScratchCommentTogglerClass))
#define SCRATCH_IS_COMMENT_TOGGLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCRATCH_TYPE_COMMENT_TOGGLER))
#define SCRATCH_IS_COMMENT_TOGGLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCRATCH_TYPE_COMMENT_TOGGLER))
#define SCRATCH_COMMENT_TOGGLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCRATCH_TYPE_COMMENT_TOGGLER, ScratchCommentTogglerClass))

typedef struct _ScratchCommentToggler ScratchCommentToggler;
typedef struct _ScratchCommentTogglerClass ScratchCommentTogglerClass;
typedef struct _ScratchCommentTogglerPrivate ScratchCommentTogglerPrivate;
typedef enum  {
	SCRATCH_SERVICES_DOCUMENT_STATES_NORMAL,
	SCRATCH_SERVICES_DOCUMENT_STATES_READONLY
} ScratchServicesDocumentStates;

#define SCRATCH_SERVICES_TYPE_DOCUMENT_STATES (scratch_services_document_states_get_type ())
typedef struct _ScratchServicesDocumentPrivate ScratchServicesDocumentPrivate;

#define SCRATCH_WIDGETS_TYPE_SOURCE_VIEW (scratch_widgets_source_view_get_type ())
#define SCRATCH_WIDGETS_SOURCE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCRATCH_WIDGETS_TYPE_SOURCE_VIEW, ScratchWidgetsSourceView))
#define SCRATCH_WIDGETS_SOURCE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCRATCH_WIDGETS_TYPE_SOURCE_VIEW, ScratchWidgetsSourceViewClass))
#define SCRATCH_WIDGETS_IS_SOURCE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCRATCH_WIDGETS_TYPE_SOURCE_VIEW))
#define SCRATCH_WIDGETS_IS_SOURCE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCRATCH_WIDGETS_TYPE_SOURCE_VIEW))
#define SCRATCH_WIDGETS_SOURCE_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCRATCH_WIDGETS_TYPE_SOURCE_VIEW, ScratchWidgetsSourceViewClass))

typedef struct _ScratchWidgetsSourceView ScratchWidgetsSourceView;
typedef struct _ScratchWidgetsSourceViewClass ScratchWidgetsSourceViewClass;
typedef void (*ScratchServicesDocumentVoidFunc) (gpointer user_data);
typedef enum  {
	SCRATCH_SERVICES_FILE_OPTION_EXISTS,
	SCRATCH_SERVICES_FILE_OPTION_IS_DIR,
	SCRATCH_SERVICES_FILE_OPTION_IS_EXECUTABLE
} ScratchServicesFileOption;

#define SCRATCH_SERVICES_TYPE_FILE_OPTION (scratch_services_file_option_get_type ())

#define SCRATCH_SERVICES_TYPE_FILE_HANDLER (scratch_services_file_handler_get_type ())
#define SCRATCH_SERVICES_FILE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCRATCH_SERVICES_TYPE_FILE_HANDLER, ScratchServicesFileHandler))
#define SCRATCH_SERVICES_FILE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCRATCH_SERVICES_TYPE_FILE_HANDLER, ScratchServicesFileHandlerClass))
#define SCRATCH_SERVICES_IS_FILE_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCRATCH_SERVICES_TYPE_FILE_HANDLER))
#define SCRATCH_SERVICES_IS_FILE_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCRATCH_SERVICES_TYPE_FILE_HANDLER))
#define SCRATCH_SERVICES_FILE_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCRATCH_SERVICES_TYPE_FILE_HANDLER, ScratchServicesFileHandlerClass))

typedef struct _ScratchServicesFileHandler ScratchServicesFileHandler;
typedef struct _ScratchServicesFileHandlerClass ScratchServicesFileHandlerClass;
typedef struct _ScratchServicesFileHandlerPrivate ScratchServicesFileHandlerPrivate;

#define SCRATCH_SERVICES_TYPE_INTERFACE (scratch_services_interface_get_type ())
#define SCRATCH_SERVICES_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCRATCH_SERVICES_TYPE_INTERFACE, ScratchServicesInterface))
#define SCRATCH_SERVICES_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCRATCH_SERVICES_TYPE_INTERFACE, ScratchServicesInterfaceClass))
#define SCRATCH_SERVICES_IS_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCRATCH_SERVICES_TYPE_INTERFACE))
#define SCRATCH_SERVICES_IS_INTERFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCRATCH_SERVICES_TYPE_INTERFACE))
#define SCRATCH_SERVICES_INTERFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCRATCH_SERVICES_TYPE_INTERFACE, ScratchServicesInterfaceClass))

typedef struct _ScratchServicesInterface ScratchServicesInterface;
typedef struct _ScratchServicesInterfaceClass ScratchServicesInterfaceClass;
typedef struct _ScratchServicesInterfacePrivate ScratchServicesInterfacePrivate;

#define SCRATCH_TYPE_TEMPLATE_MANAGER (scratch_template_manager_get_type ())
#define SCRATCH_TEMPLATE_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCRATCH_TYPE_TEMPLATE_MANAGER, ScratchTemplateManager))
#define SCRATCH_TEMPLATE_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCRATCH_TYPE_TEMPLATE_MANAGER, ScratchTemplateManagerClass))
#define SCRATCH_IS_TEMPLATE_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCRATCH_TYPE_TEMPLATE_MANAGER))
#define SCRATCH_IS_TEMPLATE_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCRATCH_TYPE_TEMPLATE_MANAGER))
#define SCRATCH_TEMPLATE_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCRATCH_TYPE_TEMPLATE_MANAGER, ScratchTemplateManagerClass))

typedef struct _ScratchTemplateManager ScratchTemplateManager;
typedef struct _ScratchTemplateManagerClass ScratchTemplateManagerClass;
typedef struct _ScratchServicesPluginsManagerPrivate ScratchServicesPluginsManagerPrivate;
typedef enum  {
	SCRATCH_SCRATCH_WINDOW_STATE_NORMAL = 0,
	SCRATCH_SCRATCH_WINDOW_STATE_MAXIMIZED = 1,
	SCRATCH_SCRATCH_WINDOW_STATE_FULLSCREEN = 2
} ScratchScratchWindowState;

#define SCRATCH_TYPE_SCRATCH_WINDOW_STATE (scratch_scratch_window_state_get_type ())
typedef enum  {
	SCRATCH_SCRATCH_DRAW_SPACES_STATE_NEVER = 0,
	SCRATCH_SCRATCH_DRAW_SPACES_STATE_FOR_SELECTION = 1,
	SCRATCH_SCRATCH_DRAW_SPACES_STATE_ALWAYS = 2
} ScratchScratchDrawSpacesState;

#define SCRATCH_TYPE_SCRATCH_DRAW_SPACES_STATE (scratch_scratch_draw_spaces_state_get_type ())
typedef struct _ScratchSavedStatePrivate ScratchSavedStatePrivate;
typedef struct _ScratchSettingsPrivate ScratchSettingsPrivate;
typedef struct _ScratchServicesSettingsPrivate ScratchServicesSettingsPrivate;

#define SCRATCH_TYPE_FOLDER_MANAGER_SETTINGS (scratch_folder_manager_settings_get_type ())
#define SCRATCH_FOLDER_MANAGER_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCRATCH_TYPE_FOLDER_MANAGER_SETTINGS, ScratchFolderManagerSettings))
#define SCRATCH_FOLDER_MANAGER_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCRATCH_TYPE_FOLDER_MANAGER_SETTINGS, ScratchFolderManagerSettingsClass))
#define SCRATCH_IS_FOLDER_MANAGER_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCRATCH_TYPE_FOLDER_MANAGER_SETTINGS))
#define SCRATCH_IS_FOLDER_MANAGER_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCRATCH_TYPE_FOLDER_MANAGER_SETTINGS))
#define SCRATCH_FOLDER_MANAGER_SETTINGS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCRATCH_TYPE_FOLDER_MANAGER_SETTINGS, ScratchFolderManagerSettingsClass))

typedef struct _ScratchFolderManagerSettings ScratchFolderManagerSettings;
typedef struct _ScratchFolderManagerSettingsClass ScratchFolderManagerSettingsClass;
typedef struct _ScratchFolderManagerSettingsPrivate ScratchFolderManagerSettingsPrivate;

#define SCRATCH_TYPE_TEMPLATE (scratch_template_get_type ())
#define SCRATCH_TEMPLATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCRATCH_TYPE_TEMPLATE, ScratchTemplate))
#define SCRATCH_TEMPLATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCRATCH_TYPE_TEMPLATE, ScratchTemplateClass))
#define SCRATCH_IS_TEMPLATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCRATCH_TYPE_TEMPLATE))
#define SCRATCH_IS_TEMPLATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCRATCH_TYPE_TEMPLATE))
#define SCRATCH_TEMPLATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCRATCH_TYPE_TEMPLATE, ScratchTemplateClass))

typedef struct _ScratchTemplate ScratchTemplate;
typedef struct _ScratchTemplateClass ScratchTemplateClass;
typedef struct _ScratchTemplatePrivate ScratchTemplatePrivate;

#define SCRATCH_TYPE_TEST_TEMPLATE (scratch_test_template_get_type ())
#define SCRATCH_TEST_TEMPLATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SCRATCH_TYPE_TEST_TEMPLATE, ScratchTestTemplate))
#define SCRATCH_TEST_TEMPLATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SCRATCH_TYPE_TEST_TEMPLATE, ScratchTestTemplateClass))
#define SCRATCH_IS_TEST_TEMPLATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SCRATCH_TYPE_TEST_TEMPLATE))
#define SCRATCH_IS_TEST_TEMPLATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SCRATCH_TYPE_TEST_TEMPLATE))
#define SCRATCH_TEST_TEMPLATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SCRATCH_TYPE_TEST_TEMPLATE, ScratchTestTemplateClass))

typedef struct _ScratchTestTemplate ScratchTestTemplate;
typedef struct _ScratchTestTemplateClass ScratchTestTemplateClass;
typedef struct _ScratchTestTemplatePrivate ScratchTestTemplatePrivate;

#define TYPE_TEMPLATE_BUTTON (template_button_get_type ())
#define TEMPLATE_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TEMPLATE_BUTTON, TemplateButton))
#define TEMPLATE_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TEMPLATE_BUTTON, TemplateButtonClass))
#define IS_TEMPLATE_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TEMPLATE_BUTTON))
#define IS_TEMPLATE_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TEMPLATE_BUTTON))
#define TEMPLATE_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TEMPLATE_BUTTON, TemplateButtonClass))

typedef struct _TemplateButton TemplateButton;
typedef struct _TemplateButtonClass TemplateButtonClass;
typedef struct _TemplateButtonPrivate TemplateButtonPrivate;
typedef struct _ScratchTemplateManagerPrivate ScratchTemplateManagerPrivate;
typedef struct _ScratchWidgetsDocumentViewPrivate ScratchWidgetsDocumentViewPrivate;

#define CODE_TYPE_FORMAT_BAR (code_format_bar_get_type ())
#define CODE_FORMAT_BAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CODE_TYPE_FORMAT_BAR, CodeFormatBar))
#define CODE_FORMAT_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CODE_TYPE_FORMAT_BAR, CodeFormatBarClass))
#define CODE_IS_FORMAT_BAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CODE_TYPE_FORMAT_BAR))
#define CODE_IS_FORMAT_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CODE_TYPE_FORMAT_BAR))
#define CODE_FORMAT_BAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CODE_TYPE_FORMAT_BAR, CodeFormatBarClass))

typedef struct _CodeFormatBar CodeFormatBar;
typedef struct _CodeFormatBarClass CodeFormatBarClass;
typedef struct _CodeFormatBarPrivate CodeFormatBarPrivate;

#define CODE_FORMAT_BAR_TYPE_FORMAT_BUTTON (code_format_bar_format_button_get_type ())
#define CODE_FORMAT_BAR_FORMAT_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CODE_FORMAT_BAR_TYPE_FORMAT_BUTTON, CodeFormatBarFormatButton))
#define CODE_FORMAT_BAR_FORMAT_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CODE_FORMAT_BAR_TYPE_FORMAT_BUTTON, CodeFormatBarFormatButtonClass))
#define CODE_FORMAT_BAR_IS_FORMAT_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CODE_FORMAT_BAR_TYPE_FORMAT_BUTTON))
#define CODE_FORMAT_BAR_IS_FORMAT_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CODE_FORMAT_BAR_TYPE_FORMAT_BUTTON))
#define CODE_FORMAT_BAR_FORMAT_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CODE_FORMAT_BAR_TYPE_FORMAT_BUTTON, CodeFormatBarFormatButtonClass))

typedef struct _CodeFormatBarFormatButton CodeFormatBarFormatButton;
typedef struct _CodeFormatBarFormatButtonClass CodeFormatBarFormatButtonClass;
typedef struct _CodeFormatBarFormatButtonPrivate CodeFormatBarFormatButtonPrivate;

#define CODE_FORMAT_BAR_TYPE_LANG_ENTRY (code_format_bar_lang_entry_get_type ())
#define CODE_FORMAT_BAR_LANG_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CODE_FORMAT_BAR_TYPE_LANG_ENTRY, CodeFormatBarLangEntry))
#define CODE_FORMAT_BAR_LANG_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CODE_FORMAT_BAR_TYPE_LANG_ENTRY, CodeFormatBarLangEntryClass))
#define CODE_FORMAT_BAR_IS_LANG_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CODE_FORMAT_BAR_TYPE_LANG_ENTRY))
#define CODE_FORMAT_BAR_IS_LANG_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CODE_FORMAT_BAR_TYPE_LANG_ENTRY))
#define CODE_FORMAT_BAR_LANG_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CODE_FORMAT_BAR_TYPE_LANG_ENTRY, CodeFormatBarLangEntryClass))

typedef struct _CodeFormatBarLangEntry CodeFormatBarLangEntry;
typedef struct _CodeFormatBarLangEntryClass CodeFormatBarLangEntryClass;
typedef struct _CodeFormatBarLangEntryPrivate CodeFormatBarLangEntryPrivate;
typedef struct _ScratchWidgetsHeaderBarPrivate ScratchWidgetsHeaderBarPrivate;
typedef struct _CodePanePrivate CodePanePrivate;

#define CODE_TYPE_PANE_SWITCHER (code_pane_switcher_get_type ())
#define CODE_PANE_SWITCHER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CODE_TYPE_PANE_SWITCHER, CodePaneSwitcher))
#define CODE_IS_PANE_SWITCHER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CODE_TYPE_PANE_SWITCHER))
#define CODE_PANE_SWITCHER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), CODE_TYPE_PANE_SWITCHER, CodePaneSwitcherIface))

typedef struct _CodePaneSwitcher CodePaneSwitcher;
typedef struct _CodePaneSwitcherIface CodePaneSwitcherIface;
typedef struct _ScratchWidgetsSearchBarPrivate ScratchWidgetsSearchBarPrivate;
typedef struct _ScratchWidgetsSourceViewPrivate ScratchWidgetsSourceViewPrivate;
typedef struct _ScratchWidgetsSplitViewPrivate ScratchWidgetsSplitViewPrivate;

#define CODE_TYPE_WELCOME_VIEW (code_welcome_view_get_type ())
#define CODE_WELCOME_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CODE_TYPE_WELCOME_VIEW, CodeWelcomeView))
#define CODE_WELCOME_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CODE_TYPE_WELCOME_VIEW, CodeWelcomeViewClass))
#define CODE_IS_WELCOME_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CODE_TYPE_WELCOME_VIEW))
#define CODE_IS_WELCOME_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CODE_TYPE_WELCOME_VIEW))
#define CODE_WELCOME_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CODE_TYPE_WELCOME_VIEW, CodeWelcomeViewClass))

typedef struct _CodeWelcomeView CodeWelcomeView;
typedef struct _CodeWelcomeViewClass CodeWelcomeViewClass;
typedef struct _CodeWelcomeViewPrivate CodeWelcomeViewPrivate;

struct _ScratchApplication {
	GtkApplication parent_instance;
	ScratchApplicationPrivate * priv;
};

struct _ScratchApplicationClass {
	GtkApplicationClass parent_class;
};

struct _ScratchMainWindow {
	GtkWindow parent_instance;
	ScratchMainWindowPrivate * priv;
	gint FONT_SIZE_MAX;
	gint FONT_SIZE_MIN;
	ScratchWidgetsHeaderBar* toolbar;
	ScratchWidgetsSearchBar* search_bar;
	ScratchWidgetsSplitView* split_view;
	GtkNotebook* bottombar;
	CodePane* project_pane;
	GtkClipboard* clipboard;
};

struct _ScratchMainWindowClass {
	GtkWindowClass parent_class;
};

struct _ScratchDialogsPreferences {
	GtkDialog parent_instance;
	ScratchDialogsPreferencesPrivate * priv;
};

struct _ScratchDialogsPreferencesClass {
	GtkDialogClass parent_class;
};

struct _ContractMenuItem {
	GtkMenuItem parent_instance;
	ContractMenuItemPrivate * priv;
};

struct _ContractMenuItemClass {
	GtkMenuItemClass parent_class;
};

struct _ScratchCommentToggler {
	GTypeInstance parent_instance;
	volatile int ref_count;
	ScratchCommentTogglerPrivate * priv;
};

struct _ScratchCommentTogglerClass {
	GTypeClass parent_class;
	void (*finalize) (ScratchCommentToggler *self);
};

struct _ScratchServicesDocument {
	GraniteWidgetsTab parent_instance;
	ScratchServicesDocumentPrivate * priv;
	GtkStack* main_stack;
	ScratchWidgetsSourceView* source_view;
	CodePane* pane;
	gchar* original_content;
	gboolean saved;
};

struct _ScratchServicesDocumentClass {
	GraniteWidgetsTabClass parent_class;
};

struct _ScratchServicesFileHandler {
	GObject parent_instance;
	ScratchServicesFileHandlerPrivate * priv;
};

struct _ScratchServicesFileHandlerClass {
	GObjectClass parent_class;
};

struct _ScratchServicesInterface {
	GObject parent_instance;
	ScratchServicesInterfacePrivate * priv;
	ScratchServicesPluginsManager* manager;
};

struct _ScratchServicesInterfaceClass {
	GObjectClass parent_class;
};

struct _ScratchServicesPluginsManager {
	GObject parent_instance;
	ScratchServicesPluginsManagerPrivate * priv;
	ScratchMainWindow* window;
};

struct _ScratchServicesPluginsManagerClass {
	GObjectClass parent_class;
};

struct _ScratchSavedState {
	GraniteServicesSettings parent_instance;
	ScratchSavedStatePrivate * priv;
};

struct _ScratchSavedStateClass {
	GraniteServicesSettingsClass parent_class;
};

struct _ScratchSettings {
	GraniteServicesSettings parent_instance;
	ScratchSettingsPrivate * priv;
};

struct _ScratchSettingsClass {
	GraniteServicesSettingsClass parent_class;
};

struct _ScratchServicesSettings {
	GraniteServicesSettings parent_instance;
	ScratchServicesSettingsPrivate * priv;
};

struct _ScratchServicesSettingsClass {
	GraniteServicesSettingsClass parent_class;
};

struct _ScratchFolderManagerSettings {
	GraniteServicesSettings parent_instance;
	ScratchFolderManagerSettingsPrivate * priv;
};

struct _ScratchFolderManagerSettingsClass {
	GraniteServicesSettingsClass parent_class;
};

struct _ScratchTemplate {
	GObject parent_instance;
	ScratchTemplatePrivate * priv;
};

struct _ScratchTemplateClass {
	GObjectClass parent_class;
	GtkWidget* (*get_creation_box) (ScratchTemplate* self);
};

struct _ScratchTestTemplate {
	ScratchTemplate parent_instance;
	ScratchTestTemplatePrivate * priv;
};

struct _ScratchTestTemplateClass {
	ScratchTemplateClass parent_class;
};

struct _TemplateButton {
	GtkButton parent_instance;
	TemplateButtonPrivate * priv;
};

struct _TemplateButtonClass {
	GtkButtonClass parent_class;
};

struct _ScratchTemplateManager {
	GObject parent_instance;
	ScratchTemplateManagerPrivate * priv;
	gboolean template_available;
};

struct _ScratchTemplateManagerClass {
	GObjectClass parent_class;
};

struct _ScratchWidgetsDocumentView {
	GraniteWidgetsDynamicNotebook parent_instance;
	ScratchWidgetsDocumentViewPrivate * priv;
	GList* docs;
	guint view_id;
	gboolean is_closing;
};

struct _ScratchWidgetsDocumentViewClass {
	GraniteWidgetsDynamicNotebookClass parent_class;
};

struct _CodeFormatBar {
	GtkGrid parent_instance;
	CodeFormatBarPrivate * priv;
	CodeFormatBarFormatButton* line_toggle;
};

struct _CodeFormatBarClass {
	GtkGridClass parent_class;
};

struct _CodeFormatBarFormatButton {
	GtkToggleButton parent_instance;
	CodeFormatBarFormatButtonPrivate * priv;
};

struct _CodeFormatBarFormatButtonClass {
	GtkToggleButtonClass parent_class;
};

struct _CodeFormatBarLangEntry {
	GtkListBoxRow parent_instance;
	CodeFormatBarLangEntryPrivate * priv;
};

struct _CodeFormatBarLangEntryClass {
	GtkListBoxRowClass parent_class;
};

struct _ScratchWidgetsHeaderBar {
	GtkHeaderBar parent_instance;
	ScratchWidgetsHeaderBarPrivate * priv;
	GtkMenu* share_menu;
	GtkMenuButton* share_app_menu;
	GtkMenuButton* app_menu;
	GtkToggleButton* find_button;
	GtkButton* templates_button;
	CodeFormatBar* format_bar;
};

struct _ScratchWidgetsHeaderBarClass {
	GtkHeaderBarClass parent_class;
};

struct _CodePane {
	GtkGrid parent_instance;
	CodePanePrivate * priv;
};

struct _CodePaneClass {
	GtkGridClass parent_class;
};

struct _CodePaneSwitcherIface {
	GTypeInterface parent_iface;
	const gchar* (*get_icon_name) (CodePaneSwitcher* self);
	void (*set_icon_name) (CodePaneSwitcher* self, const gchar* value);
	const gchar* (*get_title) (CodePaneSwitcher* self);
	void (*set_title) (CodePaneSwitcher* self, const gchar* value);
};

struct _ScratchWidgetsSearchBar {
	GtkFlowBox parent_instance;
	ScratchWidgetsSearchBarPrivate * priv;
	GtkSearchEntry* search_entry;
	GtkSearchEntry* replace_entry;
};

struct _ScratchWidgetsSearchBarClass {
	GtkFlowBoxClass parent_class;
};

struct _ScratchWidgetsSourceView {
	GtkSourceView parent_instance;
	ScratchWidgetsSourceViewPrivate * priv;
	GtkTextMark* mark;
	GtkSourceLanguageManager* manager;
	GtkSourceStyleSchemeManager* style_scheme_manager;
	GtkTextTag* warning_tag;
	GtkTextTag* error_tag;
};

struct _ScratchWidgetsSourceViewClass {
	GtkSourceViewClass parent_class;
};

struct _ScratchWidgetsSplitView {
	GraniteWidgetsCollapsiblePaned parent_instance;
	ScratchWidgetsSplitViewPrivate * priv;
	ScratchWidgetsDocumentView* current_view;
	GList* views;
};

struct _ScratchWidgetsSplitViewClass {
	GraniteWidgetsCollapsiblePanedClass parent_class;
};

struct _CodeWelcomeView {
	GraniteWidgetsWelcome parent_instance;
	CodeWelcomeViewPrivate * priv;
};

struct _CodeWelcomeViewClass {
	GraniteWidgetsWelcomeClass parent_class;
};

GType scratch_saved_state_get_type (void) G_GNUC_CONST;
extern ScratchSavedState* scratch_saved_state;
GType scratch_settings_get_type (void) G_GNUC_CONST;
extern ScratchSettings* scratch_settings;
GType scratch_services_settings_get_type (void) G_GNUC_CONST;
extern ScratchServicesSettings* scratch_services;
GType scratch_application_get_type (void) G_GNUC_CONST;
extern ScratchApplication* scratch_application__instance;
ScratchApplication* scratch_application_new (void);
ScratchApplication* scratch_application_construct (GType object_type);
GType scratch_main_window_get_type (void) G_GNUC_CONST;
ScratchMainWindow* scratch_application_get_last_window (ScratchApplication* self);
ScratchMainWindow* scratch_application_new_window (ScratchApplication* self);
gint scratch_application_main (gchar** args,
                               gint args_length1);
const gchar* scratch_application_get_app_cmd_name (ScratchApplication* self);
const gchar* scratch_application_get_data_home_folder_unsaved (ScratchApplication* self);
const gchar* scratch_application_get_default_font (ScratchApplication* self);
void scratch_application_set_default_font (ScratchApplication* self,
                                           const gchar* value);
ScratchApplication* scratch_application_get_instance (void);
GType scratch_widgets_header_bar_get_type (void) G_GNUC_CONST;
GType scratch_widgets_search_bar_get_type (void) G_GNUC_CONST;
GType scratch_widgets_split_view_get_type (void) G_GNUC_CONST;
GType code_pane_get_type (void) G_GNUC_CONST;
extern GeeMultiMap* scratch_main_window_action_accelerators;
#define SCRATCH_MAIN_WINDOW_ACTION_PREFIX "win."
#define SCRATCH_MAIN_WINDOW_ACTION_FIND "action_find"
#define SCRATCH_MAIN_WINDOW_ACTION_FIND_NEXT "action_find_next"
#define SCRATCH_MAIN_WINDOW_ACTION_FIND_PREVIOUS "action_find_previous"
#define SCRATCH_MAIN_WINDOW_ACTION_OPEN "action_open"
#define SCRATCH_MAIN_WINDOW_ACTION_OPEN_FOLDER "action_open_folder"
#define SCRATCH_MAIN_WINDOW_ACTION_GO_TO "action_go_to"
#define SCRATCH_MAIN_WINDOW_ACTION_NEW_VIEW "action_new_view"
#define SCRATCH_MAIN_WINDOW_ACTION_SORT_LINES "action_sort_lines"
#define SCRATCH_MAIN_WINDOW_ACTION_NEW_TAB "action_new_tab"
#define SCRATCH_MAIN_WINDOW_ACTION_NEW_FROM_CLIPBOARD "action_new_from_clipboard"
#define SCRATCH_MAIN_WINDOW_ACTION_PREFERENCES "preferences"
#define SCRATCH_MAIN_WINDOW_ACTION_REMOVE_VIEW "action_remove_view"
#define SCRATCH_MAIN_WINDOW_ACTION_UNDO "action_undo"
#define SCRATCH_MAIN_WINDOW_ACTION_REDO "action_redo"
#define SCRATCH_MAIN_WINDOW_ACTION_REVERT "action_revert"
#define SCRATCH_MAIN_WINDOW_ACTION_SAVE "action_save"
#define SCRATCH_MAIN_WINDOW_ACTION_SAVE_AS "action_save_as"
#define SCRATCH_MAIN_WINDOW_ACTION_SHOW_FIND "action_show_find"
#define SCRATCH_MAIN_WINDOW_ACTION_TEMPLATES "action_templates"
#define SCRATCH_MAIN_WINDOW_ACTION_SHOW_REPLACE "action_show_replace"
#define SCRATCH_MAIN_WINDOW_ACTION_TO_LOWER_CASE "action_to_lower_case"
#define SCRATCH_MAIN_WINDOW_ACTION_TO_UPPER_CASE "action_to_upper_case"
#define SCRATCH_MAIN_WINDOW_ACTION_DUPLICATE "action_duplicate"
#define SCRATCH_MAIN_WINDOW_ACTION_FULLSCREEN "action_fullscreen"
#define SCRATCH_MAIN_WINDOW_ACTION_QUIT "action_quit"
#define SCRATCH_MAIN_WINDOW_ACTION_ZOOM_DEFAULT "action_zoom_default"
#define SCRATCH_MAIN_WINDOW_ACTION_ZOOM_IN "action_zoom_in"
#define SCRATCH_MAIN_WINDOW_ACTION_ZOOM_OUT "action_zoom_out"
#define SCRATCH_MAIN_WINDOW_ACTION_TOGGLE_COMMENT "action_toggle_comment"
#define SCRATCH_MAIN_WINDOW_ACTION_TOGGLE_SIDEBAR "action_toggle_sidebar"
ScratchMainWindow* scratch_main_window_new (ScratchApplication* scratch_app);
ScratchMainWindow* scratch_main_window_construct (GType object_type,
                                                  ScratchApplication* scratch_app);
void scratch_main_window_restore_opened_documents (ScratchMainWindow* self);
GType scratch_widgets_document_view_get_type (void) G_GNUC_CONST;
ScratchWidgetsDocumentView* scratch_main_window_get_current_view (ScratchMainWindow* self);
GType scratch_services_document_get_type (void) G_GNUC_CONST;
ScratchServicesDocument* scratch_main_window_get_current_document (ScratchMainWindow* self);
ScratchServicesDocument* scratch_main_window_get_focused_document (ScratchMainWindow* self);
ScratchWidgetsDocumentView* scratch_main_window_add_view (ScratchMainWindow* self);
void scratch_main_window_open_folder (ScratchMainWindow* self,
                                      GFile* folder);
void scratch_main_window_open_document (ScratchMainWindow* self,
                                        ScratchServicesDocument* doc,
                                        ScratchWidgetsDocumentView* view_,
                                        gboolean focus);
void scratch_main_window_close_document (ScratchMainWindow* self,
                                         ScratchServicesDocument* doc);
gboolean scratch_main_window_is_empty (ScratchMainWindow* self);
gboolean scratch_main_window_has_temporary_files (ScratchMainWindow* self);
gboolean scratch_main_window_quit_source_func (ScratchMainWindow* self);
void scratch_main_window_set_default_zoom (ScratchMainWindow* self);
void scratch_main_window_action_zoom_in (ScratchMainWindow* self);
void scratch_main_window_action_zoom_out (ScratchMainWindow* self);
gchar* scratch_main_window_get_current_font (ScratchMainWindow* self);
gdouble scratch_main_window_get_current_font_size (ScratchMainWindow* self);
gchar* scratch_main_window_get_default_font (ScratchMainWindow* self);
gdouble scratch_main_window_get_default_font_size (ScratchMainWindow* self);
ScratchApplication* scratch_main_window_get_app (ScratchMainWindow* self);
GSimpleActionGroup* scratch_main_window_get_actions (ScratchMainWindow* self);
extern gchar* scratch_utils_last_path;
GSimpleAction* scratch_utils_action_from_group (const gchar* action_name,
                                                GSimpleActionGroup* action_group);
GType scratch_dialogs_preferences_get_type (void) G_GNUC_CONST;
GType scratch_services_plugins_manager_get_type (void) G_GNUC_CONST;
ScratchDialogsPreferences* scratch_dialogs_preferences_new (GtkWindow* parent,
                                                            ScratchServicesPluginsManager* plugins);
ScratchDialogsPreferences* scratch_dialogs_preferences_construct (GType object_type,
                                                                  GtkWindow* parent,
                                                                  ScratchServicesPluginsManager* plugins);
GType contract_menu_item_get_type (void) G_GNUC_CONST;
ContractMenuItem* contract_menu_item_new (GraniteServicesContract* contract,
                                          GFile* file);
ContractMenuItem* contract_menu_item_construct (GType object_type,
                                                GraniteServicesContract* contract,
                                                GFile* file);
gpointer scratch_comment_toggler_ref (gpointer instance);
void scratch_comment_toggler_unref (gpointer instance);
GParamSpec* scratch_param_spec_comment_toggler (const gchar* name,
                                                const gchar* nick,
                                                const gchar* blurb,
                                                GType object_type,
                                                GParamFlags flags);
void scratch_value_set_comment_toggler (GValue* value,
                                        gpointer v_object);
void scratch_value_take_comment_toggler (GValue* value,
                                         gpointer v_object);
gpointer scratch_value_get_comment_toggler (const GValue* value);
GType scratch_comment_toggler_get_type (void) G_GNUC_CONST;
gboolean scratch_comment_toggler_language_has_comments (GtkSourceLanguage* lang);
void scratch_comment_toggler_toggle_comment (GtkSourceBuffer* buffer);
ScratchCommentToggler* scratch_comment_toggler_new (void);
ScratchCommentToggler* scratch_comment_toggler_construct (GType object_type);
GType scratch_services_document_states_get_type (void) G_GNUC_CONST;
GType scratch_widgets_source_view_get_type (void) G_GNUC_CONST;
ScratchServicesDocument* scratch_services_document_new (GSimpleActionGroup* actions,
                                                        GFile* file);
ScratchServicesDocument* scratch_services_document_construct (GType object_type,
                                                              GSimpleActionGroup* actions,
                                                              GFile* file);
void scratch_services_document_toggle_changed_handlers (ScratchServicesDocument* self,
                                                        gboolean enabled);
void scratch_services_document_open (ScratchServicesDocument* self,
                                     gboolean force,
                                     GAsyncReadyCallback _callback_,
                                     gpointer _user_data_);
void scratch_services_document_open_finish (ScratchServicesDocument* self,
                                            GAsyncResult* _res_);
gboolean scratch_services_document_do_close (ScratchServicesDocument* self,
                                             gboolean app_closing);
gboolean scratch_services_document_save_with_hold (ScratchServicesDocument* self,
                                                   gboolean force);
gboolean scratch_services_document_save_as_with_hold (ScratchServicesDocument* self);
void scratch_services_document_save (ScratchServicesDocument* self,
                                     gboolean force,
                                     GAsyncReadyCallback _callback_,
                                     gpointer _user_data_);
gboolean scratch_services_document_save_finish (ScratchServicesDocument* self,
                                                GAsyncResult* _res_);
void scratch_services_document_save_as (ScratchServicesDocument* self,
                                        GAsyncReadyCallback _callback_,
                                        gpointer _user_data_);
gboolean scratch_services_document_save_as_finish (ScratchServicesDocument* self,
                                                   GAsyncResult* _res_);
gboolean scratch_services_document_move (ScratchServicesDocument* self,
                                         GFile* new_dest);
void scratch_services_document_focus (ScratchServicesDocument* self);
gchar* scratch_services_document_get_uri (ScratchServicesDocument* self);
gchar* scratch_services_document_get_basename (ScratchServicesDocument* self);
void scratch_services_document_set_message (ScratchServicesDocument* self,
                                            GtkMessageType type,
                                            const gchar* label,
                                            const gchar* button1,
                                            ScratchServicesDocumentVoidFunc callback1,
                                            gpointer callback1_target,
                                            GDestroyNotify callback1_target_destroy_notify,
                                            const gchar* button2,
                                            ScratchServicesDocumentVoidFunc callback2,
                                            gpointer callback2_target,
                                            GDestroyNotify callback2_target_destroy_notify);
void scratch_services_document_hide_info_bar (ScratchServicesDocument* self);
void scratch_services_document_undo (ScratchServicesDocument* self);
void scratch_services_document_redo (ScratchServicesDocument* self);
void scratch_services_document_revert (ScratchServicesDocument* self);
gchar* scratch_services_document_get_text (ScratchServicesDocument* self);
gchar* scratch_services_document_get_selected_text (ScratchServicesDocument* self);
gchar* scratch_services_document_get_language_name (ScratchServicesDocument* self);
gchar* scratch_services_document_get_language_id (ScratchServicesDocument* self);
void scratch_services_document_duplicate_selection (ScratchServicesDocument* self);
void scratch_services_document_check_file_status (ScratchServicesDocument* self);
void scratch_services_document_check_undoable_actions (ScratchServicesDocument* self);
void scratch_services_document_set_saved_status (ScratchServicesDocument* self,
                                                 gboolean val);
gboolean scratch_services_document_can_write (ScratchServicesDocument* self);
gboolean scratch_services_document_exists (ScratchServicesDocument* self,
                                           GCancellable* cancellable);
GSimpleActionGroup* scratch_services_document_get_actions (ScratchServicesDocument* self);
void scratch_services_document_set_actions (ScratchServicesDocument* self,
                                            GSimpleActionGroup* value);
gboolean scratch_services_document_get_is_file_temporary (ScratchServicesDocument* self);
GFile* scratch_services_document_get_file (ScratchServicesDocument* self);
void scratch_services_document_set_file (ScratchServicesDocument* self,
                                         GFile* value);
const gchar* scratch_services_document_get_mime_type (ScratchServicesDocument* self);
GType scratch_services_file_option_get_type (void) G_GNUC_CONST;
GType scratch_services_file_handler_get_type (void) G_GNUC_CONST;
void scratch_services_file_handler_load_content_from_file (GFile* file,
                                                           GAsyncReadyCallback _callback_,
                                                           gpointer _user_data_);
gchar* scratch_services_file_handler_load_content_from_file_finish (GAsyncResult* _res_);
gchar* scratch_services_file_handler_load_content_from_file_sync (GFile* file);
gboolean scratch_services_file_handler_move (const gchar* path,
                                             const gchar* new_path);
gboolean scratch_services_file_handler_move_uri (const gchar* uri,
                                                 const gchar* new_uri);
gboolean scratch_services_file_handler_copy (const gchar* path,
                                             const gchar* new_path);
ScratchServicesFileHandler* scratch_services_file_handler_new (void);
ScratchServicesFileHandler* scratch_services_file_handler_construct (GType object_type);
GType scratch_services_interface_get_type (void) G_GNUC_CONST;
ScratchServicesInterface* scratch_services_interface_new (ScratchServicesPluginsManager* manager);
ScratchServicesInterface* scratch_services_interface_construct (GType object_type,
                                                                ScratchServicesPluginsManager* manager);
ScratchServicesDocument* scratch_services_interface_open_file (ScratchServicesInterface* self,
                                                               GFile* file);
void scratch_services_interface_close_document (ScratchServicesInterface* self,
                                                ScratchServicesDocument* doc);
GType scratch_template_manager_get_type (void) G_GNUC_CONST;
ScratchTemplateManager* scratch_services_interface_get_template_manager (ScratchServicesInterface* self);
ScratchServicesPluginsManager* scratch_services_plugins_manager_new (ScratchMainWindow* window,
                                                                     const gchar* set_name);
ScratchServicesPluginsManager* scratch_services_plugins_manager_construct (GType object_type,
                                                                           ScratchMainWindow* window,
                                                                           const gchar* set_name);
GtkWidget* scratch_services_plugins_manager_get_view (ScratchServicesPluginsManager* self);
ScratchServicesInterface* scratch_services_plugins_manager_get_plugin_iface (ScratchServicesPluginsManager* self);
GType scratch_scratch_window_state_get_type (void) G_GNUC_CONST;
GType scratch_scratch_draw_spaces_state_get_type (void) G_GNUC_CONST;
ScratchSavedState* scratch_saved_state_new (void);
ScratchSavedState* scratch_saved_state_construct (GType object_type);
gint scratch_saved_state_get_window_width (ScratchSavedState* self);
void scratch_saved_state_set_window_width (ScratchSavedState* self,
                                           gint value);
gint scratch_saved_state_get_window_height (ScratchSavedState* self);
void scratch_saved_state_set_window_height (ScratchSavedState* self,
                                            gint value);
ScratchScratchWindowState scratch_saved_state_get_window_state (ScratchSavedState* self);
void scratch_saved_state_set_window_state (ScratchSavedState* self,
                                           ScratchScratchWindowState value);
gint scratch_saved_state_get_window_x (ScratchSavedState* self);
void scratch_saved_state_set_window_x (ScratchSavedState* self,
                                       gint value);
gint scratch_saved_state_get_window_y (ScratchSavedState* self);
void scratch_saved_state_set_window_y (ScratchSavedState* self,
                                       gint value);
gint scratch_saved_state_get_hp1_size (ScratchSavedState* self);
void scratch_saved_state_set_hp1_size (ScratchSavedState* self,
                                       gint value);
gint scratch_saved_state_get_vp_size (ScratchSavedState* self);
void scratch_saved_state_set_vp_size (ScratchSavedState* self,
                                      gint value);
ScratchSettings* scratch_settings_new (void);
ScratchSettings* scratch_settings_construct (GType object_type);
gboolean scratch_settings_get_highlight_matching_brackets (ScratchSettings* self);
void scratch_settings_set_highlight_matching_brackets (ScratchSettings* self,
                                                       gboolean value);
ScratchScratchDrawSpacesState scratch_settings_get_draw_spaces (ScratchSettings* self);
void scratch_settings_set_draw_spaces (ScratchSettings* self,
                                       ScratchScratchDrawSpacesState value);
gboolean scratch_settings_get_spaces_instead_of_tabs (ScratchSettings* self);
void scratch_settings_set_spaces_instead_of_tabs (ScratchSettings* self,
                                                  gboolean value);
gboolean scratch_settings_get_line_wrap (ScratchSettings* self);
void scratch_settings_set_line_wrap (ScratchSettings* self,
                                     gboolean value);
gboolean scratch_settings_get_auto_indent (ScratchSettings* self);
void scratch_settings_set_auto_indent (ScratchSettings* self,
                                       gboolean value);
gint scratch_settings_get_indent_width (ScratchSettings* self);
void scratch_settings_set_indent_width (ScratchSettings* self,
                                        gint value);
gboolean scratch_settings_get_show_right_margin (ScratchSettings* self);
void scratch_settings_set_show_right_margin (ScratchSettings* self,
                                             gboolean value);
gint scratch_settings_get_right_margin_position (ScratchSettings* self);
void scratch_settings_set_right_margin_position (ScratchSettings* self,
                                                 gint value);
gboolean scratch_settings_get_use_system_font (ScratchSettings* self);
void scratch_settings_set_use_system_font (ScratchSettings* self,
                                           gboolean value);
const gchar* scratch_settings_get_font (ScratchSettings* self);
void scratch_settings_set_font (ScratchSettings* self,
                                const gchar* value);
const gchar* scratch_settings_get_style_scheme (ScratchSettings* self);
void scratch_settings_set_style_scheme (ScratchSettings* self,
                                        const gchar* value);
gchar** scratch_settings_get_plugins_enabled (ScratchSettings* self,
                                              gint* result_length1);
void scratch_settings_set_plugins_enabled (ScratchSettings* self,
                                           gchar** value,
                                           gint value_length1);
gchar** scratch_settings_get_opened_files_view1 (ScratchSettings* self,
                                                 gint* result_length1);
void scratch_settings_set_opened_files_view1 (ScratchSettings* self,
                                              gchar** value,
                                              gint value_length1);
gchar** scratch_settings_get_opened_files_view2 (ScratchSettings* self,
                                                 gint* result_length1);
void scratch_settings_set_opened_files_view2 (ScratchSettings* self,
                                              gchar** value,
                                              gint value_length1);
gboolean scratch_settings_get_autosave (ScratchSettings* self);
void scratch_settings_set_autosave (ScratchSettings* self,
                                    gboolean value);
const gchar* scratch_settings_get_focused_document_view1 (ScratchSettings* self);
void scratch_settings_set_focused_document_view1 (ScratchSettings* self,
                                                  const gchar* value);
const gchar* scratch_settings_get_focused_document_view2 (ScratchSettings* self);
void scratch_settings_set_focused_document_view2 (ScratchSettings* self,
                                                  const gchar* value);
gboolean scratch_settings_get_show_mini_map (ScratchSettings* self);
void scratch_settings_set_show_mini_map (ScratchSettings* self,
                                         gboolean value);
gboolean scratch_settings_get_prefer_dark_style (ScratchSettings* self);
void scratch_settings_set_prefer_dark_style (ScratchSettings* self,
                                             gboolean value);
ScratchServicesSettings* scratch_services_settings_new (void);
ScratchServicesSettings* scratch_services_settings_construct (GType object_type);
const gchar* scratch_services_settings_get_paste_format_code (ScratchServicesSettings* self);
void scratch_services_settings_set_paste_format_code (ScratchServicesSettings* self,
                                                      const gchar* value);
const gchar* scratch_services_settings_get_expiry_time (ScratchServicesSettings* self);
void scratch_services_settings_set_expiry_time (ScratchServicesSettings* self,
                                                const gchar* value);
gboolean scratch_services_settings_get_set_private (ScratchServicesSettings* self);
void scratch_services_settings_set_set_private (ScratchServicesSettings* self,
                                                gboolean value);
GType scratch_folder_manager_settings_get_type (void) G_GNUC_CONST;
ScratchFolderManagerSettings* scratch_folder_manager_settings_new (void);
ScratchFolderManagerSettings* scratch_folder_manager_settings_construct (GType object_type);
gchar** scratch_folder_manager_settings_get_opened_folders (ScratchFolderManagerSettings* self,
                                                            gint* result_length1);
void scratch_folder_manager_settings_set_opened_folders (ScratchFolderManagerSettings* self,
                                                         gchar** value,
                                                         gint value_length1);
GType scratch_template_get_type (void) G_GNUC_CONST;
GtkWidget* scratch_template_get_creation_box (ScratchTemplate* self);
void scratch_template_configure_template (const gchar* origin,
                                          const gchar* destination,
                                          GeeHashMap* variables);
void scratch_template_enumerate_directory (GFile* origin,
                                           GeeTreeSet* files,
                                           GeeTreeSet* directories);
void scratch_template_info_directory (GFile* file,
                                      gboolean* is_directory,
                                      gboolean* exists);
ScratchTemplate* scratch_template_construct (GType object_type);
GType scratch_test_template_get_type (void) G_GNUC_CONST;
ScratchTestTemplate* scratch_test_template_new (void);
ScratchTestTemplate* scratch_test_template_construct (GType object_type);
GType template_button_get_type (void) G_GNUC_CONST;
TemplateButton* template_button_new (const gchar* title,
                                     const gchar* description,
                                     const gchar* icon);
TemplateButton* template_button_construct (GType object_type,
                                           const gchar* title,
                                           const gchar* description,
                                           const gchar* icon);
void template_button_set_icon_from_pixbuf (TemplateButton* self,
                                           GdkPixbuf* pixbuf);
ScratchTemplateManager* scratch_template_manager_new (void);
ScratchTemplateManager* scratch_template_manager_construct (GType object_type);
void scratch_template_manager_register_template (ScratchTemplateManager* self,
                                                 const gchar* icon_id,
                                                 const gchar* label,
                                                 const gchar* description,
                                                 GType template_type);
void scratch_template_manager_show_window (ScratchTemplateManager* self,
                                           GtkWidget* parent);
ScratchWidgetsDocumentView* scratch_widgets_document_view_new (ScratchMainWindow* window);
ScratchWidgetsDocumentView* scratch_widgets_document_view_construct (GType object_type,
                                                                     ScratchMainWindow* window);
void scratch_widgets_document_view_new_document (ScratchWidgetsDocumentView* self);
void scratch_widgets_document_view_new_document_from_clipboard (ScratchWidgetsDocumentView* self,
                                                                const gchar* clipboard);
void scratch_widgets_document_view_open_document (ScratchWidgetsDocumentView* self,
                                                  ScratchServicesDocument* doc,
                                                  gboolean focus);
void scratch_widgets_document_view_duplicate_document (ScratchWidgetsDocumentView* self,
                                                       ScratchServicesDocument* original);
void scratch_widgets_document_view_next_document (ScratchWidgetsDocumentView* self);
void scratch_widgets_document_view_previous_document (ScratchWidgetsDocumentView* self);
void scratch_widgets_document_view_close_document (ScratchWidgetsDocumentView* self,
                                                   ScratchServicesDocument* doc);
void scratch_widgets_document_view_close_current_document (ScratchWidgetsDocumentView* self);
gboolean scratch_widgets_document_view_is_empty (ScratchWidgetsDocumentView* self);
void scratch_widgets_document_view_focus (ScratchWidgetsDocumentView* self);
void scratch_widgets_document_view_save_opened_files (ScratchWidgetsDocumentView* self);
void scratch_widgets_document_view_save_current_file (ScratchWidgetsDocumentView* self,
                                                      ScratchServicesDocument* current_document);
ScratchMainWindow* scratch_widgets_document_view_get_window (ScratchWidgetsDocumentView* self);
void scratch_widgets_document_view_set_window (ScratchWidgetsDocumentView* self,
                                               ScratchMainWindow* value);
ScratchServicesDocument* scratch_widgets_document_view_get_current_document (ScratchWidgetsDocumentView* self);
void scratch_widgets_document_view_set_current_document (ScratchWidgetsDocumentView* self,
                                                         ScratchServicesDocument* value);
GType code_format_bar_get_type (void) G_GNUC_CONST;
GType code_format_bar_format_button_get_type (void) G_GNUC_CONST;
void code_format_bar_set_document (CodeFormatBar* self,
                                   ScratchServicesDocument* doc);
CodeFormatBar* code_format_bar_new (void);
CodeFormatBar* code_format_bar_construct (GType object_type);
CodeFormatBarFormatButton* code_format_bar_format_button_new (void);
CodeFormatBarFormatButton* code_format_bar_format_button_construct (GType object_type);
void code_format_bar_format_button_set_text (CodeFormatBarFormatButton* self,
                                             const gchar* value);
GIcon* code_format_bar_format_button_get_icon (CodeFormatBarFormatButton* self);
void code_format_bar_format_button_set_icon (CodeFormatBarFormatButton* self,
                                             GIcon* value);
GType code_format_bar_lang_entry_get_type (void) G_GNUC_CONST;
CodeFormatBarLangEntry* code_format_bar_lang_entry_new (const gchar* lang_id,
                                                        const gchar* lang_name,
                                                        GSList* group);
CodeFormatBarLangEntry* code_format_bar_lang_entry_construct (GType object_type,
                                                              const gchar* lang_id,
                                                              const gchar* lang_name,
                                                              GSList* group);
GSList* code_format_bar_lang_entry_get_radio_group (CodeFormatBarLangEntry* self);
const gchar* code_format_bar_lang_entry_get_lang_id (CodeFormatBarLangEntry* self);
const gchar* code_format_bar_lang_entry_get_lang_name (CodeFormatBarLangEntry* self);
gboolean code_format_bar_lang_entry_get_active (CodeFormatBarLangEntry* self);
void code_format_bar_lang_entry_set_active (CodeFormatBarLangEntry* self,
                                            gboolean value);
gboolean code_format_bar_lang_entry_get_selected (CodeFormatBarLangEntry* self);
void code_format_bar_lang_entry_set_selected (CodeFormatBarLangEntry* self,
                                              gboolean value);
ScratchWidgetsHeaderBar* scratch_widgets_header_bar_new (void);
ScratchWidgetsHeaderBar* scratch_widgets_header_bar_construct (GType object_type);
void scratch_widgets_header_bar_document_available (ScratchWidgetsHeaderBar* self,
                                                    gboolean has_document);
void scratch_widgets_header_bar_set_document_focus (ScratchWidgetsHeaderBar* self,
                                                    ScratchServicesDocument* doc);
GType code_pane_switcher_get_type (void) G_GNUC_CONST;
void code_pane_add_tab (CodePane* self,
                        CodePaneSwitcher* tab);
CodePane* code_pane_new (void);
CodePane* code_pane_construct (GType object_type);
GtkStack* code_pane_get_stack (CodePane* self);
const gchar* code_pane_switcher_get_icon_name (CodePaneSwitcher* self);
void code_pane_switcher_set_icon_name (CodePaneSwitcher* self,
                                       const gchar* value);
const gchar* code_pane_switcher_get_title (CodePaneSwitcher* self);
void code_pane_switcher_set_title (CodePaneSwitcher* self,
                                   const gchar* value);
ScratchWidgetsSearchBar* scratch_widgets_search_bar_new (ScratchMainWindow* window);
ScratchWidgetsSearchBar* scratch_widgets_search_bar_construct (GType object_type,
                                                               ScratchMainWindow* window);
void scratch_widgets_search_bar_set_text_view (ScratchWidgetsSearchBar* self,
                                               ScratchWidgetsSourceView* text_view);
void scratch_widgets_search_bar_set_search_string (ScratchWidgetsSearchBar* self,
                                                   const gchar* to_search);
gboolean scratch_widgets_search_bar_search (ScratchWidgetsSearchBar* self);
void scratch_widgets_search_bar_highlight_none (ScratchWidgetsSearchBar* self);
void scratch_widgets_search_bar_search_previous (ScratchWidgetsSearchBar* self);
void scratch_widgets_search_bar_search_next (ScratchWidgetsSearchBar* self);
ScratchMainWindow* scratch_widgets_search_bar_get_window (ScratchWidgetsSearchBar* self);
ScratchWidgetsSourceView* scratch_widgets_source_view_new (void);
ScratchWidgetsSourceView* scratch_widgets_source_view_construct (GType object_type);
void scratch_widgets_source_view_use_default_font (ScratchWidgetsSourceView* self,
                                                   gboolean value);
void scratch_widgets_source_view_change_syntax_highlight_from_file (ScratchWidgetsSourceView* self,
                                                                    GFile* file);
void scratch_widgets_source_view_go_to_line (ScratchWidgetsSourceView* self,
                                             gint line,
                                             gint offset);
gchar* scratch_widgets_source_view_get_selected_text (ScratchWidgetsSourceView* self,
                                                      gboolean replace_new_line);
void scratch_widgets_source_view_duplicate_selection (ScratchWidgetsSourceView* self);
void scratch_widgets_source_view_sort_selected_lines (ScratchWidgetsSourceView* self);
void scratch_widgets_source_view_set_text (ScratchWidgetsSourceView* self,
                                           const gchar* text,
                                           gboolean opening);
gchar* scratch_widgets_source_view_get_text (ScratchWidgetsSourceView* self);
GtkSourceLanguage* scratch_widgets_source_view_get_language (ScratchWidgetsSourceView* self);
void scratch_widgets_source_view_set_language (ScratchWidgetsSourceView* self,
                                               GtkSourceLanguage* value);
ScratchWidgetsSplitView* scratch_widgets_split_view_new (ScratchMainWindow* window);
ScratchWidgetsSplitView* scratch_widgets_split_view_construct (GType object_type,
                                                               ScratchMainWindow* window);
ScratchWidgetsDocumentView* scratch_widgets_split_view_add_view (ScratchWidgetsSplitView* self);
void scratch_widgets_split_view_remove_view (ScratchWidgetsSplitView* self,
                                             ScratchWidgetsDocumentView* view);
ScratchWidgetsDocumentView* scratch_widgets_split_view_get_current_view (ScratchWidgetsSplitView* self);
gboolean scratch_widgets_split_view_is_empty (ScratchWidgetsSplitView* self);
void scratch_widgets_split_view_show_welcome (ScratchWidgetsSplitView* self);
void scratch_widgets_split_view_hide_welcome (ScratchWidgetsSplitView* self);
ScratchMainWindow* scratch_widgets_split_view_get_window (ScratchWidgetsSplitView* self);
void scratch_widgets_split_view_set_window (ScratchWidgetsSplitView* self,
                                            ScratchMainWindow* value);
GType code_welcome_view_get_type (void) G_GNUC_CONST;
CodeWelcomeView* code_welcome_view_new (ScratchMainWindow* window);
CodeWelcomeView* code_welcome_view_construct (GType object_type,
                                              ScratchMainWindow* window);
ScratchMainWindow* code_welcome_view_get_window (CodeWelcomeView* self);
#define CONSTANTS_GETTEXT_PACKAGE "io.elementary.code"
#define CONSTANTS_PROJECT_NAME "io.elementary.code"
#define CONSTANTS_VERSION "3.1.1"
#define CONSTANTS_PLUGINDIR "/usr/lib/io.elementary.code/plugins"
#define CONSTANTS_INSTALL_PREFIX "/usr"
#define CONSTANTS_DATADIR "/usr/share"

G_END_DECLS

#endif
