-INCLUDES = -I$(top_builddir)/protocol -I$(top_srcdir)/src
+INCLUDES = -I$(top_builddir)/protocol/tizen -I$(top_srcdir)/src
pkgconfigdir = $(libdir)/pkgconfig
protocoldir = $(libdir)
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
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@
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@
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@
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@
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@
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@
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@
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@
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@
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@
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@
+++ /dev/null
-<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>
+++ /dev/null
-<?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>
+++ /dev/null
-<?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>
+++ /dev/null
-<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>
+++ /dev/null
-<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>
+++ /dev/null
-<?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>
+++ /dev/null
-<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>
+++ /dev/null
-<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>
+++ /dev/null
-<?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>
+++ /dev/null
-<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>
--- /dev/null
+<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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<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>
--- /dev/null
+<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>
--- /dev/null
+<?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>
--- /dev/null
+<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>
--- /dev/null
+<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>
--- /dev/null
+<?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>
--- /dev/null
+<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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
+++ /dev/null
-<?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>
+++ /dev/null
-<?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>