Re: dot-oaf style questions



Hi Maciej,

On Wed, 28 Nov 2001, Maciej Stachowiak wrote:

> > You seem pretty sure of the semantics here. But I'm not. Exposing
> > Bonobo/Control, which derives from Bonobo/Unknown, does seem like it exposes
> > Bonobo/Unknown. But this is all beside the point for the current uses of
> > repo_ids anyway, so it's probably not worth debating.
>
> The list of repo_ids is the list of interfaces you can queryInterface
> for successfully. When you QI for Bonobo/Unknown on something that
> provides Bonobo/Control, it will succeed because of the
> inheritance. (Microsoft COM works the same way).
>
> So I think it is correct to list inherited interfaces in the repo_id
> field.

	This is what I presumed the semantics to be when I as working
on the applets. It was actually extremely useful .. Every applet has
the following repo_ids attribute

        <oaf_attribute name="repo_ids" type="stringv">
                <item value="IDL:GNOME/PanelAppletShell:1.0"/>
                <item value="IDL:Bonobo/Control:1.0"/>
                <item value="IDL:Bonobo/Unknown:1.0"/>
        </oaf_attribute>

	and then to build the applets menu I use the following query

has_all (repo_ids, ['IDL:Bonobo/Control:1.0', 'IDL:GNOME/PanelAppletShell:1.0']) &&
	defined (panel:icon) && defined (panel:category)

	sorting by category, then name ...

	There's some *serious* power in bonobo-activation :-)

Good Luck,
Mark.

Btw, the api-docs description of repo_ids don't mention that it should
be a list of interfaces QI-able. I've expanded and committed :

Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/bonobo-activation/ChangeLog,v
retrieving revision 1.248
diff -u -p -r1.248 ChangeLog
--- ChangeLog	2001/11/26 02:08:19	1.248
+++ ChangeLog	2001/11/29 07:55:34
@@ -1,3 +1,8 @@
+2001-11-29  Mark McLoughlin  <mark skynet ie>
+
+	* api-docs/server-xml-reference.sgml: expand desription of
+	  repo_ids attribute.
+
 2001-11-22  Michael Meeks  <michael ximian com>

 	* server/activation-context-query-parser.y: remove
cvs server: Diffing api-docs
Index: api-docs/server-xml-reference.sgml
===================================================================
RCS file:
/cvs/gnome/bonobo-activation/api-docs/server-xml-reference.sgml,v
retrieving revision 1.1
diff -u -p -r1.1 server-xml-reference.sgml
--- api-docs/server-xml-reference.sgml	2001/08/07 08:49:57	1.1
+++ api-docs/server-xml-reference.sgml	2001/11/29 07:55:34
@@ -123,7 +123,7 @@ Their list follows.
 		  <row>
 		    <entry>repo_ids</entry>
 		    <entry>stringv</entry>
-		    <entry>the list of all IDL interfaces this component implements</entry>
+		    <entry>the list of all IDL interfaces this component implements. i.e. the list of interfaces for which a queryInterface operation on the component will succeed.</entry>
 		    <entry>yes</entry>
 		  </row>
 		  <row>




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]