add wtz-shell protocol 04/289504/9
authorSooChan Lim <sc1.lim@samsung.com>
Thu, 9 Mar 2023 02:14:14 +0000 (11:14 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Mon, 20 Mar 2023 23:12:06 +0000 (08:12 +0900)
This is the waylanad protocol for supporting tizen-style surfaces.
It provide the interfaces for the multi windows policy at Tizen Display Server.

Change-Id: I31c29135f7cb67f760a1af46644496afd3a327e3

Makefile.am
protocol/tizen/wtz-shell.xml [new file with mode: 0644]

index 6773aa3..2edaa7d 100644 (file)
@@ -400,6 +400,23 @@ libwtz_screen_client_la_SOURCES = protocol/tizen/wtz-screen-protocol.c
 libwtz_screen_client_la_CFLAGS  = @WAYLAND_CLIENT_CFLAGS@
 libwtz_screen_client_la_LIBADD  = @WAYLAND_CLIENT_LIBS@
 
+### wtz_shell
+protocol_LTLIBRARIES += \
+               libwtz-shell-server.la \
+               libwtz-shell-client.la
+pkgconfig_DATA += \
+        src/wtz-shell-server.pc \
+        src/wtz-shell-client.pc
+protocolinclude_HEADERS += \
+               protocol/tizen/wtz-shell-server-protocol.h \
+               protocol/tizen/wtz-shell-client-protocol.h
+libwtz_shell_server_la_SOURCES = protocol/tizen/wtz-shell-protocol.c
+libwtz_shell_server_la_CFLAGS  = @WAYLAND_SERVER_CFLAGS@
+libwtz_shell_server_la_LIBADD  = @WAYLAND_SERVER_LIBS@
+libwtz_shell_client_la_SOURCES = protocol/tizen/wtz-shell-protocol.c
+libwtz_shell_client_la_CFLAGS  = @WAYLAND_CLIENT_CFLAGS@
+libwtz_shell_client_la_LIBADD  = @WAYLAND_CLIENT_LIBS@
+
 ### wayland-protocols
 unstable_protocols = \
        protocol/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml \
@@ -449,6 +466,7 @@ tizen_protocols = \
         protocol/tizen/tizen-policy-ext.xml \
                protocol/tizen/wtz-foreign.xml \
                protocol/tizen/wtz-screen.xml \
+               protocol/tizen/wtz-shell.xml \
        $(NULL)
 
 nobase_dist_pkgdata_DATA = \
diff --git a/protocol/tizen/wtz-shell.xml b/protocol/tizen/wtz-shell.xml
new file mode 100644 (file)
index 0000000..377179e
--- /dev/null
@@ -0,0 +1,100 @@
+<protocol name="wtz_shell">
+
+  <copyright>
+    Copyright © 2023 Samsung Electronics Co., Ltd.
+
+    Permission is hereby granted, free of charge, to any person obtaining a
+    copy of this software and associated documentation files (the "Software"),
+    to deal in the Software without restriction, including without limitation
+    the rights to use, copy, modify, merge, publish, distribute, sublicense,
+    and/or sell copies of the Software, and to permit persons to whom the
+    Software is furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice (including the next
+    paragraph) shall be included in all copies or substantial portions of the
+    Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+    THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+    DEALINGS IN THE SOFTWARE.
+  </copyright>
+
+  <description summary="Protocol to describe tizen shell">
+    This is the waylanad protocol for supporting tizen-style surfaces.
+  </description>
+
+  <interface name="wtz_shell" version="1">
+    <description summary="create tizen-style surfaces">
+      wtz_shell allows clients to turn a wl_surface into a wtz_surface which can
+      support the Tizen features in Tizen Dispaly Server.
+    </description>
+
+    <request name="destroy" type="destructor">
+      <description summary="destroy the wtz_shell object">
+       Destroy this wtz_shell object.
+       Notify when the server that it is not going to use the wtz_shell
+       object anymore.
+      </description>
+    </request>
+
+    <request name="get_wtz_surface">
+      <description summary="create a tizen shell surface from a surface">
+       This creates a wtz_surface for the given surface.
+      </description>
+      <arg name="id" type="new_id" interface="wtz_surface"/>
+      <arg name="surface" type="object" interface="wl_surface"/>
+    </request>
+  </interface>
+
+  <interface name="wtz_surface" version="1">
+    <description summary="tizen-specific user interface surface">
+      An interface that may be implemented by a wl_surface, for
+      implementations that provide a tizen-specific user interface.
+    </description>
+
+    <enum name="decoration_type">
+      <description summary="type of decoration">
+        This describes the type of decoration.
+      </description>
+      <entry name="none" value="0" summary="no decoration"/>
+      <entry name="client_side" value="1" summary="the client-side decoration"/>
+    </enum>
+
+    <request name="destroy" type="destructor">
+      <description summary="destroy the wtz_surface">
+        Destroy the xdg_surface object.
+      </description>
+    </request>
+
+    <event name="decoration">
+      <description summary="capability of the client-side decoration">
+       Notify this event when the decoration type of the wtz_surface has been
+       decided or changed.
+      </description>
+      <arg name="type" type="uint" enum="decoration_type"
+       summary="the type of decoration"/>
+    </event>
+
+     <event name="screen">
+      <description summary="tizen screen which this surface locates">
+       Notify this event when this surface is assigned in the screen.
+      </description>
+       <arg name="screen" type="object" interface="wtz_screen"
+       summary="the tizen screen object"/>
+    </event>
+
+    <request name="assign_screen">
+      <description summary="assign a wtz_surface to the screen">
+      This assign the surface on a given screen.
+      </description>
+      <arg name="screen" type="object" interface="wtz_screen"
+       summary="the tizen screen object" allow-null="true"/>
+    </request>
+
+  </interface>
+
+ </protocol>