#ifndef __GLADE_PROJECT_H__ #define __GLADE_PROJECT_H__ #include #include #include G_BEGIN_DECLS #define GLADE_TYPE_PROJECT (glade_project_get_type ()) #define GLADE_PROJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GLADE_TYPE_PROJECT, GladeProject)) #define GLADE_PROJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GLADE_TYPE_PROJECT, GladeProjectClass)) #define GLADE_IS_PROJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_PROJECT)) #define GLADE_IS_PROJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_PROJECT)) #define GLADE_PROJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GLADE_TYPE_PROJECT, GladeProjectClass)) typedef struct _GladeProjectPrivate GladeProjectPrivate; typedef struct _GladeProjectClass GladeProjectClass; /** * GladePointerMode: * @GLADE_POINTER_SELECT: Mouse pointer used for selecting widgets * @GLADE_POINTER_ADD_WIDGET: Mouse pointer used for adding widgets * @GLADE_POINTER_DRAG_RESIZE: Mouse pointer used for dragging and * resizing widgets in containers * @GLADE_POINTER_MARGIN_EDIT: Mouse pointer used to edit widget margins * @GLADE_POINTER_ALIGN_EDIT: Mouse pointer used to edit widget alignment * * Indicates what the pointer is used for in the workspace. */ typedef enum { GLADE_POINTER_SELECT = 0, GLADE_POINTER_ADD_WIDGET, GLADE_POINTER_DRAG_RESIZE, GLADE_POINTER_MARGIN_EDIT, GLADE_POINTER_ALIGN_EDIT } GladePointerMode; typedef enum { GLADE_SUPPORT_OK = 0, GLADE_SUPPORT_DEPRECATED = (0x01 << 0), GLADE_SUPPORT_MISMATCH = (0x01 << 1) } GladeSupportMask; /** * GladeProjectModelColumns: * @GLADE_PROJECT_MODEL_COLUMN_ICON_NAME: name of the icon for the widget * @GLADE_PROJECT_MODEL_COLUMN_NAME: Name of the widget * @GLADE_PROJECT_MODEL_COLUMN_TYPE_NAME: The type name of the widget * @GLADE_PROJECT_MODEL_COLUMN_OBJECT: the GObject of the widget * @GLADE_PROJECT_MODEL_COLUMN_MISC: the auxilary text describing a widget's role * @GLADE_PROJECT_MODEL_COLUMN_WARNING: the support warning text for this widget * @GLADE_PROJECT_MODEL_N_COLUMNS: Number of columns * * The tree view columns provided by the GtkTreeModel implemented * by GladeProject * **/ typedef enum { GLADE_PROJECT_MODEL_COLUMN_ICON_NAME, GLADE_PROJECT_MODEL_COLUMN_NAME, GLADE_PROJECT_MODEL_COLUMN_TYPE_NAME, GLADE_PROJECT_MODEL_COLUMN_OBJECT, GLADE_PROJECT_MODEL_COLUMN_MISC, GLADE_PROJECT_MODEL_COLUMN_WARNING, GLADE_PROJECT_MODEL_N_COLUMNS } GladeProjectModelColumns; /** * GladeVerifyFlags: * @GLADE_VERIFY_VERSIONS: Verify version mismatches * @GLADE_VERIFY_DEPRECATIONS: Verify deprecations * @GLADE_VERIFY_UNRECOGNIZED: Verify unrecognized types * */ typedef enum { GLADE_VERIFY_VERSIONS = (1 << 0), GLADE_VERIFY_DEPRECATIONS = (1 << 1), GLADE_VERIFY_UNRECOGNIZED = (1 << 2) } GladeVerifyFlags; struct _GladeProject { GObject parent_instance; GladeProjectPrivate *priv; }; struct _GladeProjectClass { GObjectClass parent_class; void (*add_object) (GladeProject *project, GladeWidget *widget); void (*remove_object) (GladeProject *project, GladeWidget *widget); void (*undo) (GladeProject *project); void (*redo) (GladeProject *project); GladeCommand *(*next_undo_item) (GladeProject *project); GladeCommand *(*next_redo_item) (GladeProject *project); void (*push_undo) (GladeProject *project, GladeCommand *command); void (*changed) (GladeProject *project, GladeCommand *command, gboolean forward); void (*widget_name_changed) (GladeProject *project, GladeWidget *widget); void (*selection_changed) (GladeProject *project); void (*close) (GladeProject *project); void (*parse_finished) (GladeProject *project); void (* glade_reserved1) (void); void (* glade_reserved2) (void); void (* glade_reserved3) (void); void (* glade_reserved4) (void); void (* glade_reserved5) (void); void (* glade_reserved6) (void); void (* glade_reserved7) (void); void (* glade_reserved8) (void); }; GType glade_project_get_type (void) G_GNUC_CONST; GladeProject *glade_project_new (void); GladeProject *glade_project_load (const gchar *path); gboolean glade_project_load_from_file (GladeProject *project, const gchar *path); gboolean glade_project_save (GladeProject *project, const gchar *path, GError **error); gboolean glade_project_save_verify (GladeProject *project, const gchar *path, GladeVerifyFlags flags, GError **error); gboolean glade_project_autosave (GladeProject *project, GError **error); gboolean glade_project_backup (GladeProject *project, const gchar *path, GError **error); void glade_project_push_progress (GladeProject *project); gboolean glade_project_load_cancelled (GladeProject *project); void glade_project_cancel_load (GladeProject *project); void glade_project_preview (GladeProject *project, GladeWidget *gwidget); void glade_project_properties (GladeProject *project); gchar *glade_project_resource_fullpath (GladeProject *project, const gchar *resource); void glade_project_set_resource_path (GladeProject *project, const gchar *path); const gchar *glade_project_get_resource_path (GladeProject *project); void glade_project_widget_visibility_changed (GladeProject *project, GladeWidget *widget, gboolean visible); void glade_project_check_reordered (GladeProject *project, GladeWidget *parent, GList *old_order); void glade_project_set_template (GladeProject *project, GladeWidget *widget); GladeWidget *glade_project_get_template (GladeProject *project); void glade_project_set_license (GladeProject *project, const gchar *license); const gchar *glade_project_get_license (GladeProject *project); /* Commands */ void glade_project_undo (GladeProject *project); void glade_project_redo (GladeProject *project); GladeCommand *glade_project_next_undo_item (GladeProject *project); GladeCommand *glade_project_next_redo_item (GladeProject *project); void glade_project_push_undo (GladeProject *project, GladeCommand *cmd); GtkWidget *glade_project_undo_items (GladeProject *project); GtkWidget *glade_project_redo_items (GladeProject *project); /* Add/Remove Objects */ const GList *glade_project_get_objects (GladeProject *project); void glade_project_add_object (GladeProject *project, GObject *object); void glade_project_remove_object (GladeProject *project, GObject *object); gboolean glade_project_has_object (GladeProject *project, GObject *object); void glade_project_widget_changed (GladeProject *project, GladeWidget *gwidget); /* Widget names */ GladeWidget *glade_project_get_widget_by_name (GladeProject *project, const gchar *name); void glade_project_set_widget_name (GladeProject *project, GladeWidget *widget, const gchar *name); gchar *glade_project_new_widget_name (GladeProject *project, GladeWidget *widget, const gchar *base_name); gboolean glade_project_available_widget_name(GladeProject *project, GladeWidget *widget, const gchar *name); /* Selection */ gboolean glade_project_is_selected (GladeProject *project, GObject *object); void glade_project_selection_set (GladeProject *project, GObject *object, gboolean emit_signal); void glade_project_selection_add (GladeProject *project, GObject *object, gboolean emit_signal); void glade_project_selection_remove (GladeProject *project, GObject *object, gboolean emit_signal); void glade_project_selection_clear (GladeProject *project, gboolean emit_signal); void glade_project_selection_changed (GladeProject *project); void glade_project_queue_selection_changed (GladeProject *project); GList *glade_project_selection_get (GladeProject *project); gboolean glade_project_get_has_selection (GladeProject *project); /* Accessors */ const gchar *glade_project_get_path (GladeProject *project); gchar *glade_project_get_name (GladeProject *project); void glade_project_reset_path (GladeProject *project); gboolean glade_project_is_loading (GladeProject *project); time_t glade_project_get_file_mtime (GladeProject *project); gboolean glade_project_get_readonly (GladeProject *project); gboolean glade_project_get_modified (GladeProject *project); void glade_project_set_pointer_mode (GladeProject *project, GladePointerMode mode); GladePointerMode glade_project_get_pointer_mode (GladeProject *project); void glade_project_set_add_item (GladeProject *project, GladeWidgetAdaptor *adaptor); GladeWidgetAdaptor *glade_project_get_add_item (GladeProject *project); void glade_project_set_target_version (GladeProject *project, const gchar *catalog, gint major, gint minor); void glade_project_get_target_version (GladeProject *project, const gchar *catalog, gint *major, gint *minor); GList *glade_project_required_libs (GladeProject *project); gchar *glade_project_display_dependencies (GladeProject *project); GList *glade_project_toplevels (GladeProject *project); void glade_project_set_translation_domain (GladeProject *project, const gchar *domain); const gchar *glade_project_get_translation_domain (GladeProject *project); void glade_project_set_css_provider_path (GladeProject *project, const gchar *path); const gchar *glade_project_get_css_provider_path (GladeProject *project); /* Verifications */ gboolean glade_project_verify (GladeProject *project, gboolean saving, GladeVerifyFlags flags); gchar *glade_project_verify_widget_adaptor(GladeProject *project, GladeWidgetAdaptor *adaptor, GladeSupportMask *mask); void glade_project_verify_property (GladeProperty *property); void glade_project_verify_signal (GladeWidget *widget, GladeSignal *signal); gboolean glade_project_writing_preview (GladeProject *project); /* General selection driven commands */ void glade_project_copy_selection (GladeProject *project); void glade_project_command_cut (GladeProject *project); void glade_project_command_paste (GladeProject *project, GladePlaceholder *placeholder); void glade_project_command_delete (GladeProject *project); G_END_DECLS #endif /* __GLADE_PROJECT_H__ */