New concept of dynamically placing surfaces in static defined layout areas.
[staging/HomeScreen.git] / interfaces / homescreen.xml
1 <!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
2 <!-- Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH
3
4  Licensed under the Apache License, Version 2.0 (the "License");
5  you may not use this file except in compliance with the License.
6  You may obtain a copy of the License at
7
8       http://www.apache.org/licenses/LICENSE-2.0
9
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License. -->
15 <node>
16 <!--
17   org.agl.homescreen:
18   @short_description: A generic interface for the HomeScreen app.
19
20   This interface is a collection of methods from different functional areas to control the HomeScreen app.
21 -->
22   <interface name="org.agl.homescreen">
23   <!--
24     hardKeyPressed:
25     @key: The key that was pressed using the inputevent.hpp InputEvent::HardKey type.
26
27     This is used to inject hard keys into the HomeScreen app.
28   -->
29     <method name="hardKeyPressed">
30       <arg name="key" type="i" direction="in"/>
31     </method>
32   <!--
33     requestSurfaceIdToFullScreen:
34     @surfaceId: The surface that request to be shown fullscreen.
35
36     This allows an application to set a surface to full screen.
37   -->
38     <method name="requestSurfaceIdToFullScreen">
39       <arg name="surfaceId" type="i" direction="in"/>
40     </method>
41   <!--
42     getLayoutRenderAreaForSurfaceId:
43     @surfaceId: The surface that is requested.
44     @renderArea: The layout render area in which the given surface is located.
45
46     Before an application uses renderSurfaceToArea to render a surface into an area inside a layout area,
47     this method should be used to get the dimension of the layout area, in which the surface
48     currently is positioned.
49   -->
50     <method name="getLayoutRenderAreaForSurfaceId">
51       <arg name="surfaceId" type="i" direction="in"/>
52       <arg name="renderArea" type="(iiii)" direction="out"/>
53       <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QRect"/>
54     </method>
55   <!--
56     renderSurfaceToArea:
57     @surfaceId: The surface that is requested.
58     @renderArea: The render area inside the current layout area.
59
60     This is a special case. In the normal use case, one layout area is always filled completely
61     with one surface. By using this function, an app can request to position a surface in the
62     layout area.
63     Example:
64     If the layout area is 500x500 pixel in size, the normal use case qould be, that a surface
65     is positioned at x=0, y=0 with a width and a size of 500. With this function, an application can position surfaces
66     free in this area.
67     E.g.: Position surface 101 at x=10, y=30, width=300, height=100 and 
68     surface 104 at x=100, y=130, width=30, height=10
69   -->
70     <method name="renderSurfaceToArea">
71       <arg name="surfaceId" type="i" direction="in"/>
72       <arg name="renderArea" type="(iiii)" direction="in"/>
73       <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QRect"/>
74     </method>
75   </interface>
76 </node>
77