GladeProject

GladeProject — The Glade document hub and Load/Save interface.

Synopsis

                    GladeProject;
enum                GladeProjectFormat;
GladeProject *      glade_project_new                   (void);
GladeProjectFormat  glade_project_get_format            (GladeProject *project);
void                glade_project_set_format            (GladeProject *project,
                                                         GladeProjectFormat format);
gboolean            glade_project_load_from_file        (GladeProject *project,
                                                         const gchar *path);
GladeProject *      glade_project_load                  (const gchar *path);
gboolean            glade_project_save                  (GladeProject *project,
                                                         const gchar *path,
                                                         GError **error);
const gchar *       glade_project_get_path              (GladeProject *project);
gchar *             glade_project_get_name              (GladeProject *project);
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);
void                glade_project_reset_path            (GladeProject *project);
gboolean            glade_project_get_readonly          (GladeProject *project);
const GList *       glade_project_get_objects           (GladeProject *project);
void                glade_project_add_object            (GladeProject *project,
                                                         GladeProject *old_project,
                                                         GObject *object);
void                glade_project_remove_object         (GladeProject *project,
                                                         GObject *object);
gboolean            glade_project_has_object            (GladeProject *project,
                                                         GObject *object);
GladeWidget *       glade_project_get_widget_by_name    (GladeProject *project,
                                                         GladeWidget *ancestor,
                                                         const gchar *name);
gchar *             glade_project_new_widget_name       (GladeProject *project,
                                                         GladeWidget *widget,
                                                         const gchar *base_name);
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);
GList *             glade_project_selection_get         (GladeProject *project);
gboolean            glade_project_get_has_selection     (GladeProject *project);
gchar *             glade_project_resource_fullpath     (GladeProject *project,
                                                         const gchar *resource);
gboolean            glade_project_is_loading            (GladeProject *project);
time_t              glade_project_get_file_mtime        (GladeProject *project);
gboolean            glade_project_get_modified          (GladeProject *project);

Object Hierarchy

  GObject
   +----GladeProject

Implemented Interfaces

GladeProject implements GtkTreeModel.

Properties

  "format"                   gint                  : Read
  "has-selection"            gboolean              : Read
  "modified"                 gboolean              : Read
  "path"                     gchar*                : Read
  "previewable"              gboolean              : Read
  "read-only"                gboolean              : Read

Signals

  "add-widget"                                     : Run Last
  "changed"                                        : Run First
  "close"                                          : Run Last
  "convert-finished"                               : Run First
  "load-progress"                                  : Run First
  "parse-began"                                    : Run First
  "parse-finished"                                 : Run First
  "remove-widget"                                  : Run Last
  "selection-changed"                              : Run Last
  "targets-changed"                                : Run First
  "widget-name-changed"                            : Run Last

Description

This object owns all project objects and is responsable for loading and saving the glade document, you can monitor the project state via this object and its signals.

Details

GladeProject

typedef struct _GladeProject GladeProject;

enum GladeProjectFormat

typedef enum
{
	GLADE_PROJECT_FORMAT_LIBGLADE,
	GLADE_PROJECT_FORMAT_GTKBUILDER
} GladeProjectFormat;

glade_project_new ()

GladeProject *      glade_project_new                   (void);

Creates a new GladeProject.

Returns :

a new GladeProject

glade_project_get_format ()

GladeProjectFormat  glade_project_get_format            (GladeProject *project);

glade_project_set_format ()

void                glade_project_set_format            (GladeProject *project,
                                                         GladeProjectFormat format);

Sets project format to format, used internally to set the actual format state; note that conversions should be done through the glade-command api.

project :

a GladeProject

format :

the GladeProjectFormat

glade_project_load_from_file ()

gboolean            glade_project_load_from_file        (GladeProject *project,
                                                         const gchar *path);

glade_project_load ()

GladeProject *      glade_project_load                  (const gchar *path);

Opens a project at the given path.

Returns :

a new GladeProject for the opened project on success, NULL on failure

glade_project_save ()

gboolean            glade_project_save                  (GladeProject *project,
                                                         const gchar *path,
                                                         GError **error);

Saves project to the given path.

project :

a GladeProject

path :

location to save glade file

error :

an error from the G_FILE_ERROR domain.

Returns :

TRUE on success, FALSE on failure

glade_project_get_path ()

const gchar *       glade_project_get_path              (GladeProject *project);

glade_project_get_name ()

gchar *             glade_project_get_name              (GladeProject *project);

glade_project_undo ()

void                glade_project_undo                  (GladeProject *project);

Redoes a GladeCommand in this project.

project :

a GladeProject

glade_project_redo ()

void                glade_project_redo                  (GladeProject *project);

glade_project_next_undo_item ()

GladeCommand *      glade_project_next_undo_item        (GladeProject *project);

Gets the next undo item on project's command stack.

project :

a GladeProject

Returns :

the GladeCommand

glade_project_next_redo_item ()

GladeCommand *      glade_project_next_redo_item        (GladeProject *project);

Gets the next redo item on project's command stack.

project :

a GladeProject

Returns :

the GladeCommand

glade_project_push_undo ()

void                glade_project_push_undo             (GladeProject *project,
                                                         GladeCommand *cmd);

Pushes a newly created GladeCommand onto projects stack.

project :

a GladeProject

cmd :

the GladeCommand

glade_project_undo_items ()

GtkWidget *         glade_project_undo_items            (GladeProject *project);

Creates a menu of the undo items in the project stack

project :

A GladeProject

Returns :

A newly created menu

glade_project_redo_items ()

GtkWidget *         glade_project_redo_items            (GladeProject *project);

Creates a menu of the undo items in the project stack

project :

A GladeProject

Returns :

A newly created menu

glade_project_reset_path ()

void                glade_project_reset_path            (GladeProject *project);

glade_project_get_readonly ()

gboolean            glade_project_get_readonly          (GladeProject *project);

Gets whether the project is read only or not

project :

a GladeProject

Returns :

TRUE if project is read only

glade_project_get_objects ()

const GList *       glade_project_get_objects           (GladeProject *project);

glade_project_add_object ()

void                glade_project_add_object            (GladeProject *project,
                                                         GladeProject *old_project,
                                                         GObject *object);

Adds an object to the project.

project :

the GladeProject the widget is added to

old_project :

the GladeProject the widget was previously in (or NULL for the clipboard)

object :

the GObject to add

glade_project_remove_object ()

void                glade_project_remove_object         (GladeProject *project,
                                                         GObject *object);

Removes object from project.

Note that when removing the GObject from the project we don't change ->project in the associated GladeWidget; this way UNDO can work.

project :

a GladeProject

object :

the GObject to remove

glade_project_has_object ()

gboolean            glade_project_has_object            (GladeProject *project,
                                                         GObject *object);

project :

the GladeProject the widget is added to

object :

the GObject to search

Returns :

whether this object is in this project.

glade_project_get_widget_by_name ()

GladeWidget *       glade_project_get_widget_by_name    (GladeProject *project,
                                                         GladeWidget *ancestor,
                                                         const gchar *name);

Searches under ancestor in project looking for a GladeWidget named name.

project :

a GladeProject

ancestor :

The toplevel project object to search under

name :

The user visible name of the widget we are looking for

Returns :

a pointer to the widget, NULL if the widget does not exist

glade_project_new_widget_name ()

gchar *             glade_project_new_widget_name       (GladeProject *project,
                                                         GladeWidget *widget,
                                                         const gchar *base_name);

Creates a new name for a widget that doesn't collide with any of the names already in project. This name will start with base_name.

project :

a GladeProject

widget :

the GladeWidget intended to recieve a new name

base_name :

base name of the widget to create

Returns :

a string containing the new name, NULL if there is not enough memory for this string

glade_project_is_selected ()

gboolean            glade_project_is_selected           (GladeProject *project,
                                                         GObject *object);

project :

a GladeProject

object :

a GObject

Returns :

whether object is in project selection

glade_project_selection_set ()

void                glade_project_selection_set         (GladeProject *project,
                                                         GObject *object,
                                                         gboolean emit_signal);

Set the selection in project to object

If emit_signal is TRUE, calls glade_project_selection_changed().

project :

a GladeProject

object :

a GObject in project

emit_signal :

whether or not to emit a signal indicating a selection change

glade_project_selection_add ()

void                glade_project_selection_add         (GladeProject *project,
                                                         GObject *object,
                                                         gboolean emit_signal);

Adds object to the selection chain of project

If emit_signal is TRUE, calls glade_project_selection_changed().

project :

a GladeProject

object :

a GObject in project

emit_signal :

whether or not to emit a signal indicating a selection change

glade_project_selection_remove ()

void                glade_project_selection_remove      (GladeProject *project,
                                                         GObject *object,
                                                         gboolean emit_signal);

Removes object from the selection chain of project

If emit_signal is TRUE, calls glade_project_selection_changed().

project :

a GladeProject

object :

a GObject in project

emit_signal :

whether or not to emit a signal indicating a selection change

glade_project_selection_clear ()

void                glade_project_selection_clear       (GladeProject *project,
                                                         gboolean emit_signal);

Clears project's selection chain

If emit_signal is TRUE, calls glade_project_selection_changed().

project :

a GladeProject

emit_signal :

whether or not to emit a signal indication a selection change

glade_project_selection_changed ()

void                glade_project_selection_changed     (GladeProject *project);

Causes project to emit a "selection_changed" signal.

project :

a GladeProject

glade_project_selection_get ()

GList *             glade_project_selection_get         (GladeProject *project);

project :

a GladeProject

Returns :

a GList containing the GtkWidget items currently selected in project

glade_project_get_has_selection ()

gboolean            glade_project_get_has_selection     (GladeProject *project);

project :

a GladeProject

Returns :

whether project currently has a selection

glade_project_resource_fullpath ()

gchar *             glade_project_resource_fullpath     (GladeProject *project,
                                                         const gchar *resource);

Project resource strings may be relative or fullpaths, but glade always expects a copy in the glade file directory, this function is used to make a local path to the file.

project :

The GladeProject.

resource :

The resource basename

Returns :

A newly allocated string holding the local path the the project resource.

glade_project_is_loading ()

gboolean            glade_project_is_loading            (GladeProject *project);

project :

A GladeProject

Returns :

Whether the project is being loaded or not

glade_project_get_file_mtime ()

time_t              glade_project_get_file_mtime        (GladeProject *project);

glade_project_get_modified ()

gboolean            glade_project_get_modified          (GladeProject *project);

Get's whether the project has been modified since it was last saved.

project :

a GladeProject

Returns :

TRUE if the project has been modified since it was last saved

Property Details

The "format" property

  "format"                   gint                  : Read

The project file format.

Allowed values: [0,1]

Default value: 1


The "has-selection" property

  "has-selection"            gboolean              : Read

Whether project has a selection.

Default value: FALSE


The "modified" property

  "modified"                 gboolean              : Read

Whether project has been modified since it was last saved.

Default value: FALSE


The "path" property

  "path"                     gchar*                : Read

The filesystem path of the project.

Default value: NULL


The "previewable" property

  "previewable"              gboolean              : Read

Wether the project can be previewed.

Default value: FALSE


The "read-only" property

  "read-only"                gboolean              : Read

Whether project is read-only.

Default value: FALSE

Signal Details

The "add-widget" signal

void                user_function                      (GladeProject *gladeproject,
                                                        GladeWidget  *arg1,
                                                        gpointer      user_data)         : Run Last

Emitted when a widget is added to a project.

gladeproject :

the GladeProject which received the signal.

arg1 :

the GladeWidget that was added to gladeproject.

user_data :

user data set when the signal handler was connected.

The "changed" signal

void                user_function                      (GladeProject *gladeproject,
                                                        GladeCommand *arg1,
                                                        gboolean      arg2,
                                                        gpointer      user_data)         : Run First

Emitted when a gladeproject's state changes via a GladeCommand.

gladeproject :

the GladeProject which received the signal.

arg1 :

the GladeCommand that was executed

arg2 :

whether the command was executed or undone.

user_data :

user data set when the signal handler was connected.

The "close" signal

void                user_function                      (GladeProject *gladeproject,
                                                        gpointer      user_data)         : Run Last

Emitted when a project is closing (a good time to clean up any associated resources).

gladeproject :

the GladeProject which received the signal.

user_data :

user data set when the signal handler was connected.

The "convert-finished" signal

void                user_function                      (GladeProject *gladeproject,
                                                        gpointer      user_data)         : Run First

Emitted when gladeproject format conversion has finished.

NOTE: Some properties are internally handled differently when the project is in a said format, this signal is fired after the new format is in effect to allow the backend access to both before and after.

gladeproject :

the GladeProject which received the signal.

user_data :

user data set when the signal handler was connected.

The "load-progress" signal

void                user_function                      (GladeProject *gladeproject,
                                                        gint          objects_total,
                                                        gint          objects_loaded,
                                                        gpointer      user_data)           : Run First

Emitted while project is loading.

gladeproject :

the GladeProject which received the signal.

objects_total :

the total amount of objects to load

objects_loaded :

the current amount of loaded objects

user_data :

user data set when the signal handler was connected.

The "parse-began" signal

void                user_function                      (GladeProject *gladeproject,
                                                        gpointer      user_data)         : Run First

Emitted when gladeproject parsing starts.

gladeproject :

the GladeProject which received the signal.

user_data :

user data set when the signal handler was connected.

The "parse-finished" signal

void                user_function                      (GladeProject *gladeproject,
                                                        gpointer      user_data)         : Run First

Emitted when gladeproject parsing has finished.

gladeproject :

the GladeProject which received the signal.

user_data :

user data set when the signal handler was connected.

The "remove-widget" signal

void                user_function                      (GladeProject *gladeproject,
                                                        GladeWidget  *arg1,
                                                        gpointer      user_data)         : Run Last

Emitted when a widget is removed from a project.

gladeproject :

the GladeProject which received the signal.

arg1 :

the GladeWidget that was removed from gladeproject.

user_data :

user data set when the signal handler was connected.

The "selection-changed" signal

void                user_function                      (GladeProject *gladeproject,
                                                        gpointer      user_data)         : Run Last

Emitted when gladeproject selection list changes.

gladeproject :

the GladeProject which received the signal.

user_data :

user data set when the signal handler was connected.

The "targets-changed" signal

void                user_function                      (GladeProject *gladeproject,
                                                        gpointer      user_data)         : Run First

Emitted when gladeproject target versions change.

gladeproject :

the GladeProject which received the signal.

user_data :

user data set when the signal handler was connected.

The "widget-name-changed" signal

void                user_function                      (GladeProject *gladeproject,
                                                        GladeWidget  *arg1,
                                                        gpointer      user_data)         : Run Last

Emitted when gwidget's name changes.

gladeproject :

the GladeProject which received the signal.

arg1 :

the GladeWidget who's name changed.

user_data :

user data set when the signal handler was connected.