Sophie

Sophie

distrib > PLD > ac > amd64 > media > dist > by-pkgid > fd2761970a77896f276e13daf3a9620f > files > 106

bonobo-devel-1.0.22-7.amd64.rpm

<HTML
><HEAD
><TITLE
>bonobo-listener</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="Notification and EventSources"
HREF="bonobo-notification.html"><LINK
REL="PREVIOUS"
TITLE="bonobo-event-source"
HREF="bonobo-bonobo-event-source.html"><LINK
REL="NEXT"
TITLE="Storage and Persistance"
HREF="bonobo-storage.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-event-source.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>&#60;&#60;&#60; 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-notification.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>Up</B
></FONT
></A
></B
></FONT
></TD
><TD
WIDTH="25%"
BGCOLOR="#C00000"
ALIGN="right"
><A
HREF="bonobo-storage.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>Next Page &#62;&#62;&#62;</B
></FONT
></A
></TD
></TR
></TABLE
></DIV
><H1
><A
NAME="BONOBO-BONOBO-LISTENER"
>bonobo-listener</A
></H1
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN5694"
></A
><H2
>Name</H2
>bonobo-listener&nbsp;--&nbsp;An Event Listener (an implementation of Bonobo::Listener)</DIV
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN5697"
></A
><H2
>Synopsis</H2
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="SYNOPSIS"
>&#13;

#define     <A
HREF="bonobo-bonobo-listener.html#BONOBO-LISTENER-TYPE-CAPS"
>BONOBO_LISTENER_TYPE</A
>
#define     <A
HREF="bonobo-bonobo-listener.html#BONOBO-LISTENER-CAPS"
>BONOBO_LISTENER</A
>                 (o)
#define     <A
HREF="bonobo-bonobo-listener.html#BONOBO-IS-LISTENER-CAPS"
>BONOBO_IS_LISTENER</A
>              (o)
#define     <A
HREF="bonobo-bonobo-listener.html#BONOBO-LISTENER-CLASS-CAPS"
>BONOBO_LISTENER_CLASS</A
>           (k)
#define     <A
HREF="bonobo-bonobo-listener.html#BONOBO-IS-LISTENER-CLASS-CAPS"
>BONOBO_IS_LISTENER_CLASS</A
>        (k)
typedef     <A
HREF="bonobo-bonobo-listener.html#BONOBOLISTENER"
>BonoboListener</A
>;
typedef     <A
HREF="bonobo-bonobo-listener.html#BONOBOLISTENERCLASS"
>BonoboListenerClass</A
>;
void        (<A
HREF="bonobo-bonobo-listener.html#BONOBOLISTENERCALLBACKFN"
>*BonoboListenerCallbackFn</A
>)     (<A
HREF="bonobo-bonobo-listener.html#BONOBOLISTENER"
>BonoboListener</A
> *listener,
                                             char *event_name,
                                             <GTKDOCLINK
HREF="CORBA-ANY"
>CORBA_any</GTKDOCLINK
> *any,
                                             <GTKDOCLINK
HREF="CORBA-ENVIRONMENT"
>CORBA_Environment</GTKDOCLINK
> *ev,
                                             <GTKDOCLINK
HREF="GPOINTER"
>gpointer</GTKDOCLINK
> user_data);
<A
HREF="bonobo-bonobo-listener.html#BONOBOLISTENER"
>BonoboListener</A
>* <A
HREF="bonobo-bonobo-listener.html#BONOBO-LISTENER-NEW"
>bonobo_listener_new</A
>         (<A
HREF="bonobo-bonobo-listener.html#BONOBOLISTENERCALLBACKFN"
>BonoboListenerCallbackFn</A
> event_callback,
                                             <GTKDOCLINK
HREF="GPOINTER"
>gpointer</GTKDOCLINK
> user_data);
char*       <A
HREF="bonobo-bonobo-listener.html#BONOBO-EVENT-KIND"
>bonobo_event_kind</A
>               (const char *event_name);
char*       <A
HREF="bonobo-bonobo-listener.html#BONOBO-EVENT-TYPE"
>bonobo_event_type</A
>               (const char *event_name);
char*       <A
HREF="bonobo-bonobo-listener.html#BONOBO-EVENT-SUBTYPE"
>bonobo_event_subtype</A
>            (const char *event_name);
char*       <A
HREF="bonobo-bonobo-listener.html#BONOBO-EVENT-IDL-PATH"
>bonobo_event_idl_path</A
>           (const char *event_name);
char*       <A
HREF="bonobo-bonobo-listener.html#BONOBO-EVENT-MAKE-NAME"
>bonobo_event_make_name</A
>          (const char *idl_path,
                                             const char *kind,
                                             const char *subtype);&#13;</PRE
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN5721"
></A
><H2
>Object Hierarchy</H2
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="SYNOPSIS"
>&#13;  <GTKDOCLINK
HREF="GTKOBJECT"
>GtkObject</GTKDOCLINK
>
   +----<A
HREF="bonobo-bonobo-object.html#BONOBOOBJECT"
>BonoboObject</A
>
         +----<GTKDOCLINK
HREF="BONOBOXOBJECT"
>BonoboXObject</GTKDOCLINK
>
               +----BonoboListener</PRE
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN5727"
></A
><H2
>Signal Prototypes</H2
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="SYNOPSIS"
>&#13;&quot;<A
HREF="bonobo-bonobo-listener.html#BONOBOLISTENER-EVENT-NOTIFY"
>event-notify</A
>&quot;
            void        user_function      (<A
HREF="bonobo-bonobo-listener.html#BONOBOLISTENER"
>BonoboListener</A
> *bonobolistener,
                                            <GTKDOCLINK
HREF="GPOINTER"
>gpointer</GTKDOCLINK
> arg1,
                                            <GTKDOCLINK
HREF="GPOINTER"
>gpointer</GTKDOCLINK
> arg2,
                                            <GTKDOCLINK
HREF="GPOINTER"
>gpointer</GTKDOCLINK
> arg3,
                                            <GTKDOCLINK
HREF="GPOINTER"
>gpointer</GTKDOCLINK
> user_data);</PRE
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN5736"
></A
><H2
>Description</H2
><P
>   The BonoboListener object is a CORBA server used to receive events
   emitted by a remote Bonobo::EventSource server.  The combination
   EventSource/Listener is used to notify one or more client
   applications of events that happen in a component.    Think of the
   EventSource/Listener as a notification/callback system that allows
   multiple clients to be informed of events.</P
><P
>   Once created, the BonoboListener object needs to be attached to a
   remote IDL:Bonobo/EventSource:1.0 server.  This is done by passing the
   CORBA Object reference of the BonoboListener to the addListener
   method in the IDL:Bonobo/EventSource:1.0.  </P
><P
>   The BonoboListener object allows the user to specify a callback
   function to be invoked when an event is emitted by the
   IDL:Bonobo/EventSource:1.0 server.  The BonoboListener object also
   emits the "event_notify" Gtk+ signal, which allows you to connect
   multiple code segments to the same event notification. </P
><P
>    Here is a sample client application that registers interest in
    being notified of events from the fictional "Keyboard" event
    source:

    <DIV
CLASS="INFORMALEXAMPLE"
><A
NAME="AEN5742"
></A
><P
></P
><TABLE
BORDER="0"
BGCOLOR="#D8F8D8"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>BonoboListener *keyboard_listener;

my_listener_function (BonoboListener *l, char *event_name,
                      CORBA_any value, CORBA_Environment *ev,
                      gpointer user_data)
{
	printf ("Received event named: <TT
CLASS="LITERAL"
>s</TT
>\n", event_name);
}

connect_to_keyboard_source (Bonobo_EventSource *keyboard)
{
        Bonobo_Unknown reference;

        /*
         * First, create the listener Bonobo server.
         */
	keyboard_listener = bonobo_listener_new (my_listener_function, NULL);

        /*
         * Now, register our listener with the EventSource
         */
        reference = bonobo_object_corba_objref (keyboard_listener);
        Bonobo_EventSource_addListener (keyboard, reference);
}
      </PRE
></TD
></TR
></TABLE
><P
></P
></DIV
>&#13;</P
><P
>  The CORBA::any value passed to the listener function is defined by
  the contract between the EventSource's event you are using and you.
  To manipulate the value, you can use the CORBA DynamicAny interface
  to introspect the value and extract the information you need. </P
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN5746"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN5748"
></A
><H3
><A
NAME="BONOBO-LISTENER-TYPE-CAPS"
></A
>BONOBO_LISTENER_TYPE</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define BONOBO_LISTENER_TYPE        (bonobo_listener_get_type ())</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5753"
></A
><H3
><A
NAME="BONOBO-LISTENER-CAPS"
></A
>BONOBO_LISTENER()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define BONOBO_LISTENER(o)          (GTK_CHECK_CAST ((o), BONOBO_LISTENER_TYPE, BonoboListener))</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="AEN5759"><SPAN
STYLE="white-space: nowrap"
><TT
CLASS="PARAMETER"
><I
>o</I
></TT
>&nbsp;:</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
>&#13;</P
></TD
></TR
></TBODY
></TABLE
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5764"
></A
><H3
><A
NAME="BONOBO-IS-LISTENER-CAPS"
></A
>BONOBO_IS_LISTENER()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define BONOBO_IS_LISTENER(o)       (GTK_CHECK_TYPE ((o), BONOBO_LISTENER_TYPE))</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="AEN5770"><SPAN
STYLE="white-space: nowrap"
><TT
CLASS="PARAMETER"
><I
>o</I
></TT
>&nbsp;:</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
>&#13;</P
></TD
></TR
></TBODY
></TABLE
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5775"
></A
><H3
><A
NAME="BONOBO-LISTENER-CLASS-CAPS"
></A
>BONOBO_LISTENER_CLASS()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define BONOBO_LISTENER_CLASS(k)    (GTK_CHECK_CLASS_CAST((k), BONOBO_LISTENER_TYPE, BonoboListenerClass))</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="AEN5781"><SPAN
STYLE="white-space: nowrap"
><TT
CLASS="PARAMETER"
><I
>k</I
></TT
>&nbsp;:</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
>&#13;</P
></TD
></TR
></TBODY
></TABLE
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5786"
></A
><H3
><A
NAME="BONOBO-IS-LISTENER-CLASS-CAPS"
></A
>BONOBO_IS_LISTENER_CLASS()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define BONOBO_IS_LISTENER_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), BONOBO_LISTENER_TYPE))</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="AEN5792"><SPAN
STYLE="white-space: nowrap"
><TT
CLASS="PARAMETER"
><I
>k</I
></TT
>&nbsp;:</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
>&#13;</P
></TD
></TR
></TBODY
></TABLE
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5797"
></A
><H3
><A
NAME="BONOBOLISTENER"
></A
>BonoboListener</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef struct {
        BonoboXObject          parent;

	BonoboListenerPrivate *priv;
} BonoboListener;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5802"
></A
><H3
><A
NAME="BONOBOLISTENERCLASS"
></A
>BonoboListenerClass</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef struct {
	BonoboXObjectClass     parent_class;

	POA_Bonobo_Listener__epv epv;

	/* Signals */
	void (* event_notify) (BonoboListener    *listener, 
			       char              *event_name,
			       BonoboArg         *event_data, 
			       CORBA_Environment *ev);
} BonoboListenerClass;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5807"
></A
><H3
><A
NAME="BONOBOLISTENERCALLBACKFN"
></A
>BonoboListenerCallbackFn ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void        (*BonoboListenerCallbackFn)     (<A
HREF="bonobo-bonobo-listener.html#BONOBOLISTENER"
>BonoboListener</A
> *listener,
                                             char *event_name,
                                             <GTKDOCLINK
HREF="CORBA-ANY"
>CORBA_any</GTKDOCLINK
> *any,
                                             <GTKDOCLINK
HREF="CORBA-ENVIRONMENT"
>CORBA_Environment</GTKDOCLINK
> *ev,
                                             <GTKDOCLINK
HREF="GPOINTER"
>gpointer</GTKDOCLINK
> user_data);</PRE
></TD
></TR
></TABLE
><P
>   The signature for the callback function invoked when an event is
   delivered to the BonoboListener object.  </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="AEN5817"><SPAN
STYLE="white-space: nowrap"
><TT
CLASS="PARAMETER"
><I
>listener</I
></TT
>&nbsp;:</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
>a pointer to the BonoboListener.</P
></TD
></TR
><TR
><TD
ALIGN="RIGHT"
VALIGN="TOP"
WIDTH="20%"
><A
NAME="AEN5822"><SPAN
STYLE="white-space: nowrap"
><TT
CLASS="PARAMETER"
><I
>event_name</I
></TT
>&nbsp;:</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
>the event name that was emitted.</P
></TD
></TR
><TR
><TD
ALIGN="RIGHT"
VALIGN="TOP"
WIDTH="20%"
><A
NAME="AEN5827"><SPAN
STYLE="white-space: nowrap"
><TT
CLASS="PARAMETER"
><I
>any</I
></TT
>&nbsp;:</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
>The value (A CORBA Any) that was passed by the EventSource.</P
></TD
></TR
><TR
><TD
ALIGN="RIGHT"
VALIGN="TOP"
WIDTH="20%"
><A
NAME="AEN5832"><SPAN
STYLE="white-space: nowrap"
><TT
CLASS="PARAMETER"
><I
>ev</I
></TT
>&nbsp;:</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
>Environment for returning CORBA errors.</P
></TD
></TR
><TR
><TD
ALIGN="RIGHT"
VALIGN="TOP"
WIDTH="20%"
><A
NAME="AEN5837"><SPAN
STYLE="white-space: nowrap"
><TT
CLASS="PARAMETER"
><I
>user_data</I
></TT
>&nbsp;:</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
>the data pointer specified when you called bonobo_listener_new
&#13;</P
></TD
></TR
></TBODY
></TABLE
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5842"
></A
><H3
><A
NAME="BONOBO-LISTENER-NEW"
></A
>bonobo_listener_new ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
><A
HREF="bonobo-bonobo-listener.html#BONOBOLISTENER"
>BonoboListener</A
>* bonobo_listener_new         (<A
HREF="bonobo-bonobo-listener.html#BONOBOLISTENERCALLBACKFN"
>BonoboListenerCallbackFn</A
> event_callback,
                                             <GTKDOCLINK
HREF="GPOINTER"
>gpointer</GTKDOCLINK
> user_data);</PRE
></TD
></TR
></TABLE
><P
>Creates a generic event listener.  The listener calls the <TT
CLASS="PARAMETER"
><I
>event_callback</I
></TT
> 
function and emits an "event_notify" signal when notified of an event.  
The signal callback should be of the form:</P
><P
>&lt;informalexample&gt;
&lt;programlisting&gt;
     void some_callback (BonoboListener *listener,
                         char *event_name, 
		    CORBA_any *any,
		    CORBA_Environment *ev,
		    gpointer user_data);
&lt;/programlisting&gt;
&lt;/informalexample&gt;</P
><P
>You will typically pass the CORBA_Object reference in the return value
to an EventSource (by invoking EventSource::addListener).</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="AEN5855"><SPAN
STYLE="white-space: nowrap"
><TT
CLASS="PARAMETER"
><I
>event_callback</I
></TT
>&nbsp;:</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
> function to be invoked when an event is emitted by the EventSource.</P
></TD
></TR
><TR
><TD
ALIGN="RIGHT"
VALIGN="TOP"
WIDTH="20%"
><A
NAME="AEN5860"><SPAN
STYLE="white-space: nowrap"
><TT
CLASS="PARAMETER"
><I
>user_data</I
></TT
>&nbsp;:</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
> data passed to the functioned pointed by <TT
CLASS="PARAMETER"
><I
>event_call</I
></TT
>.</P
></TD
></TR
><TR
><TD
ALIGN="RIGHT"
VALIGN="TOP"
WIDTH="20%"
><A
NAME="AEN5866"><SPAN
STYLE="white-space: nowrap"
><I
CLASS="EMPHASIS"
>Returns</I
> :</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
> A BonoboListener object.</P
></TD
></TR
></TBODY
></TABLE
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5871"
></A
><H3
><A
NAME="BONOBO-EVENT-KIND"
></A
>bonobo_event_kind ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>char*       bonobo_event_kind               (const char *event_name);</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="AEN5878"><SPAN
STYLE="white-space: nowrap"
><TT
CLASS="PARAMETER"
><I
>event_name</I
></TT
>&nbsp;:</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
> the event name</P
></TD
></TR
><TR
><TD
ALIGN="RIGHT"
VALIGN="TOP"
WIDTH="20%"
><A
NAME="AEN5883"><SPAN
STYLE="white-space: nowrap"
><I
CLASS="EMPHASIS"
>Returns</I
> :</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
> The event kind, or NULL on error.</P
></TD
></TR
></TBODY
></TABLE
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5888"
></A
><H3
><A
NAME="BONOBO-EVENT-TYPE"
></A
>bonobo_event_type ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>char*       bonobo_event_type               (const char *event_name);</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="AEN5895"><SPAN
STYLE="white-space: nowrap"
><TT
CLASS="PARAMETER"
><I
>event_name</I
></TT
>&nbsp;:</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
> the event name</P
></TD
></TR
><TR
><TD
ALIGN="RIGHT"
VALIGN="TOP"
WIDTH="20%"
><A
NAME="AEN5900"><SPAN
STYLE="white-space: nowrap"
><I
CLASS="EMPHASIS"
>Returns</I
> :</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
> The event subtype, or NULL on error.</P
></TD
></TR
></TBODY
></TABLE
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5905"
></A
><H3
><A
NAME="BONOBO-EVENT-SUBTYPE"
></A
>bonobo_event_subtype ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>char*       bonobo_event_subtype            (const char *event_name);</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="AEN5911"><SPAN
STYLE="white-space: nowrap"
><TT
CLASS="PARAMETER"
><I
>event_name</I
></TT
>&nbsp;:</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
></P
></TD
></TR
><TR
><TD
ALIGN="RIGHT"
VALIGN="TOP"
WIDTH="20%"
><A
NAME="AEN5916"><SPAN
STYLE="white-space: nowrap"
><I
CLASS="EMPHASIS"
>Returns</I
> :</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
>&#13;</P
></TD
></TR
></TBODY
></TABLE
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5921"
></A
><H3
><A
NAME="BONOBO-EVENT-IDL-PATH"
></A
>bonobo_event_idl_path ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>char*       bonobo_event_idl_path           (const char *event_name);</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="AEN5928"><SPAN
STYLE="white-space: nowrap"
><TT
CLASS="PARAMETER"
><I
>event_name</I
></TT
>&nbsp;:</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
> the event name</P
></TD
></TR
><TR
><TD
ALIGN="RIGHT"
VALIGN="TOP"
WIDTH="20%"
><A
NAME="AEN5933"><SPAN
STYLE="white-space: nowrap"
><I
CLASS="EMPHASIS"
>Returns</I
> :</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
> The event idl path, or NULL on error.</P
></TD
></TR
></TBODY
></TABLE
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5938"
></A
><H3
><A
NAME="BONOBO-EVENT-MAKE-NAME"
></A
>bonobo_event_make_name ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>char*       bonobo_event_make_name          (const char *idl_path,
                                             const char *kind,
                                             const char *subtype);</PRE
></TD
></TR
></TABLE
><P
>Creates an event name. Event names consist of three parts. The <TT
CLASS="PARAMETER"
><I
>idl_path</I
></TT
> is
mainly to create a unique namespace, and should identify the interface 
which triggered the event, for example "Bonobo/Property". The <TT
CLASS="PARAMETER"
><I
>kind</I
></TT
> denotes
what happened, for example "change". Finally you can use the optional 
<TT
CLASS="PARAMETER"
><I
>subtype</I
></TT
> to make events more specific. All three parts of the name are 
joined together separated by colons. "Bonobo/Property:change" or 
"Bonobo/Property:change:autosave" are examples of valid event names.</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="AEN5948"><SPAN
STYLE="white-space: nowrap"
><TT
CLASS="PARAMETER"
><I
>idl_path</I
></TT
>&nbsp;:</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
> the IDL part of the event name.</P
></TD
></TR
><TR
><TD
ALIGN="RIGHT"
VALIGN="TOP"
WIDTH="20%"
><A
NAME="AEN5953"><SPAN
STYLE="white-space: nowrap"
><TT
CLASS="PARAMETER"
><I
>kind</I
></TT
>&nbsp;:</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
> the kind of the event</P
></TD
></TR
><TR
><TD
ALIGN="RIGHT"
VALIGN="TOP"
WIDTH="20%"
><A
NAME="AEN5958"><SPAN
STYLE="white-space: nowrap"
><TT
CLASS="PARAMETER"
><I
>subtype</I
></TT
>&nbsp;:</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
> an optional subtype</P
></TD
></TR
><TR
><TD
ALIGN="RIGHT"
VALIGN="TOP"
WIDTH="20%"
><A
NAME="AEN5963"><SPAN
STYLE="white-space: nowrap"
><I
CLASS="EMPHASIS"
>Returns</I
> :</SPAN
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="80%"
><P
> A valid event_name, or NULL on error.</P
></TD
></TR
></TBODY
></TABLE
></DIV
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN5968"
></A
><H2
>Signals</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN5970"
></A
><H3
><A
NAME="BONOBOLISTENER-EVENT-NOTIFY"
></A
>The &quot;event-notify&quot; signal</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void        user_function                  (<A
HREF="bonobo-bonobo-listener.html#BONOBOLISTENER"
>BonoboListener</A
> *bonobolistener,
                                            <GTKDOCLINK
HREF="GPOINTER"
>gpointer</GTKDOCLINK
> arg1,
                                            <GTKDOCLINK
HREF="GPOINTER"
>gpointer</GTKDOCLINK
> arg2,
                                            <GTKDOCLINK
HREF="GPOINTER"
>gpointer</GTKDOCLINK
> arg3,
                                            <GTKDOCLINK
HREF="GPOINTER"
>gpointer</GTKDOCLINK
> user_data);</PRE
></TD
></TR
></TABLE
></DIV
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN5979"
></A
><H2
>See Also</H2
><P
>   <A
HREF="bonobo-bonobo-event-source.html#BONOBOEVENTSOURCE"
>BonoboEventSource</A
> <A
HREF="bonobo-bonobo-arg.html#BONOBOARG"
>BonoboArg</A
></P
></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-event-source.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>&#60;&#60;&#60; 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-notification.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>Up</B
></FONT
></A
></B
></FONT
></TD
><TD
WIDTH="25%"
BGCOLOR="#C00000"
ALIGN="right"
><A
HREF="bonobo-storage.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>Next Page &#62;&#62;&#62;</B
></FONT
></A
></TD
></TR
><TR
><TD
COLSPAN="2"
ALIGN="left"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>bonobo-event-source</B
></FONT
></TD
><TD
COLSPAN="2"
ALIGN="right"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>Storage and Persistance</B
></FONT
></TD
></TR
></TABLE
></DIV
></BODY
></HTML
>