From: Gwanglim Lee Date: Mon, 23 Oct 2017 08:33:34 +0000 (+0900) Subject: moved extended protocol files to the tizen directory X-Git-Tag: submit/tizen/20180319.053649~8 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8d3370d33528935d8804f13401753afd492c5ffa;p=platform%2Fcore%2Fuifw%2Fwayland-extension.git moved extended protocol files to the tizen directory Change-Id: Ief5d9df7841bbc7d6985976db61c00f1d6320aa3 --- diff --git a/Makefile.am b/Makefile.am index 8cb6d71..5244c25 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,4 +1,4 @@ -INCLUDES = -I$(top_builddir)/protocol -I$(top_srcdir)/src +INCLUDES = -I$(top_builddir)/protocol/tizen -I$(top_srcdir)/src pkgconfigdir = $(libdir)/pkgconfig protocoldir = $(libdir) @@ -9,11 +9,11 @@ protocolinclude_HEADERS = src/wayland-extension-version.h protocol_LTLIBRARIES = ### protocol.[ch] -protocol/%-protocol.c : $(top_srcdir)/protocol/%.xml +protocol/tizen/%-protocol.c : $(top_srcdir)/protocol/tizen/%.xml $(wayland_scanner) code < $< > $@ -protocol/%-server-protocol.h : $(top_srcdir)/protocol/%.xml +protocol/tizen/%-server-protocol.h : $(top_srcdir)/protocol/tizen/%.xml $(wayland_scanner) server-header < $< > $@ -protocol/%-client-protocol.h : $(top_srcdir)/protocol/%.xml +protocol/tizen/%-client-protocol.h : $(top_srcdir)/protocol/tizen/%.xml $(wayland_scanner) client-header < $< > $@ ### protocol.pc @@ -30,12 +30,12 @@ pkgconfig_DATA += \ src/xdg-shell-server.pc \ src/xdg-shell-client.pc protocolinclude_HEADERS += \ - protocol/xdg-shell-server-protocol.h \ - protocol/xdg-shell-client-protocol.h -libxdg_shell_server_la_SOURCES = protocol/xdg-shell-protocol.c + protocol/tizen/xdg-shell-server-protocol.h \ + protocol/tizen/xdg-shell-client-protocol.h +libxdg_shell_server_la_SOURCES = protocol/tizen/xdg-shell-protocol.c libxdg_shell_server_la_CFLAGS = @WAYLAND_SERVER_CFLAGS@ libxdg_shell_server_la_LIBADD = @WAYLAND_SERVER_LIBS@ -libxdg_shell_client_la_SOURCES = protocol/xdg-shell-protocol.c +libxdg_shell_client_la_SOURCES = protocol/tizen/xdg-shell-protocol.c libxdg_shell_client_la_CFLAGS = @WAYLAND_CLIENT_CFLAGS@ libxdg_shell_client_la_LIBADD = @WAYLAND_CLIENT_LIBS@ @@ -47,12 +47,12 @@ pkgconfig_DATA += \ src/input-method-server.pc \ src/input-method-client.pc protocolinclude_HEADERS += \ - protocol/input-method-server-protocol.h \ - protocol/input-method-client-protocol.h -libinput_method_server_la_SOURCES = protocol/input-method-protocol.c + protocol/tizen/input-method-server-protocol.h \ + protocol/tizen/input-method-client-protocol.h +libinput_method_server_la_SOURCES = protocol/tizen/input-method-protocol.c libinput_method_server_la_CFLAGS = @WAYLAND_SERVER_CFLAGS@ libinput_method_server_la_LIBADD = @WAYLAND_SERVER_LIBS@ -libinput_method_client_la_SOURCES = protocol/input-method-protocol.c +libinput_method_client_la_SOURCES = protocol/tizen/input-method-protocol.c libinput_method_client_la_CFLAGS = @WAYLAND_CLIENT_CFLAGS@ libinput_method_client_la_LIBADD = @WAYLAND_CLIENT_LIBS@ @@ -64,12 +64,12 @@ pkgconfig_DATA += \ src/fullscreen-shell-server.pc \ src/fullscreen-shell-client.pc protocolinclude_HEADERS += \ - protocol/fullscreen-shell-server-protocol.h \ - protocol/fullscreen-shell-client-protocol.h -libfullscreen_shell_server_la_SOURCES = protocol/fullscreen-shell-protocol.c + protocol/tizen/fullscreen-shell-server-protocol.h \ + protocol/tizen/fullscreen-shell-client-protocol.h +libfullscreen_shell_server_la_SOURCES = protocol/tizen/fullscreen-shell-protocol.c libfullscreen_shell_server_la_CFLAGS = @WAYLAND_SERVER_CFLAGS@ libfullscreen_shell_server_la_LIBADD = @WAYLAND_SERVER_LIBS@ -libfullscreen_shell_client_la_SOURCES = protocol/fullscreen-shell-protocol.c +libfullscreen_shell_client_la_SOURCES = protocol/tizen/fullscreen-shell-protocol.c libfullscreen_shell_client_la_CFLAGS = @WAYLAND_CLIENT_CFLAGS@ libfullscreen_shell_client_la_LIBADD = @WAYLAND_CLIENT_LIBS@ @@ -81,12 +81,12 @@ pkgconfig_DATA += \ src/scaler-server.pc \ src/scaler-client.pc protocolinclude_HEADERS += \ - protocol/scaler-server-protocol.h \ - protocol/scaler-client-protocol.h -libscaler_server_la_SOURCES = protocol/scaler-protocol.c + protocol/tizen/scaler-server-protocol.h \ + protocol/tizen/scaler-client-protocol.h +libscaler_server_la_SOURCES = protocol/tizen/scaler-protocol.c libscaler_server_la_CFLAGS = @WAYLAND_SERVER_CFLAGS@ libscaler_server_la_LIBADD = @WAYLAND_SERVER_LIBS@ -libscaler_client_la_SOURCES = protocol/scaler-protocol.c +libscaler_client_la_SOURCES = protocol/tizen/scaler-protocol.c libscaler_client_la_CFLAGS = @WAYLAND_CLIENT_CFLAGS@ libscaler_client_la_LIBADD = @WAYLAND_CLIENT_LIBS@ @@ -98,12 +98,12 @@ pkgconfig_DATA += \ src/transform-server.pc \ src/transform-client.pc protocolinclude_HEADERS += \ - protocol/transform-server-protocol.h \ - protocol/transform-client-protocol.h -libtransform_server_la_SOURCES = protocol/transform-protocol.c + protocol/tizen/transform-server-protocol.h \ + protocol/tizen/transform-client-protocol.h +libtransform_server_la_SOURCES = protocol/tizen/transform-protocol.c libtransform_server_la_CFLAGS = @WAYLAND_SERVER_CFLAGS@ libtransform_server_la_LIBADD = @WAYLAND_SERVER_LIBS@ -libtransform_client_la_SOURCES = protocol/transform-protocol.c +libtransform_client_la_SOURCES = protocol/tizen/transform-protocol.c libtransform_client_la_CFLAGS = @WAYLAND_CLIENT_CFLAGS@ libtransform_client_la_LIBADD = @WAYLAND_CLIENT_LIBS@ @@ -115,12 +115,12 @@ pkgconfig_DATA += \ src/screenshooter-server.pc \ src/screenshooter-client.pc protocolinclude_HEADERS += \ - protocol/screenshooter-server-protocol.h \ - protocol/screenshooter-client-protocol.h -libscreenshooter_server_la_SOURCES = protocol/screenshooter-protocol.c + protocol/tizen/screenshooter-server-protocol.h \ + protocol/tizen/screenshooter-client-protocol.h +libscreenshooter_server_la_SOURCES = protocol/tizen/screenshooter-protocol.c libscreenshooter_server_la_CFLAGS = @WAYLAND_SERVER_CFLAGS@ libscreenshooter_server_la_LIBADD = @WAYLAND_SERVER_LIBS@ -libscreenshooter_client_la_SOURCES = protocol/screenshooter-protocol.c +libscreenshooter_client_la_SOURCES = protocol/tizen/screenshooter-protocol.c libscreenshooter_client_la_CFLAGS = @WAYLAND_CLIENT_CFLAGS@ libscreenshooter_client_la_LIBADD = @WAYLAND_CLIENT_LIBS@ @@ -132,12 +132,12 @@ pkgconfig_DATA += \ src/text-cursor-position-server.pc \ src/text-cursor-position-client.pc protocolinclude_HEADERS += \ - protocol/text-cursor-position-server-protocol.h \ - protocol/text-cursor-position-client-protocol.h -libtext_cursor_position_server_la_SOURCES = protocol/text-cursor-position-protocol.c + protocol/tizen/text-cursor-position-server-protocol.h \ + protocol/tizen/text-cursor-position-client-protocol.h +libtext_cursor_position_server_la_SOURCES = protocol/tizen/text-cursor-position-protocol.c libtext_cursor_position_server_la_CFLAGS = @WAYLAND_SERVER_CFLAGS@ libtext_cursor_position_server_la_LIBADD = @WAYLAND_SERVER_LIBS@ -libtext_cursor_position_client_la_SOURCES = protocol/text-cursor-position-protocol.c +libtext_cursor_position_client_la_SOURCES = protocol/tizen/text-cursor-position-protocol.c libtext_cursor_position_client_la_CFLAGS = @WAYLAND_CLIENT_CFLAGS@ libtext_cursor_position_client_la_LIBADD = @WAYLAND_CLIENT_LIBS@ @@ -149,12 +149,12 @@ pkgconfig_DATA += \ src/text-server.pc \ src/text-client.pc protocolinclude_HEADERS += \ - protocol/text-server-protocol.h \ - protocol/text-client-protocol.h -libtext_server_la_SOURCES = protocol/text-protocol.c + protocol/tizen/text-server-protocol.h \ + protocol/tizen/text-client-protocol.h +libtext_server_la_SOURCES = protocol/tizen/text-protocol.c libtext_server_la_CFLAGS = @WAYLAND_SERVER_CFLAGS@ libtext_server_la_LIBADD = @WAYLAND_SERVER_LIBS@ -libtext_client_la_SOURCES = protocol/text-protocol.c +libtext_client_la_SOURCES = protocol/tizen/text-protocol.c libtext_client_la_CFLAGS = @WAYLAND_CLIENT_CFLAGS@ libtext_client_la_LIBADD = @WAYLAND_CLIENT_LIBS@ @@ -166,12 +166,12 @@ pkgconfig_DATA += \ src/tizen-extension-server.pc \ src/tizen-extension-client.pc protocolinclude_HEADERS += \ - protocol/tizen-extension-server-protocol.h \ - protocol/tizen-extension-client-protocol.h -libtizen_extension_server_la_SOURCES = protocol/tizen-extension-protocol.c + protocol/tizen/tizen-extension-server-protocol.h \ + protocol/tizen/tizen-extension-client-protocol.h +libtizen_extension_server_la_SOURCES = protocol/tizen/tizen-extension-protocol.c libtizen_extension_server_la_CFLAGS = @WAYLAND_SERVER_CFLAGS@ libtizen_extension_server_la_LIBADD = @WAYLAND_SERVER_LIBS@ -libtizen_extension_client_la_SOURCES = protocol/tizen-extension-protocol.c +libtizen_extension_client_la_SOURCES = protocol/tizen/tizen-extension-protocol.c libtizen_extension_client_la_CFLAGS = @WAYLAND_CLIENT_CFLAGS@ libtizen_extension_client_la_LIBADD = @WAYLAND_CLIENT_LIBS@ @@ -183,12 +183,12 @@ pkgconfig_DATA += \ src/tizen-remote-surface-server.pc \ src/tizen-remote-surface-client.pc protocolinclude_HEADERS += \ - protocol/tizen-remote-surface-server-protocol.h \ - protocol/tizen-remote-surface-client-protocol.h -libtizen_remote_surface_server_la_SOURCES = protocol/tizen-remote-surface-protocol.c + protocol/tizen/tizen-remote-surface-server-protocol.h \ + protocol/tizen/tizen-remote-surface-client-protocol.h +libtizen_remote_surface_server_la_SOURCES = protocol/tizen/tizen-remote-surface-protocol.c libtizen_remote_surface_server_la_CFLAGS = @WAYLAND_SERVER_CFLAGS@ libtizen_remote_surface_server_la_LIBADD = @WAYLAND_SERVER_LIBS@ -libtizen_remote_surface_client_la_SOURCES = protocol/tizen-remote-surface-protocol.c +libtizen_remote_surface_client_la_SOURCES = protocol/tizen/tizen-remote-surface-protocol.c libtizen_remote_surface_client_la_CFLAGS = @WAYLAND_CLIENT_CFLAGS@ libtizen_remote_surface_client_la_LIBADD = @WAYLAND_CLIENT_LIBS@ @@ -200,12 +200,12 @@ pkgconfig_DATA += \ src/tizen-launch-server.pc \ src/tizen-launch-client.pc protocolinclude_HEADERS += \ - protocol/tizen-launch-server-protocol.h \ - protocol/tizen-launch-client-protocol.h -libtizen_launch_server_la_SOURCES = protocol/tizen-launch-protocol.c + protocol/tizen/tizen-launch-server-protocol.h \ + protocol/tizen/tizen-launch-client-protocol.h +libtizen_launch_server_la_SOURCES = protocol/tizen/tizen-launch-protocol.c libtizen_launch_server_la_CFLAGS = @WAYLAND_SERVER_CFLAGS@ libtizen_launch_server_la_LIBADD = @WAYLAND_SERVER_LIBS@ -libtizen_launch_client_la_SOURCES = protocol/tizen-launch-protocol.c +libtizen_launch_client_la_SOURCES = protocol/tizen/tizen-launch-protocol.c libtizen_launch_client_la_CFLAGS = @WAYLAND_CLIENT_CFLAGS@ libtizen_launch_client_la_LIBADD = @WAYLAND_CLIENT_LIBS@ diff --git a/protocol/fullscreen-shell.xml b/protocol/fullscreen-shell.xml deleted file mode 100644 index 8d7a87f..0000000 --- a/protocol/fullscreen-shell.xml +++ /dev/null @@ -1,206 +0,0 @@ - - - - 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. - - - - - 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. - - - - - - 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). - - - - - - - - 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. - - - - - - - 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. - - - - - - - - - - - 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. - - - - - - - - - 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. - - - - - - - - - - These errors can be emitted in response to wl_fullscreen_shell requests - - - - - - - - - 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. - - - - - 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. - - - - - 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. - - - - diff --git a/protocol/input-method.xml b/protocol/input-method.xml deleted file mode 100644 index fb28774..0000000 --- a/protocol/input-method.xml +++ /dev/null @@ -1,413 +0,0 @@ - - - - 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. - - - - - 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). - - - - - 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. - - - - - - - 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. - - - - - - - - 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. - - - - - - - - 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. - - - - - - This request will be handled on text_input side as part of a directly - following commit_string request. - - - - - - - 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. - - - - - - - - - - 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. - - - - - - - - - - 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. - - - - - - 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. - - - - - - - - - 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. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Send the recapture string text to the application text input. - - - - - - - - - - - Send the input panel event. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deliver unconventional input device events that need to be processed by input panel - - - - - - - - Request to filter key event via 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. - - - - A text input was activated. Creates an input method context object - which allows communication with the text input. - - - - - - - - The text input corresponding to the context argument was deactivated. - The input method context should be destroyed after deactivation is - handled. - - - - - - - Input panel (virtual keyboard) was requested to show. - - - - - - Input panel (virtual keyboard) was requested to hide. - - - - - - - - Only one client can bind this interface at a time. - - - - - - - - - - - - - - - - A keyboard surface is only shown, when a text input is active. - - - - - - - - An overlay panel is shown near the input cursor above the application - window when a text input is active. - - - - - - 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. - - - - - - - A Keyboard surface is shown as a floating panel type. - - - - - - - Set the permission to move floating panel. - - - - - diff --git a/protocol/scaler.xml b/protocol/scaler.xml deleted file mode 100644 index 9642af2..0000000 --- a/protocol/scaler.xml +++ /dev/null @@ -1,210 +0,0 @@ - - - - - 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. - - - - - 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. - - - - - 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. - - - - - - - - - - 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. - - - - - - - - - - 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. - - - - - The associated wl_surface's crop and scale state is removed. - The change is applied on the next wl_surface.commit. - - - - - - - - - - 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. - - - - - - - - - - - - - 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. - - - - - - - - - - - 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. - - - - - - - diff --git a/protocol/screenshooter.xml b/protocol/screenshooter.xml deleted file mode 100644 index 76e3c85..0000000 --- a/protocol/screenshooter.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/protocol/text-cursor-position.xml b/protocol/text-cursor-position.xml deleted file mode 100644 index 0fbc54e..0000000 --- a/protocol/text-cursor-position.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/protocol/text.xml b/protocol/text.xml deleted file mode 100644 index 662c44d..0000000 --- a/protocol/text.xml +++ /dev/null @@ -1,551 +0,0 @@ - - - - - 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. - - - - - 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). - - - - - 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. - - - - - - - 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. - - - - - - Requests input panels (virtual keyboard) to show. - - - - - Requests input panels (virtual keyboard) to hide. - - - - - 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. - - - - - Content hint is a bitmask to allow to modify the behavior of the text - input. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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. - - - - - - - - - - - - - - - - - - - - - - - - - - - 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. - - - - - - - - - - - - - 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. - - - - - - - - - - - - - The return key type allows to specify the return key on the input panel. - - - - - - - - - - - - - Set the return key type. - - - - - - Set the return key on the input panel to be disabled. - - - - - - Set the input panel-specific data to deliver to the input panel. - - - - - - - - - - Set the cursor position to the input panel. - - - - - - Deliver unconventional input device events that need to be processed by input panel - - - - - - - - Filter key event by input method - - - - - - - - - - - - - Get permission to hide input panel. - - - - - This allows to specify capital mode on the input panel. - - - - - - - - - - Set the prediction hint string to deliver to the input panel. - - - - - - Sets the mime type to deliver to the input panel. - - - - - - Set the input panel position. - - - - - - - Finalized its content right before losing the focus. - - - - - - - Set the prediction hint data. - - - - - - - Notify the text_input object when it received focus. Typically in - response to an activate request. - - - - - - 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. - - - - - 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. - - - - - - - - - - Notify when the visibility state of the input panel changed. - - - - - - 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. - - - - - - - - - - - - - - - - - - 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. - - - - - - - - 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. - - - - - - 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. - - - - - - - Notify when the cursor or anchor position should be modified. - - This event should be handled as part of a following commit_string - event. - - - - - - - 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. - - - - - - - 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) - - - - - - - - - - Set the language of the input text. The "language" argument is an RFC-3066 - format language tag. - - - - - - - - - - - - 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. - - - - - - - Notify when the input panels ask to select the characters - from the start cursor position to the end cursor position. - - - - - - - - Notify when the input panels ask to send private command - - - - - - - Notify when the geometry of the input panel changed. - - - - - - - - - Notify when the input panels ask to send input panel data - - - - - - - - - - - - - - - - - - - - Notify whether input panel should be hidden or not. - - - - - - 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. - - - - - - - - - - - Notify when the input panel event is changed - - - - - - - - Notify when the input panel wants to commit a content - - - - - - - - - - - A factory for text_input objects. This object is a global singleton. - - - - Creates a new text_input object. - - - - - diff --git a/protocol/tizen-extension.xml b/protocol/tizen-extension.xml deleted file mode 100644 index 960c73e..0000000 --- a/protocol/tizen-extension.xml +++ /dev/null @@ -1,1591 +0,0 @@ - - - - - - - - - Destroy the tizen_surface. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Notify of conformant area to client. Sending this event does NOT guarantee - perfect compositing of conformant owner client surface and - conformant part client surface. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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. - - - - - - - - - - - - - - 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. - - - - - - - - Destroy the tizen_policy. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Destroy the tizen_gesture. - - - - - - - - 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. - - - - - - - - - - - - - - - - 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. - - - - - - - - - - - - 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. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Destroy the tizen_keyrouter. - - - - - - - - Clients can get a screenmirror object from this interface. - - - - - Before using screenmirror, a client should get a screenmirror object from display - server. - - - - - - - - Client can set auto rotation value for one shot. - - - - - - - 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. - - - - - - - Clients can get notification of screenshooter. - - - - - - - Destroy the tizen_screenshooter. - - - - - - - - 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. - - - - - - - - - - - - - - - - A user can dequeue a buffer from display server when he wants to take back it from server. - - - - - - - - - - - - - - - - - - - - occurs when drawing a captured image on a buffer is finished - - - - - - - occurs when the content of a captured image is changed. (normal or video) - - - - - - - occurs when the screenmirror is stopped eventually - - - - - - - - Clients can get the video information that the compositor can handle from this interface. - - - - - - - - - - - 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. - - - - - - - - - - - - - - - - - Destroy the tizen_video. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - If tizen_video_object.follow_topmost_visibility is applied to a video_object, - It will be video mute control based on topmost visibility. - - - - - - If tizen_video_object.unfollow_topmost_visibility is applied to a video_object, - It will not be video mute control based on topmost visibility. - - - - - - If tizen_video_object.allowed_attribute is applied to a video_object, - set_attribute request will be deliever to tdm backend directly. - - - - - - If tizen_video_object.disallowed_attribute is applied to a video_object, - It would be tdm_attribute call when topmost showing. - - - - - - - - - - - - - - - - - - - - Destroy the tizen_subsurface_watcher. - - - - - - - - - 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. - - - - - - - - - - - - - - - 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. - - - - - - - - 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. - - - - - - - - - - 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. - - - - - - - - - - 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. - - - - - - - - - - - - - - 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. - - - - - - - - - - - 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. - - - - - - - - - - - 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. - - - - - - - - - - - - - - - - - - - - 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. - - - - - - - - - - - - This allows the real number. See wl_fixed_from_double and wl_fixed_to_double. - - - - - - - - This allows the real number. See wl_fixed_from_double and wl_fixed_to_double. - - - - - - - - This allows the real number between 0.0 and 1.0. See wl_fixed_from_double and - wl_fixed_to_double. - - - - - - - - - - - - - - - - - - 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. - - - - - The get_socket request ask the server to create socket and emit socket event. - - - - - - Sent immediately after get_socket request - - - - - - - - - - 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). - - - - - 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. - - - - - - - - - - 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. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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. - - - - - - 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. - - - - - - - - - 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. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Destroy the tizen_input_device_manager. - - - - - - - - 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Destroy the tizen_launchscreen. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Destroy the tizen_display_policy. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This interface provides some requests and events about clipboard for other clients. - - - - - - - - - - - - - - - - - - - - - - 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. - - - - - - - - - - - - - - - - - - - - - - - Destroy the tizen_screen_rotation. - - - - - - diff --git a/protocol/tizen-launch.xml b/protocol/tizen-launch.xml deleted file mode 100644 index d1908be..0000000 --- a/protocol/tizen-launch.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - Destroy tizen_launch_effect. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/protocol/tizen-remote-surface.xml b/protocol/tizen-remote-surface.xml deleted file mode 100644 index a7a1d9d..0000000 --- a/protocol/tizen-remote-surface.xml +++ /dev/null @@ -1,368 +0,0 @@ - - - - - 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. - - - - Ask manager creation of a new remote surface provider. - A wl_surface is required for making remote surface provider. - - - - - - - - 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. - - - - - - - - - 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. - - - - - - - - Destroy tizen_remote_surface_manager. - - - - - - - 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. - - - - - - Requests for setting or unsetting offscreen. - The default is offscreen if provider client never requests this. - - - - - - - - Announce resource id of this provider. - - - - - - - - Notify of visibility chages. - This provider's visibility is determined by its remote surfaces. - - - - - - - - - - - - - - Some providers can accept restricted events only. To notify of what - event is allowed or not, provider can set event filter using this - request. - - - > - - - - - 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. - - - - - - - Request for redirect of provider's buffer. A consumer is able to receive - buffer_update after this request. - - - - - - - - - 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. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Set owner wl_surface object of this remote surface. - - - - - - - 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. - - - - - - - - - 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. - - - - - - - - - - - - - - - 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. - - - - - - - - - - - - - - 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. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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. - - - - - - - - - - - - - - - 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. - - - - - - - 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. - - - - - - - - - - A region object having geometry information and etc. - - - - - Set geometry information of this region object. - - - - - - - - diff --git a/protocol/tizen-surface.xml b/protocol/tizen-surface.xml deleted file mode 100644 index fd9c5ab..0000000 --- a/protocol/tizen-surface.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - Destroy tizen_surface_shm. - - - - - - - - - - - - diff --git a/protocol/tizen/fullscreen-shell.xml b/protocol/tizen/fullscreen-shell.xml new file mode 100644 index 0000000..8d7a87f --- /dev/null +++ b/protocol/tizen/fullscreen-shell.xml @@ -0,0 +1,206 @@ + + + + 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. + + + + + 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. + + + + + + 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). + + + + + + + + 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. + + + + + + + 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. + + + + + + + + + + + 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. + + + + + + + + + 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. + + + + + + + + + + These errors can be emitted in response to wl_fullscreen_shell requests + + + + + + + + + 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. + + + + + 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. + + + + + 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. + + + + diff --git a/protocol/tizen/input-method.xml b/protocol/tizen/input-method.xml new file mode 100644 index 0000000..fb28774 --- /dev/null +++ b/protocol/tizen/input-method.xml @@ -0,0 +1,413 @@ + + + + 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. + + + + + 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). + + + + + 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. + + + + + + + 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. + + + + + + + + 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. + + + + + + + + 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. + + + + + + This request will be handled on text_input side as part of a directly + following commit_string request. + + + + + + + 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. + + + + + + + + + + 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. + + + + + + + + + + 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. + + + + + + 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. + + + + + + + + + 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. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Send the recapture string text to the application text input. + + + + + + + + + + + Send the input panel event. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Deliver unconventional input device events that need to be processed by input panel + + + + + + + + Request to filter key event via 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. + + + + A text input was activated. Creates an input method context object + which allows communication with the text input. + + + + + + + + The text input corresponding to the context argument was deactivated. + The input method context should be destroyed after deactivation is + handled. + + + + + + + Input panel (virtual keyboard) was requested to show. + + + + + + Input panel (virtual keyboard) was requested to hide. + + + + + + + + Only one client can bind this interface at a time. + + + + + + + + + + + + + + + + A keyboard surface is only shown, when a text input is active. + + + + + + + + An overlay panel is shown near the input cursor above the application + window when a text input is active. + + + + + + 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. + + + + + + + A Keyboard surface is shown as a floating panel type. + + + + + + + Set the permission to move floating panel. + + + + + diff --git a/protocol/tizen/scaler.xml b/protocol/tizen/scaler.xml new file mode 100644 index 0000000..9642af2 --- /dev/null +++ b/protocol/tizen/scaler.xml @@ -0,0 +1,210 @@ + + + + + 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. + + + + + 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. + + + + + 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. + + + + + + + + + + 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. + + + + + + + + + + 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. + + + + + The associated wl_surface's crop and scale state is removed. + The change is applied on the next wl_surface.commit. + + + + + + + + + + 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. + + + + + + + + + + + + + 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. + + + + + + + + + + + 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. + + + + + + + diff --git a/protocol/tizen/screenshooter.xml b/protocol/tizen/screenshooter.xml new file mode 100644 index 0000000..76e3c85 --- /dev/null +++ b/protocol/tizen/screenshooter.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/protocol/tizen/text-cursor-position.xml b/protocol/tizen/text-cursor-position.xml new file mode 100644 index 0000000..0fbc54e --- /dev/null +++ b/protocol/tizen/text-cursor-position.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/protocol/tizen/text.xml b/protocol/tizen/text.xml new file mode 100644 index 0000000..662c44d --- /dev/null +++ b/protocol/tizen/text.xml @@ -0,0 +1,551 @@ + + + + + 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. + + + + + 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). + + + + + 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. + + + + + + + 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. + + + + + + Requests input panels (virtual keyboard) to show. + + + + + Requests input panels (virtual keyboard) to hide. + + + + + 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. + + + + + Content hint is a bitmask to allow to modify the behavior of the text + input. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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. + + + + + + + + + + + + + + + + + + + + + + + + + + + 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. + + + + + + + + + + + + + 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. + + + + + + + + + + + + + The return key type allows to specify the return key on the input panel. + + + + + + + + + + + + + Set the return key type. + + + + + + Set the return key on the input panel to be disabled. + + + + + + Set the input panel-specific data to deliver to the input panel. + + + + + + + + + + Set the cursor position to the input panel. + + + + + + Deliver unconventional input device events that need to be processed by input panel + + + + + + + + Filter key event by input method + + + + + + + + + + + + + Get permission to hide input panel. + + + + + This allows to specify capital mode on the input panel. + + + + + + + + + + Set the prediction hint string to deliver to the input panel. + + + + + + Sets the mime type to deliver to the input panel. + + + + + + Set the input panel position. + + + + + + + Finalized its content right before losing the focus. + + + + + + + Set the prediction hint data. + + + + + + + Notify the text_input object when it received focus. Typically in + response to an activate request. + + + + + + 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. + + + + + 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. + + + + + + + + + + Notify when the visibility state of the input panel changed. + + + + + + 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. + + + + + + + + + + + + + + + + + + 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. + + + + + + + + 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. + + + + + + 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. + + + + + + + Notify when the cursor or anchor position should be modified. + + This event should be handled as part of a following commit_string + event. + + + + + + + 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. + + + + + + + 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) + + + + + + + + + + Set the language of the input text. The "language" argument is an RFC-3066 + format language tag. + + + + + + + + + + + + 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. + + + + + + + Notify when the input panels ask to select the characters + from the start cursor position to the end cursor position. + + + + + + + + Notify when the input panels ask to send private command + + + + + + + Notify when the geometry of the input panel changed. + + + + + + + + + Notify when the input panels ask to send input panel data + + + + + + + + + + + + + + + + + + + + Notify whether input panel should be hidden or not. + + + + + + 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. + + + + + + + + + + + Notify when the input panel event is changed + + + + + + + + Notify when the input panel wants to commit a content + + + + + + + + + + + A factory for text_input objects. This object is a global singleton. + + + + Creates a new text_input object. + + + + + diff --git a/protocol/tizen/tizen-extension.xml b/protocol/tizen/tizen-extension.xml new file mode 100644 index 0000000..960c73e --- /dev/null +++ b/protocol/tizen/tizen-extension.xml @@ -0,0 +1,1591 @@ + + + + + + + + + Destroy the tizen_surface. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Notify of conformant area to client. Sending this event does NOT guarantee + perfect compositing of conformant owner client surface and + conformant part client surface. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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. + + + + + + + + + + + + + + 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. + + + + + + + + Destroy the tizen_policy. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Destroy the tizen_gesture. + + + + + + + + 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. + + + + + + + + + + + + + + + + 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. + + + + + + + + + + + + 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. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Destroy the tizen_keyrouter. + + + + + + + + Clients can get a screenmirror object from this interface. + + + + + Before using screenmirror, a client should get a screenmirror object from display + server. + + + + + + + + Client can set auto rotation value for one shot. + + + + + + + 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. + + + + + + + Clients can get notification of screenshooter. + + + + + + + Destroy the tizen_screenshooter. + + + + + + + + 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. + + + + + + + + + + + + + + + + A user can dequeue a buffer from display server when he wants to take back it from server. + + + + + + + + + + + + + + + + + + + + occurs when drawing a captured image on a buffer is finished + + + + + + + occurs when the content of a captured image is changed. (normal or video) + + + + + + + occurs when the screenmirror is stopped eventually + + + + + + + + Clients can get the video information that the compositor can handle from this interface. + + + + + + + + + + + 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. + + + + + + + + + + + + + + + + + Destroy the tizen_video. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + If tizen_video_object.follow_topmost_visibility is applied to a video_object, + It will be video mute control based on topmost visibility. + + + + + + If tizen_video_object.unfollow_topmost_visibility is applied to a video_object, + It will not be video mute control based on topmost visibility. + + + + + + If tizen_video_object.allowed_attribute is applied to a video_object, + set_attribute request will be deliever to tdm backend directly. + + + + + + If tizen_video_object.disallowed_attribute is applied to a video_object, + It would be tdm_attribute call when topmost showing. + + + + + + + + + + + + + + + + + + + + Destroy the tizen_subsurface_watcher. + + + + + + + + + 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. + + + + + + + + + + + + + + + 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. + + + + + + + + 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. + + + + + + + + + + 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. + + + + + + + + + + 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. + + + + + + + + + + + + + + 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. + + + + + + + + + + + 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. + + + + + + + + + + + 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. + + + + + + + + + + + + + + + + + + + + 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. + + + + + + + + + + + + This allows the real number. See wl_fixed_from_double and wl_fixed_to_double. + + + + + + + + This allows the real number. See wl_fixed_from_double and wl_fixed_to_double. + + + + + + + + This allows the real number between 0.0 and 1.0. See wl_fixed_from_double and + wl_fixed_to_double. + + + + + + + + + + + + + + + + + + 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. + + + + + The get_socket request ask the server to create socket and emit socket event. + + + + + + Sent immediately after get_socket request + + + + + + + + + + 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). + + + + + 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. + + + + + + + + + + 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. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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. + + + + + + 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. + + + + + + + + + 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. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Destroy the tizen_input_device_manager. + + + + + + + + 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Destroy the tizen_launchscreen. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Destroy the tizen_display_policy. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This interface provides some requests and events about clipboard for other clients. + + + + + + + + + + + + + + + + + + + + + + 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. + + + + + + + + + + + + + + + + + + + + + + + Destroy the tizen_screen_rotation. + + + + + + diff --git a/protocol/tizen/tizen-launch.xml b/protocol/tizen/tizen-launch.xml new file mode 100644 index 0000000..d1908be --- /dev/null +++ b/protocol/tizen/tizen-launch.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + Destroy tizen_launch_effect. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/protocol/tizen/tizen-remote-surface.xml b/protocol/tizen/tizen-remote-surface.xml new file mode 100644 index 0000000..a7a1d9d --- /dev/null +++ b/protocol/tizen/tizen-remote-surface.xml @@ -0,0 +1,368 @@ + + + + + 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. + + + + Ask manager creation of a new remote surface provider. + A wl_surface is required for making remote surface provider. + + + + + + + + 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. + + + + + + + + + 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. + + + + + + + + Destroy tizen_remote_surface_manager. + + + + + + + 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. + + + + + + Requests for setting or unsetting offscreen. + The default is offscreen if provider client never requests this. + + + + + + + + Announce resource id of this provider. + + + + + + + + Notify of visibility chages. + This provider's visibility is determined by its remote surfaces. + + + + + + + + + + + + + + Some providers can accept restricted events only. To notify of what + event is allowed or not, provider can set event filter using this + request. + + + > + + + + + 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. + + + + + + + Request for redirect of provider's buffer. A consumer is able to receive + buffer_update after this request. + + + + + + + + + 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. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Set owner wl_surface object of this remote surface. + + + + + + + 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. + + + + + + + + + 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. + + + + + + + + + + + + + + + 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. + + + + + + + + + + + + + + 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. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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. + + + + + + + + + + + + + + + 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. + + + + + + + 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. + + + + + + + + + + A region object having geometry information and etc. + + + + + Set geometry information of this region object. + + + + + + + + diff --git a/protocol/tizen/tizen-surface.xml b/protocol/tizen/tizen-surface.xml new file mode 100644 index 0000000..fd9c5ab --- /dev/null +++ b/protocol/tizen/tizen-surface.xml @@ -0,0 +1,22 @@ + + + + + + + + + + Destroy tizen_surface_shm. + + + + + + + + + + + + diff --git a/protocol/tizen/transform.xml b/protocol/tizen/transform.xml new file mode 100644 index 0000000..dfb3e98 --- /dev/null +++ b/protocol/tizen/transform.xml @@ -0,0 +1,72 @@ + + + + + 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. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/protocol/tizen/xdg-shell.xml b/protocol/tizen/xdg-shell.xml new file mode 100644 index 0000000..68b874a --- /dev/null +++ b/protocol/tizen/xdg-shell.xml @@ -0,0 +1,588 @@ + + + + + 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. + + + + + 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. + + + + + 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. + + + + + + + + + + + + + + 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. + + + + + + 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. + + + + + + + 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. + + + + + + + + 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. + + + + + + + + + + + + + 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. + + + + + + + A client must respond to a ping event with a pong request or + the client may be deemed unresponsive. + + + + + + + + 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. + + + + + 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. + + + + + + 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. + + + + + + + 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. + + + + + + + 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/ + + + + + + + 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. + + + + + + + + + + + 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). + + + + + + + + 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. + + + + + + + + + + + + + + + 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). + + + + + + + + + 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 + + + + The surface is maximized. The window geometry specified in the configure + event must be obeyed by the client. + + + + + The surface is fullscreen. The window geometry specified in the configure + event must be obeyed by the client. + + + + + 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. + + + + + 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. + + + + + + + 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. + + + + + + + + + + + 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. + + + + + + + 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. + + + + + + + + + + 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. + + + + + + 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. + + + + + + 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. + + + + + + + + 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. + + + + + + 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... + + + + + + + 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. + + + + + 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. + + + + + + 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. + + + + + diff --git a/protocol/transform.xml b/protocol/transform.xml deleted file mode 100644 index dfb3e98..0000000 --- a/protocol/transform.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - 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. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/protocol/xdg-shell.xml b/protocol/xdg-shell.xml deleted file mode 100644 index 68b874a..0000000 --- a/protocol/xdg-shell.xml +++ /dev/null @@ -1,588 +0,0 @@ - - - - - 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. - - - - - 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. - - - - - 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. - - - - - - - - - - - - - - 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. - - - - - - 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. - - - - - - - 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. - - - - - - - - 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. - - - - - - - - - - - - - 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. - - - - - - - A client must respond to a ping event with a pong request or - the client may be deemed unresponsive. - - - - - - - - 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. - - - - - 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. - - - - - - 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. - - - - - - - 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. - - - - - - - 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/ - - - - - - - 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. - - - - - - - - - - - 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). - - - - - - - - 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. - - - - - - - - - - - - - - - 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). - - - - - - - - - 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 - - - - The surface is maximized. The window geometry specified in the configure - event must be obeyed by the client. - - - - - The surface is fullscreen. The window geometry specified in the configure - event must be obeyed by the client. - - - - - 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. - - - - - 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. - - - - - - - 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. - - - - - - - - - - - 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. - - - - - - - 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. - - - - - - - - - - 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. - - - - - - 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. - - - - - - 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. - - - - - - - - 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. - - - - - - 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... - - - - - - - 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. - - - - - 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. - - - - - - 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. - - - - -