<HTML ><HEAD ><TITLE >BonoboUISync</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.64 "><LINK REL="HOME" TITLE="Bonobo API Reference Manual" HREF="book1.html"><LINK REL="UP" TITLE="Bonobo UI" HREF="bonobo-ui.html"><LINK REL="PREVIOUS" TITLE="BonoboUIEngine" HREF="bonobo-bonobo-ui-engine.html"><LINK REL="NEXT" TITLE="Writing Monikers" HREF="bonobo-moniker-handlers.html"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE WIDTH="100%" BORDER="0" BGCOLOR="#000000" CELLPADDING="1" CELLSPACING="0" ><TR ><TH COLSPAN="4" ALIGN="center" ><FONT COLOR="#FFFFFF" SIZE="5" >Bonobo API Reference Manual</FONT ></TH ></TR ><TR ><TD WIDTH="25%" BGCOLOR="#C00000" ALIGN="left" ><A HREF="bonobo-bonobo-ui-engine.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><<< Previous Page</B ></FONT ></A ></TD ><TD WIDTH="25%" BGCOLOR="#0000C0" ALIGN="center" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><A HREF="book1.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Home</B ></FONT ></A ></B ></FONT ></TD ><TD WIDTH="25%" BGCOLOR="#00C000" ALIGN="center" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><A HREF="bonobo-ui.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Up</B ></FONT ></A ></B ></FONT ></TD ><TD WIDTH="25%" BGCOLOR="#C00000" ALIGN="right" ><A HREF="bonobo-moniker-handlers.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Next Page >>></B ></FONT ></A ></TD ></TR ></TABLE ></DIV ><H1 ><A NAME="BONOBO-BONOBO-UI-SYNC" >BonoboUISync</A ></H1 ><DIV CLASS="REFNAMEDIV" ><A NAME="AEN16649" ></A ><H2 >Name</H2 >BonoboUISync -- A Synchronizer object to keep a widget tree in sync with an XML tree.</DIV ><DIV CLASS="REFSYNOPSISDIV" ><A NAME="AEN16652" ></A ><H2 >Synopsis</H2 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="SYNOPSIS" > void (<A HREF="bonobo-bonobo-ui-sync.html#BONOBOUISYNCSTATEFN" >*BonoboUISyncStateFn</A >) (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *node, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *cmd_node, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *widget, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *parent); <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK >* (<A HREF="bonobo-bonobo-ui-sync.html#BONOBOUISYNCBUILDFN" >*BonoboUISyncBuildFn</A >) (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *node, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *cmd_node, int *pos, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *parent); <GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK >* <A HREF="bonobo-bonobo-ui-sync.html#BONOBO-UI-SYNC-CONSTRUCT" >bonobo_ui_sync_construct</A > (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <GTKDOCLINK HREF="BONOBOUIENGINE" >BonoboUIEngine</GTKDOCLINK > *engine, <GTKDOCLINK HREF="GBOOLEAN" >gboolean</GTKDOCLINK > is_recursive, <GTKDOCLINK HREF="GBOOLEAN" >gboolean</GTKDOCLINK > has_widgets); <GTKDOCLINK HREF="GBOOLEAN" >gboolean</GTKDOCLINK > <A HREF="bonobo-bonobo-ui-sync.html#BONOBO-UI-SYNC-IS-RECURSIVE" >bonobo_ui_sync_is_recursive</A > (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync); <GTKDOCLINK HREF="GBOOLEAN" >gboolean</GTKDOCLINK > <A HREF="bonobo-bonobo-ui-sync.html#BONOBO-UI-SYNC-HAS-WIDGETS" >bonobo_ui_sync_has_widgets</A > (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync); void <A HREF="bonobo-bonobo-ui-sync.html#BONOBO-UI-SYNC-REMOVE-ROOT" >bonobo_ui_sync_remove_root</A > (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *root); void <A HREF="bonobo-bonobo-ui-sync.html#BONOBO-UI-SYNC-UPDATE-ROOT" >bonobo_ui_sync_update_root</A > (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *root); void <A HREF="bonobo-bonobo-ui-sync.html#BONOBO-UI-SYNC-STATE" >bonobo_ui_sync_state</A > (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *node, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *cmd_node, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *widget, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *parent); void <A HREF="bonobo-bonobo-ui-sync.html#BONOBO-UI-SYNC-STATE-PLACEHOLDER" >bonobo_ui_sync_state_placeholder</A > (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *node, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *cmd_node, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *widget, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *parent); <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK >* <A HREF="bonobo-bonobo-ui-sync.html#BONOBO-UI-SYNC-BUILD" >bonobo_ui_sync_build</A > (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *node, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *cmd_node, int *pos, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *parent); <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK >* <A HREF="bonobo-bonobo-ui-sync.html#BONOBO-UI-SYNC-BUILD-PLACEHOLDER" >bonobo_ui_sync_build_placeholder</A > (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *node, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *cmd_node, int *pos, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *parent); <GTKDOCLINK HREF="GBOOLEAN" >gboolean</GTKDOCLINK > <A HREF="bonobo-bonobo-ui-sync.html#BONOBO-UI-SYNC-IGNORE-WIDGET" >bonobo_ui_sync_ignore_widget</A > (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *widget); <GTKDOCLINK HREF="GLIST" >GList</GTKDOCLINK >* <A HREF="bonobo-bonobo-ui-sync.html#BONOBO-UI-SYNC-GET-WIDGETS" >bonobo_ui_sync_get_widgets</A > (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *node); void <A HREF="bonobo-bonobo-ui-sync.html#BONOBO-UI-SYNC-STAMP-ROOT" >bonobo_ui_sync_stamp_root</A > (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync); <GTKDOCLINK HREF="GBOOLEAN" >gboolean</GTKDOCLINK > <A HREF="bonobo-bonobo-ui-sync.html#BONOBO-UI-SYNC-CAN-HANDLE" >bonobo_ui_sync_can_handle</A > (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *node); <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK >* <A HREF="bonobo-bonobo-ui-sync.html#BONOBO-UI-SYNC-GET-ATTACHED" >bonobo_ui_sync_get_attached</A > (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *widget, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *node); void <A HREF="bonobo-bonobo-ui-sync.html#BONOBO-UI-SYNC-STATE-UPDATE" >bonobo_ui_sync_state_update</A > (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *widget, const char *new_state); <GTKDOCLINK HREF="GBOOLEAN" >gboolean</GTKDOCLINK > <A HREF="bonobo-bonobo-ui-sync.html#BONOBO-UI-SYNC-DO-SHOW-HIDE" >bonobo_ui_sync_do_show_hide</A > (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *node, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *cmd_node, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *widget); </PRE ></TD ></TR ></TABLE ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN16737" ></A ><H2 >Description</H2 ><P >The BonoboUISynchronizer is used internaly by the <GTKDOCLINK HREF="BONOBOUIENGINE" >BonoboUIEngine</GTKDOCLINK >. Writing one is a very advanced topic, and should only be attempted by carefuly study of the code. No normal user should need to write his own synchronizer.</P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN16741" ></A ><H2 >Details</H2 ><DIV CLASS="REFSECT2" ><A NAME="AEN16743" ></A ><H3 ><A NAME="BONOBOUISYNCSTATEFN" ></A >BonoboUISyncStateFn ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void (*BonoboUISyncStateFn) (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *node, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *cmd_node, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *widget, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *parent);</PRE ></TD ></TR ></TABLE ><P ></P ><P ></P ><TABLE CLASS="VARIABLELIST" BORDER="0" CELLSPACING="0" CELLPADDING="4" WIDTH="100%" BGCOLOR="#FFD0D0" ><TBODY ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16754"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >sync</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P ></P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16759"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >node</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P ></P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16764"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >cmd_node</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P ></P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16769"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >widget</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P ></P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16774"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >parent</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > </P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN16779" ></A ><H3 ><A NAME="BONOBOUISYNCBUILDFN" ></A >BonoboUISyncBuildFn ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK >* (*BonoboUISyncBuildFn) (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *node, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *cmd_node, int *pos, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *parent);</PRE ></TD ></TR ></TABLE ><P ></P ><P ></P ><TABLE CLASS="VARIABLELIST" BORDER="0" CELLSPACING="0" CELLPADDING="4" WIDTH="100%" BGCOLOR="#FFD0D0" ><TBODY ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16790"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >sync</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P ></P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16795"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >node</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P ></P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16800"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >cmd_node</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P ></P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16805"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >pos</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P ></P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16810"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >parent</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P ></P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16815"><SPAN STYLE="white-space: nowrap" ><I CLASS="EMPHASIS" >Returns</I > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > </P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN16820" ></A ><H3 ><A NAME="BONOBO-UI-SYNC-CONSTRUCT" ></A >bonobo_ui_sync_construct ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK >* bonobo_ui_sync_construct (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <GTKDOCLINK HREF="BONOBOUIENGINE" >BonoboUIEngine</GTKDOCLINK > *engine, <GTKDOCLINK HREF="GBOOLEAN" >gboolean</GTKDOCLINK > is_recursive, <GTKDOCLINK HREF="GBOOLEAN" >gboolean</GTKDOCLINK > has_widgets);</PRE ></TD ></TR ></TABLE ><P >Used to construct a new synchronizer object</P ><P ></P ><P ></P ><TABLE CLASS="VARIABLELIST" BORDER="0" CELLSPACING="0" CELLPADDING="4" WIDTH="100%" BGCOLOR="#FFD0D0" ><TBODY ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16832"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >sync</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the synchronizer</P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16837"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >engine</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the associated engine</P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16842"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >is_recursive</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > whether it deals with its children recursively</P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16847"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >has_widgets</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > whether it has associated widgets.</P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16852"><SPAN STYLE="white-space: nowrap" ><I CLASS="EMPHASIS" >Returns</I > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the new object.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN16857" ></A ><H3 ><A NAME="BONOBO-UI-SYNC-IS-RECURSIVE" ></A >bonobo_ui_sync_is_recursive ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GBOOLEAN" >gboolean</GTKDOCLINK > bonobo_ui_sync_is_recursive (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync);</PRE ></TD ></TR ></TABLE ><P ></P ><P ></P ><P ></P ><TABLE CLASS="VARIABLELIST" BORDER="0" CELLSPACING="0" CELLPADDING="4" WIDTH="100%" BGCOLOR="#FFD0D0" ><TBODY ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16866"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >sync</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the synchronizer</P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16871"><SPAN STYLE="white-space: nowrap" ><I CLASS="EMPHASIS" >Returns</I > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > whether this deals with its children recursively</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN16876" ></A ><H3 ><A NAME="BONOBO-UI-SYNC-HAS-WIDGETS" ></A >bonobo_ui_sync_has_widgets ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GBOOLEAN" >gboolean</GTKDOCLINK > bonobo_ui_sync_has_widgets (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync);</PRE ></TD ></TR ></TABLE ><P ></P ><P ></P ><P ></P ><TABLE CLASS="VARIABLELIST" BORDER="0" CELLSPACING="0" CELLPADDING="4" WIDTH="100%" BGCOLOR="#FFD0D0" ><TBODY ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16885"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >sync</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the synchronizer </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16890"><SPAN STYLE="white-space: nowrap" ><I CLASS="EMPHASIS" >Returns</I > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > whether this deals with widgets</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN16895" ></A ><H3 ><A NAME="BONOBO-UI-SYNC-REMOVE-ROOT" ></A >bonobo_ui_sync_remove_root ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void bonobo_ui_sync_remove_root (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *root);</PRE ></TD ></TR ></TABLE ><P >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.</P ><P ></P ><P ></P ><TABLE CLASS="VARIABLELIST" BORDER="0" CELLSPACING="0" CELLPADDING="4" WIDTH="100%" BGCOLOR="#FFD0D0" ><TBODY ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16904"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >sync</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the synchronizer </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16909"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >root</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the toplevel node to be removed.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN16914" ></A ><H3 ><A NAME="BONOBO-UI-SYNC-UPDATE-ROOT" ></A >bonobo_ui_sync_update_root ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void bonobo_ui_sync_update_root (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *root);</PRE ></TD ></TR ></TABLE ><P >This flags the fact that a toplevel node has changed and is used primarily by non-recursive handlers, such as the keybinding sync method.</P ><P ></P ><P ></P ><TABLE CLASS="VARIABLELIST" BORDER="0" CELLSPACING="0" CELLPADDING="4" WIDTH="100%" BGCOLOR="#FFD0D0" ><TBODY ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16923"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >sync</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the synchronizer </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16928"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >root</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the toplevel node</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN16933" ></A ><H3 ><A NAME="BONOBO-UI-SYNC-STATE" ></A >bonobo_ui_sync_state ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void bonobo_ui_sync_state (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *node, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *cmd_node, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *widget, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *parent);</PRE ></TD ></TR ></TABLE ><P >This method is used to synchronize the state of a <TT CLASS="PARAMETER" ><I >node</I ></TT > with that of a <TT CLASS="PARAMETER" ><I >widget</I ></TT >, by ensuring the pertainant attributes are reflected in the widget view.</P ><P ></P ><P ></P ><TABLE CLASS="VARIABLELIST" BORDER="0" CELLSPACING="0" CELLPADDING="4" WIDTH="100%" BGCOLOR="#FFD0D0" ><TBODY ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16947"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >sync</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the synchronizer </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16952"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >node</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the node </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16957"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >cmd_node</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the associated command node </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16962"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >widget</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the widget </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16967"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >parent</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the parent of <TT CLASS="PARAMETER" ><I >node</I ></TT ></P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN16973" ></A ><H3 ><A NAME="BONOBO-UI-SYNC-STATE-PLACEHOLDER" ></A >bonobo_ui_sync_state_placeholder ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void bonobo_ui_sync_state_placeholder (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *node, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *cmd_node, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *widget, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *parent);</PRE ></TD ></TR ></TABLE ><P >This synchronizes the state of a placeholder, there is a default implementation for this method.</P ><P ></P ><P ></P ><TABLE CLASS="VARIABLELIST" BORDER="0" CELLSPACING="0" CELLPADDING="4" WIDTH="100%" BGCOLOR="#FFD0D0" ><TBODY ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16985"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >sync</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the synchronizer </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16990"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >node</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the node </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN16995"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >cmd_node</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the associated command node </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17000"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >widget</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the widget </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17005"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >parent</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the parent of <TT CLASS="PARAMETER" ><I >node</I ></TT ></P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17011" ></A ><H3 ><A NAME="BONOBO-UI-SYNC-BUILD" ></A >bonobo_ui_sync_build ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK >* bonobo_ui_sync_build (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *node, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *cmd_node, int *pos, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *parent);</PRE ></TD ></TR ></TABLE ><P >This function causes a child widget to be build that matches <TT CLASS="PARAMETER" ><I >node</I ></TT >'s attributes. This should then be inserted by into <TT CLASS="PARAMETER" ><I >parent</I ></TT >'s associated widget at position <TT CLASS="PARAMETER" ><I >pos</I ></TT > in the container.</P ><P ></P ><P ></P ><TABLE CLASS="VARIABLELIST" BORDER="0" CELLSPACING="0" CELLPADDING="4" WIDTH="100%" BGCOLOR="#FFD0D0" ><TBODY ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17026"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >sync</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the synchronizer </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17031"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >node</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the node </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17036"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >cmd_node</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the associated command node </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17041"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >pos</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the position in the parent container to insert at</P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17046"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >parent</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the parent of <TT CLASS="PARAMETER" ><I >node</I ></TT > </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17052"><SPAN STYLE="white-space: nowrap" ><I CLASS="EMPHASIS" >Returns</I > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the freshly built widget.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17057" ></A ><H3 ><A NAME="BONOBO-UI-SYNC-BUILD-PLACEHOLDER" ></A >bonobo_ui_sync_build_placeholder ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK >* bonobo_ui_sync_build_placeholder (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *node, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *cmd_node, int *pos, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *parent);</PRE ></TD ></TR ></TABLE ><P >As for <A HREF="bonobo-bonobo-ui-sync.html#BONOBO-UI-SYNC-BUILD" >bonobo_ui_sync_build</A > but for placeholders</P ><P ></P ><P ></P ><TABLE CLASS="VARIABLELIST" BORDER="0" CELLSPACING="0" CELLPADDING="4" WIDTH="100%" BGCOLOR="#FFD0D0" ><TBODY ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17070"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >sync</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the synchronizer </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17075"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >node</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the node </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17080"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >cmd_node</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the associated command node </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17085"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >pos</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > position in the parent to insert the built widget</P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17090"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >parent</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the parent of <TT CLASS="PARAMETER" ><I >node</I ></TT > </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17096"><SPAN STYLE="white-space: nowrap" ><I CLASS="EMPHASIS" >Returns</I > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the freshly built widget.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17101" ></A ><H3 ><A NAME="BONOBO-UI-SYNC-IGNORE-WIDGET" ></A >bonobo_ui_sync_ignore_widget ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GBOOLEAN" >gboolean</GTKDOCLINK > bonobo_ui_sync_ignore_widget (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *widget);</PRE ></TD ></TR ></TABLE ><P ></P ><P ></P ><P ></P ><TABLE CLASS="VARIABLELIST" BORDER="0" CELLSPACING="0" CELLPADDING="4" WIDTH="100%" BGCOLOR="#FFD0D0" ><TBODY ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17111"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >sync</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the synchronizer </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17116"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >widget</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the widget </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17121"><SPAN STYLE="white-space: nowrap" ><I CLASS="EMPHASIS" >Returns</I > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > TRUE if this widget should be ignored in a container this is the case for eg. menu tearoffs items, and toolbar popout items.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17126" ></A ><H3 ><A NAME="BONOBO-UI-SYNC-GET-WIDGETS" ></A >bonobo_ui_sync_get_widgets ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GLIST" >GList</GTKDOCLINK >* bonobo_ui_sync_get_widgets (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *node);</PRE ></TD ></TR ></TABLE ><P >This method is used to obtain a sensibly ordered list of child widgets of the container associated with <TT CLASS="PARAMETER" ><I >node</I ></TT >. Essentialy this does something like gtk_container_children but preserving the visible order of the widgets in the list.</P ><P ></P ><P ></P ><TABLE CLASS="VARIABLELIST" BORDER="0" CELLSPACING="0" CELLPADDING="4" WIDTH="100%" BGCOLOR="#FFD0D0" ><TBODY ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17137"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >sync</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the synchronizer </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17142"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >node</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the node </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17147"><SPAN STYLE="white-space: nowrap" ><I CLASS="EMPHASIS" >Returns</I > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > An ordered list of child widgets of <TT CLASS="PARAMETER" ><I >node</I ></TT ></P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17153" ></A ><H3 ><A NAME="BONOBO-UI-SYNC-STAMP-ROOT" ></A >bonobo_ui_sync_stamp_root ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void bonobo_ui_sync_stamp_root (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync);</PRE ></TD ></TR ></TABLE ><P >This asks the synchronizer to stamp all its associated root widget containers into the XML tree.</P ><P ></P ><P ></P ><TABLE CLASS="VARIABLELIST" BORDER="0" CELLSPACING="0" CELLPADDING="4" WIDTH="100%" BGCOLOR="#FFD0D0" ><TBODY ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17161"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >sync</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the synchronizer </P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17166" ></A ><H3 ><A NAME="BONOBO-UI-SYNC-CAN-HANDLE" ></A >bonobo_ui_sync_can_handle ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GBOOLEAN" >gboolean</GTKDOCLINK > bonobo_ui_sync_can_handle (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *node);</PRE ></TD ></TR ></TABLE ><P >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.</P ><P ></P ><P ></P ><TABLE CLASS="VARIABLELIST" BORDER="0" CELLSPACING="0" CELLPADDING="4" WIDTH="100%" BGCOLOR="#FFD0D0" ><TBODY ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17176"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >sync</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the synchronizer </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17181"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >node</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the node </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17186"><SPAN STYLE="white-space: nowrap" ><I CLASS="EMPHASIS" >Returns</I > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > TRUE if the synchronizer can deal with this node type</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17191" ></A ><H3 ><A NAME="BONOBO-UI-SYNC-GET-ATTACHED" ></A >bonobo_ui_sync_get_attached ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK >* bonobo_ui_sync_get_attached (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *widget, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *node);</PRE ></TD ></TR ></TABLE ><P >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.</P ><P ></P ><P ></P ><TABLE CLASS="VARIABLELIST" BORDER="0" CELLSPACING="0" CELLPADDING="4" WIDTH="100%" BGCOLOR="#FFD0D0" ><TBODY ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17202"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >sync</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the synchronizer </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17207"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >widget</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the widget </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17212"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >node</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the node </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17217"><SPAN STYLE="white-space: nowrap" ><I CLASS="EMPHASIS" >Returns</I > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > an assoicated widget or NULL if none exists.</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17222" ></A ><H3 ><A NAME="BONOBO-UI-SYNC-STATE-UPDATE" ></A >bonobo_ui_sync_state_update ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" >void bonobo_ui_sync_state_update (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *widget, const char *new_state);</PRE ></TD ></TR ></TABLE ><P >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.</P ><P ></P ><P ></P ><TABLE CLASS="VARIABLELIST" BORDER="0" CELLSPACING="0" CELLPADDING="4" WIDTH="100%" BGCOLOR="#FFD0D0" ><TBODY ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17231"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >sync</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the synchronizer </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17236"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >widget</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the widget </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17241"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >new_state</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the new state</P ></TD ></TR ></TBODY ></TABLE ></DIV ><HR><DIV CLASS="REFSECT2" ><A NAME="AEN17246" ></A ><H3 ><A NAME="BONOBO-UI-SYNC-DO-SHOW-HIDE" ></A >bonobo_ui_sync_do_show_hide ()</H3 ><TABLE BORDER="0" BGCOLOR="#D6E8FF" WIDTH="100%" CELLPADDING="6" ><TR ><TD ><PRE CLASS="PROGRAMLISTING" ><GTKDOCLINK HREF="GBOOLEAN" >gboolean</GTKDOCLINK > bonobo_ui_sync_do_show_hide (<GTKDOCLINK HREF="BONOBOUISYNC" >BonoboUISync</GTKDOCLINK > *sync, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *node, <A HREF="bonobo-bonobo-ui-node.html#BONOBOUINODE" >BonoboUINode</A > *cmd_node, <GTKDOCLINK HREF="GTKWIDGET" >GtkWidget</GTKDOCLINK > *widget);</PRE ></TD ></TR ></TABLE ><P >This is a helper function that applies the hidden attribute from either the <TT CLASS="PARAMETER" ><I >node</I ></TT > or fallback to the <TT CLASS="PARAMETER" ><I >cmd_node</I ></TT > to the <TT CLASS="PARAMETER" ><I >widget</I ></TT >.</P ><P ></P ><P ></P ><TABLE CLASS="VARIABLELIST" BORDER="0" CELLSPACING="0" CELLPADDING="4" WIDTH="100%" BGCOLOR="#FFD0D0" ><TBODY ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17261"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >sync</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the synchronizer </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17266"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >node</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the node </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17271"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >cmd_node</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the associated command node </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17276"><SPAN STYLE="white-space: nowrap" ><TT CLASS="PARAMETER" ><I >widget</I ></TT > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > the widget </P ></TD ></TR ><TR ><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="20%" ><A NAME="AEN17281"><SPAN STYLE="white-space: nowrap" ><I CLASS="EMPHASIS" >Returns</I > :</SPAN ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="80%" ><P > TRUE if the widget's hidden / shown state changed, this is needed to work around some nasty dock sizing bugs.</P ></TD ></TR ></TBODY ></TABLE ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><BR CLEAR="all"><BR><TABLE WIDTH="100%" BORDER="0" BGCOLOR="#000000" CELLPADDING="1" CELLSPACING="0" ><TR ><TD WIDTH="25%" BGCOLOR="#C00000" ALIGN="left" ><A HREF="bonobo-bonobo-ui-engine.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><<< Previous Page</B ></FONT ></A ></TD ><TD WIDTH="25%" BGCOLOR="#0000C0" ALIGN="center" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><A HREF="book1.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Home</B ></FONT ></A ></B ></FONT ></TD ><TD WIDTH="25%" BGCOLOR="#00C000" ALIGN="center" ><FONT COLOR="#FFFFFF" SIZE="3" ><B ><A HREF="bonobo-ui.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Up</B ></FONT ></A ></B ></FONT ></TD ><TD WIDTH="25%" BGCOLOR="#C00000" ALIGN="right" ><A HREF="bonobo-moniker-handlers.html" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Next Page >>></B ></FONT ></A ></TD ></TR ><TR ><TD COLSPAN="2" ALIGN="left" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >BonoboUIEngine</B ></FONT ></TD ><TD COLSPAN="2" ALIGN="right" ><FONT COLOR="#FFFFFF" SIZE="3" ><B >Writing Monikers</B ></FONT ></TD ></TR ></TABLE ></DIV ></BODY ></HTML >