GladeProject

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

Synopsis

                    GladeProjectPrivate;
struct              GladeProject;
GladeProject*       glade_project_new                   (void);
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,
                                                         const char *name);
char*               glade_project_new_widget_name       (GladeProject *project,
                                                         const char *base_name);
void                glade_project_widget_name_changed   (GladeProject *project,
                                                         GladeWidget *widget,
                                                         const char *old_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);
void                glade_project_set_accel_group       (GladeProject *project,
                                                         GtkAccelGroup *accel_group);
void                glade_project_set_resource          (GladeProject *project,
                                                         GladeProperty *property,
                                                         const gchar *resource);
GList*              glade_project_list_resources        (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);
guint               glade_project_get_instance_count    (GladeProject *project);
void                glade_project_set_instance_count    (GladeProject *project,
                                                         guint instance_count);
gboolean            glade_project_get_modified          (GladeProject *project);

Object Hierarchy

  GObject
   +----GladeProject

Properties

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

Signals

  "add-widget"                                     : Run Last
  "changed"                                        : Run First
  "close"                                          : Run Last
  "parse-finished"                                 : Run First
  "remove-widget"                                  : Run Last
  "resource-added"                                 : Run Last
  "resource-removed"                               : Run Last
  "selection-changed"                              : Run Last
  "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

GladeProjectPrivate

typedef struct _GladeProjectPrivate GladeProjectPrivate;


struct GladeProject

struct GladeProject;


glade_project_new ()

GladeProject*       glade_project_new                   (void);

Creates a new GladeProject.

Returns :

a new GladeProject

glade_project_load_from_file ()

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

project :

path :

Returns :


glade_project_load ()

GladeProject*       glade_project_load                  (const gchar *path);

Opens a project at the given path.

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);

project :

Returns :


glade_project_get_name ()

gchar*              glade_project_get_name              (GladeProject *project);

project :

Returns :


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);

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);

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);

project :

Returns :


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,
                                                         const char *name);

Searches through project looking for a GladeWidget named name.

project :

a GladeProject

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 ()

char*               glade_project_new_widget_name       (GladeProject *project,
                                                         const char *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

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_widget_name_changed ()

void                glade_project_widget_name_changed   (GladeProject *project,
                                                         GladeWidget *widget,
                                                         const char *old_name);

TODO: write me

project :

a GladeProject

widget :

a GladeWidget

old_name :


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_set_accel_group ()

void                glade_project_set_accel_group       (GladeProject *project,
                                                         GtkAccelGroup *accel_group);

Set accel_group to every top level widget in project.

project :

A GladeProject

accel_group :

The GtkAccelGroup

glade_project_set_resource ()

void                glade_project_set_resource          (GladeProject *project,
                                                         GladeProperty *property,
                                                         const gchar *resource);

Adds/Modifies/Removes a resource from a project; any project resources will be copied when using "Save As...", when moving widgets across projects and will be copied into the project's directory when selected.

project :

A GladeProject

property :

The GladeProperty this resource is required by

resource :

The resource file basename to be found in the same directory as the glade file.

glade_project_list_resources ()

GList*              glade_project_list_resources        (GladeProject *project);

project :

A GladeProject

Returns :

A newly allocated GList of file basenames of resources in this project, note that the strings are not allocated and are unsafe to use once the projects state changes. The returned list should be freed with g_list_free.

glade_project_resource_fullpath ()

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

project :

The GladeProject.

resource :

The resource basename

Returns :

A newly allocated string holding the full 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);

project :

Returns :


glade_project_get_instance_count ()

guint               glade_project_get_instance_count    (GladeProject *project);

project :

Returns :


glade_project_set_instance_count ()

void                glade_project_set_instance_count    (GladeProject *project,
                                                         guint instance_count);

project :

instance_count :


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 "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 "read-only" property

  "read-only"                gboolean              : Read

Whether project is read only or not.

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 "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 "resource-added" signal

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

Emitted when a resource file required by a GladeProperty is added to gladeproject

gladeproject :

the GladeProject which received the signal.

arg1 :

the file's basename (in the project path).

user_data :

user data set when the signal handler was connected.

The "resource-removed" signal

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

Emitted when a resource file is removed from gladeproject

gladeproject :

the GladeProject which received the signal.

arg1 :

the file's basename

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 "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.