moved extended protocol files to the tizen directory 81/169381/2
authorGwanglim Lee <gl77.lee@samsung.com>
Mon, 23 Oct 2017 08:33:34 +0000 (17:33 +0900)
committerGwanglim Lee <gl77.lee@samsung.com>
Mon, 19 Mar 2018 05:31:28 +0000 (14:31 +0900)
Change-Id: Ief5d9df7841bbc7d6985976db61c00f1d6320aa3

25 files changed:
Makefile.am
protocol/fullscreen-shell.xml [deleted file]
protocol/input-method.xml [deleted file]
protocol/scaler.xml [deleted file]
protocol/screenshooter.xml [deleted file]
protocol/text-cursor-position.xml [deleted file]
protocol/text.xml [deleted file]
protocol/tizen-extension.xml [deleted file]
protocol/tizen-launch.xml [deleted file]
protocol/tizen-remote-surface.xml [deleted file]
protocol/tizen-surface.xml [deleted file]
protocol/tizen/fullscreen-shell.xml [new file with mode: 0644]
protocol/tizen/input-method.xml [new file with mode: 0644]
protocol/tizen/scaler.xml [new file with mode: 0644]
protocol/tizen/screenshooter.xml [new file with mode: 0644]
protocol/tizen/text-cursor-position.xml [new file with mode: 0644]
protocol/tizen/text.xml [new file with mode: 0644]
protocol/tizen/tizen-extension.xml [new file with mode: 0644]
protocol/tizen/tizen-launch.xml [new file with mode: 0644]
protocol/tizen/tizen-remote-surface.xml [new file with mode: 0644]
protocol/tizen/tizen-surface.xml [new file with mode: 0644]
protocol/tizen/transform.xml [new file with mode: 0644]
protocol/tizen/xdg-shell.xml [new file with mode: 0644]
protocol/transform.xml [deleted file]
protocol/xdg-shell.xml [deleted file]

index 8cb6d71f2e560b494b3df26fc26e53a20881dbbe..5244c258dc76853d79adfae305635c4da3b5d1da 100644 (file)
@@ -1,4 +1,4 @@
-INCLUDES = -I$(top_builddir)/protocol -I$(top_srcdir)/src
+INCLUDES = -I$(top_builddir)/protocol/tizen -I$(top_srcdir)/src
 
 pkgconfigdir = $(libdir)/pkgconfig
 protocoldir = $(libdir)
@@ -9,11 +9,11 @@ protocolinclude_HEADERS = src/wayland-extension-version.h
 protocol_LTLIBRARIES =
 
 ### protocol.[ch]
-protocol/%-protocol.c : $(top_srcdir)/protocol/%.xml
+protocol/tizen/%-protocol.c : $(top_srcdir)/protocol/tizen/%.xml
        $(wayland_scanner) code < $< > $@
-protocol/%-server-protocol.h : $(top_srcdir)/protocol/%.xml
+protocol/tizen/%-server-protocol.h : $(top_srcdir)/protocol/tizen/%.xml
        $(wayland_scanner) server-header < $< > $@
-protocol/%-client-protocol.h : $(top_srcdir)/protocol/%.xml
+protocol/tizen/%-client-protocol.h : $(top_srcdir)/protocol/tizen/%.xml
        $(wayland_scanner) client-header < $< > $@
 
 ### protocol.pc
@@ -30,12 +30,12 @@ pkgconfig_DATA += \
        src/xdg-shell-server.pc \
        src/xdg-shell-client.pc
 protocolinclude_HEADERS += \
-       protocol/xdg-shell-server-protocol.h \
-       protocol/xdg-shell-client-protocol.h
-libxdg_shell_server_la_SOURCES = protocol/xdg-shell-protocol.c
+       protocol/tizen/xdg-shell-server-protocol.h \
+       protocol/tizen/xdg-shell-client-protocol.h
+libxdg_shell_server_la_SOURCES = protocol/tizen/xdg-shell-protocol.c
 libxdg_shell_server_la_CFLAGS  = @WAYLAND_SERVER_CFLAGS@
 libxdg_shell_server_la_LIBADD  = @WAYLAND_SERVER_LIBS@
-libxdg_shell_client_la_SOURCES = protocol/xdg-shell-protocol.c
+libxdg_shell_client_la_SOURCES = protocol/tizen/xdg-shell-protocol.c
 libxdg_shell_client_la_CFLAGS  = @WAYLAND_CLIENT_CFLAGS@
 libxdg_shell_client_la_LIBADD  = @WAYLAND_CLIENT_LIBS@
 
@@ -47,12 +47,12 @@ pkgconfig_DATA += \
        src/input-method-server.pc \
        src/input-method-client.pc
 protocolinclude_HEADERS += \
-       protocol/input-method-server-protocol.h \
-       protocol/input-method-client-protocol.h
-libinput_method_server_la_SOURCES = protocol/input-method-protocol.c
+       protocol/tizen/input-method-server-protocol.h \
+       protocol/tizen/input-method-client-protocol.h
+libinput_method_server_la_SOURCES = protocol/tizen/input-method-protocol.c
 libinput_method_server_la_CFLAGS  = @WAYLAND_SERVER_CFLAGS@
 libinput_method_server_la_LIBADD  = @WAYLAND_SERVER_LIBS@
-libinput_method_client_la_SOURCES = protocol/input-method-protocol.c
+libinput_method_client_la_SOURCES = protocol/tizen/input-method-protocol.c
 libinput_method_client_la_CFLAGS  = @WAYLAND_CLIENT_CFLAGS@
 libinput_method_client_la_LIBADD  = @WAYLAND_CLIENT_LIBS@
 
@@ -64,12 +64,12 @@ pkgconfig_DATA += \
        src/fullscreen-shell-server.pc \
        src/fullscreen-shell-client.pc
 protocolinclude_HEADERS += \
-       protocol/fullscreen-shell-server-protocol.h \
-       protocol/fullscreen-shell-client-protocol.h
-libfullscreen_shell_server_la_SOURCES = protocol/fullscreen-shell-protocol.c
+       protocol/tizen/fullscreen-shell-server-protocol.h \
+       protocol/tizen/fullscreen-shell-client-protocol.h
+libfullscreen_shell_server_la_SOURCES = protocol/tizen/fullscreen-shell-protocol.c
 libfullscreen_shell_server_la_CFLAGS  = @WAYLAND_SERVER_CFLAGS@
 libfullscreen_shell_server_la_LIBADD  = @WAYLAND_SERVER_LIBS@
-libfullscreen_shell_client_la_SOURCES = protocol/fullscreen-shell-protocol.c
+libfullscreen_shell_client_la_SOURCES = protocol/tizen/fullscreen-shell-protocol.c
 libfullscreen_shell_client_la_CFLAGS  = @WAYLAND_CLIENT_CFLAGS@
 libfullscreen_shell_client_la_LIBADD  = @WAYLAND_CLIENT_LIBS@
 
@@ -81,12 +81,12 @@ pkgconfig_DATA += \
        src/scaler-server.pc \
        src/scaler-client.pc
 protocolinclude_HEADERS += \
-       protocol/scaler-server-protocol.h \
-       protocol/scaler-client-protocol.h
-libscaler_server_la_SOURCES = protocol/scaler-protocol.c
+       protocol/tizen/scaler-server-protocol.h \
+       protocol/tizen/scaler-client-protocol.h
+libscaler_server_la_SOURCES = protocol/tizen/scaler-protocol.c
 libscaler_server_la_CFLAGS  = @WAYLAND_SERVER_CFLAGS@
 libscaler_server_la_LIBADD  = @WAYLAND_SERVER_LIBS@
-libscaler_client_la_SOURCES = protocol/scaler-protocol.c
+libscaler_client_la_SOURCES = protocol/tizen/scaler-protocol.c
 libscaler_client_la_CFLAGS  = @WAYLAND_CLIENT_CFLAGS@
 libscaler_client_la_LIBADD  = @WAYLAND_CLIENT_LIBS@
 
@@ -98,12 +98,12 @@ pkgconfig_DATA += \
        src/transform-server.pc \
        src/transform-client.pc
 protocolinclude_HEADERS += \
-       protocol/transform-server-protocol.h \
-       protocol/transform-client-protocol.h
-libtransform_server_la_SOURCES = protocol/transform-protocol.c
+       protocol/tizen/transform-server-protocol.h \
+       protocol/tizen/transform-client-protocol.h
+libtransform_server_la_SOURCES = protocol/tizen/transform-protocol.c
 libtransform_server_la_CFLAGS  = @WAYLAND_SERVER_CFLAGS@
 libtransform_server_la_LIBADD  = @WAYLAND_SERVER_LIBS@
-libtransform_client_la_SOURCES = protocol/transform-protocol.c
+libtransform_client_la_SOURCES = protocol/tizen/transform-protocol.c
 libtransform_client_la_CFLAGS  = @WAYLAND_CLIENT_CFLAGS@
 libtransform_client_la_LIBADD  = @WAYLAND_CLIENT_LIBS@
 
@@ -115,12 +115,12 @@ pkgconfig_DATA += \
        src/screenshooter-server.pc \
        src/screenshooter-client.pc
 protocolinclude_HEADERS += \
-       protocol/screenshooter-server-protocol.h \
-       protocol/screenshooter-client-protocol.h
-libscreenshooter_server_la_SOURCES = protocol/screenshooter-protocol.c
+       protocol/tizen/screenshooter-server-protocol.h \
+       protocol/tizen/screenshooter-client-protocol.h
+libscreenshooter_server_la_SOURCES = protocol/tizen/screenshooter-protocol.c
 libscreenshooter_server_la_CFLAGS  = @WAYLAND_SERVER_CFLAGS@
 libscreenshooter_server_la_LIBADD  = @WAYLAND_SERVER_LIBS@
-libscreenshooter_client_la_SOURCES = protocol/screenshooter-protocol.c
+libscreenshooter_client_la_SOURCES = protocol/tizen/screenshooter-protocol.c
 libscreenshooter_client_la_CFLAGS  = @WAYLAND_CLIENT_CFLAGS@
 libscreenshooter_client_la_LIBADD  = @WAYLAND_CLIENT_LIBS@
 
@@ -132,12 +132,12 @@ pkgconfig_DATA += \
        src/text-cursor-position-server.pc \
        src/text-cursor-position-client.pc
 protocolinclude_HEADERS += \
-       protocol/text-cursor-position-server-protocol.h \
-       protocol/text-cursor-position-client-protocol.h
-libtext_cursor_position_server_la_SOURCES = protocol/text-cursor-position-protocol.c
+       protocol/tizen/text-cursor-position-server-protocol.h \
+       protocol/tizen/text-cursor-position-client-protocol.h
+libtext_cursor_position_server_la_SOURCES = protocol/tizen/text-cursor-position-protocol.c
 libtext_cursor_position_server_la_CFLAGS  = @WAYLAND_SERVER_CFLAGS@
 libtext_cursor_position_server_la_LIBADD  = @WAYLAND_SERVER_LIBS@
-libtext_cursor_position_client_la_SOURCES = protocol/text-cursor-position-protocol.c
+libtext_cursor_position_client_la_SOURCES = protocol/tizen/text-cursor-position-protocol.c
 libtext_cursor_position_client_la_CFLAGS  = @WAYLAND_CLIENT_CFLAGS@
 libtext_cursor_position_client_la_LIBADD  = @WAYLAND_CLIENT_LIBS@
 
@@ -149,12 +149,12 @@ pkgconfig_DATA += \
        src/text-server.pc \
        src/text-client.pc
 protocolinclude_HEADERS += \
-       protocol/text-server-protocol.h \
-       protocol/text-client-protocol.h
-libtext_server_la_SOURCES = protocol/text-protocol.c
+       protocol/tizen/text-server-protocol.h \
+       protocol/tizen/text-client-protocol.h
+libtext_server_la_SOURCES = protocol/tizen/text-protocol.c
 libtext_server_la_CFLAGS  = @WAYLAND_SERVER_CFLAGS@
 libtext_server_la_LIBADD  = @WAYLAND_SERVER_LIBS@
-libtext_client_la_SOURCES = protocol/text-protocol.c
+libtext_client_la_SOURCES = protocol/tizen/text-protocol.c
 libtext_client_la_CFLAGS  = @WAYLAND_CLIENT_CFLAGS@
 libtext_client_la_LIBADD  = @WAYLAND_CLIENT_LIBS@
 
@@ -166,12 +166,12 @@ pkgconfig_DATA += \
        src/tizen-extension-server.pc \
        src/tizen-extension-client.pc
 protocolinclude_HEADERS += \
-       protocol/tizen-extension-server-protocol.h \
-       protocol/tizen-extension-client-protocol.h
-libtizen_extension_server_la_SOURCES = protocol/tizen-extension-protocol.c
+       protocol/tizen/tizen-extension-server-protocol.h \
+       protocol/tizen/tizen-extension-client-protocol.h
+libtizen_extension_server_la_SOURCES = protocol/tizen/tizen-extension-protocol.c
 libtizen_extension_server_la_CFLAGS  = @WAYLAND_SERVER_CFLAGS@
 libtizen_extension_server_la_LIBADD  = @WAYLAND_SERVER_LIBS@
-libtizen_extension_client_la_SOURCES = protocol/tizen-extension-protocol.c
+libtizen_extension_client_la_SOURCES = protocol/tizen/tizen-extension-protocol.c
 libtizen_extension_client_la_CFLAGS  = @WAYLAND_CLIENT_CFLAGS@
 libtizen_extension_client_la_LIBADD  = @WAYLAND_CLIENT_LIBS@
 
@@ -183,12 +183,12 @@ pkgconfig_DATA += \
        src/tizen-remote-surface-server.pc \
        src/tizen-remote-surface-client.pc
 protocolinclude_HEADERS += \
-       protocol/tizen-remote-surface-server-protocol.h \
-       protocol/tizen-remote-surface-client-protocol.h
-libtizen_remote_surface_server_la_SOURCES = protocol/tizen-remote-surface-protocol.c
+       protocol/tizen/tizen-remote-surface-server-protocol.h \
+       protocol/tizen/tizen-remote-surface-client-protocol.h
+libtizen_remote_surface_server_la_SOURCES = protocol/tizen/tizen-remote-surface-protocol.c
 libtizen_remote_surface_server_la_CFLAGS  = @WAYLAND_SERVER_CFLAGS@
 libtizen_remote_surface_server_la_LIBADD  = @WAYLAND_SERVER_LIBS@
-libtizen_remote_surface_client_la_SOURCES = protocol/tizen-remote-surface-protocol.c
+libtizen_remote_surface_client_la_SOURCES = protocol/tizen/tizen-remote-surface-protocol.c
 libtizen_remote_surface_client_la_CFLAGS  = @WAYLAND_CLIENT_CFLAGS@
 libtizen_remote_surface_client_la_LIBADD  = @WAYLAND_CLIENT_LIBS@
 
@@ -200,12 +200,12 @@ pkgconfig_DATA += \
         src/tizen-launch-server.pc \
         src/tizen-launch-client.pc
 protocolinclude_HEADERS += \
-        protocol/tizen-launch-server-protocol.h \
-        protocol/tizen-launch-client-protocol.h
-libtizen_launch_server_la_SOURCES = protocol/tizen-launch-protocol.c
+        protocol/tizen/tizen-launch-server-protocol.h \
+        protocol/tizen/tizen-launch-client-protocol.h
+libtizen_launch_server_la_SOURCES = protocol/tizen/tizen-launch-protocol.c
 libtizen_launch_server_la_CFLAGS  = @WAYLAND_SERVER_CFLAGS@
 libtizen_launch_server_la_LIBADD  = @WAYLAND_SERVER_LIBS@
-libtizen_launch_client_la_SOURCES = protocol/tizen-launch-protocol.c
+libtizen_launch_client_la_SOURCES = protocol/tizen/tizen-launch-protocol.c
 libtizen_launch_client_la_CFLAGS  = @WAYLAND_CLIENT_CFLAGS@
 libtizen_launch_client_la_LIBADD  = @WAYLAND_CLIENT_LIBS@
 
diff --git a/protocol/fullscreen-shell.xml b/protocol/fullscreen-shell.xml
deleted file mode 100644 (file)
index 8d7a87f..0000000
+++ /dev/null
@@ -1,206 +0,0 @@
-<protocol name="fullscreen_shell">
-  <interface name="_wl_fullscreen_shell" version="1">
-    <description summary="Displays a single surface per output">
-      Displays a single surface per output.
-
-      This interface provides a mechanism for a single client to display
-      simple full-screen surfaces.  While there technically may be multiple
-      clients bound to this interface, only one of those clients should be
-      shown at a time.
-
-      To present a surface, the client uses either the present_surface or
-      present_surface_for_mode requests.  Presenting a surface takes effect
-      on the next wl_surface.commit.  See the individual requests for
-      details about scaling and mode switches.
-
-      The client can have at most one surface per output at any time.
-      Requesting a surface be presented on an output that already has a
-      surface replaces the previously presented surface.  Presenting a null
-      surface removes its content and effectively disables the output.
-      Exactly what happens when an output is "disabled" is
-      compositor-specific.  The same surface may be presented on multiple
-      outputs simultaneously.
-
-      Once a surface is presented on an output, it stays on that output
-      until either the client removes it or the compositor destroys the
-      output.  This way, the client can update the output's contents by
-      simply attaching a new buffer.
-    </description>
-
-    <request name="release" type="destructor">
-      <description summary="release the wl_fullscreen_shell interface">
-       Release the binding from the wl_fullscreen_shell interface
-
-       This destroys the server-side object and frees this binding.  If
-       the client binds to wl_fullscreen_shell multiple times, it may wish
-       to free some of those bindings.
-      </description>
-    </request>
-
-    <enum name="capability">
-      <description summary="capabilities advertised by the compositor">
-       Various capabilities that can be advertised by the compositor.  They
-       are advertised one-at-a-time when the wl_fullscreen_shell interface is
-       bound.  See the wl_fullscreen_shell.capability event for more details.
-
-       ARBITRARY_MODE:
-       This is a hint to the client that indicates that the compositor is
-       capable of setting practically any mode on its outputs.  If this
-       capability is provided, wl_fullscreen_shell.present_surface_for_mode
-       will almost never fail and clients should feel free to set whatever
-       mode they like.  If the compositor does not advertise this, it may
-       still support some modes that are not advertised through wl_global.mode
-       but it is less likely.
-
-       CURSOR_PLANE:
-       This is a hint to the client that indicates that the compositor can
-       handle a cursor surface from the client without actually compositing.
-       This may be because of a hardware cursor plane or some other mechanism.
-       If the compositor does not advertise this capability then setting
-       wl_pointer.cursor may degrade performance or be ignored entirely.  If
-       CURSOR_PLANE is not advertised, it is recommended that the client draw
-       its own cursor and set wl_pointer.cursor(NULL).
-      </description>
-      <entry name="arbitrary_modes" value="1" summary="compositor is capable of almost any output mode"/>
-      <entry name="cursor_plane" value="2" summary="compositor has a seperate cursor plane"/>
-    </enum>
-
-    <event name="capability">
-      <description summary="advertises a capability of the compositor">
-       Advertises a single capability of the compositor.
-
-       When the wl_fullscreen_shell interface is bound, this event is emitted
-       once for each capability advertised.  Valid capabilities are given by
-       the wl_fullscreen_shell.capability enum.  If clients want to take
-       advantage of any of these capabilities, they should use a
-       wl_display.sync request immediately after binding to ensure that they
-       receive all the capability events.
-      </description>
-      <arg name="capabilty" type="uint"/>
-    </event>
-
-    <enum name="present_method">
-      <description summary="different method to set the surface fullscreen">
-       Hints to indicate to the compositor how to deal with a conflict
-       between the dimensions of the surface and the dimensions of the
-       output. The compositor is free to ignore this parameter.
-      </description>
-      <entry name="default" value="0" summary="no preference, apply default policy"/>
-      <entry name="center" value="1" summary="center the surface on the output"/>
-      <entry name="zoom" value="2" summary="scale the surface, preserving aspect ratio, to the largest size that will fit on the output" />
-      <entry name="zoom_crop" value="3" summary="scale the surface, preserving aspect ratio, to fully fill the output cropping if needed" />
-      <entry name="stretch" value="4" summary="scale the surface to the size of the output ignoring aspect ratio" />
-    </enum>
-
-    <request name="present_surface">
-      <description summary="present surface for display">
-       Present a surface on the given output.
-
-       If the output is null, the compositor will present the surface on
-       whatever display (or displays) it thinks best.  In particular, this
-       may replace any or all surfaces currently presented so it should
-       not be used in combination with placing surfaces on specific
-       outputs.
-
-       The method parameter is a hint to the compositor for how the surface
-       is to be presented.  In particular, it tells the compositor how to
-       handle a size mismatch between the presented surface and the
-       output.  The compositor is free to ignore this parameter.
-
-       The "zoom", "zoom_crop", and "stretch" methods imply a scaling
-       operation on the surface.  This will override any kind of output
-       scaling, so the buffer_scale property of the surface is effectively
-       ignored.
-      </description>
-      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
-      <arg name="method" type="uint"/>
-      <arg name="output" type="object" interface="wl_output" allow-null="true"/>
-    </request>
-
-    <request name="present_surface_for_mode">
-      <description summary="present surface for display at a particular mode">
-       Presents a surface on the given output for a particular mode.
-
-       If the current size of the output differs from that of the surface,
-       the compositor will attempt to change the size of the output to
-       match the surface.  The result of the mode-switch operation will be
-       returned via the provided wl_fullscreen_shell_mode_feedback object.
-
-       If the current output mode matches the one requested or if the
-       compositor successfully switches the mode to match the surface,
-       then the mode_successful event will be sent and the output will
-       contain the contents of the given surface.  If the compositor
-       cannot match the output size to the surface size, the mode_failed
-       will be sent and the output will contain the contents of the
-       previously presented surface (if any).  If another surface is
-       presented on the given output before either of these has a chance
-       to happen, the present_cancelled event will be sent.
-
-       Due to race conditions and other issues unknown to the client, no
-       mode-switch operation is guaranteed to succeed.  However, if the
-       mode is one advertised by wl_output.mode or if the compositor
-       advertises the ARBITRARY_MODES capability, then the client should
-       expect that the mode-switch operation will usually succeed.
-
-       If the size of the presented surface changes, the resulting output
-       is undefined.  The compositor may attempt to change the output mode
-       to compensate.  However, there is no guarantee that a suitable mode
-       will be found and the client has no way to be notified of success
-       or failure.
-
-       The framerate parameter specifies the desired framerate for the
-       output in mHz.  The compositor is free to ignore this parameter.  A
-       value of 0 indicates that the client has no preference.
-
-       If the value of wl_output.scale differs from wl_surface.buffer_scale,
-       then the compositor may choose a mode that matches either the buffer
-       size or the surface size.  In either case, the surface will fill the
-       output.
-      </description>
-      <arg name="surface" type="object" interface="wl_surface"/>
-      <arg name="output" type="object" interface="wl_output"/>
-      <arg name="framerate" type="int"/>
-      <arg name="feedback" type="new_id" interface="_wl_fullscreen_shell_mode_feedback"/>
-    </request>
-
-    <enum name="error">
-      <description summary="wl_fullscreen_shell error values">
-       These errors can be emitted in response to wl_fullscreen_shell requests
-      </description>
-      <entry name="invalid_method" value="0" summary="present_method is not known"/>
-    </enum>
-  </interface>
-
-  <interface name="_wl_fullscreen_shell_mode_feedback" version="1">
-    <event name="mode_successful">
-      <description summary="mode switch succeeded">
-       This event indicates that the attempted mode switch operation was
-       successful.  A surface of the size requested in the mode switch
-       will fill the output without scaling.
-
-       Upon receiving this event, the client should destroy the
-       wl_fullscreen_shell_mode_feedback object.
-      </description>
-    </event>
-    <event name="mode_failed">
-      <description summary="mode switch failed">
-       This event indicates that the attempted mode switch operation
-       failed. This may be because the requested output mode is not
-       possible or it may mean that the compositor does not want to allow it.
-
-       Upon receiving this event, the client should destroy the
-       wl_fullscreen_shell_mode_feedback object.
-      </description>
-    </event>
-    <event name="present_cancelled">
-      <description summary="mode switch cancelled">
-       This event indicates that the attempted mode switch operation was
-       cancelled.  Most likely this is because the client requested a
-       second mode switch before the first one completed.
-
-       Upon receiving this event, the client should destroy the
-       wl_fullscreen_shell_mode_feedback object.
-      </description>
-    </event>
-  </interface>
-</protocol>
diff --git a/protocol/input-method.xml b/protocol/input-method.xml
deleted file mode 100644 (file)
index fb28774..0000000
+++ /dev/null
@@ -1,413 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<protocol name="input_method">
-  <copyright>
-    Copyright Â© 2012, 2013 Intel Corporation
-
-    Permission to use, copy, modify, distribute, and sell this
-    software and its documentation for any purpose is hereby granted
-    without fee, provided that the above copyright notice appear in
-    all copies and that both that copyright notice and this permission
-    notice appear in supporting documentation, and that the name of
-    the copyright holders not be used in advertising or publicity
-    pertaining to distribution of the software without specific,
-    written prior permission.  The copyright holders make no
-    representations about the suitability of this software for any
-    purpose.  It is provided "as is" without express or implied
-    warranty.
-
-    THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-    SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-    FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-    SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-    AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-    ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-    THIS SOFTWARE.
-  </copyright>
-
-  <interface name="wl_input_method_context" version="1">
-    <description summary="input method context">
-      Corresponds to a text input on input method side. An input method context
-      is created on text input activation on the input method side. It allows to
-      receive information about the text input from the application via events.
-      Input method contexts do not keep state after deactivation and should be
-      destroyed after deactivation is handled.
-
-      Text is generally UTF-8 encoded, indices and lengths are in bytes.
-
-      Serials are used to synchronize the state between the text input and
-      an input method. New serials are sent by the text input in the
-      commit_state request and are used by the input method to indicate
-      the known text input state in events like preedit_string, commit_string,
-      and keysym. The text input can then ignore events from the input method
-      which are based on an outdated state (for example after a reset).
-    </description>
-    <request name="destroy" type="destructor"/>
-    <request name="commit_string">
-      <description summary="commit string">
-        Send the commit string text for insertion to the application.
-
-        The text to commit could be either just a single character after a key
-        press or the result of some composing (pre-edit). It could be also an
-        empty text when some text should be removed (see
-        delete_surrounding_text) or when the input cursor should be moved (see
-        cursor_position).
-
-        Any previously set composing text will be removed.
-      </description>
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-      <arg name="text" type="string"/>
-    </request>
-    <request name="preedit_string">
-      <description summary="pre-edit string">
-        Send the pre-edit string text to the application text input.
-
-        The commit text can be used to replace the preedit text on reset (for
-        example on unfocus).
-
-        Also previously sent preedit_style and preedit_cursor requests are
-        processed bt the text_input also.
-      </description>
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-      <arg name="text" type="string"/>
-      <arg name="commit" type="string"/>
-    </request>
-    <request name="preedit_styling">
-      <description summary="pre-edit styling">
-        Set styling information on composing text. The style is applied for
-        length in bytes from index relative to the beginning of the composing
-        text (as byte offset). Multiple styles can be applied to a composing
-        text.
-
-        This request should be sent before sending preedit_string request.
-      </description>
-      <arg name="index" type="uint"/>
-      <arg name="length" type="uint"/>
-      <arg name="style" type="uint"/>
-    </request>
-    <request name="preedit_cursor">
-      <description summary="pre-edit cursor">
-        Set the cursor position inside the composing text (as byte offset)
-        relative to the start of the composing text.
-
-        When index is negative no cursor should be displayed.
-
-        This request should be sent before sending preedit_string request.
-      </description>
-      <arg name="index" type="int"/>
-    </request>
-    <request name="delete_surrounding_text">
-      <description summary="delete text">
-        This request will be handled on text_input side as part of a directly
-        following commit_string request.
-      </description>
-      <arg name="index" type="int"/>
-      <arg name="length" type="uint"/>
-    </request>
-    <request name="cursor_position">
-      <description summary="set cursor to a new position">
-        Set the cursor and anchor to a new position. Index is the new cursor
-        position in bytes (when >= 0 relative to the end of inserted text
-        else relative to beginning of inserted text). Anchor is the new anchor
-        position in bytes (when >= 0 relative to the end of inserted text, else
-        relative to beginning of inserted text). When there should be no
-        selected text anchor should be the same as index.
-
-        This request will be handled on text_input side as part of a directly
-        following commit_string request.
-      </description>
-      <arg name="index" type="int"/>
-      <arg name="anchor" type="int"/>
-    </request>
-    <request name="modifiers_map">
-      <arg name="map" type="array"/>
-    </request>
-    <request name="keysym">
-      <description summary="keysym">
-        Notify when a key event was sent. Key events should not be used for
-        normal text input operations, which should be done with commit_string,
-        delete_surrounding_text, etc. The key event follows the wl_keyboard key
-        event convention. Sym is an XKB keysym, state is a wl_keyboard key_state.
-      </description>
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-      <arg name="time" type="uint"/>
-      <arg name="sym" type="uint"/>
-      <arg name="state" type="uint"/>
-      <arg name="modifiers" type="uint"/>
-    </request>
-    <request name="grab_keyboard">
-      <description summary="grab hardware keyboard">
-        Allow an input method to receive hardware keyboard input and process
-        key events to generate text events (with pre-edit) over the wire. This
-        allows input methods which compose multiple key events for inputting
-        text like it is done for CJK languages.
-      </description>
-       <arg name="keyboard" type="new_id" interface="wl_keyboard"/>
-    </request>
-    <request name="key">
-      <description summary="forward key event">
-        Should be used when filtering key events with grab_keyboard.
-
-        When the wl_keyboard::key event is not processed by the input
-        method itself and should be sent to the client instead, forward it
-        with this request. The arguments should be the ones from the
-        wl_keyboard::key event.
-
-        For generating custom key events use the keysym request instead.
-      </description>
-      <arg name="serial" type="uint" summary="serial from wl_keyboard::key"/>
-      <arg name="time" type="uint" summary="time from wl_keyboard::key"/>
-      <arg name="key" type="uint" summary="key from wl_keyboard::key"/>
-      <arg name="state" type="uint" summary="state from wl_keyboard::key"/>
-    </request>
-    <request name="modifiers">
-      <description summary="forward modifiers event">
-        Should be used when filtering key events with grab_keyboard.
-
-        When the wl_keyboard::modifiers event should be also send to the
-        client, forward it with this request. The arguments should be the ones
-        from the wl_keyboard::modifiers event.
-      </description>
-      <arg name="serial" type="uint" summary="serial from wl_keyboard::modifiers"/>
-      <arg name="mods_depressed" type="uint" summary="mods_depressed from wl_keyboard::modifiers"/>
-      <arg name="mods_latched" type="uint" summary="mods_latched from wl_keyboard::modifiers"/>
-      <arg name="mods_locked" type="uint" summary="mods_locked from wl_keyboard::modifiers"/>
-      <arg name="group" type="uint" summary="group from wl_keyboard::modifiers"/>
-    </request>
-    <request name="language">
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-      <arg name="language" type="string"/>
-    </request>
-    <request name="text_direction">
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-      <arg name="direction" type="uint"/>
-    </request>
-    <request name="selection_region">
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-      <arg name="start" type="int"/>
-      <arg name="end" type="int"/>
-    </request>
-    <request name="private_command">
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-      <arg name="command" type="string"/>
-    </request>
-    <request name="update_input_panel_data">
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-      <arg name="input_panel_data" type="string"/>
-      <arg name="input_panel_data_length" type="uint"/>
-    </request>
-    <request name="hide_input_panel">
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-    </request>
-    <request name="get_selection_text">
-      <arg name="fd" type="fd"/>
-    </request>
-    <request name="get_surrounding_text">
-      <arg name="maxlen_before" type="uint"/>
-      <arg name="maxlen_after" type="uint"/>
-      <arg name="fd" type="fd"/>
-    </request>
-    <request name="filter_key_event_done">
-      <arg name="serial" type="uint"/>
-      <arg name="state" type="uint"/>
-    </request>
-    <request name="update_ise_geometry">
-      <arg name="serial" type="uint"/>
-      <arg name="x" type="uint"/>
-      <arg name="y" type="uint"/>
-      <arg name="width" type="uint"/>
-      <arg name="height" type="uint"/>
-    </request>
-    <request name="recapture_string">
-      <description summary="recapture string">
-        Send the recapture string text to the application text input.
-      </description>
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-      <arg name="index" type="int"/>
-      <arg name="length" type="uint"/>
-      <arg name="preedit" type="string"/>
-      <arg name="preedit_commit" type="string"/>
-      <arg name="commit" type="string"/>
-    </request>
-    <request name="input_panel_event">
-      <description summary="input panel event">
-        Send the input panel event.
-      </description>
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-      <arg name="event_type" type="uint"/>
-      <arg name="value" type="uint"/>
-    </request>
-    <request name="commit_content">
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-      <arg name="content" type="string"/>
-      <arg name="description" type="string"/>
-      <arg name="mime_types" type="string"/>
-    </request>
-    <request name="update_candidate_state">
-      <arg name="state" type="uint"/>
-    </request>
-    <event name="reset">
-    </event>
-    <event name="content_type">
-      <arg name="hint" type="uint"/>
-      <arg name="purpose" type="uint"/>
-    </event>
-    <event name="invoke_action">
-      <arg name="button" type="uint"/>
-      <arg name="index" type="uint"/>
-    </event>
-    <event name="commit_state">
-      <arg name="serial" type="uint" summary="serial of text input state"/>
-    </event>
-    <event name="preferred_language">
-      <arg name="language" type="string"/>
-    </event>
-    <event name="return_key_type">
-      <arg name="return_key_type" type="uint"/>
-    </event>
-    <event name="return_key_disabled">
-      <arg name="return_key_disabled" type="uint"/>
-    </event>
-    <event name="input_panel_data">
-      <arg name="input_panel_data" type="string"/>
-      <arg name="input_panel_data_length" type="uint"/>
-    </event>
-    <event name="bidi_direction">
-      <arg name="direction" type="uint"/>
-    </event>
-    <event name="cursor_position">
-      <arg name="cursor_position" type="uint"/>
-    </event>
-    <event name="process_input_device_event">
-      <description summary="request to process unconventional input device event">
-        Deliver unconventional input device events that need to be processed by input panel
-      </description>
-      <arg name="event_type" type="uint"/>
-      <arg name="event_data" type="string"/>
-      <arg name="event_length" type="uint"/>
-    </event>
-    <event name="filter_key_event">
-      <description summary="input panel data">
-        Request to filter key event via input method
-      </description>
-      <arg name="serial" type="uint"/>
-      <arg name="time" type="uint"/>
-      <arg name="keyname" type="string"/>
-      <arg name="state" type="uint"/>
-      <arg name="modifiers" type="uint"/>
-      <arg name="dev_name" type="string"/>
-      <arg name="dev_class" type="uint"/>
-      <arg name="dev_subclass" type="uint"/>
-    </event>
-    <event name="capital_mode">
-      <arg name="mode" type="uint"/>
-    </event>
-    <event name="prediction_hint">
-      <arg name="text" type="string"/>
-    </event>
-    <event name="mime_type">
-      <arg name="type" type="string"/>
-    </event>
-    <event name="finalized_content">
-      <arg name="text" type="string"/>
-      <arg name="cursor_position" type="uint"/>
-    </event>
-    <event name="prediction_hint_data">
-      <arg name="key" type="string"/>
-      <arg name="value" type="string"/>
-    </event>
-  </interface>
-
-  <interface name="wl_input_method" version="1">
-    <description summary="input method">
-      An input method object is responsible for composing text in response to
-      input from hardware or virtual keyboards. There is one input method
-      object per seat. On activate there is a new input method context object
-      created which allows the input method to communicate with the text input.
-    </description>
-    <event name="activate">
-      <description summary="activate event">
-        A text input was activated. Creates an input method context object
-        which allows communication with the text input.
-      </description>
-      <arg name="id" type="new_id" interface="wl_input_method_context"/>
-      <arg name="text_input_id" type="uint"/>
-      <arg name="focus_in_event" type="uint"/>
-    </event>
-    <event name="deactivate">
-      <description summary="deactivate event">
-        The text input corresponding to the context argument was deactivated.
-        The input method context should be destroyed after deactivation is
-        handled.
-      </description>
-      <arg name="context" type="object" interface="wl_input_method_context"/>
-      <arg name="focus_out_event" type="uint"/>
-    </event>
-    <event name="show_input_panel">
-      <description summary="show input panel event">
-        Input panel (virtual keyboard) was requested to show.
-      </description>
-      <arg name="context" type="object" interface="wl_input_method_context"/>
-    </event>
-    <event name="hide_input_panel">
-      <description summary="hide input panel event">
-        Input panel (virtual keyboard) was requested to hide.
-      </description>
-      <arg name="context" type="object" interface="wl_input_method_context"/>
-    </event>
-  </interface>
-
-  <interface name="wl_input_panel" version="1">
-    <description summary="interface for implementing keyboards">
-      Only one client can bind this interface at a time.
-    </description>
-
-    <request name="get_input_panel_surface">
-      <arg name="id" type="new_id" interface="wl_input_panel_surface"/>
-      <arg name="surface" type="object" interface="wl_surface"/>
-    </request>
-  </interface>
-
-  <interface name="wl_input_panel_surface" version="1">
-    <enum name="position">
-      <entry name="center_bottom" value="0"/>
-    </enum>
-
-    <request name="set_toplevel">
-      <description summary="set the surface type as a keyboard">
-        A keyboard surface is only shown, when a text input is active.
-      </description>
-      <arg name="output" type="object" interface="wl_output"/>
-      <arg name="position" type="uint"/>
-    </request>
-
-    <request name="set_overlay_panel">
-      <description summary="set the surface type as an overlay panel">
-        An overlay panel is shown near the input cursor above the application
-        window when a text input is active.
-      </description>
-    </request>
-
-    <request name="set_ready">
-      <description summary="set the current state of the keyboard surface as a ready state">
-        A keyboard surface needs to be shown after rendering the first frame is completed.
-        Otherwise, the keyboard surface that contains inappropriate layout will be displayed.
-      </description>
-      <arg name="state" type="uint"/>
-    </request>
-
-    <request name="set_floating_panel">
-      <description summary="set the panel type as a floating panel">
-        A Keyboard surface is shown as a floating panel type.
-      </description>
-      <arg name="state" type="uint"/>
-    </request>
-
-    <request name="set_floating_drag_enabled">
-      <description summary="set floating drag enabled">
-        Set the permission to move floating panel.
-      </description>
-      <arg name="enabled" type="uint"/>
-    </request>
-  </interface>
-</protocol>
diff --git a/protocol/scaler.xml b/protocol/scaler.xml
deleted file mode 100644 (file)
index 9642af2..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<protocol name="scaler">
-
-  <copyright>
-    Copyright Â© 2013-2014 Collabora, Ltd.
-
-    Permission to use, copy, modify, distribute, and sell this
-    software and its documentation for any purpose is hereby granted
-    without fee, provided that the above copyright notice appear in
-    all copies and that both that copyright notice and this permission
-    notice appear in supporting documentation, and that the name of
-    the copyright holders not be used in advertising or publicity
-    pertaining to distribution of the software without specific,
-    written prior permission.  The copyright holders make no
-    representations about the suitability of this software for any
-    purpose.  It is provided "as is" without express or implied
-    warranty.
-
-    THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-    SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-    FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-    SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-    AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-    ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-    THIS SOFTWARE.
-  </copyright>
-
-  <interface name="wl_scaler" version="2">
-    <description summary="surface cropping and scaling">
-      The global interface exposing surface cropping and scaling
-      capabilities is used to instantiate an interface extension for a
-      wl_surface object. This extended interface will then allow
-      cropping and scaling the surface contents, effectively
-      disconnecting the direct relationship between the buffer and the
-      surface size.
-    </description>
-
-    <request name="destroy" type="destructor">
-      <description summary="unbind from the cropping and scaling interface">
-       Informs the server that the client will not be using this
-       protocol object anymore. This does not affect any other objects,
-       wl_viewport objects included.
-      </description>
-    </request>
-
-    <enum name="error">
-      <entry name="viewport_exists" value="0"
-             summary="the surface already has a viewport object associated"/>
-    </enum>
-
-    <request name="get_viewport">
-      <description summary="extend surface interface for crop and scale">
-       Instantiate an interface extension for the given wl_surface to
-       crop and scale its content. If the given wl_surface already has
-       a wl_viewport object associated, the viewport_exists
-       protocol error is raised.
-      </description>
-
-      <arg name="id" type="new_id" interface="wl_viewport"
-           summary="the new viewport interface id"/>
-      <arg name="surface" type="object" interface="wl_surface"
-           summary="the surface"/>
-    </request>
-  </interface>
-
-  <interface name="wl_viewport" version="2">
-    <description summary="crop and scale interface to a wl_surface">
-      An additional interface to a wl_surface object, which allows the
-      client to specify the cropping and scaling of the surface
-      contents.
-
-      This interface allows to define the source rectangle (src_x,
-      src_y, src_width, src_height) from where to take the wl_buffer
-      contents, and scale that to destination size (dst_width,
-      dst_height). This state is double-buffered, and is applied on the
-      next wl_surface.commit.
-
-      The two parts of crop and scale state are independent: the source
-      rectangle, and the destination size. Initially both are unset, that
-      is, no scaling is applied. The whole of the current wl_buffer is
-      used as the source, and the surface size is as defined in
-      wl_surface.attach.
-
-      If the destination size is set, it causes the surface size to become
-      dst_width, dst_height. The source (rectangle) is scaled to exactly
-      this size. This overrides whatever the attached wl_buffer size is,
-      unless the wl_buffer is NULL. If the wl_buffer is NULL, the surface
-      has no content and therefore no size. Otherwise, the size is always
-      at least 1x1 in surface coordinates.
-
-      If the source rectangle is set, it defines what area of the
-      wl_buffer is taken as the source. If the source rectangle is set and
-      the destination size is not set, the surface size becomes the source
-      rectangle size rounded up to the nearest integer. If the source size
-      is already exactly integers, this results in cropping without scaling.
-
-      The coordinate transformations from buffer pixel coordinates up to
-      the surface-local coordinates happen in the following order:
-        1. buffer_transform (wl_surface.set_buffer_transform)
-        2. buffer_scale (wl_surface.set_buffer_scale)
-        3. crop and scale (wl_viewport.set*)
-      This means, that the source rectangle coordinates of crop and scale
-      are given in the coordinates after the buffer transform and scale,
-      i.e. in the coordinates that would be the surface-local coordinates
-      if the crop and scale was not applied.
-
-      If the source rectangle is partially or completely outside of the
-      wl_buffer, then the surface contents are undefined (not void), and
-      the surface size is still dst_width, dst_height.
-
-      The x, y arguments of wl_surface.attach are applied as normal to
-      the surface. They indicate how many pixels to remove from the
-      surface size from the left and the top. In other words, they are
-      still in the surface-local coordinate system, just like dst_width
-      and dst_height are.
-
-      If the wl_surface associated with the wl_viewport is destroyed,
-      the wl_viewport object becomes inert.
-
-      If the wl_viewport object is destroyed, the crop and scale
-      state is removed from the wl_surface. The change will be applied
-      on the next wl_surface.commit.
-    </description>
-
-    <request name="destroy" type="destructor">
-      <description summary="remove scaling and cropping from the surface">
-       The associated wl_surface's crop and scale state is removed.
-       The change is applied on the next wl_surface.commit.
-      </description>
-    </request>
-
-    <enum name="error">
-      <entry name="bad_value" value="0"
-             summary="negative or zero values in width or height"/>
-    </enum>
-
-    <request name="set">
-      <description summary="set the crop and scale state">
-       Set both source rectangle and destination size of the associated
-       wl_surface. See wl_viewport for the description, and relation to
-       the wl_buffer size.
-
-       The bad_value protocol error is raised if src_width or
-       src_height is negative, or if dst_width or dst_height is not
-       positive.
-
-       The crop and scale state is double-buffered state, and will be
-       applied on the next wl_surface.commit.
-
-       Arguments dst_x and dst_y do not exist here, use the x and y
-       arguments to wl_surface.attach. The x, y, dst_width, and dst_height
-       define the surface-local coordinate system irrespective of the
-       attached wl_buffer size.
-      </description>
-
-      <arg name="src_x" type="fixed" summary="source rectangle x"/>
-      <arg name="src_y" type="fixed" summary="source rectangle y"/>
-      <arg name="src_width" type="fixed" summary="source rectangle width"/>
-      <arg name="src_height" type="fixed" summary="source rectangle height"/>
-      <arg name="dst_width" type="int" summary="surface width"/>
-      <arg name="dst_height" type="int" summary="surface height"/>
-    </request>
-
-    <request name="set_source" since="2">
-      <description summary="set the source rectangle for cropping">
-       Set the source rectangle of the associated wl_surface. See
-       wl_viewport for the description, and relation to the wl_buffer
-       size.
-
-       If width is -1.0 and height is -1.0, the source rectangle is unset
-       instead. Any other pair of values for width and height that
-       contains zero or negative values raises the bad_value protocol
-       error.
-
-       The crop and scale state is double-buffered state, and will be
-       applied on the next wl_surface.commit.
-      </description>
-
-      <arg name="x" type="fixed" summary="source rectangle x"/>
-      <arg name="y" type="fixed" summary="source rectangle y"/>
-      <arg name="width" type="fixed" summary="source rectangle width"/>
-      <arg name="height" type="fixed" summary="source rectangle height"/>
-    </request>
-
-    <request name="set_destination" since="2">
-      <description summary="set the surface size for scaling">
-       Set the destination size of the associated wl_surface. See
-       wl_viewport for the description, and relation to the wl_buffer
-       size.
-
-       If width is -1 and height is -1, the destination size is unset
-       instead. Any other pair of values for width and height that
-       contains zero or negative values raises the bad_value protocol
-       error.
-
-       The crop and scale state is double-buffered state, and will be
-       applied on the next wl_surface.commit.
-
-       Arguments x and y do not exist here, use the x and y arguments to
-       wl_surface.attach. The x, y, width, and height define the
-       surface-local coordinate system irrespective of the attached
-       wl_buffer size.
-      </description>
-
-      <arg name="width" type="int" summary="surface width"/>
-      <arg name="height" type="int" summary="surface height"/>
-    </request>
-  </interface>
-</protocol>
diff --git a/protocol/screenshooter.xml b/protocol/screenshooter.xml
deleted file mode 100644 (file)
index 76e3c85..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<protocol name="screenshooter">
-
-  <interface name="screenshooter" version="1">
-    <request name="shoot">
-      <arg name="output" type="object" interface="wl_output"/>
-      <arg name="buffer" type="object" interface="wl_buffer"/>
-    </request>
-    <event name="done">
-    </event>
-  </interface>
-
-</protocol>
diff --git a/protocol/text-cursor-position.xml b/protocol/text-cursor-position.xml
deleted file mode 100644 (file)
index 0fbc54e..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<protocol name="text_cursor_position">
-
-  <interface name="text_cursor_position" version="1">
-    <request name="notify">
-      <arg name="surface" type="object" interface="wl_surface"/>
-      <arg name="x" type="fixed"/>
-      <arg name="y" type="fixed"/>
-    </request>
-  </interface>
-
-</protocol>
diff --git a/protocol/text.xml b/protocol/text.xml
deleted file mode 100644 (file)
index 662c44d..0000000
+++ /dev/null
@@ -1,551 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<protocol name="text">
-
-  <copyright>
-    Copyright Â© 2012, 2013 Intel Corporation
-
-    Permission to use, copy, modify, distribute, and sell this
-    software and its documentation for any purpose is hereby granted
-    without fee, provided that the above copyright notice appear in
-    all copies and that both that copyright notice and this permission
-    notice appear in supporting documentation, and that the name of
-    the copyright holders not be used in advertising or publicity
-    pertaining to distribution of the software without specific,
-    written prior permission.  The copyright holders make no
-    representations about the suitability of this software for any
-    purpose.  It is provided "as is" without express or implied
-    warranty.
-
-    THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-    SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-    FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-    SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-    AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-    ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-    THIS SOFTWARE.
-  </copyright>
-
-  <interface name="wl_text_input" version="1">
-    <description summary="text input">
-      An object used for text input. Adds support for text input and input
-      methods to applications. A text_input object is created from a
-      wl_text_input_manager and corresponds typically to a text entry in an
-      application.
-
-      Requests are used to activate/deactivate the text_input object and set
-      state information like surrounding and selected text or the content type.
-      The information about entered text is sent to the text_input object via
-      the pre-edit and commit events. Using this interface removes the need
-      for applications to directly process hardware key events and compose text
-      out of them.
-
-      Text is generally UTF-8 encoded, indices and lengths are in bytes.
-
-      Serials are used to synchronize the state between the text input and
-      an input method. New serials are sent by the text input in the
-      commit_state request and are used by the input method to indicate
-      the known text input state in events like preedit_string, commit_string,
-      and keysym. The text input can then ignore events from the input method
-      which are based on an outdated state (for example after a reset).
-    </description>
-    <request name="destroy" type="destructor"/>
-    <request name="activate">
-      <description summary="request activation">
-        Requests the text_input object to be activated (typically when the
-        text entry gets focus).
-        The seat argument is a wl_seat which maintains the focus for this
-        activation. The surface argument is a wl_surface assigned to the
-        text_input object and tracked for focus lost. The enter event
-        is emitted on successful activation.
-      </description>
-      <arg name="seat" type="object" interface="wl_seat"/>
-      <arg name="surface" type="object" interface="wl_surface"/>
-    </request>
-    <request name="deactivate">
-      <description summary="request deactivation">
-        Requests the text_input object to be deactivated (typically when the
-        text entry lost focus). The seat argument is a wl_seat which was used
-        for activation.
-      </description>
-      <arg name="seat" type="object" interface="wl_seat"/>
-    </request>
-    <request name="show_input_panel">
-      <description summary="show input panels">
-        Requests input panels (virtual keyboard) to show.
-      </description>
-    </request>
-    <request name="hide_input_panel">
-      <description summary="hide input panels">
-        Requests input panels (virtual keyboard) to hide.
-      </description>
-    </request>
-    <request name="reset">
-      <description summary="reset">
-        Should be called by an editor widget when the input state should be
-        reset, for example after the text was changed outside of the normal
-        input method flow.
-      </description>
-    </request>
-    <enum name="content_hint">
-      <description summary="content hint">
-        Content hint is a bitmask to allow to modify the behavior of the text
-        input.
-      </description>
-      <entry name="none" value="0x0" summary="no special behaviour"/>
-      <entry name="default" value="0x7" summary="auto completion, correction and capitalization"/>
-      <entry name="password" value="0xc0" summary="hidden and sensitive text"/>
-      <entry name="auto_completion" value="0x1" summary="suggest word completions"/>
-      <entry name="auto_correction" value="0x2" summary="suggest word corrections"/>
-      <entry name="auto_capitalization" value="0x4" summary="switch to uppercase letters at the start of a sentence"/>
-      <entry name="lowercase" value="0x8" summary="prefer lowercase letters"/>
-      <entry name="uppercase" value="0x10" summary="prefer uppercase letters"/>
-      <entry name="titlecase" value="0x20" summary="prefer casing for titles and headings (can be language dependent)"/>
-      <entry name="hidden_text" value="0x40" summary="characters should be hidden"/>
-      <entry name="sensitive_data" value="0x80" summary="typed text should not be stored"/>
-      <entry name="latin" value="0x100" summary="just latin characters should be entered"/>
-      <entry name="multiline" value="0x200" summary="the text input is multiline"/>
-      <entry name="word_capitalization" value="0x400" summary="switch to uppercase letters at the start of a word"/>
-      <entry name="autofill_credit_card_expiration_date" value="0x10000" summary="autofilled with credit card expiration date"/>
-      <entry name="autofill_credit_card_expiration_day" value="0x20000" summary="autofilled with credit card expiration day"/>
-      <entry name="autofill_credit_card_expiration_month" value="0x30000" summary="autofilled with credit card expiration month"/>
-      <entry name="autofill_credit_card_expiration_year" value="0x40000" summary="autofilled with credit card expiration year"/>
-      <entry name="autofill_credit_card_number" value="0x50000" summary="autofilled with credit card number"/>
-      <entry name="autofill_credit_card_security_code" value="0x60000" summary="autofilled with credit card security code"/>
-      <entry name="autofill_email_address" value="0x70000" summary="autofilled with email address"/>
-      <entry name="autofill_phone" value="0x80000" summary="autofilled with phone number"/>
-      <entry name="autofill_postal_address" value="0x90000" summary="autofilled with postal address"/>
-      <entry name="autofill_postal_code" value="0xA0000" summary="autofilled with postal code"/>
-      <entry name="autofill_id" value="0xB0000" summary="autofilled with id"/>
-      <entry name="autofill_name" value="0xC0000" summary="autofilled with name"/>
-    </enum>
-    <enum name="content_purpose">
-      <description summary="content purpose">
-        The content purpose allows to specify the primary purpose of a text
-        input.
-
-        This allows an input method to show special purpose input panels with
-        extra characters or to disallow some characters.
-      </description>
-      <entry name="normal" value="0" summary="default input, allowing all characters"/>
-      <entry name="alpha" value="1" summary="allow only alphabetic characters"/>
-      <entry name="digits" value="2" summary="allow only digits"/>
-      <entry name="number" value="3" summary="input a number (including decimal separator and sign)"/>
-      <entry name="phone" value="4" summary="input a phone number"/>
-      <entry name="url" value="5" summary="input an URL"/>
-      <entry name="email" value="6" summary="input an email address"/>
-      <entry name="name" value="7" summary="input a name of a person"/>
-      <entry name="password" value="8" summary="input a password (combine with password or sensitive_data hint)"/>
-      <entry name="date" value="9" summary="input a date"/>
-      <entry name="time" value="10" summary="input a time"/>
-      <entry name="datetime" value="11" summary="input a date and time"/>
-      <entry name="terminal" value="12" summary="input for a terminal"/>
-      <entry name="ip" value="13" summary="input for a IP (number and a-f for Ipv6)"/>
-      <entry name="emoticon" value="14" summary="input for an emoticon"/>
-      <entry name="digits_signed" value="15" summary="allow digits and negative sign"/>
-      <entry name="digits_decimal" value="16" summary="allow digits and decimal point"/>
-      <entry name="digits_signeddecimal" value="17" summary="allow digits, negative sign and decimal point"/>
-      <entry name="password_digits" value="18" summary="input a password with only digits"/>
-      <entry name="filename" value="19" summary="default input for the name of a file (symbols such as '/' should be disabled)"/>
-      <entry name="hex" value="20" summary="input for a hexadecimal"/>
-      <entry name="voice" value="21" summary="input for a voice"/>
-    </enum>
-    <request name="set_content_type">
-      <description summary="set content purpose and hint">
-        Set the content purpose and content hint. While the purpose is the
-        basic purpose of an input field, the hint flags allow to modify some
-        of the behavior.
-
-        When no content type is explicitly set, a normal content purpose with
-        default hints (auto completion, auto correction, auto capitalization)
-        should be assumed.
-      </description>
-      <arg name="hint" type="uint"/>
-      <arg name="purpose" type="uint"/>
-    </request>
-    <request name="set_cursor_rectangle">
-      <arg name="x" type="int"/>
-      <arg name="y" type="int"/>
-      <arg name="width" type="int"/>
-      <arg name="height" type="int"/>
-    </request>
-    <request name="set_preferred_language">
-      <description summary="set preferred language">
-        Set a specific language. This allows for example a virtual keyboard to
-        show a language specific layout. The "language" argument is an RFC-3066
-        format language tag.
-
-        It could be used for example in a word processor to indicate language of
-        currently edited document or in an instant message application which tracks
-        languages of contacts.
-      </description>
-      <arg name="language" type="string"/>
-    </request>
-    <request name="commit_state">
-      <arg name="serial" type="uint" summary="used to identify the known state"/>
-    </request>
-    <request name="invoke_action">
-      <arg name="button" type="uint"/>
-      <arg name="index" type="uint"/>
-    </request>
-    <enum name="return_key_type">
-      <description summary="return key type">
-        The return key type allows to specify the return key on the input panel.
-      </description>
-      <entry name="default" value="0" summary="default"/>
-      <entry name="done" value="1" summary="done"/>
-      <entry name="go" value="2" summary="go"/>
-      <entry name="join" value="3" summary="join"/>
-      <entry name="login" value="4" summary="login"/>
-      <entry name="next" value="5" summary="next"/>
-      <entry name="search" value="6" summary="search"/>
-      <entry name="send" value="7" summary="send"/>
-    </enum>
-    <request name="set_return_key_type">
-      <description summary="set return key type">
-        Set the return key type.
-      </description>
-      <arg name="return_key_type" type="uint"/>
-    </request>
-    <request name="set_return_key_disabled">
-      <description summary="set return key to be disabled">
-        Set the return key on the input panel to be disabled.
-      </description>
-      <arg name="return_key_disabled" type="uint"/>
-    </request>
-    <request name="set_input_panel_data">
-      <description summary="set input panel data">
-        Set the input panel-specific data to deliver to the input panel.
-      </description>
-      <arg name="input_panel_data" type="string"/>
-      <arg name="input_panel_length" type="uint"/>
-    </request>
-    <request name="bidi_direction">
-      <arg name="direction" type="uint"/>
-    </request>
-    <request name="set_cursor_position">
-      <description summary="set the cursor index">
-        Set the cursor position to the input panel.
-      </description>
-      <arg name="cursor_position" type="uint"/>
-    </request>
-    <request name="process_input_device_event">
-      <description summary="request to process unconventional input device event">
-        Deliver unconventional input device events that need to be processed by input panel
-      </description>
-      <arg name="event_type" type="uint"/>
-      <arg name="event_data" type="string"/>
-      <arg name="event_length" type="uint"/>
-    </request>
-    <request name="filter_key_event">
-      <description summary="input panel data">
-        Filter key event by input method
-      </description>
-      <arg name="serial" type="uint"/>
-      <arg name="time" type="uint"/>
-      <arg name="keyname" type="string"/>
-      <arg name="state" type="uint"/>
-      <arg name="modifiers" type="uint"/>
-      <arg name="dev_name" type="string"/>
-      <arg name="dev_class" type="uint"/>
-      <arg name="dev_subclass" type="uint"/>
-    </request>
-    <request name="get_hide_permission">
-      <description summary="get permission to hide input panel">
-        Get permission to hide input panel.
-      </description>
-    </request>
-    <enum name="capital_mode">
-      <description summary="capital mode">
-        This allows to specify capital mode on the input panel.
-      </description>
-      <entry name="uppercase" value="0" summary="uppercase"/>
-      <entry name="lowercase" value="1" summary="lowercase"/>
-    </enum>
-    <request name="set_capital_mode">
-      <arg name="mode" type="uint"/>
-    </request>
-    <request name="prediction_hint">
-      <description summary="set the prediction hint">
-        Set the prediction hint string to deliver to the input panel.
-      </description>
-      <arg name="text" type="string"/>
-    </request>
-    <request name="set_mime_type">
-      <description summary="set the mime type">
-        Sets the mime type to deliver to the input panel.
-      </description>
-      <arg name="type" type="string"/>
-    </request>
-    <request name="set_input_panel_position">
-      <description summary="set the input panel position">
-        Set the input panel position.
-      </description>
-      <arg name="x" type="uint"/>
-      <arg name="y" type="uint"/>
-    </request>
-    <request name="finalize_content">
-      <description summary="finalize its content">
-        Finalized its content right before losing the focus.
-      </description>
-      <arg name="text" type="string"/>
-      <arg name="cursor_position" type="uint"/>
-    </request>
-    <request name="prediction_hint_data">
-      <description summary="set the prediction hint data">
-        Set the prediction hint data.
-      </description>
-      <arg name="key" type="string"/>
-      <arg name="value" type="string"/>
-    </request>
-    <event name="enter">
-      <description summary="enter event">
-        Notify the text_input object when it received focus. Typically in
-        response to an activate request.
-      </description>
-      <arg name="surface" type="object" interface="wl_surface"/>
-    </event>
-    <event name="leave">
-      <description summary="leave event">
-        Notify the text_input object when it lost focus. Either in response
-        to a deactivate request or when the assigned surface lost focus or was
-        destroyed.
-      </description>
-    </event>
-    <event name="modifiers_map">
-      <description summary="modifiers map">
-        Transfer an array of 0-terminated modifiers names. The position in
-        the array is the index of the modifier as used in the modifiers
-        bitmask in the keysym event.
-      </description>
-      <arg name="map" type="array"/>
-    </event>
-    <enum name="input_panel_state">
-      <entry name="hide" value="0" summary="Notification prior to the dismissal of the input panel"/>
-      <entry name="show" value="1" summary="Notification after the display of the input panel"/>
-    </enum>
-    <event name="input_panel_state">
-      <description summary="state of the input panel">
-        Notify when the visibility state of the input panel changed.
-      </description>
-      <arg name="state" type="uint"/>
-    </event>
-    <event name="preedit_string">
-      <description summary="pre-edit">
-        Notify when a new composing text (pre-edit) should be set around the
-        current cursor position. Any previously set composing text should
-        be removed.
-
-        The commit text can be used to replace the preedit text on reset
-        (for example on unfocus).
-
-        The text input should also handle all preedit_style and preedit_cursor
-        events occurring directly before preedit_string.
-      </description>
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-      <arg name="text" type="string"/>
-      <arg name="commit" type="string"/>
-    </event>
-    <enum name="preedit_style">
-      <entry name="default" value="0" summary="default style for composing text"/>
-      <entry name="none" value="1" summary="style should be the same as in non-composing text"/>
-      <entry name="active" value="2"/>
-      <entry name="inactive" value="3"/>
-      <entry name="highlight" value="4"/>
-      <entry name="underline" value="5"/>
-      <entry name="selection" value="6"/>
-      <entry name="incorrect" value="7"/>
-    </enum>
-    <event name="preedit_styling">
-      <description summary="pre-edit styling">
-        Set styling information on composing text. The style is applied for
-        length bytes from index relative to the beginning of the composing
-        text (as byte offset). Multiple styles can be applied to a composing
-        text by sending multiple preedit_styling events.
-
-        This event is handled as part of a following preedit_string event.
-      </description>
-      <arg name="index" type="uint"/>
-      <arg name="length" type="uint"/>
-      <arg name="style" type="uint"/>
-    </event>
-    <event name="preedit_cursor">
-      <description summary="pre-edit cursor">
-        Set the cursor position inside the composing text (as byte
-        offset) relative to the start of the composing text. When index is a
-        negative number no cursor is shown.
-
-        This event is handled as part of a following preedit_string event.
-      </description>
-      <arg name="index" type="int"/>
-    </event>
-    <event name="commit_string">
-      <description summary="commit">
-        Notify when text should be inserted into the editor widget. The text to
-        commit could be either just a single character after a key press or the
-        result of some composing (pre-edit). It could be also an empty text
-        when some text should be removed (see delete_surrounding_text) or when
-        the input cursor should be moved (see cursor_position).
-
-        Any previously set composing text should be removed.
-      </description>
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-      <arg name="text" type="string"/>
-    </event>
-    <event name="cursor_position">
-      <description summary="set cursor to new position">
-        Notify when the cursor or anchor position should be modified.
-
-        This event should be handled as part of a following commit_string
-        event.
-      </description>
-      <arg name="index" type="int"/>
-      <arg name="anchor" type="int"/>
-    </event>
-    <event name="delete_surrounding_text">
-      <description summary="delete surrounding text">
-        Notify when the text around the current cursor position should be
-        deleted.
-
-        Index is relative to the current cursor (in bytes).
-        Length is the length of deleted text (in bytes).
-
-        This event should be handled as part of a following commit_string
-        event.
-      </description>
-      <arg name="index" type="int"/>
-      <arg name="length" type="uint"/>
-    </event>
-    <event name="keysym">
-      <description summary="keysym">
-        Notify when a key event was sent. Key events should not be used
-        for normal text input operations, which should be done with
-        commit_string, delete_surrounding_text, etc. The key event follows
-        the wl_keyboard key event convention. Sym is a XKB keysym, state a
-        wl_keyboard key_state. Modifiers are a mask for effective modifiers
-        (where the modifier indices are set by the modifiers_map event)
-      </description>
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-      <arg name="time" type="uint"/>
-      <arg name="sym" type="uint"/>
-      <arg name="state" type="uint"/>
-      <arg name="modifiers" type="uint"/>
-    </event>
-    <event name="language">
-      <description summary="language">
-        Set the language of the input text. The "language" argument is an RFC-3066
-        format language tag.
-      </description>
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-      <arg name="language" type="string"/>
-    </event>
-    <enum name="text_direction">
-      <entry name="auto" value="0" summary="automatic text direction based on text and language"/>
-      <entry name="ltr" value="1" summary="left-to-right"/>
-      <entry name="rtl" value="2" summary="right-to-left"/>
-    </enum>
-    <event name="text_direction">
-      <description summary="text direction">
-        Set the text direction of input text.
-
-        It is mainly needed for showing input cursor on correct side of the
-        editor when there is no input yet done and making sure neutral
-        direction text is laid out properly.
-      </description>
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-      <arg name="direction" type="uint"/>
-    </event>
-    <event name="selection_region">
-      <description summary="selection region">
-        Notify when the input panels ask to select the characters
-        from the start cursor position to the end cursor position.
-      </description>
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-      <arg name="start" type="int"/>
-      <arg name="end" type="int"/>
-    </event>
-    <event name="private_command">
-      <description summary="private command">
-        Notify when the input panels ask to send private command
-      </description>
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-      <arg name="command" type="string"/>
-    </event>
-    <event name="input_panel_geometry">
-      <description summary="geometry of the input panel">
-        Notify when the geometry of the input panel changed.
-      </description>
-      <arg name="x" type="uint"/>
-      <arg name="y" type="uint"/>
-      <arg name="width" type="uint"/>
-      <arg name="height" type="uint"/>
-    </event>
-    <event name="input_panel_data">
-      <description summary="input panel data">
-        Notify when the input panels ask to send input panel data
-      </description>
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-      <arg name="input_panel_data" type="string"/>
-      <arg name="input_panel_data_length" type="uint"/>
-    </event>
-    <event name="get_selection_text">
-      <arg name="fd" type="fd"/>
-    </event>
-    <event name="get_surrounding_text">
-      <arg name="maxlen_before" type="uint"/>
-      <arg name="maxlen_after" type="uint"/>
-      <arg name="fd" type="fd"/>
-    </event>
-    <event name="filter_key_event_done">
-      <arg name="serial" type="uint"/>
-      <arg name="state" type="uint"/>
-    </event>
-    <event name="hide_permission">
-      <description summary="permission to hide input panel">
-        Notify whether input panel should be hidden or not.
-      </description>
-      <arg name="response" type="uint"/>
-    </event>
-    <event name="recapture_string">
-      <description summary="recapture">
-        Notify when the existed text should be deleted and a new composing text (pre-edit) or commit string
-        should be set around the current cursor position.
-      </description>
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-      <arg name="index" type="int"/>
-      <arg name="length" type="uint"/>
-      <arg name="preedit" type="string"/>
-      <arg name="preedit_commit" type="string"/>
-      <arg name="commit" type="string"/>
-    </event>
-    <event name="input_panel_event">
-      <description summary="input panel event">
-        Notify when the input panel event is changed
-      </description>
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-      <arg name="event_type" type="uint"/>
-      <arg name="value" type="uint"/>
-    </event>
-    <event name="commit_content">
-      <description summary="commit content">
-        Notify when the input panel wants to commit a content
-      </description>
-      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
-      <arg name="content" type="string"/>
-      <arg name="description" type="string"/>
-      <arg name="mime_types" type="string"/>
-    </event>
-  </interface>
-
-  <interface name="wl_text_input_manager" version="1">
-    <description summary="text input manager">
-      A factory for text_input objects. This object is a global singleton.
-    </description>
-    <request name="create_text_input">
-      <description summary="create text input">
-        Creates a new text_input object.
-      </description>
-      <arg name="id" type="new_id" interface="wl_text_input"/>
-    </request>
-  </interface>
-</protocol>
diff --git a/protocol/tizen-extension.xml b/protocol/tizen-extension.xml
deleted file mode 100644 (file)
index 960c73e..0000000
+++ /dev/null
@@ -1,1591 +0,0 @@
-<protocol name="tizen_extension">
-  <interface name="tizen_surface" version="1">
-    <request name="get_tizen_resource">
-      <arg name="id" type="new_id" interface="tizen_resource" />
-      <arg name="surface" type="object" interface="wl_surface" />
-    </request>
-    <request name="destroy" type="destructor">
-      <description summary="destroy the tizen_surface">
-       Destroy the tizen_surface.
-      </description>
-    </request>
-  </interface>
-
-  <interface name="tizen_resource" version="1">
-    <request name="destroy" type="destructor" />
-
-    <event name="resource_id">
-      <arg name="id" type="uint" />
-    </event>
-  </interface>
-
-  <interface name="tizen_policy" version="7">
-    <request name="get_visibility">
-      <arg name="id" type="new_id" interface="tizen_visibility" summary="new visibility object"/>
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-    </request>
-
-    <request name="get_position">
-      <arg name="id" type="new_id" interface="tizen_position" summary="new position object"/>
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-    </request>
-
-    <request name="activate">
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-    </request>
-
-    <request name="activate_below_by_res_id">
-      <arg name="res_id" type="uint" />
-      <arg name="below_res_id" type="uint" />
-    </request>
-
-    <request name="raise">
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-    </request>
-
-    <request name="lower">
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-    </request>
-
-    <request name="lower_by_res_id">
-      <arg name="res_id" type="uint" />
-    </request>
-
-    <request name="set_focus_skip">
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-    </request>
-
-    <request name="unset_focus_skip">
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-    </request>
-
-    <request name="set_role">
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-      <arg name="role" type="string"/>
-    </request>
-
-    <enum name="win_type">
-      <entry name="none" value="0"/>
-      <entry name="toplevel" value="1"/>
-      <entry name="fullscreen" value="2"/>
-      <entry name="maximized" value="3"/>
-      <entry name="transient" value="4"/>
-      <entry name="menu" value="5"/>
-      <entry name="dnd" value="6"/>
-      <entry name="custom" value="7"/>
-      <entry name="notification" value="8"/>
-      <entry name="utility" value="9"/>
-      <entry name="dialog" value="10"/>
-      <entry name="dock" value="11"/>
-      <entry name="splash" value="12"/>
-    </enum>
-
-    <request name="set_type">
-      <arg name="surface" type="object" interface="wl_surface"/>
-      <arg name="win_type" type="uint" />
-    </request>
-
-    <!-- for conformant -->
-    <request name="set_conformant">
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-    </request>
-
-    <request name="unset_conformant">
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-    </request>
-
-    <request name="get_conformant">
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-    </request>
-
-    <event name="conformant">
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-      <arg name="is_conformant" type="uint"/>
-    </event>
-
-    <enum name="conformant_part">
-      <entry name="indicator" value="0"/>
-      <entry name="keyboard" value="1"/>
-      <entry name="clipboard" value="2"/>
-    </enum>
-
-    <event name="conformant_area">
-       <description summary="Notify of conformant area">
-          Notify of conformant area to client. Sending this event does NOT guarantee
-          perfect compositing of conformant owner client surface and
-          conformant part client surface.
-      </description>
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-      <arg name="conformant_part" type="uint"/>
-      <arg name="state" type="uint"/>
-      <arg name="x" type="int"/>
-      <arg name="y" type="int"/>
-      <arg name="w" type="int"/>
-      <arg name="h" type="int"/>
-    </event>
-
-    <enum name="error_state">
-      <entry name="none" value="0"/>
-      <entry name="permission_denied" value="1"/>
-    </enum>
-
-    <!-- for notification -->
-    <enum name="level">
-      <entry name="1" value="0"/>
-      <entry name="2" value="1"/>
-      <entry name="3" value="2"/>
-      <entry name="none" value="-1"/>
-      <entry name="default" value="10"/>
-      <entry name="medium" value="20"/>
-      <entry name="high" value="30"/>
-      <entry name="top" value="40"/>
-    </enum>
-
-    <request name="set_notification_level">
-      <arg name="surface" type="object" interface="wl_surface"/>
-      <arg name="level" type="int"/>
-    </request>
-
-    <event name="notification_done">
-      <arg name="surface" type="object" interface="wl_surface"/>
-      <arg name="level" type="int"/>
-      <arg name="error_state" type="uint"/>
-    </event>
-
-    <!-- for transient_for -->
-    <request name="set_transient_for">
-      <arg name="child_id" type="uint" />
-      <arg name="parent_id" type="uint" />
-    </request>
-
-    <request name="unset_transient_for">
-      <arg name="child_id" type="uint" />
-    </request>
-
-    <event name="transient_for_done">
-      <arg name="child_id" type="uint"/>
-    </event>
-
-    <!-- for window_screen_mode -->
-    <enum name="mode">
-      <entry name="default" value="0"/>
-      <entry name="always_on" value="1"/>
-    </enum>
-
-    <request name="set_window_screen_mode">
-      <arg name="surface" type="object" interface="wl_surface"/>
-      <arg name="mode" type="uint"/>
-    </request>
-
-    <event name="window_screen_mode_done">
-      <arg name="surface" type="object" interface="wl_surface"/>
-      <arg name="mode" type="uint"/>
-      <arg name="error_state" type="uint"/>
-    </event>
-
-    <!-- for subsurface -->
-    <request name="place_subsurface_below_parent">
-      <arg name="subsurface" type="object" interface="wl_subsurface"/>
-    </request>
-
-    <request name="set_subsurface_stand_alone">
-      <arg name="subsurface" type="object" interface="wl_subsurface"/>
-    </request>
-
-    <request name="get_subsurface">
-      <arg name="id" type="new_id" interface="wl_subsurface" />
-      <arg name="surface" type="object" interface="wl_surface" />
-      <arg name="parent_id" type="uint" />
-    </request>
-
-    <!-- for opaque_state -->
-    <request name="set_opaque_state">
-      <arg name="surface" type="object" interface="wl_surface" />
-      <arg name="state" type="int"/>
-    </request>
-
-    <!-- for iconify -->
-    <request name="iconify">
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-    </request>
-    <request name="uniconify">
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-    </request>
-
-    <event name="iconify_state_changed">
-      <arg name="surface" type="object" interface="wl_surface"/>
-      <arg name="iconified" type="uint"/>
-      <arg name="force" type="uint"/>
-    </event>
-
-    <!-- for aux_hint -->
-    <request name="add_aux_hint">
-      <arg name="surface" type="object" interface="wl_surface"/>
-      <arg name="id" type="int" />
-      <arg name="name" type="string" />
-      <arg name="value" type="string" />
-    </request>
-
-    <request name="change_aux_hint">
-      <arg name="surface" type="object" interface="wl_surface"/>
-      <arg name="id" type="int" />
-      <arg name="value" type="string" />
-    </request>
-
-    <request name="del_aux_hint">
-      <arg name="surface" type="object" interface="wl_surface"/>
-      <arg name="id" type="int" />
-    </request>
-
-    <request name="get_supported_aux_hints">
-      <arg name="surface" type="object" interface="wl_surface"/>
-    </request>
-
-    <event name="supported_aux_hints">
-      <arg name="surface" type="object" interface="wl_surface"/>
-      <arg name="hints" type="array" />
-      <arg name="num_hints" type="uint"/>
-    </event>
-
-    <event name="allowed_aux_hint">
-      <arg name="surface" type="object" interface="wl_surface"/>
-      <arg name="id" type="int" />
-    </event>
-
-    <!-- for aux_message -->
-    <event name="aux_message">
-      <arg name="surface" type="object" interface="wl_surface" />
-      <arg name="key" type="string" />
-      <arg name="value" type="string" />
-      <arg name="options" type="array" />
-    </event>
-
-    <!-- for background state -->
-    <request name="set_background_state">
-       <arg name="pid" type="uint" />
-    </request>
-
-    <request name="unset_background_state">
-       <arg name="pid" type="uint" />
-    </request>
-
-    <!-- for floating mode -->
-    <request name="set_floating_mode">
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-    </request>
-
-    <request name="unset_floating_mode">
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-    </request>
-
-    <!-- for stack mode -->
-    <enum name="stack_mode">
-      <entry name="none" value="0"/>
-      <entry name="above" value="1"/>
-      <entry name="below" value="2"/>
-    </enum>
-
-    <request name="set_stack_mode">
-      <arg name="surface" type="object" interface="wl_surface"/>
-      <arg name="mode" type="uint" />
-    </request>
-
-    <request name="activate_above_by_res_id">
-      <arg name="res_id" type="uint" />
-      <arg name="above_res_id" type="uint" />
-    </request>
-
-    <!-- version 2 additions -->
-    <!-- for subsurface watcher -->
-    <request name="get_subsurface_watcher" since="2">
-      <arg name="id" type="new_id" interface="tizen_subsurface_watcher" />
-      <arg name="surface" type="object" interface="wl_surface" />
-    </request>
-
-    <!-- version 3 additions -->
-    <request name="set_parent" since="3">
-      <arg name="child" type="object" interface="wl_surface" />
-      <arg name="parent" type="object" interface="wl_surface" />
-    </request>
-
-    <!-- version 4 additions -->
-    <!-- for conformant -->
-    <event name="conformant_region" since="4">
-      <description summary="notify of geometry values of conformant region(area)">
-         The server can notify of conformant region(area) using this event.
-         If client is received this event, client should ack for it using
-         tizen_policy@ack_conformant_region request.
-      </description>
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-      <arg name="conformant_part" type="uint"/>
-      <arg name="state" type="uint"/>
-      <arg name="x" type="int"/>
-      <arg name="y" type="int"/>
-      <arg name="w" type="int"/>
-      <arg name="h" type="int"/>
-      <arg name="serial" type="uint"/>
-    </event>
-
-    <request name="ack_conformant_region" since="4">
-      <description summary="ack for tizen_policy@conformant_region">
-         A client can refresh its surface for applying new conformant region which
-         is from tizen_policy@conformant_region event. The client has to ack
-         after complete of its updates by this request.
-      </description>
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-      <arg name="serial" type="uint"/>
-    </request>
-
-    <request name="destroy" type="destructor" since="6">
-      <description summary="destroy the tizen_policy">
-        Destroy the tizen_policy.
-      </description>
-    </request>
-
-    <request name="has_video" since="7">
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-      <arg name="has" type="uint"/>
-    </request>
-
-  </interface>
-
-  <interface name="tizen_visibility" version="5">
-    <request name="destroy" type="destructor"/>
-
-    <enum name="visibility">
-      <entry name="unobscured" value="0"/>
-      <entry name="partially_obscured" value="1"/>
-      <entry name="fully_obscured" value="2"/>
-      <entry name="pre_unobscured" value="3" since="5"/>
-    </enum>
-
-    <event name="notify">
-      <arg name="visibility" type="uint"/>
-    </event>
-
-    <!-- Version 6 additions -->
-
-    <event name="changed" since="5">
-      <arg name="type" type="uint" enum="visibility" summary="changed visibility type"/>
-      <arg name="option" type="uint" summary="extra value"/>
-    </event>
-
-  </interface>
-
-  <interface name="tizen_position" version="1">
-    <request name="destroy" type="destructor"/>
-
-    <request name="set">
-      <arg name="x" type="int"/>
-      <arg name="y" type="int"/>
-    </request>
-
-    <event name="changed">
-      <arg name="x" type="int"/>
-      <arg name="y" type="int"/>
-    </event>
-  </interface>
-
-  <interface name="tizen_gesture" version="2">
-    <enum name="error">
-      <entry name="none" value="0"/>
-      <entry name="invalid_data" value="1"/>
-      <entry name="no_permission" value="2"/>
-      <entry name="no_system_resources" value="3"/>
-      <entry name="grabbed_already" value="4"/>
-      <entry name="not_supported" value="5"/>
-    </enum>
-
-    <enum name="type">
-      <entry name="edge_swipe" value="1"/>
-      <entry name="edge_drag" value="2" since="2"/>
-      <entry name="tap" value="4" since="2"/>
-      <entry name="palm_cover" value="8" since="2"/>
-      <entry name="pan" value="16" since="2"/>
-      <entry name="pinch" value="32" since="2"/>
-      <entry name="palm_swipe" value="64" since="2"/>
-    </enum>
-
-    <enum name="mode">
-      <entry name="begin" value="1"/>
-      <entry name="update" value="2"/>
-      <entry name="end" value="3"/>
-      <entry name="done" value="4"/>
-    </enum>
-
-    <enum name="edge">
-      <entry name="top" value="1"/>
-      <entry name="right" value="2"/>
-      <entry name="bottom" value="3"/>
-      <entry name="left" value="4"/>
-    </enum>
-
-    <enum name="edge_size">
-      <entry name="none" value="0"/>
-      <entry name="full" value="1"/>
-      <entry name="partial" value="2"/>
-    </enum>
-
-    <request name="grab_edge_swipe">
-      <arg name="fingers" type="uint"/>
-      <arg name="edge" type="uint" enum="edge"/>
-      <arg name="edge_size" type="uint" enum="edge_size"/>
-      <arg name="start_point" type="uint"/>
-      <arg name="end_point" type="uint"/>
-    </request>
-
-    <request name="ungrab_edge_swipe">
-      <arg name="fingers" type="uint"/>
-      <arg name="edge" type="uint" enum="edge"/>
-      <arg name="edge_size" type="uint" enum="edge_size"/>
-      <arg name="start_point" type="uint"/>
-      <arg name="end_point" type="uint"/>
-    </request>
-
-    <event name="grab_edge_swipe_notify">
-      <arg name="fingers" type="uint"/>
-      <arg name="edge" type="uint" enum="edge"/>
-      <arg name="edge_size" type="uint" enum="edge_size"/>
-      <arg name="start_point" type="uint"/>
-      <arg name="end_point" type="uint"/>
-      <arg name="error" type="uint"/>
-    </event>
-
-    <event name="edge_swipe">
-      <arg name="mode" type="uint" enum="mode"/>
-      <arg name="fingers" type="uint"/>
-      <arg name="sx" type="int" summary="x coordinate of touch down point"/>
-      <arg name="sy" type="int" summary="y coordinate of touch down point"/>
-      <arg name="edge" type="uint" enum="edge"/>
-    </event>
-
-    <request name="grab_edge_drag">
-      <arg name="fingers" type="uint"/>
-      <arg name="edge" type="uint" enum="edge"/>
-      <arg name="edge_size" type="uint" enum="edge_size"/>
-      <arg name="start_point" type="uint"/>
-      <arg name="end_point" type="uint"/>
-    </request>
-
-    <request name="ungrab_edge_drag">
-      <arg name="fingers" type="uint"/>
-      <arg name="edge" type="uint" enum="edge"/>
-      <arg name="edge_size" type="uint" enum="edge_size"/>
-      <arg name="start_point" type="uint"/>
-      <arg name="end_point" type="uint"/>
-    </request>
-
-    <event name="edge_drag_notify">
-      <arg name="fingers" type="uint"/>
-      <arg name="edge" type="uint" enum="edge"/>
-      <arg name="edge_size" type="uint" enum="edge_size"/>
-      <arg name="start_point" type="uint"/>
-      <arg name="end_point" type="uint"/>
-      <arg name="error" type="uint"/>
-    </event>
-
-    <event name="edge_drag">
-      <arg name="mode" type="uint" enum="mode"/>
-      <arg name="fingers" type="uint"/>
-      <arg name="cx" type="int" summary="x coordinate of center touch point"/>
-      <arg name="cy" type="int" summary="y coordinate of center touch point"/>
-      <arg name="edge" type="uint" enum="edge"/>
-    </event>
-
-    <request name="grab_tap" since="2">
-      <arg name="fingers" type="uint"/>
-      <arg name="repeats" type="uint"/>
-    </request>
-
-    <request name="ungrab_tap" since="2">
-      <arg name="fingers" type="uint"/>
-      <arg name="repeats" type="uint"/>
-    </request>
-
-    <event name="tap_notify" since="2">
-      <arg name="fingers" type="uint"/>
-      <arg name="repeats" type="uint"/>
-      <arg name="error" type="uint"/>
-    </event>
-
-    <event name="tap" since="2">
-      <arg name="mode" type="uint" enum="mode"/>
-      <arg name="fingers" type="uint"/>
-      <arg name="repeats" type="uint"/>
-    </event>
-
-    <request name="grab_palm_cover" since="2">
-    </request>
-
-    <request name="ungrab_palm_cover" since="2">
-    </request>
-
-    <request name="select_palm_cover" since="2">
-      <arg name="surface" type="object" interface="wl_surface"/>
-    </request>
-
-    <request name="deselect_palm_cover" since="2">
-      <arg name="surface" type="object" interface="wl_surface"/>
-    </request>
-
-    <event name="palm_cover_notify" since="2">
-      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
-      <arg name="error" type="uint"/>
-    </event>
-
-    <event name="palm_cover" since="2">
-      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
-      <arg name="mode" type="uint" enum="mode"/>
-      <arg name="duration" type="uint"/>
-      <arg name="cx" type="int" summary="x coordinate of center touch point"/>
-      <arg name="cy" type="int" summary="y coordinate of center touch point"/>
-      <arg name="size" type="uint"/>
-      <arg name="pressure" type="fixed"/>
-    </event>
-
-    <request name="activate_set" since="2">
-      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
-      <arg name="type" type="uint" enum="type"/>
-      <arg name="active" type="uint"/>
-    </request>
-
-    <event name="activate_notify" since="2">
-      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
-      <arg name="type" type="uint" enum="type"/>
-      <arg name="active" type="uint"/>
-      <arg name="error" type="uint"/>
-    </event>
-
-    <request name="destroy" type="destructor" since="2">
-      <description summary="destroy the tizen_gesture">
-        Destroy the tizen_gesture.
-      </description>
-    </request>
-
-  </interface>
-
-  <interface name="tizen_keyrouter" version="1">
-    <description summary="an interface to set each focus for each key">
-      In tradition, all the keys in a keyboard and a device on which
-      some keys are attached will be sent to focus surface by default.
-      Currently it's possible to set up each focus for each key in a keyboard and a device.
-      Therefore, by setting a key grab for a surface, the owner of the
-      surface will get the key event when it has the key grab for the key.
-    </description>
-
-    <enum name="error">
-      <entry name="none" value="0" summary="no error"/>
-      <entry name="invalid_surface" value="1" summary="Given surface is invalid."/>
-      <entry name="invalid_key" value="2" summary="Given key is invalid."/>
-      <entry name="invalid_mode" value="3" summary="Given mode is invalid."/>
-      <entry name="grabbed_already" value="4" summary="The key has been grabbed already."/>
-      <entry name="no_permission" value="5" summary="The wl client has no permission to grab the key."/>
-      <entry name="no_system_resources" value="6" summary="System resources are insufficient."/>
-      <entry name="invalid_array" value="7" summary="Given array has invalid pairs or data type."/>
-    </enum>
-
-    <enum name="mode">
-      <description summary="mode for a key grab">
-        This value is used to set a mode for a key grab. With this mode and
-        the order of the surface between surfaces' stack, the compositor will determine the destination client
-        surface.
-      </description>
-      <entry name="none" value="0" summary="none"/>
-      <entry name="shared" value="1"
-       summary="mode to get a key grab with the other client surfaces when the focused client surface gets the key"/>
-      <entry name="topmost" value="2"
-       summary="mode to get a key grab when the client surface is the top most surface"/>
-      <entry name="overridable_exclusive" value="3"
-       summary="mode to get a key grab exclusively, overridably regardless of the order in the surface stack"/>
-      <entry name="exclusive" value="4"
-       summary="mode to get a key grab exclusively regardless of the order in surface stack"/>
-      <entry name="registered" value="5"
-       summary="mode to get a key grab only when a requesting surface is on top among the registering surfaces for the key"/>
-    </enum>
-
-    <enum name="config_mode">
-      <description summary="mode for setting specific property for Key delivery">
-        This value is used to set a mode for a window. With this mode and
-        the order of the surface between surfaces' stack, the compositor will determine the destination client
-        surface.
-      </description>
-      <entry name="none" value="0" summary="none"/>
-      <entry name="invisible_set" value="1"
-       summary="mode to set window to enable send event to invisible window below in stack"/>
-      <entry name="invisible_get" value="2"
-       summary="mode to set window to get event to invisible state if any top window has set register_set"/>
-      <entry name="num_key_focus" value="3"
-          summary="mode to register for num keys for focus window"/>
-      <entry name="picture_off" value="4"
-          summary="mode to set picture off for particular key"/>
-    </enum>
-
-    <request name="set_keygrab">
-      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
-      <arg name="key" type="uint"/>
-      <arg name="mode" type="uint"/>
-    </request>
-
-    <request name="unset_keygrab">
-      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
-      <arg name="key" type="uint"/>
-    </request>
-
-    <request name="get_keygrab_status">
-      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
-      <arg name="key" type="uint"/>
-    </request>
-
-    <request name="set_keygrab_list">
-      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
-      <arg name="grab_list" type="array" summary="array of two integer variables pairs each pairs consist of keycode and keygrab mode"/>
-    </request>
-
-    <request name="unset_keygrab_list">
-      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
-      <arg name="ungrab_list" type="array" summary="array of integer variables meaning keycode wanted to ungrab"/>
-    </request>
-
-    <request name="get_keygrab_list">
-      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
-    </request>
-
-    <request name="set_register_none_key">
-      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
-      <arg name="data" type="uint"/>
-    </request>
-
-    <request name="get_keyregister_status">
-      <arg name="data" type="uint"/>
-    </request>
-
-    <request name="set_input_config">
-      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
-      <arg name="config_mode" type="uint"/>
-      <arg name="value" type="uint"/>
-    </request>
-
-    <event name="keygrab_notify">
-      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
-      <arg name="key" type="uint"/>
-      <arg name="mode" type="uint"/>
-      <arg name="error" type="uint"/>
-    </event>
-
-    <event name="keygrab_notify_list">
-      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
-      <arg name="grab_result" type="array" summary="array of three integer variables pairs each pairs consist of keycode, keygrab mode and keygrab result"/>
-    </event>
-
-    <event name="getgrab_notify_list">
-      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
-      <arg name="grab_result" type="array" summary="array of two integer variables pairs each pairs consist of keycode, keygrab mode"/>
-    </event>
-
-    <event name="set_register_none_key_notify">
-      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
-      <arg name="mode" type="uint"/>
-    </event>
-
-    <event name="keyregister_notify">
-      <arg name="status" type="uint"/>
-    </event>
-
-    <event name="set_input_config_notify">
-      <arg name="status" type="uint"/>
-    </event>
-
-    <event name="key_cancel">
-      <arg name="key" type="uint"/>
-    </event>
-
-    <request name="destroy" type="destructor">
-      <description summary="destroy the tizen_keyrouter">
-        Destroy the tizen_keyrouter.
-      </description>
-    </request>
-
-  </interface>
-
-  <interface name="tizen_screenshooter" version="1">
-    <description summary="interface for tizen-screenshooter">
-      Clients can get a screenmirror object from this interface.
-    </description>
-
-    <request name="get_screenmirror">
-      <description summary="create a screenmirror object">
-        Before using screenmirror, a client should get a screenmirror object from display
-        server.
-      </description>
-      <arg name="id" type="new_id" interface="tizen_screenmirror" summary="new screenmirror object"/>
-      <arg name="output" type="object" interface="wl_output" summary="output object for screenmirror"/>
-    </request>
-
-    <request name="set_oneshot_auto_rotation">
-      <description summary="set screen shot auto rotation value">
-        Client can set auto rotation value for one shot.
-      </description>
-      <arg name="set" type="uint"/>
-    </request>
-
-    <event name="format">
-      <description summary="supported format for screenshooter">
-        The tbm format codes match the #defines in tbm_surface.h. The formats actually
-        supported by the compositor will be reported by the format event.
-      </description>
-      <arg name="format" type="uint"/>
-    </event>
-
-    <event name="screenshooter_notify">
-      <description summary="send notification of screenshooter">
-        Clients can get notification of screenshooter.
-      </description>
-      <arg name="noti" type="uint"/>
-    </event>
-
-    <request name="destroy" type="destructor">
-      <description summary="destroy the tizen_screenshooter">
-        Destroy the tizen_screenshooter.
-      </description>
-    </request>
-
-  </interface>
-
-  <interface name="tizen_screenmirror" version="1">
-    <description summary="interface for screenmirror">
-      A client can use this interface to get stream images of screen. Before starting,
-      queue all buffers. Then, start a screenmirror. After starting, a dequeued event
-      will occur when drawing a captured image on a buffer is finished. You might
-      need to queue the dequeued buffer again to get a new image from display server.
-    </description>
-
-    <request name="destroy" type="destructor"/>
-
-    <request name="set_stretch">
-      <arg name="stretch" type="uint" summary="stretch type for screenmirror"/>
-    </request>
-
-    <request name="queue">
-      <description summary="queue a buffer"/>
-        <arg name="buffer" type="object" interface="wl_buffer" summary="buffer object for screenmirror"/>
-    </request>
-
-    <request name="dequeue">
-      <description summary="dequeue a buffer">
-        A user can dequeue a buffer from display server when he wants to take back it from server.
-      </description>
-      <arg name="buffer" type="object" interface="wl_buffer" summary="buffer object for screenmirror"/>
-    </request>
-
-    <request name="start"/>
-    <request name="stop"/>
-
-    <enum name="content">
-      <entry name="normal" value="0"/>
-      <entry name="video" value="1"/>
-    </enum>
-
-    <enum name="stretch">
-      <entry name="keep_ratio" value="0"/>
-      <entry name="fully" value="1"/>
-    </enum>
-
-    <event name="dequeued">
-      <description summary="dequeued event">
-        occurs when drawing a captured image on a buffer is finished
-      </description>
-      <arg name="buffer" type="object" interface="wl_buffer" summary="dequeued buffer which contains a captured image"/>
-    </event>
-
-    <event name="content">
-      <description summary="content changed event">
-        occurs when the content of a captured image is changed. (normal or video)
-      </description>
-      <arg name="content" type="uint"/>
-    </event>
-
-    <event name="stop">
-      <description summary="stop event">
-        occurs when the screenmirror is stopped eventually
-      </description>
-    </event>
-  </interface>
-
-  <interface name="tizen_video" version="1">
-
-    <description summary="interface for tizen-video">
-      Clients can get the video information that the compositor can handle from this interface.
-    </description>
-
-    <enum name="error">
-      <entry name="none" value="0"/>
-      <entry name="object_exists" value="1"/>
-      <entry name="viewport_exists" value="2"/>
-    </enum>
-
-    <event name="format">
-      <description summary="supported format for video">
-        The tbm format codes match the #defines in tbm_surface.h. The formats actually
-        supported by the compositor will be reported by the format event.
-      </description>
-      <arg name="format" type="uint"/>
-    </event>
-
-    <request name="get_object">
-      <arg name="id" type="new_id" interface="tizen_video_object" />
-      <arg name="surface" type="object" interface="wl_surface" />
-    </request>
-
-    <request name="get_viewport">
-      <arg name="id" type="new_id" interface="tizen_viewport" />
-      <arg name="surface" type="object" interface="wl_surface" />
-    </request>
-
-    <request name="destroy" type="destructor">
-      <description summary="destroy the tizen_video">
-        Destroy the tizen_video.
-      </description>
-    </request>
-
-  </interface>
-
-  <interface name="tizen_video_object" version="1">
-
-    <event name="attribute">
-      <arg name="name" type="string"/>
-      <arg name="value" type="uint"/>
-    </event>
-
-    <event name="size">
-      <arg name="min_w" type="int"/>
-      <arg name="min_h" type="int"/>
-      <arg name="max_w" type="int"/>
-      <arg name="max_h" type="int"/>
-      <arg name="prefer_align" type="int"/>
-    </event>
-
-    <request name="destroy" type="destructor"/>
-    <request name="set_attribute">
-      <arg name="name" type="string"/>
-      <arg name="value" type="int"/>
-    </request>
-
-    <request name="follow_topmost_visibility">
-      <description summary="follow mute control change of a topmost surface">
-        If tizen_video_object.follow_topmost_visibility is applied to a video_object,
-        It will be video mute control based on topmost visibility.
-      </description>
-    </request>
-
-    <request name="unfollow_topmost_visibility">
-      <description summary="unfollow mute control change of a topmost surface">
-        If tizen_video_object.unfollow_topmost_visibility is applied to a video_object,
-        It will not be video mute control based on topmost visibility.
-      </description>
-    </request>
-
-    <request name="allowed_attribute">
-      <description summary="allowed_attribute">
-        If tizen_video_object.allowed_attribute is applied to a video_object,
-        set_attribute request will be deliever to tdm backend directly.
-      </description>
-    </request>
-
-    <request name="disallowed_attribute">
-      <description summary="disallowed_attribute">
-        If tizen_video_object.disallowed_attribute is applied to a video_object,
-        It would be tdm_attribute call when topmost showing.
-      </description>
-    </request>
-
-  </interface>
-
-  <interface name="tizen_subsurface_watcher" version="1">
-
-    <enum name="msg">
-      <entry name="success" value="0"/>
-      <entry name="parent_id_invalid" value="1"/>
-      <entry name="parent_id_destroyed" value="2"/>
-    </enum>
-
-    <event name="message">
-      <arg name="value" type="uint"/>
-    </event>
-
-    <request name="destroy" type="destructor">
-      <description summary="destroy the tizen_subsurface_watcher">
-        Destroy the tizen_subsurface_watcher.
-      </description>
-    </request>
-
-  </interface>
-
-  <interface name="tizen_viewport" version="1">
-
-      <description summary="the viewport for a surface">
-    This is the alternative and convenient solution of wl_viewport to present
-    a surface on screen.
-
-    The below five functions can be replaced with this interface. The below
-    functions will be ignored after applying this interface to a surface.
-     - wl_surface.set_buffer_transform
-     - wl_surface.set_buffer_scale
-     - wl_subsurface.set_position
-     - wl_viewport.set_source
-     - wl_viewport.set_destination
-
-    wl_viewport.set_source is very complicated especially when the buffer of
-    wl_surface is transformed by wl_surface.set_buffer_transform. And when the
-    parent is resized, if we want to change the geometry of a subsurface also,
-    wl_subsurface.set_position and wl_viewport.set_destination should be called
-    everytime the parent is resized in client side. This makes difficult to
-    synchronize a parent surface and a subsurface on screen.
-
-    tizen_viewport allows clients to set the relative geometry to a subsurface
-    in a parent surface. Whenever a parent surface is resized, the geometry of
-    a subsurface will be calculated, moved and resized automatically by a
-    compositor. The tizen_viewport is specified in the coordinates of a
-    subsurface's parent.
-
-       If tizen_viewport is applied to a shell surface(toplevel), the all value related
-       with x, y pos of tizen_viewport and tizen_destination_mode interface will be ignored.
-
-    The below 3 functions don't consider the transform of a parent's surface.
-     - tizen_viewport.set_source
-     - tizen_viewport.set_destination
-     - tizen_viewport.set_destination_ratio
-
-    Furthermore, tizen_destination_mode.follow_parent_transform is called,
-    tizen_viewport will consider the transform of a parent surface when applying
-    the destination mode to a subsurface. If tizen_destination_mode.follow_parent_transform
-    is applied to a shell surface, it will be ignored.
-
-    The destination will be cropped by a parent surface.
-
-    The change will be applied when wl_surface.commit is called.
-      </description>
-
-    <event name="destination_changed">
-      <arg name="transform" type="uint"/>
-      <arg name="x" type="int"/>
-      <arg name="y" type="int"/>
-      <arg name="width" type="uint"/>
-      <arg name="height" type="uint"/>
-    </event>
-
-    <request name="destroy" type="destructor" />
-
-    <request name="set_transform">
-      <description summary="set the transform of a surface">
-    The accepted values for the transform parameter are the values for wl_output.transform
-    according to the output transform.
-
-    The tizen_viewport.set_transform is applied only to itself. Basically it
-    doesn't effect the transform of its subsurfaces. That is, if 90 transform is
-    setted and its subsurface still has 0 transform, its subsurface won't be
-    rotated.
-
-    If needed to rotate the subsurface depended on a parent surface,
-    tizen_destination_mode.follow_parent_transform will make it possible.
-
-      </description>
-      <arg name="transform" type="uint"/>
-    </request>
-
-    <request name="set_source">
-      <description summary="set the source rectalge of a wl_buffer">
-    The source rectangle won't be changed when a parent is resized. If it needs
-    to be changed, tizen_viewport.set_source should be called with new values.
-      </description>
-      <arg name="x" type="uint"/>
-      <arg name="y" type="uint"/>
-      <arg name="width" type="uint"/>
-      <arg name="height" type="uint"/>
-    </request>
-
-    <request name="set_destination">
-      <description summary="set the destination geometry of a surface">
-    The destination geometry won't be changed when a parent is resized. If it
-    needs to be changed, tizen_viewport.set_destination should be called with
-    new values.
-
-       If tizen_viewport is applied to a shell surface(toplevel), the x, y value of
-       tizen_viewport.set_destination will be ignored.
-      </description>
-      <arg name="x" type="int"/>
-      <arg name="y" type="int"/>
-      <arg name="width" type="uint"/>
-      <arg name="height" type="uint"/>
-    </request>
-
-    <request name="set_destination_ratio">
-      <description summary="set the ratio destination rectalge in a parent surface">
-    The destination rectangle of a subsurface will be automatically changed
-    when a parent is resized. This allows the real number between 0.0 and 1.0.
-    See wl_fixed_from_double and wl_fixed_to_double.
-
-       If tizen_viewport is applied to a shell surface(toplevel), the x, y value of
-       tizen_viewport.set_destination_ratio will be ignored.
-      </description>
-      <arg name="x" type="fixed"/>
-      <arg name="y" type="fixed"/>
-      <arg name="width" type="fixed"/>
-      <arg name="height" type="fixed"/>
-    </request>
-
-    <request name="get_destination_mode">
-      <arg name="id" type="new_id" interface="tizen_destination_mode" />
-    </request>
-
-    <request name="query_parent_size" since="1">
-      <description summary="set the ratio destination rectalge in a parent surface">
-    A client can asks the display server to send the size of tizen_viewport object's
-    parent surface. Once a client requests it, the "parent_size" event will be sent
-    whenever the parent surface's size is changed.
-      </description>
-    </request>
-
-    <event name="parent_size">
-      <arg name="width" type="uint" />
-      <arg name="height" type="uint" />
-    </event>
-
-    <request name="follow_parent_transform">
-      <description summary="follow the transform change of a parent surface">
-    The real transform of a subsurface is (parent's transform + subsurface's transform).
-    The subsurface will be rotated automatically when the parent is rotated.
-
-    If tizen_viewport.follow_parent_transform is applied to a shell surface(toplevel),
-    it will be ignored.
-      </description>
-    </request>
-
-    <request name="unfollow_parent_transform" />
-
-  </interface>
-
-  <interface name="tizen_destination_mode" version="1">
-
-      <description summary="the destination mode for a surface">
-    The destination rectangle will be automatically changed when a parent is
-    resized. When tizen_destination_mode.set is called, the value of
-    tizen_viewport.set_destination and tizen_viewport.set_destination_ratio
-    will be ignored.
-
-    The destination of a surface is decided by the mode, ratio, scale, offset
-    and align values. The ratio, scale, offset and align will be applied
-    sequentially.
-
-    The change will be applied when wl_surface.commit is called.
-      </description>
-
-    <enum name="error">
-      <entry name="invalid_type" value="0"/>
-    </enum>
-
-    <enum name="type">
-      <entry name="none" value="0"/>
-      <entry name="letter_box" value="1"/>
-      <entry name="origin" value="2"/>
-      <entry name="full" value="3"/>
-      <entry name="cropped_full" value="4"/>
-      <entry name="origin_or_letter" value="5"/>
-    </enum>
-
-    <request name="destroy" type="destructor" />
-
-    <request name="follow_parent_transform">
-      <description summary="follow the transform change of a parent surface">
-    The real transform of a subsurface is (parent's transform + subsurface's transform).
-    That is, the subsurface will be rotated automatically when the parent is rotated.
-
-    If tizen_destination_mode.follow_parent_transform is applied to a shell surface(toplevel),
-    it will be ignored.
-      </description>
-    </request>
-
-    <request name="unfollow_parent_transform" />
-
-    <request name="set" summary="set the destination mode">
-      <arg name="mode" type="uint" enum="type"/>
-    </request>
-
-    <request name="set_ratio">
-      <description summary="set the ratio of the destination rectangle of a subsurface">
-    This allows the real number. See wl_fixed_from_double and wl_fixed_to_double.
-      </description>
-      <arg name="horizontal" type="fixed"/>
-      <arg name="vertical" type="fixed"/>
-    </request>
-
-    <request name="set_scale">
-      <description summary="set the scale of the destination rectangle of a subsurface">
-    This allows the real number. See wl_fixed_from_double and wl_fixed_to_double.
-      </description>
-      <arg name="horizontal" type="fixed"/>
-      <arg name="vertical" type="fixed"/>
-    </request>
-
-    <request name="set_align">
-      <description summary="set the align of the destination rectangle of a subsurface">
-    This allows the real number between 0.0 and 1.0. See wl_fixed_from_double and
-    wl_fixed_to_double.
-      </description>
-      <arg name="horizontal" type="fixed"/>
-      <arg name="vertical" type="fixed"/>
-    </request>
-
-    <request name="set_offset">
-      <arg name="x" type="int"/>
-      <arg name="y" type="int"/>
-      <arg name="w" type="int"/>
-      <arg name="h" type="int"/>
-    </request>
-
-  </interface>
-
-  <interface name="tizen_embedded_compositor" version="1">
-
-    <description summary="global embedded compositor object">
-      The global obejct. Wayland has 3 type of compositor, embedded compositor is one of them.
-      But tizen application is sendboxing by smack, then a application not allow commutication to other application by socket.
-      So system or session compositor create socket and send to embedded compostior.
-    </description>
-
-    <request name="get_socket">
-      <description summary="create new socket">
-        The get_socket request ask the server to create socket and emit socket event.
-      </description>
-    </request>
-
-    <event name="socket">
-      <description summary="socket fd">
-        Sent immediately after get_socket request
-      </description>
-      <arg name="sock_fd" type="fd"/>
-    </event>
-
-    <request name="destroy" type="destructor"/>
-  </interface>
-
-  <interface name="tizen_input_device_manager" version="2">
-    <description summary="global input device manager object">
-      Tizen input device manager is a global interface. This object has device add/remove events
-      to provide tizen input device object to a client. This allows for a client to get the con
-
-      Be sure to bind this interface after binding wl_seat interface.
-      Tizen input device manager interface will only provide device add/remove event for devices
-      which belongs to the wl_seat object(s) bound by the client. Therefore, the compositor needs to
-      create/send the device add/remove event only for the current client's seat(s).
-    </description>
-
-    <event name="device_add">
-      <description summary="device addition event">
-        The device add/remove notification is going to be sent when a physical/logical device is
-        added/removed to/from the given seat. Note that a tizen input device object can be assigned to
-        a wl_seat and can also be assigned to the other wl_seat at any time. Whenever a relationship between
-        a tizen input device object changes, device remove event from the current wl_seat object will be made
-        and device add event to the other wl_seat object will also be mode.
-      </description>
-      <arg name="serial" type="uint"/>
-      <arg name="identifier" type="string"/>
-      <arg name="device" type="new_id" interface="tizen_input_device"/>
-      <arg name="seat" type="object" interface="wl_seat"/>
-    </event>
-
-    <event name="device_remove">
-      <description summary="device removal event">
-        The device add/remove notification is going to be sent when a physical/logical device is
-        added/removed to/from the given seat. Note that a tizen input device object can be assigned to
-        a wl_seat and can also be assigned to the other wl_seat at any time. Whenever a relationship between
-        a tizen input device object changes, device remove event from the current wl_seat object will be made
-        and device add event to the other wl_seat object will also be mode.
-      </description>
-      <arg name="serial" type="uint"/>
-      <arg name="identifier" type="string"/>
-      <arg name="device" type="object" interface="tizen_input_device"/>
-      <arg name="seat" type="object" interface="wl_seat"/>
-    </event>
-
-    <enum name="clas">
-       <description summary="device class">
-       </description>
-       <entry name="none" value="0" summary="none of class"/>
-       <entry name="mouse" value="1" summary="mouse class"/>
-       <entry name="keyboard" value="2" summary="keyboard class"/>
-       <entry name="touchscreen" value="4" summary="touchscreen class"/>
-    </enum>
-
-    <enum name="error">
-      <entry name="none" value="0" summary="no error"/>
-      <entry name="no_permission" value="1" summary="no permission"/>
-      <entry name="invalid_class" value="2" summary="invalid class"/>
-      <entry name="blocked_already" value="3" summary="blocked already by the other client"/>
-      <entry name="no_system_resources" value="4" summary="no system resources such as memory lack"/>
-      <entry name="invalid_parameter" value="5" summary="argument is invalid"/>
-      <entry name="invalid_surface" value="6" summary="the given surface is not visible or pointer is not on the given surface"/>
-      <entry name="no_pointer_available" value="7" summary="there is no pointer available to warp"/>
-    </enum>
-
-    <event name="error">
-      <description summary="error event">
-      </description>
-      <arg name="errorcode" type="uint" enum="error"/>
-    </event>
-
-    <event name="block_expired">
-      <description summary="block expiration event">
-        This event will be sent if the duration of existing block is expired.
-        Note that no block expired event will be sent if there is no block for the client.
-      </description>
-    </event>
-
-    <request name="block_events">
-      <description summary="request to block sending event(s)">
-        This request allows a client to request to block one or more events for its purpose.
-        By specifying class as an argument in the request, the events belongs to the class will be blocked
-        during the given duration. Note that an error event will be sent if there is any error.
-      </description>
-      <arg name="serial" type="uint" summary=""/>
-      <arg name="clas" type="uint" enum="clas"/>
-      <arg name="duration" type="uint" summary="time duration with millisecond granularity"/>
-    </request>
-
-    <request name="unblock_events">
-      <description summary="request to unblock sending event(s)">
-        This request allows a client to request to release the existing block for the client.
-        Note that no error event will be sent if there is no existing block for the client.
-      </description>
-      <arg name="serial" type="uint" summary=""/>
-    </request>
-
-    <request name="init_generator">
-      <description summary="initialize input generator system">
-      </description>
-      <arg name="clas" type="uint" enum="clas"/>
-    </request>
-
-    <request name="deinit_generator">
-      <description summary="deinitialize input generator system">
-      </description>
-      <arg name="clas" type="uint" enum="clas"/>
-    </request>
-
-    <request name="generate_key">
-      <description summary="generate a key event using specific or default device">
-      </description>
-      <arg name="keyname" type="string"/>
-      <arg name="pressed" type="uint"/>
-    </request>
-
-    <enum name="pointer_event_type">
-      <entry name="begin" value="0"/>
-      <entry name="update" value="1"/>
-      <entry name="end" value="2"/>
-    </enum>
-
-    <request name="generate_pointer">
-      <description summary="generate a pointer event using specific or default device">
-      </description>
-      <arg name="type" type="uint" enum="pointer_event_type"/>
-      <arg name="x" type="uint"/>
-      <arg name="y" type="uint"/>
-      <arg name="button" type="uint"/>
-    </request>
-
-    <request name="generate_touch">
-      <description summary="generate a touch event using specific or default device">
-      </description>
-      <arg name="type" type="uint" enum="pointer_event_type"/>
-      <arg name="x" type="uint"/>
-      <arg name="y" type="uint"/>
-      <arg name="finger" type="uint"/>
-    </request>
-
-    <request name="pointer_warp">
-      <description summary="warp pointer to the relative position to the given surface">
-      </description>
-      <arg name="surface" type="object" interface="wl_surface"/>
-      <arg name="x" type="fixed"/>
-      <arg name="y" type="fixed"/>
-    </request>
-
-    <!-- version 2 additions -->
-    <request name="init_generator_with_name" since="2">
-      <description summary="initialize input generator system with name">
-      </description>
-      <arg name="clas" type="uint" enum="clas"/>
-      <arg name="name" type="string" />
-    </request>
-
-    <request name="destroy" type="destructor" since="2">
-      <description summary="destroy the tizen_input_device_manager">
-        Destroy the tizen_input_device_manager.
-      </description>
-    </request>
-
-  </interface>
-
-  <interface name="tizen_input_device" version="1">
-    <description summary="tizen input device object">
-      The tizen_input_device interface represents one or more input devices associated with a physical/logical
-      input device. This interface provides device specific information/events to allows for client to identify
-      the source device of an event or to get the additional axes/attributes of a device.
-      Note that a tizen_input_device object can be used for a physical input device and can also be used for a
-      group of input devices. e.g. a group of mouse devices
-    </description>
-
-    <enum name="clas">
-       <description summary="device class">
-       </description>
-       <entry name="none" value="0" summary="none of class"/>
-       <entry name="keyboard" value="2" summary="keyboard class"/>
-       <entry name="mouse" value="3" summary="mouse class"/>
-       <entry name="touchscreen" value="4" summary="touchscreen class"/>
-    </enum>
-
-    <enum name="subclas">
-       <description summary="device subclass">
-       </description>
-       <entry name="none" value="0" summary="none of subclass"/>
-    </enum>
-
-    <enum name="axis_type">
-      <description summary="axis type enums which can be supported by a device">
-      </description>
-      <entry name="none" value="0" summary="radius of x axis of an event area e.g. touching area with a finger or a pen"/>
-      <entry name="radius_x" value="1" summary="radius of x axis of an event area e.g. touching area with a finger or a pen"/>
-      <entry name="radius_y" value="2" summary="radius of y axis of an event area e.g. touching area with a finger or a pen"/>
-      <entry name="pressure" value="3" summary="pressure in an event area e.g. touching area with a finger or a pen"/>
-      <entry name="angle" value="4" summary="angle in an event area e.g. touching area with a finger or a pen"/>
-      <entry name="detent" value="5" summary="detent value e.g. moved distance with a rotary device"/>
-    </enum>
-
-    <event name="device_info">
-      <description summary="event contains device information">
-      </description>
-      <arg name="name" type="string"/>
-      <arg name="clas" type="uint" enum="clas"/>
-      <arg name="subclas" type="uint" enum="subclas"/>
-      <arg name="axes" type="array" summary="array of axis enum"/>
-    </event>
-
-    <event name="event_device">
-      <description summary="event indicates the source device associated with a wl_pointer/keyboard/touch event">
-      </description>
-      <arg name="serial" type="uint"/>
-      <arg name="name" type="string"/>
-      <arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
-    </event>
-
-    <request name="select_axes">
-      <description summary="request for selecting some of axes among the axes supported by a tizen_input_device object">
-      </description>
-      <arg name="axes" type="array" summary="array of axis num"/>
-    </request>
-
-    <event name="axis">
-      <description summary="axis change event">
-      </description>
-      <arg name="axis_type" type="uint" enum="axis_type"/>
-      <arg name="value" type="fixed" summary="axis value"/>
-    </event>
-
-    <request name="release" type="destructor">
-      <description summary="release the tizen_input_device object">
-      </description>
-    </request>
-  </interface>
-
-  <interface name="tizen_launchscreen" version="1">
-    <request name="create_img">
-      <arg name="id" type="new_id" interface="tizen_launch_image" summary="new tizen_launch_image object"/>
-    </request>
-
-    <request name="destroy" type="destructor">
-      <description summary="destroy the tizen_launchscreen">
-        Destroy the tizen_launchscreen.
-      </description>
-    </request>
-
-  </interface>
-
-  <interface name="tizen_launch_image" version="1">
-    <!-- launch img -->
-    <enum name="file_type">
-      <entry name="img" value="0" summary="splash image file path"/>
-      <entry name="edj" value="1" summary="splash edj file path"/>
-    </enum>
-
-    <enum name="indicator">
-      <entry name="off" value="0" summary="splash hide indicator"/>
-      <entry name="on" value="1" summary="splash show indicator"/>
-    </enum>
-
-    <enum name="rotation">
-      <entry name="0" value="0" summary="rotation angle 0 degree"/>
-      <entry name="90" value="90" summary="rotation angle 90 degree"/>
-      <entry name="180" value="180" summary="rotation angle 180 degree"/>
-      <entry name="270" value="270" summary="rotation angle 270 degree"/>
-    </enum>
-
-    <request name="destroy" type="destructor"/>
-
-    <request name="launch">
-      <arg name="file" type="string"/>
-      <arg name="file_type" type="uint" />
-      <arg name="color_depth" type="uint" />
-      <arg name="rotation" type="uint" />
-      <arg name="indicator" type="uint" />
-      <arg name="options" type="array" />
-    </request>
-
-    <request name="owner">
-      <arg name="pid" type="uint" />
-    </request>
-
-    <request name="show">
-    </request>
-
-    <request name="hide">
-    </request>
-  </interface>
-
-  <interface name="tizen_effect" version="1">
-     <enum name="type">
-      <entry name="none" value="0" summary="none"/>
-      <entry name="show" value="1" summary="show effect of window"/>
-      <entry name="hide" value="2" summary="hide effect of window"/>
-      <entry name="restack" value="3" summary="restack effect of window"/>
-     </enum>
-     <request name="destroy" type="destructor" />
-     <event name="start">
-       <arg name="surface" type="object" interface="wl_surface"/>
-       <arg name="type" type="uint" />
-     </event>
-     <event name="end">
-       <arg name="surface" type="object" interface="wl_surface"/>
-       <arg name="type" type="uint" />
-     </event>
-  </interface>
-
-  <interface name="tizen_display_policy" version="1">
-    <enum name="error_state">
-      <entry name="none" value="0"/>
-      <entry name="permission_denied" value="1"/>
-    </enum>
-    <!-- for window brightness -->
-    <request name="set_window_brightness">
-      <arg name="surface" type="object" interface="wl_surface"/>
-      <arg name="brightness" type="int"/>
-    </request>
-
-    <event name="window_brightness_done">
-      <arg name="surface" type="object" interface="wl_surface"/>
-      <arg name="brightness" type="int"/>
-      <arg name="error_state" type="uint"/>
-    </event>
-
-    <request name="destroy" type="destructor">
-      <description summary="destroy the tizen_display_policy">
-        Destroy the tizen_display_policy.
-      </description>
-    </request>
-
-  </interface>
-
-  <interface name="tizen_indicator" version="1">
-    <enum name="state">
-      <entry name="unknown" value="0" summary="unknown"/>
-      <entry name="off" value="1" summary="can not show indicator"/>
-      <entry name="on" value="2" summary="can show indicator"/>
-    </enum>
-    <enum name="opacity_mode">
-      <entry name="unknown" value="0" summary="unknown"/>
-      <entry name="opaque" value="1" summary="opaque mode"/>
-      <entry name="translucent" value="2" summary="translucent mode"/>
-      <entry name="transparent" value="3" summary="transparent all mode"/>
-      <entry name="bg_transparent" value="4" summary="transparent only background mode"/>
-    </enum>
-    <enum name="visible_type">
-      <entry name="hidden" value="0" summary="hidden type indicator"/>
-      <entry name="shown" value="1" summary="shown type indicator"/>
-    </enum>
-
-    <request name="destroy" type="destructor"/>
-    <request name="set_state">
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-      <arg name="state" type="int" />
-    </request>
-    <request name="set_opacity_mode">
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-      <arg name="mode" type="int" />
-    </request>
-    <request name="set_visible_type">
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-      <arg name="type" type="int" />
-    </request>
-
-    <event name="flick">
-      <arg name="surface" type="object" interface="wl_surface" summary="occur the flick event"/>
-      <arg name="type" type="int"/>
-    </event>
-  </interface>
-
-  <interface name="tizen_clipboard" version="2">
-     <description summary="an interface for requests and event about clipboard">
-        This interface provides some requests and events about clipboard for other clients.
-     </description>
-     <request name="destroy" type="destructor" />
-     <request name="show">
-      <description summary="request for show clipboard">
-      </description>
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-     </request>
-     <request name="hide">
-      <description summary="request for hide clipboard">
-      </description>
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-     </request>
-     <event name="data_selected">
-      <description summary="announce data are selected by clipboard">
-      </description>
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-     </event>
-
-     <!-- version 2 additions -->
-     <request name="set_data_only" since="2">
-        <description summary="request for setting data only mode for this wl_client">
-           A wayland client can notify of that the client is data only mode.
-           The data only mode means that this wayland client doesn't have any
-           wl_surfaces at all but it wants to use wl_data_device for some data
-           operations.
-        </description>
-        <arg name="set" type="uint" />
-     </request>
-
-     <event name="allowed_data_only" since="2">
-        <description summary="event to notify if data only set is allowed or not"/>
-        <arg name="allowed" type="uint" />
-     </event>
-  </interface>
-
-  <interface name="tizen_screen_rotation" version="1">
-    <request name="get_ignore_output_transform">
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-    </request>
-
-    <event name="ignore_output_transform">
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-      <arg name="ignore" type="uint"/>
-    </event>
-
-    <request name="destroy" type="destructor">
-      <description summary="destroy the tizen_screen_rotation">
-        Destroy the tizen_screen_rotation.
-      </description>
-    </request>
-
-  </interface>
-
-</protocol>
diff --git a/protocol/tizen-launch.xml b/protocol/tizen-launch.xml
deleted file mode 100644 (file)
index d1908be..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-<protocol name="tizen_launch">
-  <interface name="tizen_launch_effect" version="1">
-    <request name="create_splash_img">
-      <arg name="id" type="new_id" interface="tizen_launch_splash" summary="new tizen_launch_splash object"/>
-    </request>
-
-    <request name="type_set">
-      <arg name="effect_type" type="string" allow-null="true"/>
-      <arg name="pid" type="uint" />
-      <arg name="options" type="array" allow-null="true" summary="array of options"/>
-    </request>
-
-    <request name="type_unset">
-      <arg name="pid" type="uint" />
-    </request>
-
-    <request name="destroy" type="destructor">
-      <description summary="destroy tizen_launch_effect">
-        Destroy tizen_launch_effect.
-      </description>
-    </request>
-  </interface>
-
-  <interface name="tizen_launch_splash" version="1">
-    <!-- launch img -->
-    <enum name="file_type">
-      <entry name="img" value="0" summary="splash image file path"/>
-      <entry name="edj" value="1" summary="splash edj file path"/>
-    </enum>
-
-    <enum name="indicator">
-      <entry name="off" value="0" summary="splash hide indicator"/>
-      <entry name="on" value="1" summary="splash show indicator"/>
-    </enum>
-
-    <enum name="rotation">
-      <entry name="0" value="0" summary="rotation angle 0 degree"/>
-      <entry name="90" value="90" summary="rotation angle 90 degree"/>
-      <entry name="180" value="180" summary="rotation angle 180 degree"/>
-      <entry name="270" value="270" summary="rotation angle 270 degree"/>
-    </enum>
-
-    <request name="destroy" type="destructor"/>
-
-    <request name="launch">
-      <arg name="file" type="string"/>
-      <arg name="file_type" type="uint" />
-      <arg name="color_depth" type="uint" />
-      <arg name="rotation" type="uint" />
-      <arg name="indicator" type="uint" />
-      <arg name="effect_type" type="string" allow-null="true"/>
-      <arg name="theme_type" type="string" allow-null="true"/>
-      <arg name="options" type="array" allow-null="true" summary="array of options"/>
-    </request>
-
-    <request name="owner">
-      <arg name="pid" type="uint" />
-    </request>
-
-  </interface>
-
-</protocol>
diff --git a/protocol/tizen-remote-surface.xml b/protocol/tizen-remote-surface.xml
deleted file mode 100644 (file)
index a7a1d9d..0000000
+++ /dev/null
@@ -1,368 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<protocol name="tizen_remote_surface">
-  <interface name="tizen_remote_surface_manager" version="5">
-     <description summary="manager of tizen_remote_surface">
-        A manager of tizen_remote_surface. This object is in charge of
-        creating tizen_remote_surface_provider and tizen_remote_surface and
-        provide additional operations for those objects.
-     </description>
-     <request name="create_provider">
-        <description summary="create new remote surface provider">
-           Ask manager creation of a new remote surface provider.
-           A wl_surface is required for making remote surface provider.
-        </description>
-        <arg name="id" type="new_id" interface="tizen_remote_surface_provider" summary="new remote surface provider id"/>
-        <arg name="surface" type="object" interface="wl_surface" summary="wayland surface to be handled as provider"/>
-     </request>
-
-     <request name="create_surface">
-        <description summary="create new remote surface">
-           Ask manager creation of a new remote surface.
-           resource_id is required to identify this remote surface is what provider of
-           and wl_tbm object is used for remote buffer of this remote surface.
-        </description>
-        <arg name="id" type="new_id" interface="tizen_remote_surface" summary="new remote surface id" />
-        <arg name="resource_id" type="uint" summary="provider's resource id"/>
-       <arg name="tbm" type="object" interface="wl_tbm" summary="wl_tbm object used to get tbm_surface"/>
-     </request>
-
-     <request name="bind_surface">
-        <description summary="bind a remote surface and a wl_surface each other">
-           Combining a remote surface object into a wl_surface object.
-           If a remote surface and a wayland surface are bound each other,
-           wayland surface can be automatically drawed by buffer updating of
-           remote surface provider without notice to an owner of remote surface.
-        </description>
-        <arg name="surface" type="object" interface="wl_surface" allow-null="true" summary="wayland surface to be set remote surface"/>
-        <arg name="remote_surface" type="object" interface="tizen_remote_surface" summary="remote surface for target wayland surface"/>
-     </request>
-
-     <request name="destroy" type="destructor">
-       <description summary="destroy tizen_remote_surface_manager">
-         Destroy tizen_remote_surface_manager.
-       </description>
-     </request>
-  </interface>
-
-  <interface name="tizen_remote_surface_provider" version="4">
-     <description summary="a provider of remote buffer source">
-        A provider client. Surfaces of providers are offscreen.
-        An attached buffer of the provider is used for creating remote buffer
-        and the remote buffer is delivered to remote surfaces.
-     </description>
-     <request name="destroy" type="destructor" />
-
-     <request name="offscreen_set">
-        <description summary="request offscreen rendering">
-           Requests for setting or unsetting offscreen.
-           The default is offscreen if provider client never requests this.
-        </description>
-        <arg name="set" type="uint" summary="zero value means unset and non-zero value means set of offscreen" />
-     </request>
-
-     <!-- for id -->
-     <event name="resource_id">
-        <description summary="announce resource id of provider">
-           Announce resource id of this provider.
-        </description>
-        <arg name="resource_id" type="uint" summary="this provider's resource_id"/>
-     </event>
-
-     <!-- for visibility -->
-     <event name="visibility">
-        <description summary="notify of visibility change">
-           Notify of visibility chages.
-           This provider's visibility is determined by its remote surfaces.
-        </description>
-        <arg name="visibility" type="uint" enum="visibility_type" summary="visibility type"/>
-     </event>
-
-     <enum name="visibility_type">
-        <entry name="visible" value="0" />
-        <entry name="invisible" value="1" />
-     </enum>
-
-     <!-- version 4 additions -->
-
-     <request name="set_input_event_filter" since="4">
-        <description summary="set event filter to be allowed">
-           Some providers can accept restricted events only. To notify of what
-           event is allowed or not, provider can set event filter using this
-           request.
-        </description>
-        <arg name="event_filter" type="uint" summary="event filter value. To calculate your event filter value, refer enum input_event_filter of tizen_remote_surface interface"/>
-     </request>>
-  </interface>
-
-  <interface name="tizen_remote_surface" version="5">
-     <description summary="a consumer of buffers from a provider">
-        A consumer client of provider client's buffer.
-        The consumer can receive notice of buffer updating of
-        its provider and use the received buffer for drawing its own buffer.
-        The consumer also can request for transfering input events into its
-        provider.
-     </description>
-     <request name="destroy" type="destructor" />
-
-     <!-- for buffer update -->
-     <request name="redirect">
-        <description summary="request redirect of provider's buffer">
-           Request for redirect of provider's buffer. A consumer is able to receive
-           buffer_update after this request.
-        </description>
-     </request>
-     <request name="unredirect">
-        <description summary="request for stop redirect of provider's buffer"/>
-     </request>
-
-     <event name="update_buffer">
-        <description summary="deliver updated buffer of provider">
-           When a provider client of a remote surface sent wl_surface.commit,
-           server deliver a remote buffer is created based on provider's buffer.
-           This event is deprecated. Please use changed_buffer event instead of it.
-        </description>
-        <arg name="buffer" type="object" interface="wl_buffer" summary="wayland buffer based on provider updated buffer"/>
-        <arg name="time" type="uint" summary="timestampa" />
-     </event>
-
-     <!-- for event transference -->
-     <request name="transfer_mouse_event">
-        <description summary="notify of mouse up/down/move event on remote surface" />
-        <arg name="event_type" type="uint" enum="event_type" summary="event type" />
-        <arg name="device" type="int" summary="device type" />
-        <arg name="button" type="int" summary="button id" />
-        <arg name="x" type="int" summary="x coordinate" />
-        <arg name="y" type="int" summary="y coordinate" />
-        <arg name="radius_x" type="fixed" summary="minor axis of touch point"  />
-        <arg name="radius_y" type="fixed" summary="major axis of touch point" />
-        <arg name="pressure" type="fixed" summary="pressure of touch point" />
-        <arg name="angle" type="fixed" summary="angle of touch point" />
-        <arg name="clas" type="uint" summary="class of event generator(device)" />
-        <arg name="subclas" type="uint" summary="subclass of event generator(device)" />
-        <arg name="identifier" type="string" summary="description of event generator(device)" />
-        <arg name="time" type="uint" summary="timestamp" />
-     </request>
-
-     <request name="transfer_mouse_wheel">
-        <description summary="notify of mouse wheel event on remote surface" />
-        <arg name="direction" type="uint" summary="wheel direction" />
-        <arg name="z" type="int"  summary="z coordinate" />
-        <arg name="clas" type="uint" summary="class of event generator(device)" />
-        <arg name="subclas" type="uint" summary="subclass of event generator(device)" />
-        <arg name="identifier" type="string" summary="description of event generator(device)" />
-        <arg name="time" type="uint" summary="timestamp" />
-     </request>
-
-     <request name="transfer_touch_event">
-        <description summary="notify of touch up/down/move event on remote surface" />
-        <arg name="event_type" type="uint" enum="event_type" summary="event type" />
-        <arg name="device" type="int" summary="device type" />
-        <arg name="button" type="int" summary="button id" />
-        <arg name="x" type="int" summary="x coordinate" />
-        <arg name="y" type="int" summary="y coordinate" />
-        <arg name="radius_x" type="fixed" summary="minor axis of touch point"  />
-        <arg name="radius_y" type="fixed" summary="major axis of touch point" />
-        <arg name="pressure" type="fixed" summary="pressure of touch point" />
-        <arg name="angle" type="fixed" summary="angle of touch point" />
-        <arg name="clas" type="uint" summary="class of event generator(device)" />
-        <arg name="subclas" type="uint" summary="subclass of event generator(device)" />
-        <arg name="identifier" type="string" summary="description of event generator(device)" />
-        <arg name="time" type="uint" summary="timestamp" />
-     </request>
-
-     <request name="transfer_touch_cancel">
-        <description summary="notify of touch cancel"/>
-     </request>
-
-     <request name="transfer_key_event">
-        <description summary="notify of key down/up event"/>
-        <arg name="event_type" type="uint" enum="event_type" summary="event type" />
-        <arg name="keycode" type="int" summary="keycode" />
-        <arg name="clas" type="uint" summary="class of event generator(device)" />
-        <arg name="subclas" type="uint" summary="subclass of event generator(device)" />
-        <arg name="identifier" type="string" summary="description of event generator(device)" />
-        <arg name="time" type="uint" summary="timestamp" />
-     </request>
-
-     <enum name="event_type">
-        <entry name="none" value="0" />
-        <entry name="mouse_down" value="1" />
-        <entry name="mouse_up" value="2" />
-        <entry name="mouse_move" value="3" />
-        <entry name="touch_down" value="4" />
-        <entry name="touch_up" value="5" />
-        <entry name="touch_move" value="6" />
-        <entry name="key_down" value="7" />
-        <entry name="key_up" value="8" />
-        <entry name="mouse_in" value="9" />
-        <entry name="mouse_out" value="10" />
-     </enum>
-
-     <!-- for visibility transference -->
-     <request name="transfer_visibility">
-        <description summary="notify of visibility change of remote surface" />
-        <arg name="visibility" type="uint" enum="visibility_type" summary="changed visibility type" />
-     </request>
-
-     <enum name="visibility_type">
-        <entry name="visible" value="0" />
-        <entry name="invisible" value="1" />
-     </enum>
-
-     <!-- for notify of provider's ejection -->
-     <event name="missing">
-        <description summary="notify of leave of provider" />
-     </event>
-
-     <request name="set_owner">
-        <description summary="set owner surface of remote sruface">
-           Set owner wl_surface object of this remote surface.
-        </description>
-        <arg name="owner" type="object" interface="wl_surface" allow-null="true" summary="wayland surface to be set to an owner" />
-     </request>
-
-     <request name="create_region">
-        <description summary="create new region">
-           Ask tizen_remote_surface for creation of new remote surface region object.
-           tizen_remote_surface_region object can be used for representing
-           region of tizen_remote_surface.
-        </description>
-        <arg name="id" type="new_id" interface="tizen_remote_surface_region" />
-     </request>
-
-     <!-- Version 2 additions -->
-
-     <request name="release" since="2">
-        <description summary="request release of wayland buffer">
-           Notify of end of using the wayland buffer.
-           tizen_remote_surface client SHOULD request this after all work using
-           wayland buffer is done so that provider of the wl_buffer can re-use the buffer.
-        </description>
-        <arg name="buffer" type="object" interface="wl_buffer" summary="wayland buffer to be released"/>
-     </request>
-
-     <!-- Version 3 additions -->
-
-     <enum name="buffer_type" since="3">
-        <description summary="type of remote surface buffer" />
-        <entry name="tbm" value="0" summary="tbm type"/>
-        <entry name="image_file" value="1" summary="image file type"/>
-     </enum>
-
-     <event name="changed_buffer" since="3">
-        <description summary="deliver a changed buffer of the provider client">
-           When a provider client of a remote surface sent wl_surface.commit,
-           the compositor delivers a remote buffer is created based on provider's buffer.
-           And the buffer of provider client can be changed to the static image file by
-           the compositor whenever its window is iconify. Then consumer has to use
-           fd instead of buffer.
-        </description>
-        <arg name="type" type="uint" enum="buffer_type" summary="buffer type" />
-        <arg name="tbm" type="object" interface="wl_buffer" allow-null="true" summary="wayland buffer based on provider updated buffer"/>
-        <arg name="img_file_fd" type="fd" summary="static image file descriptor" />
-        <arg name="img_file_size" type="uint" summary="size of static image file" />
-        <arg name="time" type="uint" summary="timestamp" />
-        <arg name="options" type="array" allow-null="true" summary="array of options"/>
-     </event>
-
-     <!-- Version 4 additions -->
-
-     <event name="input_event_filter" since="4">
-        <description summary="delivered a changed event filter of provider client">
-           When a provider client of this remote surface sent
-           remote_surface_provider@set_input_event_filter, a compositor delivers
-           the event filter values to this remote surface client.
-        </description>
-        <arg name="event_filter" type="uint" summary="event filter value"/>
-     </event>
-
-     <enum name="input_event_filter">
-        <description summary="vaules for event filter."/>
-        <entry name="mouse_none" value="0x00000001"/>
-        <entry name="mouse_up_down" value="0x00000002"/>
-        <entry name="mouse_move_x" value="0x00000003"/>
-        <entry name="mouse_move_y" value="0x00000004"/>
-        <entry name="mouse_move_x_y" value="0x00000005"/>
-        <entry name="mouse_up_down_move_x" value="0x00000006"/>
-        <entry name="mouse_up_down_move_y" value="0x00000007"/>
-        <entry name="mouse_up_down_move_x_y" value="0x00000008"/>
-        <entry name="mouse_all" value="0x0000000e" />
-        <entry name="mouse_flag" value="0x0000000f"/>
-        <entry name="mouse_wheel_none" value="0x00000010"/>
-        <entry name="mouse_wheel_all" value="0x000000e0"/>
-        <entry name="mouse_wheel_flag" value="0x000000f0"/>
-        <entry name="touch_none" value="0x00000100"/>
-        <entry name="touch_up_down" value="0x00000200"/>
-        <entry name="touch_move_x" value="0x00000300"/>
-        <entry name="touch_move_y" value="0x00000400"/>
-        <entry name="touch_move_x_y" value="0x00000500"/>
-        <entry name="touch_up_down_move_x" value="0x00000600"/>
-        <entry name="touch_up_down_move_y" value="0x00000700"/>
-        <entry name="touch_up_down_move_x_y" value="0x00000800"/>
-        <entry name="touch_all" value="0x00000e00"/>
-        <entry name="touch_flag" value="0x00000f00"/>
-        <entry name="touch_cancel_none" value="0x00001000"/>
-        <entry name="touch_cancel_all" value="0x0000e000"/>
-        <entry name="touch_cancel_flag" value="0x0000f000"/>
-        <entry name="key_none" value="0x00010000"/>
-        <entry name="key_all" value="0x000e0000"/>
-        <entry name="key_flag" value="0x000f0000"/>
-     </enum>
-
-     <request name="set_remote_render" since="4">
-        <description summary="request offscreen rendering of its provider client">
-           Even if a provider is iconifed already and server sent
-           its static image using tizen_remote_surface@changed_buffer, some
-           privileged clients can request for offscreen rendering of the provider
-           client using this request.
-        </description>
-        <arg name="set" type="uint" summary="do offscreen render of its provider if true" />
-     </request>
-
-     <!-- Version 5 additions -->
-     <enum name="changed_buffer_event_filter" since="5">
-        <description summary="vaules for changed_buffer event filter"/>
-        <entry name="none" value="0x00000000" summary="none"/>
-        <entry name="tbm" value="0x00000001" summary="tbm type filter"/>
-        <entry name="image_file" value="0x00000002" summary="image file type filter"/>
-     </enum>
-
-     <request name="set_changed_buffer_event_filter" since="5">
-        <description summary="set changed_buffer event filter to be accepted or denied">
-           This request enables the client to accept or reject specific 'changed_buffer' event
-           using given filter value. If the client set specific value for 'changed_buffer' event
-           to filter that, then that event will not be sent to the client. An existing filter
-           can be removed using 'none' value of type argument. In this case, all 'changed_buffer'
-           events will be delivered to the client.
-        </description>
-        <arg name="type" type="uint" enum="changed_buffer_event_filter" summary="type of buffer" />
-     </request>
-
-     <request name="get_current_buffer" since="5">
-        <description summary="get the current buffer of provider client">
-           This request asks the server to send the provider's current buffer with given type
-           of buffer. Since resulting buffer is passed in the 'changed_buffer' event callback,
-           the client should not set 'changed_buffer' event filter with given buffer type.
-        </description>
-        <arg name="type" type="uint" enum="buffer_type" summary="buffer type"/>
-        <arg name="serial" type="uint" summary="request serial number"/>
-     </request>
-
-  </interface>
-
-  <interface name="tizen_remote_surface_region" version="1">
-     <description summary="a region object">
-        A region object having geometry information and etc.
-     </description>
-     <request name="destroy" type="destructor" />
-     <request name="set_geometry">
-        <description summary="set geometry of this region">
-           Set geometry information of this region object.
-        </description>
-        <arg name="x" type="int" summary="x coordinate" />
-        <arg name="y" type="int" summary="y coordinate" />
-        <arg name="w" type="int" summary="width" />
-        <arg name="h" type="int" summary="height" />
-     </request>
-  </interface>
-</protocol>
diff --git a/protocol/tizen-surface.xml b/protocol/tizen-surface.xml
deleted file mode 100644 (file)
index fd9c5ab..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<protocol name="tizen_surface">
-  <interface name="tizen_surface_shm" version="2">
-    <request name="get_flusher">
-      <arg name="id" type="new_id" interface="tizen_surface_shm_flusher" summary=""/>
-      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
-    </request>
-
-    <request name="destroy" type="destructor">
-      <description summary="destroy tizen_surface_shm">
-        Destroy tizen_surface_shm.
-      </description>
-    </request>
-  </interface>
-
-  <interface name="tizen_surface_shm_flusher" version="2">
-    <request name="destroy" type="destructor" />
-    <event name="flush">
-    </event>
-    <event name="free_flush" since="2">
-    </event>
-  </interface>
-</protocol>
diff --git a/protocol/tizen/fullscreen-shell.xml b/protocol/tizen/fullscreen-shell.xml
new file mode 100644 (file)
index 0000000..8d7a87f
--- /dev/null
@@ -0,0 +1,206 @@
+<protocol name="fullscreen_shell">
+  <interface name="_wl_fullscreen_shell" version="1">
+    <description summary="Displays a single surface per output">
+      Displays a single surface per output.
+
+      This interface provides a mechanism for a single client to display
+      simple full-screen surfaces.  While there technically may be multiple
+      clients bound to this interface, only one of those clients should be
+      shown at a time.
+
+      To present a surface, the client uses either the present_surface or
+      present_surface_for_mode requests.  Presenting a surface takes effect
+      on the next wl_surface.commit.  See the individual requests for
+      details about scaling and mode switches.
+
+      The client can have at most one surface per output at any time.
+      Requesting a surface be presented on an output that already has a
+      surface replaces the previously presented surface.  Presenting a null
+      surface removes its content and effectively disables the output.
+      Exactly what happens when an output is "disabled" is
+      compositor-specific.  The same surface may be presented on multiple
+      outputs simultaneously.
+
+      Once a surface is presented on an output, it stays on that output
+      until either the client removes it or the compositor destroys the
+      output.  This way, the client can update the output's contents by
+      simply attaching a new buffer.
+    </description>
+
+    <request name="release" type="destructor">
+      <description summary="release the wl_fullscreen_shell interface">
+       Release the binding from the wl_fullscreen_shell interface
+
+       This destroys the server-side object and frees this binding.  If
+       the client binds to wl_fullscreen_shell multiple times, it may wish
+       to free some of those bindings.
+      </description>
+    </request>
+
+    <enum name="capability">
+      <description summary="capabilities advertised by the compositor">
+       Various capabilities that can be advertised by the compositor.  They
+       are advertised one-at-a-time when the wl_fullscreen_shell interface is
+       bound.  See the wl_fullscreen_shell.capability event for more details.
+
+       ARBITRARY_MODE:
+       This is a hint to the client that indicates that the compositor is
+       capable of setting practically any mode on its outputs.  If this
+       capability is provided, wl_fullscreen_shell.present_surface_for_mode
+       will almost never fail and clients should feel free to set whatever
+       mode they like.  If the compositor does not advertise this, it may
+       still support some modes that are not advertised through wl_global.mode
+       but it is less likely.
+
+       CURSOR_PLANE:
+       This is a hint to the client that indicates that the compositor can
+       handle a cursor surface from the client without actually compositing.
+       This may be because of a hardware cursor plane or some other mechanism.
+       If the compositor does not advertise this capability then setting
+       wl_pointer.cursor may degrade performance or be ignored entirely.  If
+       CURSOR_PLANE is not advertised, it is recommended that the client draw
+       its own cursor and set wl_pointer.cursor(NULL).
+      </description>
+      <entry name="arbitrary_modes" value="1" summary="compositor is capable of almost any output mode"/>
+      <entry name="cursor_plane" value="2" summary="compositor has a seperate cursor plane"/>
+    </enum>
+
+    <event name="capability">
+      <description summary="advertises a capability of the compositor">
+       Advertises a single capability of the compositor.
+
+       When the wl_fullscreen_shell interface is bound, this event is emitted
+       once for each capability advertised.  Valid capabilities are given by
+       the wl_fullscreen_shell.capability enum.  If clients want to take
+       advantage of any of these capabilities, they should use a
+       wl_display.sync request immediately after binding to ensure that they
+       receive all the capability events.
+      </description>
+      <arg name="capabilty" type="uint"/>
+    </event>
+
+    <enum name="present_method">
+      <description summary="different method to set the surface fullscreen">
+       Hints to indicate to the compositor how to deal with a conflict
+       between the dimensions of the surface and the dimensions of the
+       output. The compositor is free to ignore this parameter.
+      </description>
+      <entry name="default" value="0" summary="no preference, apply default policy"/>
+      <entry name="center" value="1" summary="center the surface on the output"/>
+      <entry name="zoom" value="2" summary="scale the surface, preserving aspect ratio, to the largest size that will fit on the output" />
+      <entry name="zoom_crop" value="3" summary="scale the surface, preserving aspect ratio, to fully fill the output cropping if needed" />
+      <entry name="stretch" value="4" summary="scale the surface to the size of the output ignoring aspect ratio" />
+    </enum>
+
+    <request name="present_surface">
+      <description summary="present surface for display">
+       Present a surface on the given output.
+
+       If the output is null, the compositor will present the surface on
+       whatever display (or displays) it thinks best.  In particular, this
+       may replace any or all surfaces currently presented so it should
+       not be used in combination with placing surfaces on specific
+       outputs.
+
+       The method parameter is a hint to the compositor for how the surface
+       is to be presented.  In particular, it tells the compositor how to
+       handle a size mismatch between the presented surface and the
+       output.  The compositor is free to ignore this parameter.
+
+       The "zoom", "zoom_crop", and "stretch" methods imply a scaling
+       operation on the surface.  This will override any kind of output
+       scaling, so the buffer_scale property of the surface is effectively
+       ignored.
+      </description>
+      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
+      <arg name="method" type="uint"/>
+      <arg name="output" type="object" interface="wl_output" allow-null="true"/>
+    </request>
+
+    <request name="present_surface_for_mode">
+      <description summary="present surface for display at a particular mode">
+       Presents a surface on the given output for a particular mode.
+
+       If the current size of the output differs from that of the surface,
+       the compositor will attempt to change the size of the output to
+       match the surface.  The result of the mode-switch operation will be
+       returned via the provided wl_fullscreen_shell_mode_feedback object.
+
+       If the current output mode matches the one requested or if the
+       compositor successfully switches the mode to match the surface,
+       then the mode_successful event will be sent and the output will
+       contain the contents of the given surface.  If the compositor
+       cannot match the output size to the surface size, the mode_failed
+       will be sent and the output will contain the contents of the
+       previously presented surface (if any).  If another surface is
+       presented on the given output before either of these has a chance
+       to happen, the present_cancelled event will be sent.
+
+       Due to race conditions and other issues unknown to the client, no
+       mode-switch operation is guaranteed to succeed.  However, if the
+       mode is one advertised by wl_output.mode or if the compositor
+       advertises the ARBITRARY_MODES capability, then the client should
+       expect that the mode-switch operation will usually succeed.
+
+       If the size of the presented surface changes, the resulting output
+       is undefined.  The compositor may attempt to change the output mode
+       to compensate.  However, there is no guarantee that a suitable mode
+       will be found and the client has no way to be notified of success
+       or failure.
+
+       The framerate parameter specifies the desired framerate for the
+       output in mHz.  The compositor is free to ignore this parameter.  A
+       value of 0 indicates that the client has no preference.
+
+       If the value of wl_output.scale differs from wl_surface.buffer_scale,
+       then the compositor may choose a mode that matches either the buffer
+       size or the surface size.  In either case, the surface will fill the
+       output.
+      </description>
+      <arg name="surface" type="object" interface="wl_surface"/>
+      <arg name="output" type="object" interface="wl_output"/>
+      <arg name="framerate" type="int"/>
+      <arg name="feedback" type="new_id" interface="_wl_fullscreen_shell_mode_feedback"/>
+    </request>
+
+    <enum name="error">
+      <description summary="wl_fullscreen_shell error values">
+       These errors can be emitted in response to wl_fullscreen_shell requests
+      </description>
+      <entry name="invalid_method" value="0" summary="present_method is not known"/>
+    </enum>
+  </interface>
+
+  <interface name="_wl_fullscreen_shell_mode_feedback" version="1">
+    <event name="mode_successful">
+      <description summary="mode switch succeeded">
+       This event indicates that the attempted mode switch operation was
+       successful.  A surface of the size requested in the mode switch
+       will fill the output without scaling.
+
+       Upon receiving this event, the client should destroy the
+       wl_fullscreen_shell_mode_feedback object.
+      </description>
+    </event>
+    <event name="mode_failed">
+      <description summary="mode switch failed">
+       This event indicates that the attempted mode switch operation
+       failed. This may be because the requested output mode is not
+       possible or it may mean that the compositor does not want to allow it.
+
+       Upon receiving this event, the client should destroy the
+       wl_fullscreen_shell_mode_feedback object.
+      </description>
+    </event>
+    <event name="present_cancelled">
+      <description summary="mode switch cancelled">
+       This event indicates that the attempted mode switch operation was
+       cancelled.  Most likely this is because the client requested a
+       second mode switch before the first one completed.
+
+       Upon receiving this event, the client should destroy the
+       wl_fullscreen_shell_mode_feedback object.
+      </description>
+    </event>
+  </interface>
+</protocol>
diff --git a/protocol/tizen/input-method.xml b/protocol/tizen/input-method.xml
new file mode 100644 (file)
index 0000000..fb28774
--- /dev/null
@@ -0,0 +1,413 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="input_method">
+  <copyright>
+    Copyright Â© 2012, 2013 Intel Corporation
+
+    Permission to use, copy, modify, distribute, and sell this
+    software and its documentation for any purpose is hereby granted
+    without fee, provided that the above copyright notice appear in
+    all copies and that both that copyright notice and this permission
+    notice appear in supporting documentation, and that the name of
+    the copyright holders not be used in advertising or publicity
+    pertaining to distribution of the software without specific,
+    written prior permission.  The copyright holders make no
+    representations about the suitability of this software for any
+    purpose.  It is provided "as is" without express or implied
+    warranty.
+
+    THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+    SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+    FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+    SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+    AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+    ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+    THIS SOFTWARE.
+  </copyright>
+
+  <interface name="wl_input_method_context" version="1">
+    <description summary="input method context">
+      Corresponds to a text input on input method side. An input method context
+      is created on text input activation on the input method side. It allows to
+      receive information about the text input from the application via events.
+      Input method contexts do not keep state after deactivation and should be
+      destroyed after deactivation is handled.
+
+      Text is generally UTF-8 encoded, indices and lengths are in bytes.
+
+      Serials are used to synchronize the state between the text input and
+      an input method. New serials are sent by the text input in the
+      commit_state request and are used by the input method to indicate
+      the known text input state in events like preedit_string, commit_string,
+      and keysym. The text input can then ignore events from the input method
+      which are based on an outdated state (for example after a reset).
+    </description>
+    <request name="destroy" type="destructor"/>
+    <request name="commit_string">
+      <description summary="commit string">
+        Send the commit string text for insertion to the application.
+
+        The text to commit could be either just a single character after a key
+        press or the result of some composing (pre-edit). It could be also an
+        empty text when some text should be removed (see
+        delete_surrounding_text) or when the input cursor should be moved (see
+        cursor_position).
+
+        Any previously set composing text will be removed.
+      </description>
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+      <arg name="text" type="string"/>
+    </request>
+    <request name="preedit_string">
+      <description summary="pre-edit string">
+        Send the pre-edit string text to the application text input.
+
+        The commit text can be used to replace the preedit text on reset (for
+        example on unfocus).
+
+        Also previously sent preedit_style and preedit_cursor requests are
+        processed bt the text_input also.
+      </description>
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+      <arg name="text" type="string"/>
+      <arg name="commit" type="string"/>
+    </request>
+    <request name="preedit_styling">
+      <description summary="pre-edit styling">
+        Set styling information on composing text. The style is applied for
+        length in bytes from index relative to the beginning of the composing
+        text (as byte offset). Multiple styles can be applied to a composing
+        text.
+
+        This request should be sent before sending preedit_string request.
+      </description>
+      <arg name="index" type="uint"/>
+      <arg name="length" type="uint"/>
+      <arg name="style" type="uint"/>
+    </request>
+    <request name="preedit_cursor">
+      <description summary="pre-edit cursor">
+        Set the cursor position inside the composing text (as byte offset)
+        relative to the start of the composing text.
+
+        When index is negative no cursor should be displayed.
+
+        This request should be sent before sending preedit_string request.
+      </description>
+      <arg name="index" type="int"/>
+    </request>
+    <request name="delete_surrounding_text">
+      <description summary="delete text">
+        This request will be handled on text_input side as part of a directly
+        following commit_string request.
+      </description>
+      <arg name="index" type="int"/>
+      <arg name="length" type="uint"/>
+    </request>
+    <request name="cursor_position">
+      <description summary="set cursor to a new position">
+        Set the cursor and anchor to a new position. Index is the new cursor
+        position in bytes (when >= 0 relative to the end of inserted text
+        else relative to beginning of inserted text). Anchor is the new anchor
+        position in bytes (when >= 0 relative to the end of inserted text, else
+        relative to beginning of inserted text). When there should be no
+        selected text anchor should be the same as index.
+
+        This request will be handled on text_input side as part of a directly
+        following commit_string request.
+      </description>
+      <arg name="index" type="int"/>
+      <arg name="anchor" type="int"/>
+    </request>
+    <request name="modifiers_map">
+      <arg name="map" type="array"/>
+    </request>
+    <request name="keysym">
+      <description summary="keysym">
+        Notify when a key event was sent. Key events should not be used for
+        normal text input operations, which should be done with commit_string,
+        delete_surrounding_text, etc. The key event follows the wl_keyboard key
+        event convention. Sym is an XKB keysym, state is a wl_keyboard key_state.
+      </description>
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+      <arg name="time" type="uint"/>
+      <arg name="sym" type="uint"/>
+      <arg name="state" type="uint"/>
+      <arg name="modifiers" type="uint"/>
+    </request>
+    <request name="grab_keyboard">
+      <description summary="grab hardware keyboard">
+        Allow an input method to receive hardware keyboard input and process
+        key events to generate text events (with pre-edit) over the wire. This
+        allows input methods which compose multiple key events for inputting
+        text like it is done for CJK languages.
+      </description>
+       <arg name="keyboard" type="new_id" interface="wl_keyboard"/>
+    </request>
+    <request name="key">
+      <description summary="forward key event">
+        Should be used when filtering key events with grab_keyboard.
+
+        When the wl_keyboard::key event is not processed by the input
+        method itself and should be sent to the client instead, forward it
+        with this request. The arguments should be the ones from the
+        wl_keyboard::key event.
+
+        For generating custom key events use the keysym request instead.
+      </description>
+      <arg name="serial" type="uint" summary="serial from wl_keyboard::key"/>
+      <arg name="time" type="uint" summary="time from wl_keyboard::key"/>
+      <arg name="key" type="uint" summary="key from wl_keyboard::key"/>
+      <arg name="state" type="uint" summary="state from wl_keyboard::key"/>
+    </request>
+    <request name="modifiers">
+      <description summary="forward modifiers event">
+        Should be used when filtering key events with grab_keyboard.
+
+        When the wl_keyboard::modifiers event should be also send to the
+        client, forward it with this request. The arguments should be the ones
+        from the wl_keyboard::modifiers event.
+      </description>
+      <arg name="serial" type="uint" summary="serial from wl_keyboard::modifiers"/>
+      <arg name="mods_depressed" type="uint" summary="mods_depressed from wl_keyboard::modifiers"/>
+      <arg name="mods_latched" type="uint" summary="mods_latched from wl_keyboard::modifiers"/>
+      <arg name="mods_locked" type="uint" summary="mods_locked from wl_keyboard::modifiers"/>
+      <arg name="group" type="uint" summary="group from wl_keyboard::modifiers"/>
+    </request>
+    <request name="language">
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+      <arg name="language" type="string"/>
+    </request>
+    <request name="text_direction">
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+      <arg name="direction" type="uint"/>
+    </request>
+    <request name="selection_region">
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+      <arg name="start" type="int"/>
+      <arg name="end" type="int"/>
+    </request>
+    <request name="private_command">
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+      <arg name="command" type="string"/>
+    </request>
+    <request name="update_input_panel_data">
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+      <arg name="input_panel_data" type="string"/>
+      <arg name="input_panel_data_length" type="uint"/>
+    </request>
+    <request name="hide_input_panel">
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+    </request>
+    <request name="get_selection_text">
+      <arg name="fd" type="fd"/>
+    </request>
+    <request name="get_surrounding_text">
+      <arg name="maxlen_before" type="uint"/>
+      <arg name="maxlen_after" type="uint"/>
+      <arg name="fd" type="fd"/>
+    </request>
+    <request name="filter_key_event_done">
+      <arg name="serial" type="uint"/>
+      <arg name="state" type="uint"/>
+    </request>
+    <request name="update_ise_geometry">
+      <arg name="serial" type="uint"/>
+      <arg name="x" type="uint"/>
+      <arg name="y" type="uint"/>
+      <arg name="width" type="uint"/>
+      <arg name="height" type="uint"/>
+    </request>
+    <request name="recapture_string">
+      <description summary="recapture string">
+        Send the recapture string text to the application text input.
+      </description>
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+      <arg name="index" type="int"/>
+      <arg name="length" type="uint"/>
+      <arg name="preedit" type="string"/>
+      <arg name="preedit_commit" type="string"/>
+      <arg name="commit" type="string"/>
+    </request>
+    <request name="input_panel_event">
+      <description summary="input panel event">
+        Send the input panel event.
+      </description>
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+      <arg name="event_type" type="uint"/>
+      <arg name="value" type="uint"/>
+    </request>
+    <request name="commit_content">
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+      <arg name="content" type="string"/>
+      <arg name="description" type="string"/>
+      <arg name="mime_types" type="string"/>
+    </request>
+    <request name="update_candidate_state">
+      <arg name="state" type="uint"/>
+    </request>
+    <event name="reset">
+    </event>
+    <event name="content_type">
+      <arg name="hint" type="uint"/>
+      <arg name="purpose" type="uint"/>
+    </event>
+    <event name="invoke_action">
+      <arg name="button" type="uint"/>
+      <arg name="index" type="uint"/>
+    </event>
+    <event name="commit_state">
+      <arg name="serial" type="uint" summary="serial of text input state"/>
+    </event>
+    <event name="preferred_language">
+      <arg name="language" type="string"/>
+    </event>
+    <event name="return_key_type">
+      <arg name="return_key_type" type="uint"/>
+    </event>
+    <event name="return_key_disabled">
+      <arg name="return_key_disabled" type="uint"/>
+    </event>
+    <event name="input_panel_data">
+      <arg name="input_panel_data" type="string"/>
+      <arg name="input_panel_data_length" type="uint"/>
+    </event>
+    <event name="bidi_direction">
+      <arg name="direction" type="uint"/>
+    </event>
+    <event name="cursor_position">
+      <arg name="cursor_position" type="uint"/>
+    </event>
+    <event name="process_input_device_event">
+      <description summary="request to process unconventional input device event">
+        Deliver unconventional input device events that need to be processed by input panel
+      </description>
+      <arg name="event_type" type="uint"/>
+      <arg name="event_data" type="string"/>
+      <arg name="event_length" type="uint"/>
+    </event>
+    <event name="filter_key_event">
+      <description summary="input panel data">
+        Request to filter key event via input method
+      </description>
+      <arg name="serial" type="uint"/>
+      <arg name="time" type="uint"/>
+      <arg name="keyname" type="string"/>
+      <arg name="state" type="uint"/>
+      <arg name="modifiers" type="uint"/>
+      <arg name="dev_name" type="string"/>
+      <arg name="dev_class" type="uint"/>
+      <arg name="dev_subclass" type="uint"/>
+    </event>
+    <event name="capital_mode">
+      <arg name="mode" type="uint"/>
+    </event>
+    <event name="prediction_hint">
+      <arg name="text" type="string"/>
+    </event>
+    <event name="mime_type">
+      <arg name="type" type="string"/>
+    </event>
+    <event name="finalized_content">
+      <arg name="text" type="string"/>
+      <arg name="cursor_position" type="uint"/>
+    </event>
+    <event name="prediction_hint_data">
+      <arg name="key" type="string"/>
+      <arg name="value" type="string"/>
+    </event>
+  </interface>
+
+  <interface name="wl_input_method" version="1">
+    <description summary="input method">
+      An input method object is responsible for composing text in response to
+      input from hardware or virtual keyboards. There is one input method
+      object per seat. On activate there is a new input method context object
+      created which allows the input method to communicate with the text input.
+    </description>
+    <event name="activate">
+      <description summary="activate event">
+        A text input was activated. Creates an input method context object
+        which allows communication with the text input.
+      </description>
+      <arg name="id" type="new_id" interface="wl_input_method_context"/>
+      <arg name="text_input_id" type="uint"/>
+      <arg name="focus_in_event" type="uint"/>
+    </event>
+    <event name="deactivate">
+      <description summary="deactivate event">
+        The text input corresponding to the context argument was deactivated.
+        The input method context should be destroyed after deactivation is
+        handled.
+      </description>
+      <arg name="context" type="object" interface="wl_input_method_context"/>
+      <arg name="focus_out_event" type="uint"/>
+    </event>
+    <event name="show_input_panel">
+      <description summary="show input panel event">
+        Input panel (virtual keyboard) was requested to show.
+      </description>
+      <arg name="context" type="object" interface="wl_input_method_context"/>
+    </event>
+    <event name="hide_input_panel">
+      <description summary="hide input panel event">
+        Input panel (virtual keyboard) was requested to hide.
+      </description>
+      <arg name="context" type="object" interface="wl_input_method_context"/>
+    </event>
+  </interface>
+
+  <interface name="wl_input_panel" version="1">
+    <description summary="interface for implementing keyboards">
+      Only one client can bind this interface at a time.
+    </description>
+
+    <request name="get_input_panel_surface">
+      <arg name="id" type="new_id" interface="wl_input_panel_surface"/>
+      <arg name="surface" type="object" interface="wl_surface"/>
+    </request>
+  </interface>
+
+  <interface name="wl_input_panel_surface" version="1">
+    <enum name="position">
+      <entry name="center_bottom" value="0"/>
+    </enum>
+
+    <request name="set_toplevel">
+      <description summary="set the surface type as a keyboard">
+        A keyboard surface is only shown, when a text input is active.
+      </description>
+      <arg name="output" type="object" interface="wl_output"/>
+      <arg name="position" type="uint"/>
+    </request>
+
+    <request name="set_overlay_panel">
+      <description summary="set the surface type as an overlay panel">
+        An overlay panel is shown near the input cursor above the application
+        window when a text input is active.
+      </description>
+    </request>
+
+    <request name="set_ready">
+      <description summary="set the current state of the keyboard surface as a ready state">
+        A keyboard surface needs to be shown after rendering the first frame is completed.
+        Otherwise, the keyboard surface that contains inappropriate layout will be displayed.
+      </description>
+      <arg name="state" type="uint"/>
+    </request>
+
+    <request name="set_floating_panel">
+      <description summary="set the panel type as a floating panel">
+        A Keyboard surface is shown as a floating panel type.
+      </description>
+      <arg name="state" type="uint"/>
+    </request>
+
+    <request name="set_floating_drag_enabled">
+      <description summary="set floating drag enabled">
+        Set the permission to move floating panel.
+      </description>
+      <arg name="enabled" type="uint"/>
+    </request>
+  </interface>
+</protocol>
diff --git a/protocol/tizen/scaler.xml b/protocol/tizen/scaler.xml
new file mode 100644 (file)
index 0000000..9642af2
--- /dev/null
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="scaler">
+
+  <copyright>
+    Copyright Â© 2013-2014 Collabora, Ltd.
+
+    Permission to use, copy, modify, distribute, and sell this
+    software and its documentation for any purpose is hereby granted
+    without fee, provided that the above copyright notice appear in
+    all copies and that both that copyright notice and this permission
+    notice appear in supporting documentation, and that the name of
+    the copyright holders not be used in advertising or publicity
+    pertaining to distribution of the software without specific,
+    written prior permission.  The copyright holders make no
+    representations about the suitability of this software for any
+    purpose.  It is provided "as is" without express or implied
+    warranty.
+
+    THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+    SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+    FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+    SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+    AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+    ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+    THIS SOFTWARE.
+  </copyright>
+
+  <interface name="wl_scaler" version="2">
+    <description summary="surface cropping and scaling">
+      The global interface exposing surface cropping and scaling
+      capabilities is used to instantiate an interface extension for a
+      wl_surface object. This extended interface will then allow
+      cropping and scaling the surface contents, effectively
+      disconnecting the direct relationship between the buffer and the
+      surface size.
+    </description>
+
+    <request name="destroy" type="destructor">
+      <description summary="unbind from the cropping and scaling interface">
+       Informs the server that the client will not be using this
+       protocol object anymore. This does not affect any other objects,
+       wl_viewport objects included.
+      </description>
+    </request>
+
+    <enum name="error">
+      <entry name="viewport_exists" value="0"
+             summary="the surface already has a viewport object associated"/>
+    </enum>
+
+    <request name="get_viewport">
+      <description summary="extend surface interface for crop and scale">
+       Instantiate an interface extension for the given wl_surface to
+       crop and scale its content. If the given wl_surface already has
+       a wl_viewport object associated, the viewport_exists
+       protocol error is raised.
+      </description>
+
+      <arg name="id" type="new_id" interface="wl_viewport"
+           summary="the new viewport interface id"/>
+      <arg name="surface" type="object" interface="wl_surface"
+           summary="the surface"/>
+    </request>
+  </interface>
+
+  <interface name="wl_viewport" version="2">
+    <description summary="crop and scale interface to a wl_surface">
+      An additional interface to a wl_surface object, which allows the
+      client to specify the cropping and scaling of the surface
+      contents.
+
+      This interface allows to define the source rectangle (src_x,
+      src_y, src_width, src_height) from where to take the wl_buffer
+      contents, and scale that to destination size (dst_width,
+      dst_height). This state is double-buffered, and is applied on the
+      next wl_surface.commit.
+
+      The two parts of crop and scale state are independent: the source
+      rectangle, and the destination size. Initially both are unset, that
+      is, no scaling is applied. The whole of the current wl_buffer is
+      used as the source, and the surface size is as defined in
+      wl_surface.attach.
+
+      If the destination size is set, it causes the surface size to become
+      dst_width, dst_height. The source (rectangle) is scaled to exactly
+      this size. This overrides whatever the attached wl_buffer size is,
+      unless the wl_buffer is NULL. If the wl_buffer is NULL, the surface
+      has no content and therefore no size. Otherwise, the size is always
+      at least 1x1 in surface coordinates.
+
+      If the source rectangle is set, it defines what area of the
+      wl_buffer is taken as the source. If the source rectangle is set and
+      the destination size is not set, the surface size becomes the source
+      rectangle size rounded up to the nearest integer. If the source size
+      is already exactly integers, this results in cropping without scaling.
+
+      The coordinate transformations from buffer pixel coordinates up to
+      the surface-local coordinates happen in the following order:
+        1. buffer_transform (wl_surface.set_buffer_transform)
+        2. buffer_scale (wl_surface.set_buffer_scale)
+        3. crop and scale (wl_viewport.set*)
+      This means, that the source rectangle coordinates of crop and scale
+      are given in the coordinates after the buffer transform and scale,
+      i.e. in the coordinates that would be the surface-local coordinates
+      if the crop and scale was not applied.
+
+      If the source rectangle is partially or completely outside of the
+      wl_buffer, then the surface contents are undefined (not void), and
+      the surface size is still dst_width, dst_height.
+
+      The x, y arguments of wl_surface.attach are applied as normal to
+      the surface. They indicate how many pixels to remove from the
+      surface size from the left and the top. In other words, they are
+      still in the surface-local coordinate system, just like dst_width
+      and dst_height are.
+
+      If the wl_surface associated with the wl_viewport is destroyed,
+      the wl_viewport object becomes inert.
+
+      If the wl_viewport object is destroyed, the crop and scale
+      state is removed from the wl_surface. The change will be applied
+      on the next wl_surface.commit.
+    </description>
+
+    <request name="destroy" type="destructor">
+      <description summary="remove scaling and cropping from the surface">
+       The associated wl_surface's crop and scale state is removed.
+       The change is applied on the next wl_surface.commit.
+      </description>
+    </request>
+
+    <enum name="error">
+      <entry name="bad_value" value="0"
+             summary="negative or zero values in width or height"/>
+    </enum>
+
+    <request name="set">
+      <description summary="set the crop and scale state">
+       Set both source rectangle and destination size of the associated
+       wl_surface. See wl_viewport for the description, and relation to
+       the wl_buffer size.
+
+       The bad_value protocol error is raised if src_width or
+       src_height is negative, or if dst_width or dst_height is not
+       positive.
+
+       The crop and scale state is double-buffered state, and will be
+       applied on the next wl_surface.commit.
+
+       Arguments dst_x and dst_y do not exist here, use the x and y
+       arguments to wl_surface.attach. The x, y, dst_width, and dst_height
+       define the surface-local coordinate system irrespective of the
+       attached wl_buffer size.
+      </description>
+
+      <arg name="src_x" type="fixed" summary="source rectangle x"/>
+      <arg name="src_y" type="fixed" summary="source rectangle y"/>
+      <arg name="src_width" type="fixed" summary="source rectangle width"/>
+      <arg name="src_height" type="fixed" summary="source rectangle height"/>
+      <arg name="dst_width" type="int" summary="surface width"/>
+      <arg name="dst_height" type="int" summary="surface height"/>
+    </request>
+
+    <request name="set_source" since="2">
+      <description summary="set the source rectangle for cropping">
+       Set the source rectangle of the associated wl_surface. See
+       wl_viewport for the description, and relation to the wl_buffer
+       size.
+
+       If width is -1.0 and height is -1.0, the source rectangle is unset
+       instead. Any other pair of values for width and height that
+       contains zero or negative values raises the bad_value protocol
+       error.
+
+       The crop and scale state is double-buffered state, and will be
+       applied on the next wl_surface.commit.
+      </description>
+
+      <arg name="x" type="fixed" summary="source rectangle x"/>
+      <arg name="y" type="fixed" summary="source rectangle y"/>
+      <arg name="width" type="fixed" summary="source rectangle width"/>
+      <arg name="height" type="fixed" summary="source rectangle height"/>
+    </request>
+
+    <request name="set_destination" since="2">
+      <description summary="set the surface size for scaling">
+       Set the destination size of the associated wl_surface. See
+       wl_viewport for the description, and relation to the wl_buffer
+       size.
+
+       If width is -1 and height is -1, the destination size is unset
+       instead. Any other pair of values for width and height that
+       contains zero or negative values raises the bad_value protocol
+       error.
+
+       The crop and scale state is double-buffered state, and will be
+       applied on the next wl_surface.commit.
+
+       Arguments x and y do not exist here, use the x and y arguments to
+       wl_surface.attach. The x, y, width, and height define the
+       surface-local coordinate system irrespective of the attached
+       wl_buffer size.
+      </description>
+
+      <arg name="width" type="int" summary="surface width"/>
+      <arg name="height" type="int" summary="surface height"/>
+    </request>
+  </interface>
+</protocol>
diff --git a/protocol/tizen/screenshooter.xml b/protocol/tizen/screenshooter.xml
new file mode 100644 (file)
index 0000000..76e3c85
--- /dev/null
@@ -0,0 +1,12 @@
+<protocol name="screenshooter">
+
+  <interface name="screenshooter" version="1">
+    <request name="shoot">
+      <arg name="output" type="object" interface="wl_output"/>
+      <arg name="buffer" type="object" interface="wl_buffer"/>
+    </request>
+    <event name="done">
+    </event>
+  </interface>
+
+</protocol>
diff --git a/protocol/tizen/text-cursor-position.xml b/protocol/tizen/text-cursor-position.xml
new file mode 100644 (file)
index 0000000..0fbc54e
--- /dev/null
@@ -0,0 +1,11 @@
+<protocol name="text_cursor_position">
+
+  <interface name="text_cursor_position" version="1">
+    <request name="notify">
+      <arg name="surface" type="object" interface="wl_surface"/>
+      <arg name="x" type="fixed"/>
+      <arg name="y" type="fixed"/>
+    </request>
+  </interface>
+
+</protocol>
diff --git a/protocol/tizen/text.xml b/protocol/tizen/text.xml
new file mode 100644 (file)
index 0000000..662c44d
--- /dev/null
@@ -0,0 +1,551 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="text">
+
+  <copyright>
+    Copyright Â© 2012, 2013 Intel Corporation
+
+    Permission to use, copy, modify, distribute, and sell this
+    software and its documentation for any purpose is hereby granted
+    without fee, provided that the above copyright notice appear in
+    all copies and that both that copyright notice and this permission
+    notice appear in supporting documentation, and that the name of
+    the copyright holders not be used in advertising or publicity
+    pertaining to distribution of the software without specific,
+    written prior permission.  The copyright holders make no
+    representations about the suitability of this software for any
+    purpose.  It is provided "as is" without express or implied
+    warranty.
+
+    THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+    SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+    FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+    SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+    AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+    ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+    THIS SOFTWARE.
+  </copyright>
+
+  <interface name="wl_text_input" version="1">
+    <description summary="text input">
+      An object used for text input. Adds support for text input and input
+      methods to applications. A text_input object is created from a
+      wl_text_input_manager and corresponds typically to a text entry in an
+      application.
+
+      Requests are used to activate/deactivate the text_input object and set
+      state information like surrounding and selected text or the content type.
+      The information about entered text is sent to the text_input object via
+      the pre-edit and commit events. Using this interface removes the need
+      for applications to directly process hardware key events and compose text
+      out of them.
+
+      Text is generally UTF-8 encoded, indices and lengths are in bytes.
+
+      Serials are used to synchronize the state between the text input and
+      an input method. New serials are sent by the text input in the
+      commit_state request and are used by the input method to indicate
+      the known text input state in events like preedit_string, commit_string,
+      and keysym. The text input can then ignore events from the input method
+      which are based on an outdated state (for example after a reset).
+    </description>
+    <request name="destroy" type="destructor"/>
+    <request name="activate">
+      <description summary="request activation">
+        Requests the text_input object to be activated (typically when the
+        text entry gets focus).
+        The seat argument is a wl_seat which maintains the focus for this
+        activation. The surface argument is a wl_surface assigned to the
+        text_input object and tracked for focus lost. The enter event
+        is emitted on successful activation.
+      </description>
+      <arg name="seat" type="object" interface="wl_seat"/>
+      <arg name="surface" type="object" interface="wl_surface"/>
+    </request>
+    <request name="deactivate">
+      <description summary="request deactivation">
+        Requests the text_input object to be deactivated (typically when the
+        text entry lost focus). The seat argument is a wl_seat which was used
+        for activation.
+      </description>
+      <arg name="seat" type="object" interface="wl_seat"/>
+    </request>
+    <request name="show_input_panel">
+      <description summary="show input panels">
+        Requests input panels (virtual keyboard) to show.
+      </description>
+    </request>
+    <request name="hide_input_panel">
+      <description summary="hide input panels">
+        Requests input panels (virtual keyboard) to hide.
+      </description>
+    </request>
+    <request name="reset">
+      <description summary="reset">
+        Should be called by an editor widget when the input state should be
+        reset, for example after the text was changed outside of the normal
+        input method flow.
+      </description>
+    </request>
+    <enum name="content_hint">
+      <description summary="content hint">
+        Content hint is a bitmask to allow to modify the behavior of the text
+        input.
+      </description>
+      <entry name="none" value="0x0" summary="no special behaviour"/>
+      <entry name="default" value="0x7" summary="auto completion, correction and capitalization"/>
+      <entry name="password" value="0xc0" summary="hidden and sensitive text"/>
+      <entry name="auto_completion" value="0x1" summary="suggest word completions"/>
+      <entry name="auto_correction" value="0x2" summary="suggest word corrections"/>
+      <entry name="auto_capitalization" value="0x4" summary="switch to uppercase letters at the start of a sentence"/>
+      <entry name="lowercase" value="0x8" summary="prefer lowercase letters"/>
+      <entry name="uppercase" value="0x10" summary="prefer uppercase letters"/>
+      <entry name="titlecase" value="0x20" summary="prefer casing for titles and headings (can be language dependent)"/>
+      <entry name="hidden_text" value="0x40" summary="characters should be hidden"/>
+      <entry name="sensitive_data" value="0x80" summary="typed text should not be stored"/>
+      <entry name="latin" value="0x100" summary="just latin characters should be entered"/>
+      <entry name="multiline" value="0x200" summary="the text input is multiline"/>
+      <entry name="word_capitalization" value="0x400" summary="switch to uppercase letters at the start of a word"/>
+      <entry name="autofill_credit_card_expiration_date" value="0x10000" summary="autofilled with credit card expiration date"/>
+      <entry name="autofill_credit_card_expiration_day" value="0x20000" summary="autofilled with credit card expiration day"/>
+      <entry name="autofill_credit_card_expiration_month" value="0x30000" summary="autofilled with credit card expiration month"/>
+      <entry name="autofill_credit_card_expiration_year" value="0x40000" summary="autofilled with credit card expiration year"/>
+      <entry name="autofill_credit_card_number" value="0x50000" summary="autofilled with credit card number"/>
+      <entry name="autofill_credit_card_security_code" value="0x60000" summary="autofilled with credit card security code"/>
+      <entry name="autofill_email_address" value="0x70000" summary="autofilled with email address"/>
+      <entry name="autofill_phone" value="0x80000" summary="autofilled with phone number"/>
+      <entry name="autofill_postal_address" value="0x90000" summary="autofilled with postal address"/>
+      <entry name="autofill_postal_code" value="0xA0000" summary="autofilled with postal code"/>
+      <entry name="autofill_id" value="0xB0000" summary="autofilled with id"/>
+      <entry name="autofill_name" value="0xC0000" summary="autofilled with name"/>
+    </enum>
+    <enum name="content_purpose">
+      <description summary="content purpose">
+        The content purpose allows to specify the primary purpose of a text
+        input.
+
+        This allows an input method to show special purpose input panels with
+        extra characters or to disallow some characters.
+      </description>
+      <entry name="normal" value="0" summary="default input, allowing all characters"/>
+      <entry name="alpha" value="1" summary="allow only alphabetic characters"/>
+      <entry name="digits" value="2" summary="allow only digits"/>
+      <entry name="number" value="3" summary="input a number (including decimal separator and sign)"/>
+      <entry name="phone" value="4" summary="input a phone number"/>
+      <entry name="url" value="5" summary="input an URL"/>
+      <entry name="email" value="6" summary="input an email address"/>
+      <entry name="name" value="7" summary="input a name of a person"/>
+      <entry name="password" value="8" summary="input a password (combine with password or sensitive_data hint)"/>
+      <entry name="date" value="9" summary="input a date"/>
+      <entry name="time" value="10" summary="input a time"/>
+      <entry name="datetime" value="11" summary="input a date and time"/>
+      <entry name="terminal" value="12" summary="input for a terminal"/>
+      <entry name="ip" value="13" summary="input for a IP (number and a-f for Ipv6)"/>
+      <entry name="emoticon" value="14" summary="input for an emoticon"/>
+      <entry name="digits_signed" value="15" summary="allow digits and negative sign"/>
+      <entry name="digits_decimal" value="16" summary="allow digits and decimal point"/>
+      <entry name="digits_signeddecimal" value="17" summary="allow digits, negative sign and decimal point"/>
+      <entry name="password_digits" value="18" summary="input a password with only digits"/>
+      <entry name="filename" value="19" summary="default input for the name of a file (symbols such as '/' should be disabled)"/>
+      <entry name="hex" value="20" summary="input for a hexadecimal"/>
+      <entry name="voice" value="21" summary="input for a voice"/>
+    </enum>
+    <request name="set_content_type">
+      <description summary="set content purpose and hint">
+        Set the content purpose and content hint. While the purpose is the
+        basic purpose of an input field, the hint flags allow to modify some
+        of the behavior.
+
+        When no content type is explicitly set, a normal content purpose with
+        default hints (auto completion, auto correction, auto capitalization)
+        should be assumed.
+      </description>
+      <arg name="hint" type="uint"/>
+      <arg name="purpose" type="uint"/>
+    </request>
+    <request name="set_cursor_rectangle">
+      <arg name="x" type="int"/>
+      <arg name="y" type="int"/>
+      <arg name="width" type="int"/>
+      <arg name="height" type="int"/>
+    </request>
+    <request name="set_preferred_language">
+      <description summary="set preferred language">
+        Set a specific language. This allows for example a virtual keyboard to
+        show a language specific layout. The "language" argument is an RFC-3066
+        format language tag.
+
+        It could be used for example in a word processor to indicate language of
+        currently edited document or in an instant message application which tracks
+        languages of contacts.
+      </description>
+      <arg name="language" type="string"/>
+    </request>
+    <request name="commit_state">
+      <arg name="serial" type="uint" summary="used to identify the known state"/>
+    </request>
+    <request name="invoke_action">
+      <arg name="button" type="uint"/>
+      <arg name="index" type="uint"/>
+    </request>
+    <enum name="return_key_type">
+      <description summary="return key type">
+        The return key type allows to specify the return key on the input panel.
+      </description>
+      <entry name="default" value="0" summary="default"/>
+      <entry name="done" value="1" summary="done"/>
+      <entry name="go" value="2" summary="go"/>
+      <entry name="join" value="3" summary="join"/>
+      <entry name="login" value="4" summary="login"/>
+      <entry name="next" value="5" summary="next"/>
+      <entry name="search" value="6" summary="search"/>
+      <entry name="send" value="7" summary="send"/>
+    </enum>
+    <request name="set_return_key_type">
+      <description summary="set return key type">
+        Set the return key type.
+      </description>
+      <arg name="return_key_type" type="uint"/>
+    </request>
+    <request name="set_return_key_disabled">
+      <description summary="set return key to be disabled">
+        Set the return key on the input panel to be disabled.
+      </description>
+      <arg name="return_key_disabled" type="uint"/>
+    </request>
+    <request name="set_input_panel_data">
+      <description summary="set input panel data">
+        Set the input panel-specific data to deliver to the input panel.
+      </description>
+      <arg name="input_panel_data" type="string"/>
+      <arg name="input_panel_length" type="uint"/>
+    </request>
+    <request name="bidi_direction">
+      <arg name="direction" type="uint"/>
+    </request>
+    <request name="set_cursor_position">
+      <description summary="set the cursor index">
+        Set the cursor position to the input panel.
+      </description>
+      <arg name="cursor_position" type="uint"/>
+    </request>
+    <request name="process_input_device_event">
+      <description summary="request to process unconventional input device event">
+        Deliver unconventional input device events that need to be processed by input panel
+      </description>
+      <arg name="event_type" type="uint"/>
+      <arg name="event_data" type="string"/>
+      <arg name="event_length" type="uint"/>
+    </request>
+    <request name="filter_key_event">
+      <description summary="input panel data">
+        Filter key event by input method
+      </description>
+      <arg name="serial" type="uint"/>
+      <arg name="time" type="uint"/>
+      <arg name="keyname" type="string"/>
+      <arg name="state" type="uint"/>
+      <arg name="modifiers" type="uint"/>
+      <arg name="dev_name" type="string"/>
+      <arg name="dev_class" type="uint"/>
+      <arg name="dev_subclass" type="uint"/>
+    </request>
+    <request name="get_hide_permission">
+      <description summary="get permission to hide input panel">
+        Get permission to hide input panel.
+      </description>
+    </request>
+    <enum name="capital_mode">
+      <description summary="capital mode">
+        This allows to specify capital mode on the input panel.
+      </description>
+      <entry name="uppercase" value="0" summary="uppercase"/>
+      <entry name="lowercase" value="1" summary="lowercase"/>
+    </enum>
+    <request name="set_capital_mode">
+      <arg name="mode" type="uint"/>
+    </request>
+    <request name="prediction_hint">
+      <description summary="set the prediction hint">
+        Set the prediction hint string to deliver to the input panel.
+      </description>
+      <arg name="text" type="string"/>
+    </request>
+    <request name="set_mime_type">
+      <description summary="set the mime type">
+        Sets the mime type to deliver to the input panel.
+      </description>
+      <arg name="type" type="string"/>
+    </request>
+    <request name="set_input_panel_position">
+      <description summary="set the input panel position">
+        Set the input panel position.
+      </description>
+      <arg name="x" type="uint"/>
+      <arg name="y" type="uint"/>
+    </request>
+    <request name="finalize_content">
+      <description summary="finalize its content">
+        Finalized its content right before losing the focus.
+      </description>
+      <arg name="text" type="string"/>
+      <arg name="cursor_position" type="uint"/>
+    </request>
+    <request name="prediction_hint_data">
+      <description summary="set the prediction hint data">
+        Set the prediction hint data.
+      </description>
+      <arg name="key" type="string"/>
+      <arg name="value" type="string"/>
+    </request>
+    <event name="enter">
+      <description summary="enter event">
+        Notify the text_input object when it received focus. Typically in
+        response to an activate request.
+      </description>
+      <arg name="surface" type="object" interface="wl_surface"/>
+    </event>
+    <event name="leave">
+      <description summary="leave event">
+        Notify the text_input object when it lost focus. Either in response
+        to a deactivate request or when the assigned surface lost focus or was
+        destroyed.
+      </description>
+    </event>
+    <event name="modifiers_map">
+      <description summary="modifiers map">
+        Transfer an array of 0-terminated modifiers names. The position in
+        the array is the index of the modifier as used in the modifiers
+        bitmask in the keysym event.
+      </description>
+      <arg name="map" type="array"/>
+    </event>
+    <enum name="input_panel_state">
+      <entry name="hide" value="0" summary="Notification prior to the dismissal of the input panel"/>
+      <entry name="show" value="1" summary="Notification after the display of the input panel"/>
+    </enum>
+    <event name="input_panel_state">
+      <description summary="state of the input panel">
+        Notify when the visibility state of the input panel changed.
+      </description>
+      <arg name="state" type="uint"/>
+    </event>
+    <event name="preedit_string">
+      <description summary="pre-edit">
+        Notify when a new composing text (pre-edit) should be set around the
+        current cursor position. Any previously set composing text should
+        be removed.
+
+        The commit text can be used to replace the preedit text on reset
+        (for example on unfocus).
+
+        The text input should also handle all preedit_style and preedit_cursor
+        events occurring directly before preedit_string.
+      </description>
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+      <arg name="text" type="string"/>
+      <arg name="commit" type="string"/>
+    </event>
+    <enum name="preedit_style">
+      <entry name="default" value="0" summary="default style for composing text"/>
+      <entry name="none" value="1" summary="style should be the same as in non-composing text"/>
+      <entry name="active" value="2"/>
+      <entry name="inactive" value="3"/>
+      <entry name="highlight" value="4"/>
+      <entry name="underline" value="5"/>
+      <entry name="selection" value="6"/>
+      <entry name="incorrect" value="7"/>
+    </enum>
+    <event name="preedit_styling">
+      <description summary="pre-edit styling">
+        Set styling information on composing text. The style is applied for
+        length bytes from index relative to the beginning of the composing
+        text (as byte offset). Multiple styles can be applied to a composing
+        text by sending multiple preedit_styling events.
+
+        This event is handled as part of a following preedit_string event.
+      </description>
+      <arg name="index" type="uint"/>
+      <arg name="length" type="uint"/>
+      <arg name="style" type="uint"/>
+    </event>
+    <event name="preedit_cursor">
+      <description summary="pre-edit cursor">
+        Set the cursor position inside the composing text (as byte
+        offset) relative to the start of the composing text. When index is a
+        negative number no cursor is shown.
+
+        This event is handled as part of a following preedit_string event.
+      </description>
+      <arg name="index" type="int"/>
+    </event>
+    <event name="commit_string">
+      <description summary="commit">
+        Notify when text should be inserted into the editor widget. The text to
+        commit could be either just a single character after a key press or the
+        result of some composing (pre-edit). It could be also an empty text
+        when some text should be removed (see delete_surrounding_text) or when
+        the input cursor should be moved (see cursor_position).
+
+        Any previously set composing text should be removed.
+      </description>
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+      <arg name="text" type="string"/>
+    </event>
+    <event name="cursor_position">
+      <description summary="set cursor to new position">
+        Notify when the cursor or anchor position should be modified.
+
+        This event should be handled as part of a following commit_string
+        event.
+      </description>
+      <arg name="index" type="int"/>
+      <arg name="anchor" type="int"/>
+    </event>
+    <event name="delete_surrounding_text">
+      <description summary="delete surrounding text">
+        Notify when the text around the current cursor position should be
+        deleted.
+
+        Index is relative to the current cursor (in bytes).
+        Length is the length of deleted text (in bytes).
+
+        This event should be handled as part of a following commit_string
+        event.
+      </description>
+      <arg name="index" type="int"/>
+      <arg name="length" type="uint"/>
+    </event>
+    <event name="keysym">
+      <description summary="keysym">
+        Notify when a key event was sent. Key events should not be used
+        for normal text input operations, which should be done with
+        commit_string, delete_surrounding_text, etc. The key event follows
+        the wl_keyboard key event convention. Sym is a XKB keysym, state a
+        wl_keyboard key_state. Modifiers are a mask for effective modifiers
+        (where the modifier indices are set by the modifiers_map event)
+      </description>
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+      <arg name="time" type="uint"/>
+      <arg name="sym" type="uint"/>
+      <arg name="state" type="uint"/>
+      <arg name="modifiers" type="uint"/>
+    </event>
+    <event name="language">
+      <description summary="language">
+        Set the language of the input text. The "language" argument is an RFC-3066
+        format language tag.
+      </description>
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+      <arg name="language" type="string"/>
+    </event>
+    <enum name="text_direction">
+      <entry name="auto" value="0" summary="automatic text direction based on text and language"/>
+      <entry name="ltr" value="1" summary="left-to-right"/>
+      <entry name="rtl" value="2" summary="right-to-left"/>
+    </enum>
+    <event name="text_direction">
+      <description summary="text direction">
+        Set the text direction of input text.
+
+        It is mainly needed for showing input cursor on correct side of the
+        editor when there is no input yet done and making sure neutral
+        direction text is laid out properly.
+      </description>
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+      <arg name="direction" type="uint"/>
+    </event>
+    <event name="selection_region">
+      <description summary="selection region">
+        Notify when the input panels ask to select the characters
+        from the start cursor position to the end cursor position.
+      </description>
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+      <arg name="start" type="int"/>
+      <arg name="end" type="int"/>
+    </event>
+    <event name="private_command">
+      <description summary="private command">
+        Notify when the input panels ask to send private command
+      </description>
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+      <arg name="command" type="string"/>
+    </event>
+    <event name="input_panel_geometry">
+      <description summary="geometry of the input panel">
+        Notify when the geometry of the input panel changed.
+      </description>
+      <arg name="x" type="uint"/>
+      <arg name="y" type="uint"/>
+      <arg name="width" type="uint"/>
+      <arg name="height" type="uint"/>
+    </event>
+    <event name="input_panel_data">
+      <description summary="input panel data">
+        Notify when the input panels ask to send input panel data
+      </description>
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+      <arg name="input_panel_data" type="string"/>
+      <arg name="input_panel_data_length" type="uint"/>
+    </event>
+    <event name="get_selection_text">
+      <arg name="fd" type="fd"/>
+    </event>
+    <event name="get_surrounding_text">
+      <arg name="maxlen_before" type="uint"/>
+      <arg name="maxlen_after" type="uint"/>
+      <arg name="fd" type="fd"/>
+    </event>
+    <event name="filter_key_event_done">
+      <arg name="serial" type="uint"/>
+      <arg name="state" type="uint"/>
+    </event>
+    <event name="hide_permission">
+      <description summary="permission to hide input panel">
+        Notify whether input panel should be hidden or not.
+      </description>
+      <arg name="response" type="uint"/>
+    </event>
+    <event name="recapture_string">
+      <description summary="recapture">
+        Notify when the existed text should be deleted and a new composing text (pre-edit) or commit string
+        should be set around the current cursor position.
+      </description>
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+      <arg name="index" type="int"/>
+      <arg name="length" type="uint"/>
+      <arg name="preedit" type="string"/>
+      <arg name="preedit_commit" type="string"/>
+      <arg name="commit" type="string"/>
+    </event>
+    <event name="input_panel_event">
+      <description summary="input panel event">
+        Notify when the input panel event is changed
+      </description>
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+      <arg name="event_type" type="uint"/>
+      <arg name="value" type="uint"/>
+    </event>
+    <event name="commit_content">
+      <description summary="commit content">
+        Notify when the input panel wants to commit a content
+      </description>
+      <arg name="serial" type="uint" summary="serial of the latest known text input state"/>
+      <arg name="content" type="string"/>
+      <arg name="description" type="string"/>
+      <arg name="mime_types" type="string"/>
+    </event>
+  </interface>
+
+  <interface name="wl_text_input_manager" version="1">
+    <description summary="text input manager">
+      A factory for text_input objects. This object is a global singleton.
+    </description>
+    <request name="create_text_input">
+      <description summary="create text input">
+        Creates a new text_input object.
+      </description>
+      <arg name="id" type="new_id" interface="wl_text_input"/>
+    </request>
+  </interface>
+</protocol>
diff --git a/protocol/tizen/tizen-extension.xml b/protocol/tizen/tizen-extension.xml
new file mode 100644 (file)
index 0000000..960c73e
--- /dev/null
@@ -0,0 +1,1591 @@
+<protocol name="tizen_extension">
+  <interface name="tizen_surface" version="1">
+    <request name="get_tizen_resource">
+      <arg name="id" type="new_id" interface="tizen_resource" />
+      <arg name="surface" type="object" interface="wl_surface" />
+    </request>
+    <request name="destroy" type="destructor">
+      <description summary="destroy the tizen_surface">
+       Destroy the tizen_surface.
+      </description>
+    </request>
+  </interface>
+
+  <interface name="tizen_resource" version="1">
+    <request name="destroy" type="destructor" />
+
+    <event name="resource_id">
+      <arg name="id" type="uint" />
+    </event>
+  </interface>
+
+  <interface name="tizen_policy" version="7">
+    <request name="get_visibility">
+      <arg name="id" type="new_id" interface="tizen_visibility" summary="new visibility object"/>
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+    </request>
+
+    <request name="get_position">
+      <arg name="id" type="new_id" interface="tizen_position" summary="new position object"/>
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+    </request>
+
+    <request name="activate">
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+    </request>
+
+    <request name="activate_below_by_res_id">
+      <arg name="res_id" type="uint" />
+      <arg name="below_res_id" type="uint" />
+    </request>
+
+    <request name="raise">
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+    </request>
+
+    <request name="lower">
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+    </request>
+
+    <request name="lower_by_res_id">
+      <arg name="res_id" type="uint" />
+    </request>
+
+    <request name="set_focus_skip">
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+    </request>
+
+    <request name="unset_focus_skip">
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+    </request>
+
+    <request name="set_role">
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+      <arg name="role" type="string"/>
+    </request>
+
+    <enum name="win_type">
+      <entry name="none" value="0"/>
+      <entry name="toplevel" value="1"/>
+      <entry name="fullscreen" value="2"/>
+      <entry name="maximized" value="3"/>
+      <entry name="transient" value="4"/>
+      <entry name="menu" value="5"/>
+      <entry name="dnd" value="6"/>
+      <entry name="custom" value="7"/>
+      <entry name="notification" value="8"/>
+      <entry name="utility" value="9"/>
+      <entry name="dialog" value="10"/>
+      <entry name="dock" value="11"/>
+      <entry name="splash" value="12"/>
+    </enum>
+
+    <request name="set_type">
+      <arg name="surface" type="object" interface="wl_surface"/>
+      <arg name="win_type" type="uint" />
+    </request>
+
+    <!-- for conformant -->
+    <request name="set_conformant">
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+    </request>
+
+    <request name="unset_conformant">
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+    </request>
+
+    <request name="get_conformant">
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+    </request>
+
+    <event name="conformant">
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+      <arg name="is_conformant" type="uint"/>
+    </event>
+
+    <enum name="conformant_part">
+      <entry name="indicator" value="0"/>
+      <entry name="keyboard" value="1"/>
+      <entry name="clipboard" value="2"/>
+    </enum>
+
+    <event name="conformant_area">
+       <description summary="Notify of conformant area">
+          Notify of conformant area to client. Sending this event does NOT guarantee
+          perfect compositing of conformant owner client surface and
+          conformant part client surface.
+      </description>
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+      <arg name="conformant_part" type="uint"/>
+      <arg name="state" type="uint"/>
+      <arg name="x" type="int"/>
+      <arg name="y" type="int"/>
+      <arg name="w" type="int"/>
+      <arg name="h" type="int"/>
+    </event>
+
+    <enum name="error_state">
+      <entry name="none" value="0"/>
+      <entry name="permission_denied" value="1"/>
+    </enum>
+
+    <!-- for notification -->
+    <enum name="level">
+      <entry name="1" value="0"/>
+      <entry name="2" value="1"/>
+      <entry name="3" value="2"/>
+      <entry name="none" value="-1"/>
+      <entry name="default" value="10"/>
+      <entry name="medium" value="20"/>
+      <entry name="high" value="30"/>
+      <entry name="top" value="40"/>
+    </enum>
+
+    <request name="set_notification_level">
+      <arg name="surface" type="object" interface="wl_surface"/>
+      <arg name="level" type="int"/>
+    </request>
+
+    <event name="notification_done">
+      <arg name="surface" type="object" interface="wl_surface"/>
+      <arg name="level" type="int"/>
+      <arg name="error_state" type="uint"/>
+    </event>
+
+    <!-- for transient_for -->
+    <request name="set_transient_for">
+      <arg name="child_id" type="uint" />
+      <arg name="parent_id" type="uint" />
+    </request>
+
+    <request name="unset_transient_for">
+      <arg name="child_id" type="uint" />
+    </request>
+
+    <event name="transient_for_done">
+      <arg name="child_id" type="uint"/>
+    </event>
+
+    <!-- for window_screen_mode -->
+    <enum name="mode">
+      <entry name="default" value="0"/>
+      <entry name="always_on" value="1"/>
+    </enum>
+
+    <request name="set_window_screen_mode">
+      <arg name="surface" type="object" interface="wl_surface"/>
+      <arg name="mode" type="uint"/>
+    </request>
+
+    <event name="window_screen_mode_done">
+      <arg name="surface" type="object" interface="wl_surface"/>
+      <arg name="mode" type="uint"/>
+      <arg name="error_state" type="uint"/>
+    </event>
+
+    <!-- for subsurface -->
+    <request name="place_subsurface_below_parent">
+      <arg name="subsurface" type="object" interface="wl_subsurface"/>
+    </request>
+
+    <request name="set_subsurface_stand_alone">
+      <arg name="subsurface" type="object" interface="wl_subsurface"/>
+    </request>
+
+    <request name="get_subsurface">
+      <arg name="id" type="new_id" interface="wl_subsurface" />
+      <arg name="surface" type="object" interface="wl_surface" />
+      <arg name="parent_id" type="uint" />
+    </request>
+
+    <!-- for opaque_state -->
+    <request name="set_opaque_state">
+      <arg name="surface" type="object" interface="wl_surface" />
+      <arg name="state" type="int"/>
+    </request>
+
+    <!-- for iconify -->
+    <request name="iconify">
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+    </request>
+    <request name="uniconify">
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+    </request>
+
+    <event name="iconify_state_changed">
+      <arg name="surface" type="object" interface="wl_surface"/>
+      <arg name="iconified" type="uint"/>
+      <arg name="force" type="uint"/>
+    </event>
+
+    <!-- for aux_hint -->
+    <request name="add_aux_hint">
+      <arg name="surface" type="object" interface="wl_surface"/>
+      <arg name="id" type="int" />
+      <arg name="name" type="string" />
+      <arg name="value" type="string" />
+    </request>
+
+    <request name="change_aux_hint">
+      <arg name="surface" type="object" interface="wl_surface"/>
+      <arg name="id" type="int" />
+      <arg name="value" type="string" />
+    </request>
+
+    <request name="del_aux_hint">
+      <arg name="surface" type="object" interface="wl_surface"/>
+      <arg name="id" type="int" />
+    </request>
+
+    <request name="get_supported_aux_hints">
+      <arg name="surface" type="object" interface="wl_surface"/>
+    </request>
+
+    <event name="supported_aux_hints">
+      <arg name="surface" type="object" interface="wl_surface"/>
+      <arg name="hints" type="array" />
+      <arg name="num_hints" type="uint"/>
+    </event>
+
+    <event name="allowed_aux_hint">
+      <arg name="surface" type="object" interface="wl_surface"/>
+      <arg name="id" type="int" />
+    </event>
+
+    <!-- for aux_message -->
+    <event name="aux_message">
+      <arg name="surface" type="object" interface="wl_surface" />
+      <arg name="key" type="string" />
+      <arg name="value" type="string" />
+      <arg name="options" type="array" />
+    </event>
+
+    <!-- for background state -->
+    <request name="set_background_state">
+       <arg name="pid" type="uint" />
+    </request>
+
+    <request name="unset_background_state">
+       <arg name="pid" type="uint" />
+    </request>
+
+    <!-- for floating mode -->
+    <request name="set_floating_mode">
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+    </request>
+
+    <request name="unset_floating_mode">
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+    </request>
+
+    <!-- for stack mode -->
+    <enum name="stack_mode">
+      <entry name="none" value="0"/>
+      <entry name="above" value="1"/>
+      <entry name="below" value="2"/>
+    </enum>
+
+    <request name="set_stack_mode">
+      <arg name="surface" type="object" interface="wl_surface"/>
+      <arg name="mode" type="uint" />
+    </request>
+
+    <request name="activate_above_by_res_id">
+      <arg name="res_id" type="uint" />
+      <arg name="above_res_id" type="uint" />
+    </request>
+
+    <!-- version 2 additions -->
+    <!-- for subsurface watcher -->
+    <request name="get_subsurface_watcher" since="2">
+      <arg name="id" type="new_id" interface="tizen_subsurface_watcher" />
+      <arg name="surface" type="object" interface="wl_surface" />
+    </request>
+
+    <!-- version 3 additions -->
+    <request name="set_parent" since="3">
+      <arg name="child" type="object" interface="wl_surface" />
+      <arg name="parent" type="object" interface="wl_surface" />
+    </request>
+
+    <!-- version 4 additions -->
+    <!-- for conformant -->
+    <event name="conformant_region" since="4">
+      <description summary="notify of geometry values of conformant region(area)">
+         The server can notify of conformant region(area) using this event.
+         If client is received this event, client should ack for it using
+         tizen_policy@ack_conformant_region request.
+      </description>
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+      <arg name="conformant_part" type="uint"/>
+      <arg name="state" type="uint"/>
+      <arg name="x" type="int"/>
+      <arg name="y" type="int"/>
+      <arg name="w" type="int"/>
+      <arg name="h" type="int"/>
+      <arg name="serial" type="uint"/>
+    </event>
+
+    <request name="ack_conformant_region" since="4">
+      <description summary="ack for tizen_policy@conformant_region">
+         A client can refresh its surface for applying new conformant region which
+         is from tizen_policy@conformant_region event. The client has to ack
+         after complete of its updates by this request.
+      </description>
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+      <arg name="serial" type="uint"/>
+    </request>
+
+    <request name="destroy" type="destructor" since="6">
+      <description summary="destroy the tizen_policy">
+        Destroy the tizen_policy.
+      </description>
+    </request>
+
+    <request name="has_video" since="7">
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+      <arg name="has" type="uint"/>
+    </request>
+
+  </interface>
+
+  <interface name="tizen_visibility" version="5">
+    <request name="destroy" type="destructor"/>
+
+    <enum name="visibility">
+      <entry name="unobscured" value="0"/>
+      <entry name="partially_obscured" value="1"/>
+      <entry name="fully_obscured" value="2"/>
+      <entry name="pre_unobscured" value="3" since="5"/>
+    </enum>
+
+    <event name="notify">
+      <arg name="visibility" type="uint"/>
+    </event>
+
+    <!-- Version 6 additions -->
+
+    <event name="changed" since="5">
+      <arg name="type" type="uint" enum="visibility" summary="changed visibility type"/>
+      <arg name="option" type="uint" summary="extra value"/>
+    </event>
+
+  </interface>
+
+  <interface name="tizen_position" version="1">
+    <request name="destroy" type="destructor"/>
+
+    <request name="set">
+      <arg name="x" type="int"/>
+      <arg name="y" type="int"/>
+    </request>
+
+    <event name="changed">
+      <arg name="x" type="int"/>
+      <arg name="y" type="int"/>
+    </event>
+  </interface>
+
+  <interface name="tizen_gesture" version="2">
+    <enum name="error">
+      <entry name="none" value="0"/>
+      <entry name="invalid_data" value="1"/>
+      <entry name="no_permission" value="2"/>
+      <entry name="no_system_resources" value="3"/>
+      <entry name="grabbed_already" value="4"/>
+      <entry name="not_supported" value="5"/>
+    </enum>
+
+    <enum name="type">
+      <entry name="edge_swipe" value="1"/>
+      <entry name="edge_drag" value="2" since="2"/>
+      <entry name="tap" value="4" since="2"/>
+      <entry name="palm_cover" value="8" since="2"/>
+      <entry name="pan" value="16" since="2"/>
+      <entry name="pinch" value="32" since="2"/>
+      <entry name="palm_swipe" value="64" since="2"/>
+    </enum>
+
+    <enum name="mode">
+      <entry name="begin" value="1"/>
+      <entry name="update" value="2"/>
+      <entry name="end" value="3"/>
+      <entry name="done" value="4"/>
+    </enum>
+
+    <enum name="edge">
+      <entry name="top" value="1"/>
+      <entry name="right" value="2"/>
+      <entry name="bottom" value="3"/>
+      <entry name="left" value="4"/>
+    </enum>
+
+    <enum name="edge_size">
+      <entry name="none" value="0"/>
+      <entry name="full" value="1"/>
+      <entry name="partial" value="2"/>
+    </enum>
+
+    <request name="grab_edge_swipe">
+      <arg name="fingers" type="uint"/>
+      <arg name="edge" type="uint" enum="edge"/>
+      <arg name="edge_size" type="uint" enum="edge_size"/>
+      <arg name="start_point" type="uint"/>
+      <arg name="end_point" type="uint"/>
+    </request>
+
+    <request name="ungrab_edge_swipe">
+      <arg name="fingers" type="uint"/>
+      <arg name="edge" type="uint" enum="edge"/>
+      <arg name="edge_size" type="uint" enum="edge_size"/>
+      <arg name="start_point" type="uint"/>
+      <arg name="end_point" type="uint"/>
+    </request>
+
+    <event name="grab_edge_swipe_notify">
+      <arg name="fingers" type="uint"/>
+      <arg name="edge" type="uint" enum="edge"/>
+      <arg name="edge_size" type="uint" enum="edge_size"/>
+      <arg name="start_point" type="uint"/>
+      <arg name="end_point" type="uint"/>
+      <arg name="error" type="uint"/>
+    </event>
+
+    <event name="edge_swipe">
+      <arg name="mode" type="uint" enum="mode"/>
+      <arg name="fingers" type="uint"/>
+      <arg name="sx" type="int" summary="x coordinate of touch down point"/>
+      <arg name="sy" type="int" summary="y coordinate of touch down point"/>
+      <arg name="edge" type="uint" enum="edge"/>
+    </event>
+
+    <request name="grab_edge_drag">
+      <arg name="fingers" type="uint"/>
+      <arg name="edge" type="uint" enum="edge"/>
+      <arg name="edge_size" type="uint" enum="edge_size"/>
+      <arg name="start_point" type="uint"/>
+      <arg name="end_point" type="uint"/>
+    </request>
+
+    <request name="ungrab_edge_drag">
+      <arg name="fingers" type="uint"/>
+      <arg name="edge" type="uint" enum="edge"/>
+      <arg name="edge_size" type="uint" enum="edge_size"/>
+      <arg name="start_point" type="uint"/>
+      <arg name="end_point" type="uint"/>
+    </request>
+
+    <event name="edge_drag_notify">
+      <arg name="fingers" type="uint"/>
+      <arg name="edge" type="uint" enum="edge"/>
+      <arg name="edge_size" type="uint" enum="edge_size"/>
+      <arg name="start_point" type="uint"/>
+      <arg name="end_point" type="uint"/>
+      <arg name="error" type="uint"/>
+    </event>
+
+    <event name="edge_drag">
+      <arg name="mode" type="uint" enum="mode"/>
+      <arg name="fingers" type="uint"/>
+      <arg name="cx" type="int" summary="x coordinate of center touch point"/>
+      <arg name="cy" type="int" summary="y coordinate of center touch point"/>
+      <arg name="edge" type="uint" enum="edge"/>
+    </event>
+
+    <request name="grab_tap" since="2">
+      <arg name="fingers" type="uint"/>
+      <arg name="repeats" type="uint"/>
+    </request>
+
+    <request name="ungrab_tap" since="2">
+      <arg name="fingers" type="uint"/>
+      <arg name="repeats" type="uint"/>
+    </request>
+
+    <event name="tap_notify" since="2">
+      <arg name="fingers" type="uint"/>
+      <arg name="repeats" type="uint"/>
+      <arg name="error" type="uint"/>
+    </event>
+
+    <event name="tap" since="2">
+      <arg name="mode" type="uint" enum="mode"/>
+      <arg name="fingers" type="uint"/>
+      <arg name="repeats" type="uint"/>
+    </event>
+
+    <request name="grab_palm_cover" since="2">
+    </request>
+
+    <request name="ungrab_palm_cover" since="2">
+    </request>
+
+    <request name="select_palm_cover" since="2">
+      <arg name="surface" type="object" interface="wl_surface"/>
+    </request>
+
+    <request name="deselect_palm_cover" since="2">
+      <arg name="surface" type="object" interface="wl_surface"/>
+    </request>
+
+    <event name="palm_cover_notify" since="2">
+      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
+      <arg name="error" type="uint"/>
+    </event>
+
+    <event name="palm_cover" since="2">
+      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
+      <arg name="mode" type="uint" enum="mode"/>
+      <arg name="duration" type="uint"/>
+      <arg name="cx" type="int" summary="x coordinate of center touch point"/>
+      <arg name="cy" type="int" summary="y coordinate of center touch point"/>
+      <arg name="size" type="uint"/>
+      <arg name="pressure" type="fixed"/>
+    </event>
+
+    <request name="activate_set" since="2">
+      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
+      <arg name="type" type="uint" enum="type"/>
+      <arg name="active" type="uint"/>
+    </request>
+
+    <event name="activate_notify" since="2">
+      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
+      <arg name="type" type="uint" enum="type"/>
+      <arg name="active" type="uint"/>
+      <arg name="error" type="uint"/>
+    </event>
+
+    <request name="destroy" type="destructor" since="2">
+      <description summary="destroy the tizen_gesture">
+        Destroy the tizen_gesture.
+      </description>
+    </request>
+
+  </interface>
+
+  <interface name="tizen_keyrouter" version="1">
+    <description summary="an interface to set each focus for each key">
+      In tradition, all the keys in a keyboard and a device on which
+      some keys are attached will be sent to focus surface by default.
+      Currently it's possible to set up each focus for each key in a keyboard and a device.
+      Therefore, by setting a key grab for a surface, the owner of the
+      surface will get the key event when it has the key grab for the key.
+    </description>
+
+    <enum name="error">
+      <entry name="none" value="0" summary="no error"/>
+      <entry name="invalid_surface" value="1" summary="Given surface is invalid."/>
+      <entry name="invalid_key" value="2" summary="Given key is invalid."/>
+      <entry name="invalid_mode" value="3" summary="Given mode is invalid."/>
+      <entry name="grabbed_already" value="4" summary="The key has been grabbed already."/>
+      <entry name="no_permission" value="5" summary="The wl client has no permission to grab the key."/>
+      <entry name="no_system_resources" value="6" summary="System resources are insufficient."/>
+      <entry name="invalid_array" value="7" summary="Given array has invalid pairs or data type."/>
+    </enum>
+
+    <enum name="mode">
+      <description summary="mode for a key grab">
+        This value is used to set a mode for a key grab. With this mode and
+        the order of the surface between surfaces' stack, the compositor will determine the destination client
+        surface.
+      </description>
+      <entry name="none" value="0" summary="none"/>
+      <entry name="shared" value="1"
+       summary="mode to get a key grab with the other client surfaces when the focused client surface gets the key"/>
+      <entry name="topmost" value="2"
+       summary="mode to get a key grab when the client surface is the top most surface"/>
+      <entry name="overridable_exclusive" value="3"
+       summary="mode to get a key grab exclusively, overridably regardless of the order in the surface stack"/>
+      <entry name="exclusive" value="4"
+       summary="mode to get a key grab exclusively regardless of the order in surface stack"/>
+      <entry name="registered" value="5"
+       summary="mode to get a key grab only when a requesting surface is on top among the registering surfaces for the key"/>
+    </enum>
+
+    <enum name="config_mode">
+      <description summary="mode for setting specific property for Key delivery">
+        This value is used to set a mode for a window. With this mode and
+        the order of the surface between surfaces' stack, the compositor will determine the destination client
+        surface.
+      </description>
+      <entry name="none" value="0" summary="none"/>
+      <entry name="invisible_set" value="1"
+       summary="mode to set window to enable send event to invisible window below in stack"/>
+      <entry name="invisible_get" value="2"
+       summary="mode to set window to get event to invisible state if any top window has set register_set"/>
+      <entry name="num_key_focus" value="3"
+          summary="mode to register for num keys for focus window"/>
+      <entry name="picture_off" value="4"
+          summary="mode to set picture off for particular key"/>
+    </enum>
+
+    <request name="set_keygrab">
+      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
+      <arg name="key" type="uint"/>
+      <arg name="mode" type="uint"/>
+    </request>
+
+    <request name="unset_keygrab">
+      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
+      <arg name="key" type="uint"/>
+    </request>
+
+    <request name="get_keygrab_status">
+      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
+      <arg name="key" type="uint"/>
+    </request>
+
+    <request name="set_keygrab_list">
+      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
+      <arg name="grab_list" type="array" summary="array of two integer variables pairs each pairs consist of keycode and keygrab mode"/>
+    </request>
+
+    <request name="unset_keygrab_list">
+      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
+      <arg name="ungrab_list" type="array" summary="array of integer variables meaning keycode wanted to ungrab"/>
+    </request>
+
+    <request name="get_keygrab_list">
+      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
+    </request>
+
+    <request name="set_register_none_key">
+      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
+      <arg name="data" type="uint"/>
+    </request>
+
+    <request name="get_keyregister_status">
+      <arg name="data" type="uint"/>
+    </request>
+
+    <request name="set_input_config">
+      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
+      <arg name="config_mode" type="uint"/>
+      <arg name="value" type="uint"/>
+    </request>
+
+    <event name="keygrab_notify">
+      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
+      <arg name="key" type="uint"/>
+      <arg name="mode" type="uint"/>
+      <arg name="error" type="uint"/>
+    </event>
+
+    <event name="keygrab_notify_list">
+      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
+      <arg name="grab_result" type="array" summary="array of three integer variables pairs each pairs consist of keycode, keygrab mode and keygrab result"/>
+    </event>
+
+    <event name="getgrab_notify_list">
+      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
+      <arg name="grab_result" type="array" summary="array of two integer variables pairs each pairs consist of keycode, keygrab mode"/>
+    </event>
+
+    <event name="set_register_none_key_notify">
+      <arg name="surface" type="object" interface="wl_surface" allow-null="true"/>
+      <arg name="mode" type="uint"/>
+    </event>
+
+    <event name="keyregister_notify">
+      <arg name="status" type="uint"/>
+    </event>
+
+    <event name="set_input_config_notify">
+      <arg name="status" type="uint"/>
+    </event>
+
+    <event name="key_cancel">
+      <arg name="key" type="uint"/>
+    </event>
+
+    <request name="destroy" type="destructor">
+      <description summary="destroy the tizen_keyrouter">
+        Destroy the tizen_keyrouter.
+      </description>
+    </request>
+
+  </interface>
+
+  <interface name="tizen_screenshooter" version="1">
+    <description summary="interface for tizen-screenshooter">
+      Clients can get a screenmirror object from this interface.
+    </description>
+
+    <request name="get_screenmirror">
+      <description summary="create a screenmirror object">
+        Before using screenmirror, a client should get a screenmirror object from display
+        server.
+      </description>
+      <arg name="id" type="new_id" interface="tizen_screenmirror" summary="new screenmirror object"/>
+      <arg name="output" type="object" interface="wl_output" summary="output object for screenmirror"/>
+    </request>
+
+    <request name="set_oneshot_auto_rotation">
+      <description summary="set screen shot auto rotation value">
+        Client can set auto rotation value for one shot.
+      </description>
+      <arg name="set" type="uint"/>
+    </request>
+
+    <event name="format">
+      <description summary="supported format for screenshooter">
+        The tbm format codes match the #defines in tbm_surface.h. The formats actually
+        supported by the compositor will be reported by the format event.
+      </description>
+      <arg name="format" type="uint"/>
+    </event>
+
+    <event name="screenshooter_notify">
+      <description summary="send notification of screenshooter">
+        Clients can get notification of screenshooter.
+      </description>
+      <arg name="noti" type="uint"/>
+    </event>
+
+    <request name="destroy" type="destructor">
+      <description summary="destroy the tizen_screenshooter">
+        Destroy the tizen_screenshooter.
+      </description>
+    </request>
+
+  </interface>
+
+  <interface name="tizen_screenmirror" version="1">
+    <description summary="interface for screenmirror">
+      A client can use this interface to get stream images of screen. Before starting,
+      queue all buffers. Then, start a screenmirror. After starting, a dequeued event
+      will occur when drawing a captured image on a buffer is finished. You might
+      need to queue the dequeued buffer again to get a new image from display server.
+    </description>
+
+    <request name="destroy" type="destructor"/>
+
+    <request name="set_stretch">
+      <arg name="stretch" type="uint" summary="stretch type for screenmirror"/>
+    </request>
+
+    <request name="queue">
+      <description summary="queue a buffer"/>
+        <arg name="buffer" type="object" interface="wl_buffer" summary="buffer object for screenmirror"/>
+    </request>
+
+    <request name="dequeue">
+      <description summary="dequeue a buffer">
+        A user can dequeue a buffer from display server when he wants to take back it from server.
+      </description>
+      <arg name="buffer" type="object" interface="wl_buffer" summary="buffer object for screenmirror"/>
+    </request>
+
+    <request name="start"/>
+    <request name="stop"/>
+
+    <enum name="content">
+      <entry name="normal" value="0"/>
+      <entry name="video" value="1"/>
+    </enum>
+
+    <enum name="stretch">
+      <entry name="keep_ratio" value="0"/>
+      <entry name="fully" value="1"/>
+    </enum>
+
+    <event name="dequeued">
+      <description summary="dequeued event">
+        occurs when drawing a captured image on a buffer is finished
+      </description>
+      <arg name="buffer" type="object" interface="wl_buffer" summary="dequeued buffer which contains a captured image"/>
+    </event>
+
+    <event name="content">
+      <description summary="content changed event">
+        occurs when the content of a captured image is changed. (normal or video)
+      </description>
+      <arg name="content" type="uint"/>
+    </event>
+
+    <event name="stop">
+      <description summary="stop event">
+        occurs when the screenmirror is stopped eventually
+      </description>
+    </event>
+  </interface>
+
+  <interface name="tizen_video" version="1">
+
+    <description summary="interface for tizen-video">
+      Clients can get the video information that the compositor can handle from this interface.
+    </description>
+
+    <enum name="error">
+      <entry name="none" value="0"/>
+      <entry name="object_exists" value="1"/>
+      <entry name="viewport_exists" value="2"/>
+    </enum>
+
+    <event name="format">
+      <description summary="supported format for video">
+        The tbm format codes match the #defines in tbm_surface.h. The formats actually
+        supported by the compositor will be reported by the format event.
+      </description>
+      <arg name="format" type="uint"/>
+    </event>
+
+    <request name="get_object">
+      <arg name="id" type="new_id" interface="tizen_video_object" />
+      <arg name="surface" type="object" interface="wl_surface" />
+    </request>
+
+    <request name="get_viewport">
+      <arg name="id" type="new_id" interface="tizen_viewport" />
+      <arg name="surface" type="object" interface="wl_surface" />
+    </request>
+
+    <request name="destroy" type="destructor">
+      <description summary="destroy the tizen_video">
+        Destroy the tizen_video.
+      </description>
+    </request>
+
+  </interface>
+
+  <interface name="tizen_video_object" version="1">
+
+    <event name="attribute">
+      <arg name="name" type="string"/>
+      <arg name="value" type="uint"/>
+    </event>
+
+    <event name="size">
+      <arg name="min_w" type="int"/>
+      <arg name="min_h" type="int"/>
+      <arg name="max_w" type="int"/>
+      <arg name="max_h" type="int"/>
+      <arg name="prefer_align" type="int"/>
+    </event>
+
+    <request name="destroy" type="destructor"/>
+    <request name="set_attribute">
+      <arg name="name" type="string"/>
+      <arg name="value" type="int"/>
+    </request>
+
+    <request name="follow_topmost_visibility">
+      <description summary="follow mute control change of a topmost surface">
+        If tizen_video_object.follow_topmost_visibility is applied to a video_object,
+        It will be video mute control based on topmost visibility.
+      </description>
+    </request>
+
+    <request name="unfollow_topmost_visibility">
+      <description summary="unfollow mute control change of a topmost surface">
+        If tizen_video_object.unfollow_topmost_visibility is applied to a video_object,
+        It will not be video mute control based on topmost visibility.
+      </description>
+    </request>
+
+    <request name="allowed_attribute">
+      <description summary="allowed_attribute">
+        If tizen_video_object.allowed_attribute is applied to a video_object,
+        set_attribute request will be deliever to tdm backend directly.
+      </description>
+    </request>
+
+    <request name="disallowed_attribute">
+      <description summary="disallowed_attribute">
+        If tizen_video_object.disallowed_attribute is applied to a video_object,
+        It would be tdm_attribute call when topmost showing.
+      </description>
+    </request>
+
+  </interface>
+
+  <interface name="tizen_subsurface_watcher" version="1">
+
+    <enum name="msg">
+      <entry name="success" value="0"/>
+      <entry name="parent_id_invalid" value="1"/>
+      <entry name="parent_id_destroyed" value="2"/>
+    </enum>
+
+    <event name="message">
+      <arg name="value" type="uint"/>
+    </event>
+
+    <request name="destroy" type="destructor">
+      <description summary="destroy the tizen_subsurface_watcher">
+        Destroy the tizen_subsurface_watcher.
+      </description>
+    </request>
+
+  </interface>
+
+  <interface name="tizen_viewport" version="1">
+
+      <description summary="the viewport for a surface">
+    This is the alternative and convenient solution of wl_viewport to present
+    a surface on screen.
+
+    The below five functions can be replaced with this interface. The below
+    functions will be ignored after applying this interface to a surface.
+     - wl_surface.set_buffer_transform
+     - wl_surface.set_buffer_scale
+     - wl_subsurface.set_position
+     - wl_viewport.set_source
+     - wl_viewport.set_destination
+
+    wl_viewport.set_source is very complicated especially when the buffer of
+    wl_surface is transformed by wl_surface.set_buffer_transform. And when the
+    parent is resized, if we want to change the geometry of a subsurface also,
+    wl_subsurface.set_position and wl_viewport.set_destination should be called
+    everytime the parent is resized in client side. This makes difficult to
+    synchronize a parent surface and a subsurface on screen.
+
+    tizen_viewport allows clients to set the relative geometry to a subsurface
+    in a parent surface. Whenever a parent surface is resized, the geometry of
+    a subsurface will be calculated, moved and resized automatically by a
+    compositor. The tizen_viewport is specified in the coordinates of a
+    subsurface's parent.
+
+       If tizen_viewport is applied to a shell surface(toplevel), the all value related
+       with x, y pos of tizen_viewport and tizen_destination_mode interface will be ignored.
+
+    The below 3 functions don't consider the transform of a parent's surface.
+     - tizen_viewport.set_source
+     - tizen_viewport.set_destination
+     - tizen_viewport.set_destination_ratio
+
+    Furthermore, tizen_destination_mode.follow_parent_transform is called,
+    tizen_viewport will consider the transform of a parent surface when applying
+    the destination mode to a subsurface. If tizen_destination_mode.follow_parent_transform
+    is applied to a shell surface, it will be ignored.
+
+    The destination will be cropped by a parent surface.
+
+    The change will be applied when wl_surface.commit is called.
+      </description>
+
+    <event name="destination_changed">
+      <arg name="transform" type="uint"/>
+      <arg name="x" type="int"/>
+      <arg name="y" type="int"/>
+      <arg name="width" type="uint"/>
+      <arg name="height" type="uint"/>
+    </event>
+
+    <request name="destroy" type="destructor" />
+
+    <request name="set_transform">
+      <description summary="set the transform of a surface">
+    The accepted values for the transform parameter are the values for wl_output.transform
+    according to the output transform.
+
+    The tizen_viewport.set_transform is applied only to itself. Basically it
+    doesn't effect the transform of its subsurfaces. That is, if 90 transform is
+    setted and its subsurface still has 0 transform, its subsurface won't be
+    rotated.
+
+    If needed to rotate the subsurface depended on a parent surface,
+    tizen_destination_mode.follow_parent_transform will make it possible.
+
+      </description>
+      <arg name="transform" type="uint"/>
+    </request>
+
+    <request name="set_source">
+      <description summary="set the source rectalge of a wl_buffer">
+    The source rectangle won't be changed when a parent is resized. If it needs
+    to be changed, tizen_viewport.set_source should be called with new values.
+      </description>
+      <arg name="x" type="uint"/>
+      <arg name="y" type="uint"/>
+      <arg name="width" type="uint"/>
+      <arg name="height" type="uint"/>
+    </request>
+
+    <request name="set_destination">
+      <description summary="set the destination geometry of a surface">
+    The destination geometry won't be changed when a parent is resized. If it
+    needs to be changed, tizen_viewport.set_destination should be called with
+    new values.
+
+       If tizen_viewport is applied to a shell surface(toplevel), the x, y value of
+       tizen_viewport.set_destination will be ignored.
+      </description>
+      <arg name="x" type="int"/>
+      <arg name="y" type="int"/>
+      <arg name="width" type="uint"/>
+      <arg name="height" type="uint"/>
+    </request>
+
+    <request name="set_destination_ratio">
+      <description summary="set the ratio destination rectalge in a parent surface">
+    The destination rectangle of a subsurface will be automatically changed
+    when a parent is resized. This allows the real number between 0.0 and 1.0.
+    See wl_fixed_from_double and wl_fixed_to_double.
+
+       If tizen_viewport is applied to a shell surface(toplevel), the x, y value of
+       tizen_viewport.set_destination_ratio will be ignored.
+      </description>
+      <arg name="x" type="fixed"/>
+      <arg name="y" type="fixed"/>
+      <arg name="width" type="fixed"/>
+      <arg name="height" type="fixed"/>
+    </request>
+
+    <request name="get_destination_mode">
+      <arg name="id" type="new_id" interface="tizen_destination_mode" />
+    </request>
+
+    <request name="query_parent_size" since="1">
+      <description summary="set the ratio destination rectalge in a parent surface">
+    A client can asks the display server to send the size of tizen_viewport object's
+    parent surface. Once a client requests it, the "parent_size" event will be sent
+    whenever the parent surface's size is changed.
+      </description>
+    </request>
+
+    <event name="parent_size">
+      <arg name="width" type="uint" />
+      <arg name="height" type="uint" />
+    </event>
+
+    <request name="follow_parent_transform">
+      <description summary="follow the transform change of a parent surface">
+    The real transform of a subsurface is (parent's transform + subsurface's transform).
+    The subsurface will be rotated automatically when the parent is rotated.
+
+    If tizen_viewport.follow_parent_transform is applied to a shell surface(toplevel),
+    it will be ignored.
+      </description>
+    </request>
+
+    <request name="unfollow_parent_transform" />
+
+  </interface>
+
+  <interface name="tizen_destination_mode" version="1">
+
+      <description summary="the destination mode for a surface">
+    The destination rectangle will be automatically changed when a parent is
+    resized. When tizen_destination_mode.set is called, the value of
+    tizen_viewport.set_destination and tizen_viewport.set_destination_ratio
+    will be ignored.
+
+    The destination of a surface is decided by the mode, ratio, scale, offset
+    and align values. The ratio, scale, offset and align will be applied
+    sequentially.
+
+    The change will be applied when wl_surface.commit is called.
+      </description>
+
+    <enum name="error">
+      <entry name="invalid_type" value="0"/>
+    </enum>
+
+    <enum name="type">
+      <entry name="none" value="0"/>
+      <entry name="letter_box" value="1"/>
+      <entry name="origin" value="2"/>
+      <entry name="full" value="3"/>
+      <entry name="cropped_full" value="4"/>
+      <entry name="origin_or_letter" value="5"/>
+    </enum>
+
+    <request name="destroy" type="destructor" />
+
+    <request name="follow_parent_transform">
+      <description summary="follow the transform change of a parent surface">
+    The real transform of a subsurface is (parent's transform + subsurface's transform).
+    That is, the subsurface will be rotated automatically when the parent is rotated.
+
+    If tizen_destination_mode.follow_parent_transform is applied to a shell surface(toplevel),
+    it will be ignored.
+      </description>
+    </request>
+
+    <request name="unfollow_parent_transform" />
+
+    <request name="set" summary="set the destination mode">
+      <arg name="mode" type="uint" enum="type"/>
+    </request>
+
+    <request name="set_ratio">
+      <description summary="set the ratio of the destination rectangle of a subsurface">
+    This allows the real number. See wl_fixed_from_double and wl_fixed_to_double.
+      </description>
+      <arg name="horizontal" type="fixed"/>
+      <arg name="vertical" type="fixed"/>
+    </request>
+
+    <request name="set_scale">
+      <description summary="set the scale of the destination rectangle of a subsurface">
+    This allows the real number. See wl_fixed_from_double and wl_fixed_to_double.
+      </description>
+      <arg name="horizontal" type="fixed"/>
+      <arg name="vertical" type="fixed"/>
+    </request>
+
+    <request name="set_align">
+      <description summary="set the align of the destination rectangle of a subsurface">
+    This allows the real number between 0.0 and 1.0. See wl_fixed_from_double and
+    wl_fixed_to_double.
+      </description>
+      <arg name="horizontal" type="fixed"/>
+      <arg name="vertical" type="fixed"/>
+    </request>
+
+    <request name="set_offset">
+      <arg name="x" type="int"/>
+      <arg name="y" type="int"/>
+      <arg name="w" type="int"/>
+      <arg name="h" type="int"/>
+    </request>
+
+  </interface>
+
+  <interface name="tizen_embedded_compositor" version="1">
+
+    <description summary="global embedded compositor object">
+      The global obejct. Wayland has 3 type of compositor, embedded compositor is one of them.
+      But tizen application is sendboxing by smack, then a application not allow commutication to other application by socket.
+      So system or session compositor create socket and send to embedded compostior.
+    </description>
+
+    <request name="get_socket">
+      <description summary="create new socket">
+        The get_socket request ask the server to create socket and emit socket event.
+      </description>
+    </request>
+
+    <event name="socket">
+      <description summary="socket fd">
+        Sent immediately after get_socket request
+      </description>
+      <arg name="sock_fd" type="fd"/>
+    </event>
+
+    <request name="destroy" type="destructor"/>
+  </interface>
+
+  <interface name="tizen_input_device_manager" version="2">
+    <description summary="global input device manager object">
+      Tizen input device manager is a global interface. This object has device add/remove events
+      to provide tizen input device object to a client. This allows for a client to get the con
+
+      Be sure to bind this interface after binding wl_seat interface.
+      Tizen input device manager interface will only provide device add/remove event for devices
+      which belongs to the wl_seat object(s) bound by the client. Therefore, the compositor needs to
+      create/send the device add/remove event only for the current client's seat(s).
+    </description>
+
+    <event name="device_add">
+      <description summary="device addition event">
+        The device add/remove notification is going to be sent when a physical/logical device is
+        added/removed to/from the given seat. Note that a tizen input device object can be assigned to
+        a wl_seat and can also be assigned to the other wl_seat at any time. Whenever a relationship between
+        a tizen input device object changes, device remove event from the current wl_seat object will be made
+        and device add event to the other wl_seat object will also be mode.
+      </description>
+      <arg name="serial" type="uint"/>
+      <arg name="identifier" type="string"/>
+      <arg name="device" type="new_id" interface="tizen_input_device"/>
+      <arg name="seat" type="object" interface="wl_seat"/>
+    </event>
+
+    <event name="device_remove">
+      <description summary="device removal event">
+        The device add/remove notification is going to be sent when a physical/logical device is
+        added/removed to/from the given seat. Note that a tizen input device object can be assigned to
+        a wl_seat and can also be assigned to the other wl_seat at any time. Whenever a relationship between
+        a tizen input device object changes, device remove event from the current wl_seat object will be made
+        and device add event to the other wl_seat object will also be mode.
+      </description>
+      <arg name="serial" type="uint"/>
+      <arg name="identifier" type="string"/>
+      <arg name="device" type="object" interface="tizen_input_device"/>
+      <arg name="seat" type="object" interface="wl_seat"/>
+    </event>
+
+    <enum name="clas">
+       <description summary="device class">
+       </description>
+       <entry name="none" value="0" summary="none of class"/>
+       <entry name="mouse" value="1" summary="mouse class"/>
+       <entry name="keyboard" value="2" summary="keyboard class"/>
+       <entry name="touchscreen" value="4" summary="touchscreen class"/>
+    </enum>
+
+    <enum name="error">
+      <entry name="none" value="0" summary="no error"/>
+      <entry name="no_permission" value="1" summary="no permission"/>
+      <entry name="invalid_class" value="2" summary="invalid class"/>
+      <entry name="blocked_already" value="3" summary="blocked already by the other client"/>
+      <entry name="no_system_resources" value="4" summary="no system resources such as memory lack"/>
+      <entry name="invalid_parameter" value="5" summary="argument is invalid"/>
+      <entry name="invalid_surface" value="6" summary="the given surface is not visible or pointer is not on the given surface"/>
+      <entry name="no_pointer_available" value="7" summary="there is no pointer available to warp"/>
+    </enum>
+
+    <event name="error">
+      <description summary="error event">
+      </description>
+      <arg name="errorcode" type="uint" enum="error"/>
+    </event>
+
+    <event name="block_expired">
+      <description summary="block expiration event">
+        This event will be sent if the duration of existing block is expired.
+        Note that no block expired event will be sent if there is no block for the client.
+      </description>
+    </event>
+
+    <request name="block_events">
+      <description summary="request to block sending event(s)">
+        This request allows a client to request to block one or more events for its purpose.
+        By specifying class as an argument in the request, the events belongs to the class will be blocked
+        during the given duration. Note that an error event will be sent if there is any error.
+      </description>
+      <arg name="serial" type="uint" summary=""/>
+      <arg name="clas" type="uint" enum="clas"/>
+      <arg name="duration" type="uint" summary="time duration with millisecond granularity"/>
+    </request>
+
+    <request name="unblock_events">
+      <description summary="request to unblock sending event(s)">
+        This request allows a client to request to release the existing block for the client.
+        Note that no error event will be sent if there is no existing block for the client.
+      </description>
+      <arg name="serial" type="uint" summary=""/>
+    </request>
+
+    <request name="init_generator">
+      <description summary="initialize input generator system">
+      </description>
+      <arg name="clas" type="uint" enum="clas"/>
+    </request>
+
+    <request name="deinit_generator">
+      <description summary="deinitialize input generator system">
+      </description>
+      <arg name="clas" type="uint" enum="clas"/>
+    </request>
+
+    <request name="generate_key">
+      <description summary="generate a key event using specific or default device">
+      </description>
+      <arg name="keyname" type="string"/>
+      <arg name="pressed" type="uint"/>
+    </request>
+
+    <enum name="pointer_event_type">
+      <entry name="begin" value="0"/>
+      <entry name="update" value="1"/>
+      <entry name="end" value="2"/>
+    </enum>
+
+    <request name="generate_pointer">
+      <description summary="generate a pointer event using specific or default device">
+      </description>
+      <arg name="type" type="uint" enum="pointer_event_type"/>
+      <arg name="x" type="uint"/>
+      <arg name="y" type="uint"/>
+      <arg name="button" type="uint"/>
+    </request>
+
+    <request name="generate_touch">
+      <description summary="generate a touch event using specific or default device">
+      </description>
+      <arg name="type" type="uint" enum="pointer_event_type"/>
+      <arg name="x" type="uint"/>
+      <arg name="y" type="uint"/>
+      <arg name="finger" type="uint"/>
+    </request>
+
+    <request name="pointer_warp">
+      <description summary="warp pointer to the relative position to the given surface">
+      </description>
+      <arg name="surface" type="object" interface="wl_surface"/>
+      <arg name="x" type="fixed"/>
+      <arg name="y" type="fixed"/>
+    </request>
+
+    <!-- version 2 additions -->
+    <request name="init_generator_with_name" since="2">
+      <description summary="initialize input generator system with name">
+      </description>
+      <arg name="clas" type="uint" enum="clas"/>
+      <arg name="name" type="string" />
+    </request>
+
+    <request name="destroy" type="destructor" since="2">
+      <description summary="destroy the tizen_input_device_manager">
+        Destroy the tizen_input_device_manager.
+      </description>
+    </request>
+
+  </interface>
+
+  <interface name="tizen_input_device" version="1">
+    <description summary="tizen input device object">
+      The tizen_input_device interface represents one or more input devices associated with a physical/logical
+      input device. This interface provides device specific information/events to allows for client to identify
+      the source device of an event or to get the additional axes/attributes of a device.
+      Note that a tizen_input_device object can be used for a physical input device and can also be used for a
+      group of input devices. e.g. a group of mouse devices
+    </description>
+
+    <enum name="clas">
+       <description summary="device class">
+       </description>
+       <entry name="none" value="0" summary="none of class"/>
+       <entry name="keyboard" value="2" summary="keyboard class"/>
+       <entry name="mouse" value="3" summary="mouse class"/>
+       <entry name="touchscreen" value="4" summary="touchscreen class"/>
+    </enum>
+
+    <enum name="subclas">
+       <description summary="device subclass">
+       </description>
+       <entry name="none" value="0" summary="none of subclass"/>
+    </enum>
+
+    <enum name="axis_type">
+      <description summary="axis type enums which can be supported by a device">
+      </description>
+      <entry name="none" value="0" summary="radius of x axis of an event area e.g. touching area with a finger or a pen"/>
+      <entry name="radius_x" value="1" summary="radius of x axis of an event area e.g. touching area with a finger or a pen"/>
+      <entry name="radius_y" value="2" summary="radius of y axis of an event area e.g. touching area with a finger or a pen"/>
+      <entry name="pressure" value="3" summary="pressure in an event area e.g. touching area with a finger or a pen"/>
+      <entry name="angle" value="4" summary="angle in an event area e.g. touching area with a finger or a pen"/>
+      <entry name="detent" value="5" summary="detent value e.g. moved distance with a rotary device"/>
+    </enum>
+
+    <event name="device_info">
+      <description summary="event contains device information">
+      </description>
+      <arg name="name" type="string"/>
+      <arg name="clas" type="uint" enum="clas"/>
+      <arg name="subclas" type="uint" enum="subclas"/>
+      <arg name="axes" type="array" summary="array of axis enum"/>
+    </event>
+
+    <event name="event_device">
+      <description summary="event indicates the source device associated with a wl_pointer/keyboard/touch event">
+      </description>
+      <arg name="serial" type="uint"/>
+      <arg name="name" type="string"/>
+      <arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
+    </event>
+
+    <request name="select_axes">
+      <description summary="request for selecting some of axes among the axes supported by a tizen_input_device object">
+      </description>
+      <arg name="axes" type="array" summary="array of axis num"/>
+    </request>
+
+    <event name="axis">
+      <description summary="axis change event">
+      </description>
+      <arg name="axis_type" type="uint" enum="axis_type"/>
+      <arg name="value" type="fixed" summary="axis value"/>
+    </event>
+
+    <request name="release" type="destructor">
+      <description summary="release the tizen_input_device object">
+      </description>
+    </request>
+  </interface>
+
+  <interface name="tizen_launchscreen" version="1">
+    <request name="create_img">
+      <arg name="id" type="new_id" interface="tizen_launch_image" summary="new tizen_launch_image object"/>
+    </request>
+
+    <request name="destroy" type="destructor">
+      <description summary="destroy the tizen_launchscreen">
+        Destroy the tizen_launchscreen.
+      </description>
+    </request>
+
+  </interface>
+
+  <interface name="tizen_launch_image" version="1">
+    <!-- launch img -->
+    <enum name="file_type">
+      <entry name="img" value="0" summary="splash image file path"/>
+      <entry name="edj" value="1" summary="splash edj file path"/>
+    </enum>
+
+    <enum name="indicator">
+      <entry name="off" value="0" summary="splash hide indicator"/>
+      <entry name="on" value="1" summary="splash show indicator"/>
+    </enum>
+
+    <enum name="rotation">
+      <entry name="0" value="0" summary="rotation angle 0 degree"/>
+      <entry name="90" value="90" summary="rotation angle 90 degree"/>
+      <entry name="180" value="180" summary="rotation angle 180 degree"/>
+      <entry name="270" value="270" summary="rotation angle 270 degree"/>
+    </enum>
+
+    <request name="destroy" type="destructor"/>
+
+    <request name="launch">
+      <arg name="file" type="string"/>
+      <arg name="file_type" type="uint" />
+      <arg name="color_depth" type="uint" />
+      <arg name="rotation" type="uint" />
+      <arg name="indicator" type="uint" />
+      <arg name="options" type="array" />
+    </request>
+
+    <request name="owner">
+      <arg name="pid" type="uint" />
+    </request>
+
+    <request name="show">
+    </request>
+
+    <request name="hide">
+    </request>
+  </interface>
+
+  <interface name="tizen_effect" version="1">
+     <enum name="type">
+      <entry name="none" value="0" summary="none"/>
+      <entry name="show" value="1" summary="show effect of window"/>
+      <entry name="hide" value="2" summary="hide effect of window"/>
+      <entry name="restack" value="3" summary="restack effect of window"/>
+     </enum>
+     <request name="destroy" type="destructor" />
+     <event name="start">
+       <arg name="surface" type="object" interface="wl_surface"/>
+       <arg name="type" type="uint" />
+     </event>
+     <event name="end">
+       <arg name="surface" type="object" interface="wl_surface"/>
+       <arg name="type" type="uint" />
+     </event>
+  </interface>
+
+  <interface name="tizen_display_policy" version="1">
+    <enum name="error_state">
+      <entry name="none" value="0"/>
+      <entry name="permission_denied" value="1"/>
+    </enum>
+    <!-- for window brightness -->
+    <request name="set_window_brightness">
+      <arg name="surface" type="object" interface="wl_surface"/>
+      <arg name="brightness" type="int"/>
+    </request>
+
+    <event name="window_brightness_done">
+      <arg name="surface" type="object" interface="wl_surface"/>
+      <arg name="brightness" type="int"/>
+      <arg name="error_state" type="uint"/>
+    </event>
+
+    <request name="destroy" type="destructor">
+      <description summary="destroy the tizen_display_policy">
+        Destroy the tizen_display_policy.
+      </description>
+    </request>
+
+  </interface>
+
+  <interface name="tizen_indicator" version="1">
+    <enum name="state">
+      <entry name="unknown" value="0" summary="unknown"/>
+      <entry name="off" value="1" summary="can not show indicator"/>
+      <entry name="on" value="2" summary="can show indicator"/>
+    </enum>
+    <enum name="opacity_mode">
+      <entry name="unknown" value="0" summary="unknown"/>
+      <entry name="opaque" value="1" summary="opaque mode"/>
+      <entry name="translucent" value="2" summary="translucent mode"/>
+      <entry name="transparent" value="3" summary="transparent all mode"/>
+      <entry name="bg_transparent" value="4" summary="transparent only background mode"/>
+    </enum>
+    <enum name="visible_type">
+      <entry name="hidden" value="0" summary="hidden type indicator"/>
+      <entry name="shown" value="1" summary="shown type indicator"/>
+    </enum>
+
+    <request name="destroy" type="destructor"/>
+    <request name="set_state">
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+      <arg name="state" type="int" />
+    </request>
+    <request name="set_opacity_mode">
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+      <arg name="mode" type="int" />
+    </request>
+    <request name="set_visible_type">
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+      <arg name="type" type="int" />
+    </request>
+
+    <event name="flick">
+      <arg name="surface" type="object" interface="wl_surface" summary="occur the flick event"/>
+      <arg name="type" type="int"/>
+    </event>
+  </interface>
+
+  <interface name="tizen_clipboard" version="2">
+     <description summary="an interface for requests and event about clipboard">
+        This interface provides some requests and events about clipboard for other clients.
+     </description>
+     <request name="destroy" type="destructor" />
+     <request name="show">
+      <description summary="request for show clipboard">
+      </description>
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+     </request>
+     <request name="hide">
+      <description summary="request for hide clipboard">
+      </description>
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+     </request>
+     <event name="data_selected">
+      <description summary="announce data are selected by clipboard">
+      </description>
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+     </event>
+
+     <!-- version 2 additions -->
+     <request name="set_data_only" since="2">
+        <description summary="request for setting data only mode for this wl_client">
+           A wayland client can notify of that the client is data only mode.
+           The data only mode means that this wayland client doesn't have any
+           wl_surfaces at all but it wants to use wl_data_device for some data
+           operations.
+        </description>
+        <arg name="set" type="uint" />
+     </request>
+
+     <event name="allowed_data_only" since="2">
+        <description summary="event to notify if data only set is allowed or not"/>
+        <arg name="allowed" type="uint" />
+     </event>
+  </interface>
+
+  <interface name="tizen_screen_rotation" version="1">
+    <request name="get_ignore_output_transform">
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+    </request>
+
+    <event name="ignore_output_transform">
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+      <arg name="ignore" type="uint"/>
+    </event>
+
+    <request name="destroy" type="destructor">
+      <description summary="destroy the tizen_screen_rotation">
+        Destroy the tizen_screen_rotation.
+      </description>
+    </request>
+
+  </interface>
+
+</protocol>
diff --git a/protocol/tizen/tizen-launch.xml b/protocol/tizen/tizen-launch.xml
new file mode 100644 (file)
index 0000000..d1908be
--- /dev/null
@@ -0,0 +1,62 @@
+<protocol name="tizen_launch">
+  <interface name="tizen_launch_effect" version="1">
+    <request name="create_splash_img">
+      <arg name="id" type="new_id" interface="tizen_launch_splash" summary="new tizen_launch_splash object"/>
+    </request>
+
+    <request name="type_set">
+      <arg name="effect_type" type="string" allow-null="true"/>
+      <arg name="pid" type="uint" />
+      <arg name="options" type="array" allow-null="true" summary="array of options"/>
+    </request>
+
+    <request name="type_unset">
+      <arg name="pid" type="uint" />
+    </request>
+
+    <request name="destroy" type="destructor">
+      <description summary="destroy tizen_launch_effect">
+        Destroy tizen_launch_effect.
+      </description>
+    </request>
+  </interface>
+
+  <interface name="tizen_launch_splash" version="1">
+    <!-- launch img -->
+    <enum name="file_type">
+      <entry name="img" value="0" summary="splash image file path"/>
+      <entry name="edj" value="1" summary="splash edj file path"/>
+    </enum>
+
+    <enum name="indicator">
+      <entry name="off" value="0" summary="splash hide indicator"/>
+      <entry name="on" value="1" summary="splash show indicator"/>
+    </enum>
+
+    <enum name="rotation">
+      <entry name="0" value="0" summary="rotation angle 0 degree"/>
+      <entry name="90" value="90" summary="rotation angle 90 degree"/>
+      <entry name="180" value="180" summary="rotation angle 180 degree"/>
+      <entry name="270" value="270" summary="rotation angle 270 degree"/>
+    </enum>
+
+    <request name="destroy" type="destructor"/>
+
+    <request name="launch">
+      <arg name="file" type="string"/>
+      <arg name="file_type" type="uint" />
+      <arg name="color_depth" type="uint" />
+      <arg name="rotation" type="uint" />
+      <arg name="indicator" type="uint" />
+      <arg name="effect_type" type="string" allow-null="true"/>
+      <arg name="theme_type" type="string" allow-null="true"/>
+      <arg name="options" type="array" allow-null="true" summary="array of options"/>
+    </request>
+
+    <request name="owner">
+      <arg name="pid" type="uint" />
+    </request>
+
+  </interface>
+
+</protocol>
diff --git a/protocol/tizen/tizen-remote-surface.xml b/protocol/tizen/tizen-remote-surface.xml
new file mode 100644 (file)
index 0000000..a7a1d9d
--- /dev/null
@@ -0,0 +1,368 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="tizen_remote_surface">
+  <interface name="tizen_remote_surface_manager" version="5">
+     <description summary="manager of tizen_remote_surface">
+        A manager of tizen_remote_surface. This object is in charge of
+        creating tizen_remote_surface_provider and tizen_remote_surface and
+        provide additional operations for those objects.
+     </description>
+     <request name="create_provider">
+        <description summary="create new remote surface provider">
+           Ask manager creation of a new remote surface provider.
+           A wl_surface is required for making remote surface provider.
+        </description>
+        <arg name="id" type="new_id" interface="tizen_remote_surface_provider" summary="new remote surface provider id"/>
+        <arg name="surface" type="object" interface="wl_surface" summary="wayland surface to be handled as provider"/>
+     </request>
+
+     <request name="create_surface">
+        <description summary="create new remote surface">
+           Ask manager creation of a new remote surface.
+           resource_id is required to identify this remote surface is what provider of
+           and wl_tbm object is used for remote buffer of this remote surface.
+        </description>
+        <arg name="id" type="new_id" interface="tizen_remote_surface" summary="new remote surface id" />
+        <arg name="resource_id" type="uint" summary="provider's resource id"/>
+       <arg name="tbm" type="object" interface="wl_tbm" summary="wl_tbm object used to get tbm_surface"/>
+     </request>
+
+     <request name="bind_surface">
+        <description summary="bind a remote surface and a wl_surface each other">
+           Combining a remote surface object into a wl_surface object.
+           If a remote surface and a wayland surface are bound each other,
+           wayland surface can be automatically drawed by buffer updating of
+           remote surface provider without notice to an owner of remote surface.
+        </description>
+        <arg name="surface" type="object" interface="wl_surface" allow-null="true" summary="wayland surface to be set remote surface"/>
+        <arg name="remote_surface" type="object" interface="tizen_remote_surface" summary="remote surface for target wayland surface"/>
+     </request>
+
+     <request name="destroy" type="destructor">
+       <description summary="destroy tizen_remote_surface_manager">
+         Destroy tizen_remote_surface_manager.
+       </description>
+     </request>
+  </interface>
+
+  <interface name="tizen_remote_surface_provider" version="4">
+     <description summary="a provider of remote buffer source">
+        A provider client. Surfaces of providers are offscreen.
+        An attached buffer of the provider is used for creating remote buffer
+        and the remote buffer is delivered to remote surfaces.
+     </description>
+     <request name="destroy" type="destructor" />
+
+     <request name="offscreen_set">
+        <description summary="request offscreen rendering">
+           Requests for setting or unsetting offscreen.
+           The default is offscreen if provider client never requests this.
+        </description>
+        <arg name="set" type="uint" summary="zero value means unset and non-zero value means set of offscreen" />
+     </request>
+
+     <!-- for id -->
+     <event name="resource_id">
+        <description summary="announce resource id of provider">
+           Announce resource id of this provider.
+        </description>
+        <arg name="resource_id" type="uint" summary="this provider's resource_id"/>
+     </event>
+
+     <!-- for visibility -->
+     <event name="visibility">
+        <description summary="notify of visibility change">
+           Notify of visibility chages.
+           This provider's visibility is determined by its remote surfaces.
+        </description>
+        <arg name="visibility" type="uint" enum="visibility_type" summary="visibility type"/>
+     </event>
+
+     <enum name="visibility_type">
+        <entry name="visible" value="0" />
+        <entry name="invisible" value="1" />
+     </enum>
+
+     <!-- version 4 additions -->
+
+     <request name="set_input_event_filter" since="4">
+        <description summary="set event filter to be allowed">
+           Some providers can accept restricted events only. To notify of what
+           event is allowed or not, provider can set event filter using this
+           request.
+        </description>
+        <arg name="event_filter" type="uint" summary="event filter value. To calculate your event filter value, refer enum input_event_filter of tizen_remote_surface interface"/>
+     </request>>
+  </interface>
+
+  <interface name="tizen_remote_surface" version="5">
+     <description summary="a consumer of buffers from a provider">
+        A consumer client of provider client's buffer.
+        The consumer can receive notice of buffer updating of
+        its provider and use the received buffer for drawing its own buffer.
+        The consumer also can request for transfering input events into its
+        provider.
+     </description>
+     <request name="destroy" type="destructor" />
+
+     <!-- for buffer update -->
+     <request name="redirect">
+        <description summary="request redirect of provider's buffer">
+           Request for redirect of provider's buffer. A consumer is able to receive
+           buffer_update after this request.
+        </description>
+     </request>
+     <request name="unredirect">
+        <description summary="request for stop redirect of provider's buffer"/>
+     </request>
+
+     <event name="update_buffer">
+        <description summary="deliver updated buffer of provider">
+           When a provider client of a remote surface sent wl_surface.commit,
+           server deliver a remote buffer is created based on provider's buffer.
+           This event is deprecated. Please use changed_buffer event instead of it.
+        </description>
+        <arg name="buffer" type="object" interface="wl_buffer" summary="wayland buffer based on provider updated buffer"/>
+        <arg name="time" type="uint" summary="timestampa" />
+     </event>
+
+     <!-- for event transference -->
+     <request name="transfer_mouse_event">
+        <description summary="notify of mouse up/down/move event on remote surface" />
+        <arg name="event_type" type="uint" enum="event_type" summary="event type" />
+        <arg name="device" type="int" summary="device type" />
+        <arg name="button" type="int" summary="button id" />
+        <arg name="x" type="int" summary="x coordinate" />
+        <arg name="y" type="int" summary="y coordinate" />
+        <arg name="radius_x" type="fixed" summary="minor axis of touch point"  />
+        <arg name="radius_y" type="fixed" summary="major axis of touch point" />
+        <arg name="pressure" type="fixed" summary="pressure of touch point" />
+        <arg name="angle" type="fixed" summary="angle of touch point" />
+        <arg name="clas" type="uint" summary="class of event generator(device)" />
+        <arg name="subclas" type="uint" summary="subclass of event generator(device)" />
+        <arg name="identifier" type="string" summary="description of event generator(device)" />
+        <arg name="time" type="uint" summary="timestamp" />
+     </request>
+
+     <request name="transfer_mouse_wheel">
+        <description summary="notify of mouse wheel event on remote surface" />
+        <arg name="direction" type="uint" summary="wheel direction" />
+        <arg name="z" type="int"  summary="z coordinate" />
+        <arg name="clas" type="uint" summary="class of event generator(device)" />
+        <arg name="subclas" type="uint" summary="subclass of event generator(device)" />
+        <arg name="identifier" type="string" summary="description of event generator(device)" />
+        <arg name="time" type="uint" summary="timestamp" />
+     </request>
+
+     <request name="transfer_touch_event">
+        <description summary="notify of touch up/down/move event on remote surface" />
+        <arg name="event_type" type="uint" enum="event_type" summary="event type" />
+        <arg name="device" type="int" summary="device type" />
+        <arg name="button" type="int" summary="button id" />
+        <arg name="x" type="int" summary="x coordinate" />
+        <arg name="y" type="int" summary="y coordinate" />
+        <arg name="radius_x" type="fixed" summary="minor axis of touch point"  />
+        <arg name="radius_y" type="fixed" summary="major axis of touch point" />
+        <arg name="pressure" type="fixed" summary="pressure of touch point" />
+        <arg name="angle" type="fixed" summary="angle of touch point" />
+        <arg name="clas" type="uint" summary="class of event generator(device)" />
+        <arg name="subclas" type="uint" summary="subclass of event generator(device)" />
+        <arg name="identifier" type="string" summary="description of event generator(device)" />
+        <arg name="time" type="uint" summary="timestamp" />
+     </request>
+
+     <request name="transfer_touch_cancel">
+        <description summary="notify of touch cancel"/>
+     </request>
+
+     <request name="transfer_key_event">
+        <description summary="notify of key down/up event"/>
+        <arg name="event_type" type="uint" enum="event_type" summary="event type" />
+        <arg name="keycode" type="int" summary="keycode" />
+        <arg name="clas" type="uint" summary="class of event generator(device)" />
+        <arg name="subclas" type="uint" summary="subclass of event generator(device)" />
+        <arg name="identifier" type="string" summary="description of event generator(device)" />
+        <arg name="time" type="uint" summary="timestamp" />
+     </request>
+
+     <enum name="event_type">
+        <entry name="none" value="0" />
+        <entry name="mouse_down" value="1" />
+        <entry name="mouse_up" value="2" />
+        <entry name="mouse_move" value="3" />
+        <entry name="touch_down" value="4" />
+        <entry name="touch_up" value="5" />
+        <entry name="touch_move" value="6" />
+        <entry name="key_down" value="7" />
+        <entry name="key_up" value="8" />
+        <entry name="mouse_in" value="9" />
+        <entry name="mouse_out" value="10" />
+     </enum>
+
+     <!-- for visibility transference -->
+     <request name="transfer_visibility">
+        <description summary="notify of visibility change of remote surface" />
+        <arg name="visibility" type="uint" enum="visibility_type" summary="changed visibility type" />
+     </request>
+
+     <enum name="visibility_type">
+        <entry name="visible" value="0" />
+        <entry name="invisible" value="1" />
+     </enum>
+
+     <!-- for notify of provider's ejection -->
+     <event name="missing">
+        <description summary="notify of leave of provider" />
+     </event>
+
+     <request name="set_owner">
+        <description summary="set owner surface of remote sruface">
+           Set owner wl_surface object of this remote surface.
+        </description>
+        <arg name="owner" type="object" interface="wl_surface" allow-null="true" summary="wayland surface to be set to an owner" />
+     </request>
+
+     <request name="create_region">
+        <description summary="create new region">
+           Ask tizen_remote_surface for creation of new remote surface region object.
+           tizen_remote_surface_region object can be used for representing
+           region of tizen_remote_surface.
+        </description>
+        <arg name="id" type="new_id" interface="tizen_remote_surface_region" />
+     </request>
+
+     <!-- Version 2 additions -->
+
+     <request name="release" since="2">
+        <description summary="request release of wayland buffer">
+           Notify of end of using the wayland buffer.
+           tizen_remote_surface client SHOULD request this after all work using
+           wayland buffer is done so that provider of the wl_buffer can re-use the buffer.
+        </description>
+        <arg name="buffer" type="object" interface="wl_buffer" summary="wayland buffer to be released"/>
+     </request>
+
+     <!-- Version 3 additions -->
+
+     <enum name="buffer_type" since="3">
+        <description summary="type of remote surface buffer" />
+        <entry name="tbm" value="0" summary="tbm type"/>
+        <entry name="image_file" value="1" summary="image file type"/>
+     </enum>
+
+     <event name="changed_buffer" since="3">
+        <description summary="deliver a changed buffer of the provider client">
+           When a provider client of a remote surface sent wl_surface.commit,
+           the compositor delivers a remote buffer is created based on provider's buffer.
+           And the buffer of provider client can be changed to the static image file by
+           the compositor whenever its window is iconify. Then consumer has to use
+           fd instead of buffer.
+        </description>
+        <arg name="type" type="uint" enum="buffer_type" summary="buffer type" />
+        <arg name="tbm" type="object" interface="wl_buffer" allow-null="true" summary="wayland buffer based on provider updated buffer"/>
+        <arg name="img_file_fd" type="fd" summary="static image file descriptor" />
+        <arg name="img_file_size" type="uint" summary="size of static image file" />
+        <arg name="time" type="uint" summary="timestamp" />
+        <arg name="options" type="array" allow-null="true" summary="array of options"/>
+     </event>
+
+     <!-- Version 4 additions -->
+
+     <event name="input_event_filter" since="4">
+        <description summary="delivered a changed event filter of provider client">
+           When a provider client of this remote surface sent
+           remote_surface_provider@set_input_event_filter, a compositor delivers
+           the event filter values to this remote surface client.
+        </description>
+        <arg name="event_filter" type="uint" summary="event filter value"/>
+     </event>
+
+     <enum name="input_event_filter">
+        <description summary="vaules for event filter."/>
+        <entry name="mouse_none" value="0x00000001"/>
+        <entry name="mouse_up_down" value="0x00000002"/>
+        <entry name="mouse_move_x" value="0x00000003"/>
+        <entry name="mouse_move_y" value="0x00000004"/>
+        <entry name="mouse_move_x_y" value="0x00000005"/>
+        <entry name="mouse_up_down_move_x" value="0x00000006"/>
+        <entry name="mouse_up_down_move_y" value="0x00000007"/>
+        <entry name="mouse_up_down_move_x_y" value="0x00000008"/>
+        <entry name="mouse_all" value="0x0000000e" />
+        <entry name="mouse_flag" value="0x0000000f"/>
+        <entry name="mouse_wheel_none" value="0x00000010"/>
+        <entry name="mouse_wheel_all" value="0x000000e0"/>
+        <entry name="mouse_wheel_flag" value="0x000000f0"/>
+        <entry name="touch_none" value="0x00000100"/>
+        <entry name="touch_up_down" value="0x00000200"/>
+        <entry name="touch_move_x" value="0x00000300"/>
+        <entry name="touch_move_y" value="0x00000400"/>
+        <entry name="touch_move_x_y" value="0x00000500"/>
+        <entry name="touch_up_down_move_x" value="0x00000600"/>
+        <entry name="touch_up_down_move_y" value="0x00000700"/>
+        <entry name="touch_up_down_move_x_y" value="0x00000800"/>
+        <entry name="touch_all" value="0x00000e00"/>
+        <entry name="touch_flag" value="0x00000f00"/>
+        <entry name="touch_cancel_none" value="0x00001000"/>
+        <entry name="touch_cancel_all" value="0x0000e000"/>
+        <entry name="touch_cancel_flag" value="0x0000f000"/>
+        <entry name="key_none" value="0x00010000"/>
+        <entry name="key_all" value="0x000e0000"/>
+        <entry name="key_flag" value="0x000f0000"/>
+     </enum>
+
+     <request name="set_remote_render" since="4">
+        <description summary="request offscreen rendering of its provider client">
+           Even if a provider is iconifed already and server sent
+           its static image using tizen_remote_surface@changed_buffer, some
+           privileged clients can request for offscreen rendering of the provider
+           client using this request.
+        </description>
+        <arg name="set" type="uint" summary="do offscreen render of its provider if true" />
+     </request>
+
+     <!-- Version 5 additions -->
+     <enum name="changed_buffer_event_filter" since="5">
+        <description summary="vaules for changed_buffer event filter"/>
+        <entry name="none" value="0x00000000" summary="none"/>
+        <entry name="tbm" value="0x00000001" summary="tbm type filter"/>
+        <entry name="image_file" value="0x00000002" summary="image file type filter"/>
+     </enum>
+
+     <request name="set_changed_buffer_event_filter" since="5">
+        <description summary="set changed_buffer event filter to be accepted or denied">
+           This request enables the client to accept or reject specific 'changed_buffer' event
+           using given filter value. If the client set specific value for 'changed_buffer' event
+           to filter that, then that event will not be sent to the client. An existing filter
+           can be removed using 'none' value of type argument. In this case, all 'changed_buffer'
+           events will be delivered to the client.
+        </description>
+        <arg name="type" type="uint" enum="changed_buffer_event_filter" summary="type of buffer" />
+     </request>
+
+     <request name="get_current_buffer" since="5">
+        <description summary="get the current buffer of provider client">
+           This request asks the server to send the provider's current buffer with given type
+           of buffer. Since resulting buffer is passed in the 'changed_buffer' event callback,
+           the client should not set 'changed_buffer' event filter with given buffer type.
+        </description>
+        <arg name="type" type="uint" enum="buffer_type" summary="buffer type"/>
+        <arg name="serial" type="uint" summary="request serial number"/>
+     </request>
+
+  </interface>
+
+  <interface name="tizen_remote_surface_region" version="1">
+     <description summary="a region object">
+        A region object having geometry information and etc.
+     </description>
+     <request name="destroy" type="destructor" />
+     <request name="set_geometry">
+        <description summary="set geometry of this region">
+           Set geometry information of this region object.
+        </description>
+        <arg name="x" type="int" summary="x coordinate" />
+        <arg name="y" type="int" summary="y coordinate" />
+        <arg name="w" type="int" summary="width" />
+        <arg name="h" type="int" summary="height" />
+     </request>
+  </interface>
+</protocol>
diff --git a/protocol/tizen/tizen-surface.xml b/protocol/tizen/tizen-surface.xml
new file mode 100644 (file)
index 0000000..fd9c5ab
--- /dev/null
@@ -0,0 +1,22 @@
+<protocol name="tizen_surface">
+  <interface name="tizen_surface_shm" version="2">
+    <request name="get_flusher">
+      <arg name="id" type="new_id" interface="tizen_surface_shm_flusher" summary=""/>
+      <arg name="surface" type="object" interface="wl_surface" summary="surface object"/>
+    </request>
+
+    <request name="destroy" type="destructor">
+      <description summary="destroy tizen_surface_shm">
+        Destroy tizen_surface_shm.
+      </description>
+    </request>
+  </interface>
+
+  <interface name="tizen_surface_shm_flusher" version="2">
+    <request name="destroy" type="destructor" />
+    <event name="flush">
+    </event>
+    <event name="free_flush" since="2">
+    </event>
+  </interface>
+</protocol>
diff --git a/protocol/tizen/transform.xml b/protocol/tizen/transform.xml
new file mode 100644 (file)
index 0000000..dfb3e98
--- /dev/null
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="transform">
+
+  <copyright>
+    Copyright Â© 2013-2014 Collabora, Ltd.
+
+    Permission to use, copy, modify, distribute, and sell this
+    software and its documentation for any purpose is hereby granted
+    without fee, provided that the above copyright notice appear in
+    all copies and that both that copyright notice and this permission
+    notice appear in supporting documentation, and that the name of
+    the copyright holders not be used in advertising or publicity
+    pertaining to distribution of the software without specific,
+    written prior permission.  The copyright holders make no
+    representations about the suitability of this software for any
+    purpose.  It is provided "as is" without express or implied
+    warranty.
+
+    THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+    SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+    FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+    SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+    AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+    ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+    THIS SOFTWARE.
+  </copyright>
+
+  <interface name="wl_transform" version="1">
+    <description summary="">
+    </description>
+
+    <request name="destroy" type="destructor">
+      <description summary="">
+      </description>
+    </request>
+
+    <request name="get_rotator">
+      <description summary="">
+      </description>
+      <arg name="id" type="new_id" interface="wl_rotator"
+           summary=""/>
+      <arg name="surface" type="object" interface="wl_surface"
+           summary="the surface"/>
+    </request>
+  </interface>
+
+  <interface name="wl_rotator" version="1">
+    <description summary="crop and scale interface to a wl_surface">
+    </description>
+
+    <request name="destroy" type="destructor">
+      <description summary="">
+      </description>
+    </request>
+
+    <enum name="error">
+      <entry name="bad_value" value="0"
+             summary="negative or zero values in width or height"/>
+    </enum>
+
+    <request name="set">
+      <description summary="">
+      </description>
+    </request>
+
+    <request name="unset">
+      <description summary="">
+      </description>
+    </request>
+  </interface>
+</protocol>
diff --git a/protocol/tizen/xdg-shell.xml b/protocol/tizen/xdg-shell.xml
new file mode 100644 (file)
index 0000000..68b874a
--- /dev/null
@@ -0,0 +1,588 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="xdg_shell">
+
+  <copyright>
+    Copyright Â© 2008-2013 Kristian Høgsberg
+    Copyright Â© 2013      Rafael Antognolli
+    Copyright Â© 2013      Jasper St. Pierre
+    Copyright Â© 2010-2013 Intel Corporation
+
+    Permission to use, copy, modify, distribute, and sell this
+    software and its documentation for any purpose is hereby granted
+    without fee, provided that the above copyright notice appear in
+    all copies and that both that copyright notice and this permission
+    notice appear in supporting documentation, and that the name of
+    the copyright holders not be used in advertising or publicity
+    pertaining to distribution of the software without specific,
+    written prior permission.  The copyright holders make no
+    representations about the suitability of this software for any
+    purpose.  It is provided "as is" without express or implied
+    warranty.
+
+    THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+    SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+    FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+    SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+    AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+    ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+    THIS SOFTWARE.
+  </copyright>
+
+  <interface name="xdg_shell" version="1">
+    <description summary="create desktop-style surfaces">
+      xdg_shell allows clients to turn a wl_surface into a "real window"
+      which can be dragged, resized, stacked, and moved around by the
+      user. Everything about this interface is suited towards traditional
+      desktop environments.
+    </description>
+
+    <enum name="version">
+      <description summary="latest protocol version">
+       The 'current' member of this enum gives the version of the
+       protocol.  Implementations can compare this to the version
+       they implement using static_assert to ensure the protocol and
+       implementation versions match.
+      </description>
+      <entry name="current" value="5" summary="Always the latest version"/>
+    </enum>
+
+    <enum name="error">
+      <entry name="role" value="0" summary="given wl_surface has another role"/>
+      <entry name="defunct_surfaces" value="1" summary="xdg_shell was destroyed before children"/>
+      <entry name="not_the_topmost_popup" value="2" summary="the client tried to map or destroy a non-topmost popup"/>
+      <entry name="invalid_popup_parent" value="3" summary="the client specified an invalid popup parent surface"/>
+    </enum>
+
+    <request name="destroy" type="destructor">
+      <description summary="destroy xdg_shell">
+        Destroy this xdg_shell object.
+
+        Destroying a bound xdg_shell object while there are surfaces
+        still alive created by this xdg_shell object instance is illegal
+        and will result in a protocol error.
+      </description>
+    </request>
+
+    <request name="use_unstable_version">
+      <description summary="enable use of this unstable version">
+       Negotiate the unstable version of the interface.  This
+       mechanism is in place to ensure client and server agree on the
+       unstable versions of the protocol that they speak or exit
+       cleanly if they don't agree.  This request will go away once
+       the xdg-shell protocol is stable.
+      </description>
+      <arg name="version" type="int"/>
+    </request>
+
+    <request name="get_xdg_surface">
+      <description summary="create a shell surface from a surface">
+       This creates an xdg_surface for the given surface and gives it the
+       xdg_surface role. A wl_surface can only be given an xdg_surface role
+       once. If get_xdg_surface is called with a wl_surface that already has
+       an active xdg_surface associated with it, or if it had any other role,
+       an error is raised.
+
+       See the documentation of xdg_surface for more details about what an
+       xdg_surface is and how it is used.
+      </description>
+      <arg name="id" type="new_id" interface="xdg_surface"/>
+      <arg name="surface" type="object" interface="wl_surface"/>
+    </request>
+
+    <request name="get_xdg_popup">
+      <description summary="create a popup for a surface">
+       This creates an xdg_popup for the given surface and gives it the
+       xdg_popup role. A wl_surface can only be given an xdg_popup role
+       once. If get_xdg_popup is called with a wl_surface that already has
+       an active xdg_popup associated with it, or if it had any other role,
+       an error is raised.
+
+       This request must be used in response to some sort of user action
+       like a button press, key press, or touch down event.
+
+       See the documentation of xdg_popup for more details about what an
+       xdg_popup is and how it is used.
+      </description>
+      <arg name="id" type="new_id" interface="xdg_popup"/>
+      <arg name="surface" type="object" interface="wl_surface"/>
+      <arg name="parent" type="object" interface="wl_surface"/>
+      <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat of the user event"/>
+      <arg name="serial" type="uint" summary="the serial of the user event"/>
+      <arg name="x" type="int"/>
+      <arg name="y" type="int"/>
+    </request>
+
+    <event name="ping">
+      <description summary="check if the client is alive">
+        The ping event asks the client if it's still alive. Pass the
+        serial specified in the event back to the compositor by sending
+        a "pong" request back with the specified serial.
+
+        Compositors can use this to determine if the client is still
+        alive. It's unspecified what will happen if the client doesn't
+        respond to the ping request, or in what timeframe. Clients should
+        try to respond in a reasonable amount of time.
+
+        A compositor is free to ping in any way it wants, but a client must
+        always respond to any xdg_shell object it created.
+      </description>
+      <arg name="serial" type="uint" summary="pass this to the pong request"/>
+    </event>
+
+    <request name="pong">
+      <description summary="respond to a ping event">
+       A client must respond to a ping event with a pong request or
+       the client may be deemed unresponsive.
+      </description>
+      <arg name="serial" type="uint" summary="serial of the ping event"/>
+    </request>
+  </interface>
+
+  <interface name="xdg_surface" version="1">
+    <description summary="A desktop window">
+      An interface that may be implemented by a wl_surface, for
+      implementations that provide a desktop-style user interface.
+
+      It provides requests to treat surfaces like windows, allowing to set
+      properties like maximized, fullscreen, minimized, and to move and resize
+      them, and associate metadata like title and app id.
+
+      The client must call wl_surface.commit on the corresponding wl_surface
+      for the xdg_surface state to take effect. Prior to committing the new
+      state, it can set up initial configuration, such as maximizing or setting
+      a window geometry.
+
+      Even without attaching a buffer the compositor must respond to initial
+      committed configuration, for instance sending a configure event with
+      expected window geometry if the client maximized its surface during
+      initialization.
+
+      For a surface to be mapped by the compositor the client must have
+      committed both an xdg_surface state and a buffer.
+    </description>
+
+    <request name="destroy" type="destructor">
+      <description summary="Destroy the xdg_surface">
+       Unmap and destroy the window. The window will be effectively
+       hidden from the user's point of view, and all state like
+       maximization, fullscreen, and so on, will be lost.
+      </description>
+    </request>
+
+    <request name="set_parent">
+      <description summary="set the parent of this surface">
+       Set the "parent" of this surface. This window should be stacked
+       above a parent. The parent surface must be mapped as long as this
+       surface is mapped.
+
+       Parent windows should be set on dialogs, toolboxes, or other
+       "auxiliary" surfaces, so that the parent is raised when the dialog
+       is raised.
+      </description>
+      <arg name="parent" type="object" interface="xdg_surface" allow-null="true"/>
+    </request>
+
+    <request name="set_title">
+      <description summary="set surface title">
+       Set a short title for the surface.
+
+       This string may be used to identify the surface in a task bar,
+       window list, or other user interface elements provided by the
+       compositor.
+
+       The string must be encoded in UTF-8.
+      </description>
+      <arg name="title" type="string"/>
+    </request>
+
+    <request name="set_app_id">
+      <description summary="set application ID">
+       Set an application identifier for the surface.
+
+       The app ID identifies the general class of applications to which
+       the surface belongs. The compositor can use this to group multiple
+       surfaces together, or to determine how to launch a new application.
+
+       For D-Bus activatable applications, the app ID is used as the D-Bus
+       service name.
+
+       The compositor shell will try to group application surfaces together
+       by their app ID.  As a best practice, it is suggested to select app
+       ID's that match the basename of the application's .desktop file.
+       For example, "org.freedesktop.FooViewer" where the .desktop file is
+       "org.freedesktop.FooViewer.desktop".
+
+       See the desktop-entry specification [0] for more details on
+       application identifiers and how they relate to well-known D-Bus
+       names and .desktop files.
+
+       [0] http://standards.freedesktop.org/desktop-entry-spec/
+      </description>
+      <arg name="app_id" type="string"/>
+    </request>
+
+    <request name="show_window_menu">
+      <description summary="show the window menu">
+        Clients implementing client-side decorations might want to show
+        a context menu when right-clicking on the decorations, giving the
+        user a menu that they can use to maximize or minimize the window.
+
+        This request asks the compositor to pop up such a window menu at
+        the given position, relative to the local surface coordinates of
+        the parent surface. There are no guarantees as to what menu items
+        the window menu contains.
+
+        This request must be used in response to some sort of user action
+        like a button press, key press, or touch down event.
+      </description>
+
+      <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat of the user event"/>
+      <arg name="serial" type="uint" summary="the serial of the user event"/>
+      <arg name="x" type="int" summary="the x position to pop up the window menu at"/>
+      <arg name="y" type="int" summary="the y position to pop up the window menu at"/>
+    </request>
+
+    <request name="move">
+      <description summary="start an interactive move">
+       Start an interactive, user-driven move of the surface.
+
+       This request must be used in response to some sort of user action
+       like a button press, key press, or touch down event.
+
+       The server may ignore move requests depending on the state of
+       the surface (e.g. fullscreen or maximized).
+      </description>
+      <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat of the user event"/>
+      <arg name="serial" type="uint" summary="the serial of the user event"/>
+    </request>
+
+    <enum name="resize_edge">
+      <description summary="edge values for resizing">
+       These values are used to indicate which edge of a surface
+       is being dragged in a resize operation. The server may
+       use this information to adapt its behavior, e.g. choose
+       an appropriate cursor image.
+      </description>
+      <entry name="none" value="0"/>
+      <entry name="top" value="1"/>
+      <entry name="bottom" value="2"/>
+      <entry name="left" value="4"/>
+      <entry name="top_left" value="5"/>
+      <entry name="bottom_left" value="6"/>
+      <entry name="right" value="8"/>
+      <entry name="top_right" value="9"/>
+      <entry name="bottom_right" value="10"/>
+    </enum>
+
+    <request name="resize">
+      <description summary="start an interactive resize">
+       Start a user-driven, interactive resize of the surface.
+
+       This request must be used in response to some sort of user action
+       like a button press, key press, or touch down event.
+
+       The server may ignore resize requests depending on the state of
+       the surface (e.g. fullscreen or maximized).
+      </description>
+      <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat of the user event"/>
+      <arg name="serial" type="uint" summary="the serial of the user event"/>
+      <arg name="edges" type="uint" summary="which edge or corner is being dragged"/>
+    </request>
+
+    <enum name="state">
+      <description summary="types of state on the surface">
+        The different state values used on the surface. This is designed for
+        state values like maximized, fullscreen. It is paired with the
+        configure event to ensure that both the client and the compositor
+        setting the state can be synchronized.
+
+        States set in this way are double-buffered. They will get applied on
+        the next commit.
+
+        Desktop environments may extend this enum by taking up a range of
+        values and documenting the range they chose in this description.
+        They are not required to document the values for the range that they
+        chose. Ideally, any good extensions from a desktop environment should
+        make its way into standardization into this enum.
+
+        The current reserved ranges are:
+
+        0x0000 - 0x0FFF: xdg-shell core values, documented below.
+        0x1000 - 0x1FFF: GNOME
+      </description>
+      <entry name="maximized" value="1" summary="the surface is maximized">
+        <description summary="the surface is maximized">
+        The surface is maximized. The window geometry specified in the configure
+        event must be obeyed by the client.
+        </description>
+      </entry>
+      <entry name="fullscreen" value="2" summary="the surface is fullscreen">
+        <description summary="the surface is fullscreen">
+        The surface is fullscreen. The window geometry specified in the configure
+        event must be obeyed by the client.
+        </description>
+      </entry>
+      <entry name="resizing" value="3">
+        <description summary="the surface is being resized">
+        The surface is being resized. The window geometry specified in the
+        configure event is a maximum; the client cannot resize beyond it.
+        Clients that have aspect ratio or cell sizing configuration can use
+        a smaller size, however.
+        </description>
+      </entry>
+      <entry name="activated" value="4">
+        <description summary="the surface is now activated">
+        Client window decorations should be painted as if the window is
+        active. Do not assume this means that the window actually has
+        keyboard or pointer focus.
+        </description>
+      </entry>
+    </enum>
+
+    <event name="configure">
+      <description summary="suggest a surface change">
+       The configure event asks the client to resize its surface or to
+       change its state.
+
+       The width and height arguments specify a hint to the window
+       about how its surface should be resized in window geometry
+       coordinates. See set_window_geometry.
+
+       If the width or height arguments are zero, it means the client
+       should decide its own window dimension. This may happen when the
+       compositor need to configure the state of the surface but doesn't
+       have any information about any previous or expected dimension.
+
+       The states listed in the event specify how the width/height
+       arguments should be interpreted, and possibly how it should be
+       drawn.
+
+       Clients should arrange their surface for the new size and
+       states, and then send a ack_configure request with the serial
+       sent in this configure event at some point before committing
+       the new surface.
+
+       If the client receives multiple configure events before it
+        can respond to one, it is free to discard all but the last
+        event it received.
+      </description>
+
+      <arg name="width" type="int"/>
+      <arg name="height" type="int"/>
+      <arg name="states" type="array"/>
+      <arg name="serial" type="uint"/>
+    </event>
+
+    <request name="ack_configure">
+      <description summary="ack a configure event">
+        When a configure event is received, if a client commits the
+        surface in response to the configure event, then the client
+        must make a ack_configure request before the commit request,
+        passing along the serial of the configure event.
+
+        For instance, the compositor might use this information to move
+        a surface to the top left only when the client has drawn itself
+        for the maximized or fullscreen state.
+
+        If the client receives multiple configure events before it
+        can respond to one, it only has to ack the last configure event.
+      </description>
+      <arg name="serial" type="uint" summary="the serial from the configure event"/>
+    </request>
+
+    <request name="set_window_geometry">
+      <description summary="set the new window geometry">
+        The window geometry of a window is its "visible bounds" from the
+        user's perspective. Client-side decorations often have invisible
+        portions like drop-shadows which should be ignored for the
+        purposes of aligning, placing and constraining windows.
+
+        The window geometry is double buffered, and will be applied at the
+        time wl_surface.commit of the corresponding wl_surface is called.
+
+        Once the window geometry of the surface is set once, it is not
+        possible to unset it, and it will remain the same until
+        set_window_geometry is called again, even if a new subsurface or
+        buffer is attached.
+
+        If never set, the value is the full bounds of the surface,
+        including any subsurfaces. This updates dynamically on every
+        commit. This unset mode is meant for extremely simple clients.
+
+        If responding to a configure event, the window geometry in here
+        must respect the sizing negotiations specified by the states in
+        the configure event.
+
+        The arguments are given in the surface local coordinate space of
+        the wl_surface associated with this xdg_surface.
+
+        The width and height must be greater than zero.
+      </description>
+      <arg name="x" type="int"/>
+      <arg name="y" type="int"/>
+      <arg name="width" type="int"/>
+      <arg name="height" type="int"/>
+    </request>
+
+    <request name="set_maximized">
+      <description summary="maximize the window">
+        Maximize the surface.
+
+        After requesting that the surface should be maximized, the compositor
+        will respond by emitting a configure event with the "maximized" state
+        and the required window geometry. The client should then update its
+        content, drawing it in a maximized state, i.e. without shadow or other
+        decoration outside of the window geometry. The client must also
+        acknowledge the configure when committing the new content (see
+        ack_configure).
+
+        It is up to the compositor to decide how and where to maximize the
+        surface, for example which output and what region of the screen should
+        be used.
+
+        If the surface was already maximized, the compositor will still emit
+        a configure event with the "maximized" state.
+      </description>
+    </request>
+
+    <request name="unset_maximized">
+      <description summary="unmaximize the window">
+        Unmaximize the surface.
+
+        After requesting that the surface should be unmaximized, the compositor
+        will respond by emitting a configure event without the "maximized"
+        state. If available, the compositor will include the window geometry
+        dimensions the window had prior to being maximized in the configure
+        request. The client must then update its content, drawing it in a
+        regular state, i.e. potentially with shadow, etc. The client must also
+        acknowledge the configure when committing the new content (see
+        ack_configure).
+
+        It is up to the compositor to position the surface after it was
+        unmaximized; usually the position the surface had before maximizing, if
+        applicable.
+
+        If the surface was already not maximized, the compositor will still
+        emit a configure event without the "maximized" state.
+      </description>
+    </request>
+
+    <request name="set_fullscreen">
+      <description summary="set the window as fullscreen on a monitor">
+       Make the surface fullscreen.
+
+        You can specify an output that you would prefer to be fullscreen.
+       If this value is NULL, it's up to the compositor to choose which
+        display will be used to map this surface.
+
+        If the surface doesn't cover the whole output, the compositor will
+        position the surface in the center of the output and compensate with
+        black borders filling the rest of the output.
+      </description>
+      <arg name="output" type="object" interface="wl_output" allow-null="true"/>
+    </request>
+    <request name="unset_fullscreen" />
+
+    <request name="set_minimized">
+      <description summary="set the window as minimized">
+       Request that the compositor minimize your surface. There is no
+       way to know if the surface is currently minimized, nor is there
+       any way to unset minimization on this surface.
+
+       If you are looking to throttle redrawing when minimized, please
+       instead use the wl_surface.frame event for this, as this will
+       also work with live previews on windows in Alt-Tab, Expose or
+       similar compositor features.
+      </description>
+    </request>
+
+    <event name="close">
+      <description summary="surface wants to be closed">
+        The close event is sent by the compositor when the user
+        wants the surface to be closed. This should be equivalent to
+        the user clicking the close button in client-side decorations,
+        if your application has any...
+
+        This is only a request that the user intends to close your
+        window. The client may choose to ignore this request, or show
+        a dialog to ask the user to save their data...
+      </description>
+    </event>
+  </interface>
+
+  <interface name="xdg_popup" version="1">
+    <description summary="short-lived, popup surfaces for menus">
+      A popup surface is a short-lived, temporary surface that can be
+      used to implement menus. It takes an explicit grab on the surface
+      that will be dismissed when the user dismisses the popup. This can
+      be done by the user clicking outside the surface, using the keyboard,
+      or even locking the screen through closing the lid or a timeout.
+
+      When the popup is dismissed, a popup_done event will be sent out,
+      and at the same time the surface will be unmapped. The xdg_popup
+      object is now inert and cannot be reactivated, so clients should
+      destroy it. Explicitly destroying the xdg_popup object will also
+      dismiss the popup and unmap the surface.
+
+      Clients will receive events for all their surfaces during this
+      grab (which is an "owner-events" grab in X11 parlance). This is
+      done so that users can navigate through submenus and other
+      "nested" popup windows without having to dismiss the topmost
+      popup.
+
+      Clients that want to dismiss the popup when another surface of
+      their own is clicked should dismiss the popup using the destroy
+      request.
+
+      The parent surface must have either an xdg_surface or xdg_popup
+      role.
+
+      Specifying an xdg_popup for the parent means that the popups are
+      nested, with this popup now being the topmost popup. Nested
+      popups must be destroyed in the reverse order they were created
+      in, e.g. the only popup you are allowed to destroy at all times
+      is the topmost one.
+
+      If there is an existing popup when creating a new popup, the
+      parent must be the current topmost popup.
+
+      A parent surface must be mapped before the new popup is mapped.
+
+      When compositors choose to dismiss a popup, they will likely
+      dismiss every nested popup as well. When a compositor dismisses
+      popups, it will follow the same dismissing order as required
+      from the client.
+
+      The x and y arguments passed when creating the popup object specify
+      where the top left of the popup should be placed, relative to the
+      local surface coordinates of the parent surface. See
+      xdg_shell.get_xdg_popup.
+
+      The client must call wl_surface.commit on the corresponding wl_surface
+      for the xdg_popup state to take effect.
+
+      For a surface to be mapped by the compositor the client must have
+      committed both the xdg_popup state and a buffer.
+    </description>
+
+    <request name="destroy" type="destructor">
+      <description summary="remove xdg_popup interface">
+       This destroys the popup. Explicitly destroying the xdg_popup
+       object will also dismiss the popup, and unmap the surface.
+
+       If this xdg_popup is not the "topmost" popup, a protocol error
+       will be sent.
+      </description>
+    </request>
+
+    <event name="popup_done">
+      <description summary="popup interaction is done">
+       The popup_done event is sent out when a popup is dismissed by the
+       compositor. The client should destroy the xdg_popup object at this
+       point.
+      </description>
+    </event>
+
+  </interface>
+</protocol>
diff --git a/protocol/transform.xml b/protocol/transform.xml
deleted file mode 100644 (file)
index dfb3e98..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<protocol name="transform">
-
-  <copyright>
-    Copyright Â© 2013-2014 Collabora, Ltd.
-
-    Permission to use, copy, modify, distribute, and sell this
-    software and its documentation for any purpose is hereby granted
-    without fee, provided that the above copyright notice appear in
-    all copies and that both that copyright notice and this permission
-    notice appear in supporting documentation, and that the name of
-    the copyright holders not be used in advertising or publicity
-    pertaining to distribution of the software without specific,
-    written prior permission.  The copyright holders make no
-    representations about the suitability of this software for any
-    purpose.  It is provided "as is" without express or implied
-    warranty.
-
-    THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-    SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-    FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-    SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-    AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-    ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-    THIS SOFTWARE.
-  </copyright>
-
-  <interface name="wl_transform" version="1">
-    <description summary="">
-    </description>
-
-    <request name="destroy" type="destructor">
-      <description summary="">
-      </description>
-    </request>
-
-    <request name="get_rotator">
-      <description summary="">
-      </description>
-      <arg name="id" type="new_id" interface="wl_rotator"
-           summary=""/>
-      <arg name="surface" type="object" interface="wl_surface"
-           summary="the surface"/>
-    </request>
-  </interface>
-
-  <interface name="wl_rotator" version="1">
-    <description summary="crop and scale interface to a wl_surface">
-    </description>
-
-    <request name="destroy" type="destructor">
-      <description summary="">
-      </description>
-    </request>
-
-    <enum name="error">
-      <entry name="bad_value" value="0"
-             summary="negative or zero values in width or height"/>
-    </enum>
-
-    <request name="set">
-      <description summary="">
-      </description>
-    </request>
-
-    <request name="unset">
-      <description summary="">
-      </description>
-    </request>
-  </interface>
-</protocol>
diff --git a/protocol/xdg-shell.xml b/protocol/xdg-shell.xml
deleted file mode 100644 (file)
index 68b874a..0000000
+++ /dev/null
@@ -1,588 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<protocol name="xdg_shell">
-
-  <copyright>
-    Copyright Â© 2008-2013 Kristian Høgsberg
-    Copyright Â© 2013      Rafael Antognolli
-    Copyright Â© 2013      Jasper St. Pierre
-    Copyright Â© 2010-2013 Intel Corporation
-
-    Permission to use, copy, modify, distribute, and sell this
-    software and its documentation for any purpose is hereby granted
-    without fee, provided that the above copyright notice appear in
-    all copies and that both that copyright notice and this permission
-    notice appear in supporting documentation, and that the name of
-    the copyright holders not be used in advertising or publicity
-    pertaining to distribution of the software without specific,
-    written prior permission.  The copyright holders make no
-    representations about the suitability of this software for any
-    purpose.  It is provided "as is" without express or implied
-    warranty.
-
-    THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-    SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-    FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-    SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-    AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-    ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-    THIS SOFTWARE.
-  </copyright>
-
-  <interface name="xdg_shell" version="1">
-    <description summary="create desktop-style surfaces">
-      xdg_shell allows clients to turn a wl_surface into a "real window"
-      which can be dragged, resized, stacked, and moved around by the
-      user. Everything about this interface is suited towards traditional
-      desktop environments.
-    </description>
-
-    <enum name="version">
-      <description summary="latest protocol version">
-       The 'current' member of this enum gives the version of the
-       protocol.  Implementations can compare this to the version
-       they implement using static_assert to ensure the protocol and
-       implementation versions match.
-      </description>
-      <entry name="current" value="5" summary="Always the latest version"/>
-    </enum>
-
-    <enum name="error">
-      <entry name="role" value="0" summary="given wl_surface has another role"/>
-      <entry name="defunct_surfaces" value="1" summary="xdg_shell was destroyed before children"/>
-      <entry name="not_the_topmost_popup" value="2" summary="the client tried to map or destroy a non-topmost popup"/>
-      <entry name="invalid_popup_parent" value="3" summary="the client specified an invalid popup parent surface"/>
-    </enum>
-
-    <request name="destroy" type="destructor">
-      <description summary="destroy xdg_shell">
-        Destroy this xdg_shell object.
-
-        Destroying a bound xdg_shell object while there are surfaces
-        still alive created by this xdg_shell object instance is illegal
-        and will result in a protocol error.
-      </description>
-    </request>
-
-    <request name="use_unstable_version">
-      <description summary="enable use of this unstable version">
-       Negotiate the unstable version of the interface.  This
-       mechanism is in place to ensure client and server agree on the
-       unstable versions of the protocol that they speak or exit
-       cleanly if they don't agree.  This request will go away once
-       the xdg-shell protocol is stable.
-      </description>
-      <arg name="version" type="int"/>
-    </request>
-
-    <request name="get_xdg_surface">
-      <description summary="create a shell surface from a surface">
-       This creates an xdg_surface for the given surface and gives it the
-       xdg_surface role. A wl_surface can only be given an xdg_surface role
-       once. If get_xdg_surface is called with a wl_surface that already has
-       an active xdg_surface associated with it, or if it had any other role,
-       an error is raised.
-
-       See the documentation of xdg_surface for more details about what an
-       xdg_surface is and how it is used.
-      </description>
-      <arg name="id" type="new_id" interface="xdg_surface"/>
-      <arg name="surface" type="object" interface="wl_surface"/>
-    </request>
-
-    <request name="get_xdg_popup">
-      <description summary="create a popup for a surface">
-       This creates an xdg_popup for the given surface and gives it the
-       xdg_popup role. A wl_surface can only be given an xdg_popup role
-       once. If get_xdg_popup is called with a wl_surface that already has
-       an active xdg_popup associated with it, or if it had any other role,
-       an error is raised.
-
-       This request must be used in response to some sort of user action
-       like a button press, key press, or touch down event.
-
-       See the documentation of xdg_popup for more details about what an
-       xdg_popup is and how it is used.
-      </description>
-      <arg name="id" type="new_id" interface="xdg_popup"/>
-      <arg name="surface" type="object" interface="wl_surface"/>
-      <arg name="parent" type="object" interface="wl_surface"/>
-      <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat of the user event"/>
-      <arg name="serial" type="uint" summary="the serial of the user event"/>
-      <arg name="x" type="int"/>
-      <arg name="y" type="int"/>
-    </request>
-
-    <event name="ping">
-      <description summary="check if the client is alive">
-        The ping event asks the client if it's still alive. Pass the
-        serial specified in the event back to the compositor by sending
-        a "pong" request back with the specified serial.
-
-        Compositors can use this to determine if the client is still
-        alive. It's unspecified what will happen if the client doesn't
-        respond to the ping request, or in what timeframe. Clients should
-        try to respond in a reasonable amount of time.
-
-        A compositor is free to ping in any way it wants, but a client must
-        always respond to any xdg_shell object it created.
-      </description>
-      <arg name="serial" type="uint" summary="pass this to the pong request"/>
-    </event>
-
-    <request name="pong">
-      <description summary="respond to a ping event">
-       A client must respond to a ping event with a pong request or
-       the client may be deemed unresponsive.
-      </description>
-      <arg name="serial" type="uint" summary="serial of the ping event"/>
-    </request>
-  </interface>
-
-  <interface name="xdg_surface" version="1">
-    <description summary="A desktop window">
-      An interface that may be implemented by a wl_surface, for
-      implementations that provide a desktop-style user interface.
-
-      It provides requests to treat surfaces like windows, allowing to set
-      properties like maximized, fullscreen, minimized, and to move and resize
-      them, and associate metadata like title and app id.
-
-      The client must call wl_surface.commit on the corresponding wl_surface
-      for the xdg_surface state to take effect. Prior to committing the new
-      state, it can set up initial configuration, such as maximizing or setting
-      a window geometry.
-
-      Even without attaching a buffer the compositor must respond to initial
-      committed configuration, for instance sending a configure event with
-      expected window geometry if the client maximized its surface during
-      initialization.
-
-      For a surface to be mapped by the compositor the client must have
-      committed both an xdg_surface state and a buffer.
-    </description>
-
-    <request name="destroy" type="destructor">
-      <description summary="Destroy the xdg_surface">
-       Unmap and destroy the window. The window will be effectively
-       hidden from the user's point of view, and all state like
-       maximization, fullscreen, and so on, will be lost.
-      </description>
-    </request>
-
-    <request name="set_parent">
-      <description summary="set the parent of this surface">
-       Set the "parent" of this surface. This window should be stacked
-       above a parent. The parent surface must be mapped as long as this
-       surface is mapped.
-
-       Parent windows should be set on dialogs, toolboxes, or other
-       "auxiliary" surfaces, so that the parent is raised when the dialog
-       is raised.
-      </description>
-      <arg name="parent" type="object" interface="xdg_surface" allow-null="true"/>
-    </request>
-
-    <request name="set_title">
-      <description summary="set surface title">
-       Set a short title for the surface.
-
-       This string may be used to identify the surface in a task bar,
-       window list, or other user interface elements provided by the
-       compositor.
-
-       The string must be encoded in UTF-8.
-      </description>
-      <arg name="title" type="string"/>
-    </request>
-
-    <request name="set_app_id">
-      <description summary="set application ID">
-       Set an application identifier for the surface.
-
-       The app ID identifies the general class of applications to which
-       the surface belongs. The compositor can use this to group multiple
-       surfaces together, or to determine how to launch a new application.
-
-       For D-Bus activatable applications, the app ID is used as the D-Bus
-       service name.
-
-       The compositor shell will try to group application surfaces together
-       by their app ID.  As a best practice, it is suggested to select app
-       ID's that match the basename of the application's .desktop file.
-       For example, "org.freedesktop.FooViewer" where the .desktop file is
-       "org.freedesktop.FooViewer.desktop".
-
-       See the desktop-entry specification [0] for more details on
-       application identifiers and how they relate to well-known D-Bus
-       names and .desktop files.
-
-       [0] http://standards.freedesktop.org/desktop-entry-spec/
-      </description>
-      <arg name="app_id" type="string"/>
-    </request>
-
-    <request name="show_window_menu">
-      <description summary="show the window menu">
-        Clients implementing client-side decorations might want to show
-        a context menu when right-clicking on the decorations, giving the
-        user a menu that they can use to maximize or minimize the window.
-
-        This request asks the compositor to pop up such a window menu at
-        the given position, relative to the local surface coordinates of
-        the parent surface. There are no guarantees as to what menu items
-        the window menu contains.
-
-        This request must be used in response to some sort of user action
-        like a button press, key press, or touch down event.
-      </description>
-
-      <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat of the user event"/>
-      <arg name="serial" type="uint" summary="the serial of the user event"/>
-      <arg name="x" type="int" summary="the x position to pop up the window menu at"/>
-      <arg name="y" type="int" summary="the y position to pop up the window menu at"/>
-    </request>
-
-    <request name="move">
-      <description summary="start an interactive move">
-       Start an interactive, user-driven move of the surface.
-
-       This request must be used in response to some sort of user action
-       like a button press, key press, or touch down event.
-
-       The server may ignore move requests depending on the state of
-       the surface (e.g. fullscreen or maximized).
-      </description>
-      <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat of the user event"/>
-      <arg name="serial" type="uint" summary="the serial of the user event"/>
-    </request>
-
-    <enum name="resize_edge">
-      <description summary="edge values for resizing">
-       These values are used to indicate which edge of a surface
-       is being dragged in a resize operation. The server may
-       use this information to adapt its behavior, e.g. choose
-       an appropriate cursor image.
-      </description>
-      <entry name="none" value="0"/>
-      <entry name="top" value="1"/>
-      <entry name="bottom" value="2"/>
-      <entry name="left" value="4"/>
-      <entry name="top_left" value="5"/>
-      <entry name="bottom_left" value="6"/>
-      <entry name="right" value="8"/>
-      <entry name="top_right" value="9"/>
-      <entry name="bottom_right" value="10"/>
-    </enum>
-
-    <request name="resize">
-      <description summary="start an interactive resize">
-       Start a user-driven, interactive resize of the surface.
-
-       This request must be used in response to some sort of user action
-       like a button press, key press, or touch down event.
-
-       The server may ignore resize requests depending on the state of
-       the surface (e.g. fullscreen or maximized).
-      </description>
-      <arg name="seat" type="object" interface="wl_seat" summary="the wl_seat of the user event"/>
-      <arg name="serial" type="uint" summary="the serial of the user event"/>
-      <arg name="edges" type="uint" summary="which edge or corner is being dragged"/>
-    </request>
-
-    <enum name="state">
-      <description summary="types of state on the surface">
-        The different state values used on the surface. This is designed for
-        state values like maximized, fullscreen. It is paired with the
-        configure event to ensure that both the client and the compositor
-        setting the state can be synchronized.
-
-        States set in this way are double-buffered. They will get applied on
-        the next commit.
-
-        Desktop environments may extend this enum by taking up a range of
-        values and documenting the range they chose in this description.
-        They are not required to document the values for the range that they
-        chose. Ideally, any good extensions from a desktop environment should
-        make its way into standardization into this enum.
-
-        The current reserved ranges are:
-
-        0x0000 - 0x0FFF: xdg-shell core values, documented below.
-        0x1000 - 0x1FFF: GNOME
-      </description>
-      <entry name="maximized" value="1" summary="the surface is maximized">
-        <description summary="the surface is maximized">
-        The surface is maximized. The window geometry specified in the configure
-        event must be obeyed by the client.
-        </description>
-      </entry>
-      <entry name="fullscreen" value="2" summary="the surface is fullscreen">
-        <description summary="the surface is fullscreen">
-        The surface is fullscreen. The window geometry specified in the configure
-        event must be obeyed by the client.
-        </description>
-      </entry>
-      <entry name="resizing" value="3">
-        <description summary="the surface is being resized">
-        The surface is being resized. The window geometry specified in the
-        configure event is a maximum; the client cannot resize beyond it.
-        Clients that have aspect ratio or cell sizing configuration can use
-        a smaller size, however.
-        </description>
-      </entry>
-      <entry name="activated" value="4">
-        <description summary="the surface is now activated">
-        Client window decorations should be painted as if the window is
-        active. Do not assume this means that the window actually has
-        keyboard or pointer focus.
-        </description>
-      </entry>
-    </enum>
-
-    <event name="configure">
-      <description summary="suggest a surface change">
-       The configure event asks the client to resize its surface or to
-       change its state.
-
-       The width and height arguments specify a hint to the window
-       about how its surface should be resized in window geometry
-       coordinates. See set_window_geometry.
-
-       If the width or height arguments are zero, it means the client
-       should decide its own window dimension. This may happen when the
-       compositor need to configure the state of the surface but doesn't
-       have any information about any previous or expected dimension.
-
-       The states listed in the event specify how the width/height
-       arguments should be interpreted, and possibly how it should be
-       drawn.
-
-       Clients should arrange their surface for the new size and
-       states, and then send a ack_configure request with the serial
-       sent in this configure event at some point before committing
-       the new surface.
-
-       If the client receives multiple configure events before it
-        can respond to one, it is free to discard all but the last
-        event it received.
-      </description>
-
-      <arg name="width" type="int"/>
-      <arg name="height" type="int"/>
-      <arg name="states" type="array"/>
-      <arg name="serial" type="uint"/>
-    </event>
-
-    <request name="ack_configure">
-      <description summary="ack a configure event">
-        When a configure event is received, if a client commits the
-        surface in response to the configure event, then the client
-        must make a ack_configure request before the commit request,
-        passing along the serial of the configure event.
-
-        For instance, the compositor might use this information to move
-        a surface to the top left only when the client has drawn itself
-        for the maximized or fullscreen state.
-
-        If the client receives multiple configure events before it
-        can respond to one, it only has to ack the last configure event.
-      </description>
-      <arg name="serial" type="uint" summary="the serial from the configure event"/>
-    </request>
-
-    <request name="set_window_geometry">
-      <description summary="set the new window geometry">
-        The window geometry of a window is its "visible bounds" from the
-        user's perspective. Client-side decorations often have invisible
-        portions like drop-shadows which should be ignored for the
-        purposes of aligning, placing and constraining windows.
-
-        The window geometry is double buffered, and will be applied at the
-        time wl_surface.commit of the corresponding wl_surface is called.
-
-        Once the window geometry of the surface is set once, it is not
-        possible to unset it, and it will remain the same until
-        set_window_geometry is called again, even if a new subsurface or
-        buffer is attached.
-
-        If never set, the value is the full bounds of the surface,
-        including any subsurfaces. This updates dynamically on every
-        commit. This unset mode is meant for extremely simple clients.
-
-        If responding to a configure event, the window geometry in here
-        must respect the sizing negotiations specified by the states in
-        the configure event.
-
-        The arguments are given in the surface local coordinate space of
-        the wl_surface associated with this xdg_surface.
-
-        The width and height must be greater than zero.
-      </description>
-      <arg name="x" type="int"/>
-      <arg name="y" type="int"/>
-      <arg name="width" type="int"/>
-      <arg name="height" type="int"/>
-    </request>
-
-    <request name="set_maximized">
-      <description summary="maximize the window">
-        Maximize the surface.
-
-        After requesting that the surface should be maximized, the compositor
-        will respond by emitting a configure event with the "maximized" state
-        and the required window geometry. The client should then update its
-        content, drawing it in a maximized state, i.e. without shadow or other
-        decoration outside of the window geometry. The client must also
-        acknowledge the configure when committing the new content (see
-        ack_configure).
-
-        It is up to the compositor to decide how and where to maximize the
-        surface, for example which output and what region of the screen should
-        be used.
-
-        If the surface was already maximized, the compositor will still emit
-        a configure event with the "maximized" state.
-      </description>
-    </request>
-
-    <request name="unset_maximized">
-      <description summary="unmaximize the window">
-        Unmaximize the surface.
-
-        After requesting that the surface should be unmaximized, the compositor
-        will respond by emitting a configure event without the "maximized"
-        state. If available, the compositor will include the window geometry
-        dimensions the window had prior to being maximized in the configure
-        request. The client must then update its content, drawing it in a
-        regular state, i.e. potentially with shadow, etc. The client must also
-        acknowledge the configure when committing the new content (see
-        ack_configure).
-
-        It is up to the compositor to position the surface after it was
-        unmaximized; usually the position the surface had before maximizing, if
-        applicable.
-
-        If the surface was already not maximized, the compositor will still
-        emit a configure event without the "maximized" state.
-      </description>
-    </request>
-
-    <request name="set_fullscreen">
-      <description summary="set the window as fullscreen on a monitor">
-       Make the surface fullscreen.
-
-        You can specify an output that you would prefer to be fullscreen.
-       If this value is NULL, it's up to the compositor to choose which
-        display will be used to map this surface.
-
-        If the surface doesn't cover the whole output, the compositor will
-        position the surface in the center of the output and compensate with
-        black borders filling the rest of the output.
-      </description>
-      <arg name="output" type="object" interface="wl_output" allow-null="true"/>
-    </request>
-    <request name="unset_fullscreen" />
-
-    <request name="set_minimized">
-      <description summary="set the window as minimized">
-       Request that the compositor minimize your surface. There is no
-       way to know if the surface is currently minimized, nor is there
-       any way to unset minimization on this surface.
-
-       If you are looking to throttle redrawing when minimized, please
-       instead use the wl_surface.frame event for this, as this will
-       also work with live previews on windows in Alt-Tab, Expose or
-       similar compositor features.
-      </description>
-    </request>
-
-    <event name="close">
-      <description summary="surface wants to be closed">
-        The close event is sent by the compositor when the user
-        wants the surface to be closed. This should be equivalent to
-        the user clicking the close button in client-side decorations,
-        if your application has any...
-
-        This is only a request that the user intends to close your
-        window. The client may choose to ignore this request, or show
-        a dialog to ask the user to save their data...
-      </description>
-    </event>
-  </interface>
-
-  <interface name="xdg_popup" version="1">
-    <description summary="short-lived, popup surfaces for menus">
-      A popup surface is a short-lived, temporary surface that can be
-      used to implement menus. It takes an explicit grab on the surface
-      that will be dismissed when the user dismisses the popup. This can
-      be done by the user clicking outside the surface, using the keyboard,
-      or even locking the screen through closing the lid or a timeout.
-
-      When the popup is dismissed, a popup_done event will be sent out,
-      and at the same time the surface will be unmapped. The xdg_popup
-      object is now inert and cannot be reactivated, so clients should
-      destroy it. Explicitly destroying the xdg_popup object will also
-      dismiss the popup and unmap the surface.
-
-      Clients will receive events for all their surfaces during this
-      grab (which is an "owner-events" grab in X11 parlance). This is
-      done so that users can navigate through submenus and other
-      "nested" popup windows without having to dismiss the topmost
-      popup.
-
-      Clients that want to dismiss the popup when another surface of
-      their own is clicked should dismiss the popup using the destroy
-      request.
-
-      The parent surface must have either an xdg_surface or xdg_popup
-      role.
-
-      Specifying an xdg_popup for the parent means that the popups are
-      nested, with this popup now being the topmost popup. Nested
-      popups must be destroyed in the reverse order they were created
-      in, e.g. the only popup you are allowed to destroy at all times
-      is the topmost one.
-
-      If there is an existing popup when creating a new popup, the
-      parent must be the current topmost popup.
-
-      A parent surface must be mapped before the new popup is mapped.
-
-      When compositors choose to dismiss a popup, they will likely
-      dismiss every nested popup as well. When a compositor dismisses
-      popups, it will follow the same dismissing order as required
-      from the client.
-
-      The x and y arguments passed when creating the popup object specify
-      where the top left of the popup should be placed, relative to the
-      local surface coordinates of the parent surface. See
-      xdg_shell.get_xdg_popup.
-
-      The client must call wl_surface.commit on the corresponding wl_surface
-      for the xdg_popup state to take effect.
-
-      For a surface to be mapped by the compositor the client must have
-      committed both the xdg_popup state and a buffer.
-    </description>
-
-    <request name="destroy" type="destructor">
-      <description summary="remove xdg_popup interface">
-       This destroys the popup. Explicitly destroying the xdg_popup
-       object will also dismiss the popup, and unmap the surface.
-
-       If this xdg_popup is not the "topmost" popup, a protocol error
-       will be sent.
-      </description>
-    </request>
-
-    <event name="popup_done">
-      <description summary="popup interaction is done">
-       The popup_done event is sent out when a popup is dismissed by the
-       compositor. The client should destroy the xdg_popup object at this
-       point.
-      </description>
-    </event>
-
-  </interface>
-</protocol>