<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node xmlns:dox="http://www.ayatana.org/dbus/dox.dtd">
	<dox:d><![CDATA[
	  @mainpage
	 
	  An interface to register menus that are associated with a window in an application.  The
	  main interface is docuemented here: @ref com::canonical::AppMenu::Registrar.
	    
	  The actual menus are transported using the dbusmenu protocol which is available
	  here: @ref com::canonical::dbusmenu.
	]]></dox:d>
	<interface name="com.canonical.AppMenu.Registrar" xmlns:dox="http://www.ayatana.org/dbus/dox.dtd">
		<dox:d>
		  An interface to register a menu from an application's window to be displayed in another
		  window.  This manages that association between XWindow Window IDs and the dbus
		  address and object that provides the menu using the dbusmenu dbus interface.
		</dox:d>
		<method name="RegisterWindow">
			<dox:d><![CDATA[
			  Associates a dbusmenu with a window
	     
			  /note this method assumes that the connection from the caller is the DBus connection
			    to use for the object.  Applications that use multiple DBus connections will need to
			    ensure this method is called with the same connection that implmenets the object.
			]]></dox:d>
			<arg name="windowId" type="u" direction="in">
				<dox:d>The XWindow ID of the window</dox:d>
			</arg>
			<arg name="menuObjectPath" type="o" direction="in">
				<dox:d>The object on the dbus interface implementing the dbusmenu interface</dox:d>
			</arg>
		</method>
		<method name="UnregisterWindow">
			<dox:d>
			  A method to allow removing a window from the database.  Windows will also be removed
			  when the client drops off DBus so this is not required.  It is polite though.  And
			  important for testing.
			</dox:d>
			<arg name="windowId" type="u" direction="in">
				<dox:d>The XWindow ID of the window</dox:d>
			</arg>
		</method>
		<method name="GetMenuForWindow">
			<dox:d>Gets the registered menu for a given window ID.</dox:d>
			<arg name="windowId" type="u" direction="in">
				<dox:d>The XWindow ID of the window to get</dox:d>
			</arg>
			<arg name="service" type="s" direction="out">
				<dox:d>The address of the connection on DBus (e.g. :1.23 or org.example.service)</dox:d>
			</arg>
			<arg name="menuObjectPath" type="o" direction="out">
				<dox:d>The path to the object which implements the com.canonical.dbusmenu interface.</dox:d>
			</arg>
		</method>
	</interface>
</node>
