bonobo-ui-sync

bonobo-ui-sync

Functions

Types and Values

Object Hierarchy

    GObject
    ╰── BonoboUISync

Description

Functions

BonoboUISyncStateFn ()

void
(*BonoboUISyncStateFn) (BonoboUISync *sync,
                        BonoboUINode *node,
                        BonoboUINode *cmd_node,
                        GtkWidget *widget,
                        GtkWidget *parent);

BonoboUISyncBuildFn ()

GtkWidget *
(*BonoboUISyncBuildFn) (BonoboUISync *sync,
                        BonoboUINode *node,
                        BonoboUINode *cmd_node,
                        int *pos,
                        GtkWidget *parent);

bonobo_ui_sync_construct ()

BonoboUISync *
bonobo_ui_sync_construct (BonoboUISync *sync,
                          BonoboUIEngine *engine,
                          gboolean is_recursive,
                          gboolean has_widgets);

Used to construct a new synchronizer object

Parameters

sync

the synchronizer

 

engine

the associated engine

 

is_recursive

whether it deals with its children recursively

 

has_widgets

whether it has associated widgets.

 

Returns

the new object.


bonobo_ui_sync_is_recursive ()

gboolean
bonobo_ui_sync_is_recursive (BonoboUISync *sync);

Parameters

sync

the synchronizer

 

Returns

whether this deals with its children recursively


bonobo_ui_sync_has_widgets ()

gboolean
bonobo_ui_sync_has_widgets (BonoboUISync *sync);

Parameters

sync

the synchronizer

 

Returns

whether this deals with widgets


bonobo_ui_sync_remove_root ()

void
bonobo_ui_sync_remove_root (BonoboUISync *sync,
                            BonoboUINode *root);

This is called when a 'root' or toplevel node is removed that this synchronizer deals with. eg. in the toolbar case, this might trigger hiding an associated dock item.

Parameters

sync

the synchronizer

 

root

the toplevel node to be removed.

 

bonobo_ui_sync_update_root ()

void
bonobo_ui_sync_update_root (BonoboUISync *sync,
                            BonoboUINode *root);

This flags the fact that a toplevel node has changed and is used primarily by non-recursive handlers, such as the keybinding sync method.

Parameters

sync

the synchronizer

 

root

the toplevel node

 

bonobo_ui_sync_state ()

void
bonobo_ui_sync_state (BonoboUISync *sync,
                      BonoboUINode *node,
                      BonoboUINode *cmd_node,
                      GtkWidget *widget,
                      GtkWidget *parent);

This method is used to synchronize the state of a node with that of a widget , by ensuring the pertainant attributes are reflected in the widget view.

Parameters

sync

the synchronizer

 

node

the node

 

cmd_node

the associated command node

 

widget

the widget

 

parent

the parent of node

 

bonobo_ui_sync_state_placeholder ()

void
bonobo_ui_sync_state_placeholder (BonoboUISync *sync,
                                  BonoboUINode *node,
                                  BonoboUINode *cmd_node,
                                  GtkWidget *widget,
                                  GtkWidget *parent);

This synchronizes the state of a placeholder, there is a default implementation for this method.

Parameters

sync

the synchronizer

 

node

the node

 

cmd_node

the associated command node

 

widget

the widget

 

parent

the parent of node

 

bonobo_ui_sync_build ()

GtkWidget *
bonobo_ui_sync_build (BonoboUISync *sync,
                      BonoboUINode *node,
                      BonoboUINode *cmd_node,
                      int *pos,
                      GtkWidget *parent);

This function causes a child widget to be build that matches node 's attributes. This should then be inserted by into parent 's associated widget at position pos in the container.

Parameters

sync

the synchronizer

 

node

the node

 

cmd_node

the associated command node

 

pos

the position in the parent container to insert at

 

parent

the parent of node

 

Returns

the freshly built widget.


bonobo_ui_sync_build_placeholder ()

GtkWidget *
bonobo_ui_sync_build_placeholder (BonoboUISync *sync,
                                  BonoboUINode *node,
                                  BonoboUINode *cmd_node,
                                  int *pos,
                                  GtkWidget *parent);

As for bonobo_ui_sync_build but for placeholders

Parameters

sync

the synchronizer

 

node

the node

 

cmd_node

the associated command node

 

pos

position in the parent to insert the built widget

 

parent

the parent of node

 

Returns

the freshly built widget.


bonobo_ui_sync_ignore_widget ()

gboolean
bonobo_ui_sync_ignore_widget (BonoboUISync *sync,
                              GtkWidget *widget);

Parameters

sync

the synchronizer

 

widget

the widget

 

Returns

TRUE if this widget should be ignored in a container this is the case for eg. menu tearoffs items, and toolbar popout items.


bonobo_ui_sync_get_widgets ()

GList *
bonobo_ui_sync_get_widgets (BonoboUISync *sync,
                            BonoboUINode *node);

This method is used to obtain a sensibly ordered list of child widgets of the container associated with node . Essentialy this does something like gtk_container_children but preserving the visible order of the widgets in the list.

Parameters

sync

the synchronizer

 

node

the node

 

Returns

An ordered list of child widgets of node


bonobo_ui_sync_stamp_root ()

void
bonobo_ui_sync_stamp_root (BonoboUISync *sync);

This asks the synchronizer to stamp all its associated root widget containers into the XML tree.

Parameters

sync

the synchronizer

 

bonobo_ui_sync_can_handle ()

gboolean
bonobo_ui_sync_can_handle (BonoboUISync *sync,
                           BonoboUINode *node);

This is used to determine which, of multiple synchronizers can be used to deal with a specific node type. Each synchronizer deals with different types of node.

Parameters

sync

the synchronizer

 

node

the node

 

Returns

TRUE if the synchronizer can deal with this node type


bonobo_ui_sync_get_attached ()

GtkWidget *
bonobo_ui_sync_get_attached (BonoboUISync *sync,
                             GtkWidget *widget,
                             BonoboUINode *node);

This is used to get an 'attached' widget - some widgets have associated widgets that are coupled in strange ways - eg. GtkMenuItem <-> GtkMenuShell It is neccessary to store the GtkContainer item of these couples in the XML tree, since then we can do things more genericaly and cleanly.

Parameters

sync

the synchronizer

 

widget

the widget

 

node

the node

 

Returns

an associated widget or NULL if none exists.


bonobo_ui_sync_state_update ()

void
bonobo_ui_sync_state_update (BonoboUISync *sync,
                             GtkWidget *widget,
                             const char *new_state);

This is used to synchronize state with a stateful widget, eg. when a "state" attribute is set, this is not reflected in the normal 'state-sync' process, but occurs later with a set of state_updates to avoid re-enterancy problems.

Parameters

sync

the synchronizer

 

widget

the widget

 

new_state

the new state

 

bonobo_ui_sync_do_show_hide ()

gboolean
bonobo_ui_sync_do_show_hide (BonoboUISync *sync,
                             BonoboUINode *node,
                             BonoboUINode *cmd_node,
                             GtkWidget *widget);

This is a helper function that applies the hidden attribute from either the node or fallback to the cmd_node to the widget .

Parameters

sync

the synchronizer

 

node

the node

 

cmd_node

the associated command node

 

widget

the widget

 

Returns

TRUE if the widget's hidden / shown state changed, this is needed to work around some nasty dock sizing bugs.


bonobo_ui_sync_wrap_widget ()

GtkWidget *
bonobo_ui_sync_wrap_widget (BonoboUISync *sync,
                            GtkWidget *custom_widget);

bonobo_ui_sync_keys_get_type ()

GType
bonobo_ui_sync_keys_get_type (void);

bonobo_ui_sync_menu_get_type ()

GType
bonobo_ui_sync_menu_get_type (void);

bonobo_ui_sync_status_get_type ()

GType
bonobo_ui_sync_status_get_type (void);

bonobo_ui_sync_toolbar_get_type ()

GType
bonobo_ui_sync_toolbar_get_type (void);

Types and Values

struct BonoboUISync

struct BonoboUISync;

BonoboUISyncPrivate

typedef struct _BonoboUISyncPrivate BonoboUISyncPrivate;

BonoboUISyncClass

typedef struct {
	GObjectClass parent_class;

	BonoboUISyncStateFn sync_state;
	BonoboUISyncStateFn sync_state_placeholder;
	BonoboUISyncBuildFn build;
	BonoboUISyncBuildFn build_placeholder;

	void          (*update_root)     (BonoboUISync     *sync,
					  BonoboUINode     *root);

	void          (*remove_root)     (BonoboUISync     *sync,
					  BonoboUINode     *root);

	GList        *(*get_widgets)     (BonoboUISync     *sync,
					  BonoboUINode     *node);

	void          (*state_update)    (BonoboUISync     *sync,
					  GtkWidget        *widget,
					  const char       *new_state);

	gboolean      (*ignore_widget)   (BonoboUISync     *sync,
					  GtkWidget        *widget);

	gboolean      (*can_handle)      (BonoboUISync     *sync,
					  BonoboUINode     *node);

        void          (*stamp_root)      (BonoboUISync     *sync);

	GtkWidget    *(*get_attached)    (BonoboUISync     *sync,
					  GtkWidget        *widget,
					  BonoboUINode     *node);

	GtkWidget    *(*wrap_widget)     (BonoboUISync     *sync,
					  GtkWidget        *custom_widget);
} BonoboUISyncClass;