@@ 7,10 7,43 @@
A better way to use the computer.</description>
<interface name="tde_wm_base" version="1">
-
+ <request name="register_scheme">
+ <description summary="Used by all scheme handlers.">
+ This is what a program wishing to handle a specific scheme
+ uses to inform the WM that it will do so. Only one of these may
+ exist for any scheme, in all clients. Creating a new one
+ for a given scheme invalidates all others.</description>
+ <arg name="id" type="new_id" interface="tde_scheme" />
+ <arg name="scheme" type="string" />
+ </request>
+ <request name="register_renderer">
+ <description summary="Used by all renderers.">
+ This is what any renderer uses to advertise to the WM. Slugs
+ must be globally unique, and attempting to reregister one
+ should error.</description>
+ <arg name="id" type="new_id" interface="tde_renderer" />
+ <arg name="slug" type="string" />
+ </request>
+
+ <request name="register_fallback">
+ <description summary="Used to handle unknown schemes and MIMEs">
+ This shouldn't be used by any applications, it's a core part of
+ the finished DE. Only one application may register itself as a
+ fallback handler, and the WM should expect this to happen at
+ early boot.</description>
+ <arg name="id" type="new_id" interface="tde_fallback" />
+ </request>
+ <request name="register_system">
+ <description summary="May contain settings, debug info, etc.">
+ This shouldn't be used by any applications, it's a core part of
+ the finished DE. Only one application may register itself as a
+ system:// handler, and the WM should expect this to happen at
+ early boot.</description>
+ <arg name="id" type="new_id" interface="tde_system" />
+ </request>
</interface>
- <interface name="tde_schema" version="1">
+ <interface name="tde_scheme" version="1">
</interface>
@@ 18,7 51,50 @@
</interface>
+ <interface name="tde_fallback" version="1">
+ <description summary="Internal method for fixing unknown types.">
+ The fallback interface exists so that the DE can ask the user for
+ what to do when encountering an unknown scheme or MIME type. Each
+ event corresponds to some missing mapping. The fallback handler
+ should prompt the user for input or otherwise find a handler for
+ the given mapping, update the config files, and then send back a
+ resolve event. If, for whatever reason, this is impossible, the
+ fallback handler should send back a reject event.</description>
+
+ <event name="scheme">
+ <arg name="serial" type="uint" />
+ <arg name="scheme" type="string" />
+ </event>
+ <event name="renderer">
+ <arg name="serial" type="uint" />
+ <arg name="slug" type="string" />
+ </event>
+ <event name="mime_mapping">
+ <arg name="serial" type="uint" />
+ <arg name="mime" type="string" />
+ </event>
+
+ <request name="resolve">
+ <arg name="serial" type="uint" />
+ </request>
+ <request name="reject">
+ <arg name="serial" type="uint" />
+ </request>
+ </interface>
+
+ <interface name="tde_system" version="1">
+
+ </interface>
+
<interface name="tde_surface" version="1">
</interface>
+
+ <interface name="tde_window" version="1">
+
+ </interface>
+
+ <interface name="tde_tab" version="1">
+
+ </interface>
</protocol>