summaryrefslogtreecommitdiffstats
path: root/interfaces/homescreen.xml
blob: 378ff5418ca595a67e390cea77e155494c61914c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<!-- Copyright (C) 2016, 2017 Mentor Graphics Development (Deutschland) GmbH

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License. -->
<node>
<!--
  org.agl.homescreen:
  @short_description: A generic interface for the HomeScreen app.

  This interface is a collection of methods from different functional areas to control the HomeScreen app.
-->
	<interface name="org.agl.homescreen">
		<!--
		hardKeyPressed:
		@key: The key that was pressed using the inputevent.hpp InputEvent::HardKey type.

		This is used to inject hard keys into the HomeScreen app.
		-->
		<method name="hardKeyPressed">
			<arg name="key" type="i" direction="in"/>
		</method>
		<!--
		getSurfaceStatus:
		@surfaceId: The given surface.
		@status: The status can be unknown (-1), visible (0), invisible (1)

		A surface can have three states. It can be visible, then it is shown on the screen.
		It can be invisible, then it is not shown on the screen. Or the state is unknown.
		-->
		<method name="getSurfaceStatus">
			<arg name="surfaceId" type="i" direction="in"/>
			<arg name="status" type="i" direction="out"/>
		</method>
		<!--
		requestSurfaceIdToFullScreen:
		@surfaceId: The surface that request to be shown fullscreen.

		This allows an application to set a surface to full screen.
		-->
		<method name="requestSurfaceIdToFullScreen">
			<arg name="surfaceId" type="i" direction="in"/>
		</method>
		<!--
		  getAllSurfacesOfProcess:
		  @pid: The PID of the process.
		  @surfaceIds: A list of surfaces that were created by the process.

		  The surface IDs can for example be used to assign them to a layout render area.
		-->
		<method name="getAllSurfacesOfProcess">
			<arg name="pid" type="i" direction="in"/>
			<arg name="surfaceIds" type="ai" direction="out"/>
			<annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QList&lt;int&gt;"/>
		</method>
		<!--
		renderAppToAreaAllowed:
		@appCategory: The application category that is requested. Use enum AppCategory for this!
		@layoutArea: The layout area where the application shall be rendered. Find the layoutArea ids in the layout definition!
		@allowed: Returns true, if the application is allowed to be rendered in the area

		This function can be used to request, if it is allowed to render an application of a specific category
		in a layout area. The idea is to decide from an application point of view to allocate recources or not.
		Example: an application will decide to render video based on this call. This call will not change anything, it is only a request.
		-->
		<method name="renderAppToAreaAllowed">
			<arg name="appCategory" type="i" direction="in"/>
			<arg name="layoutArea" type="i" direction="in"/>
			<arg name="allowed" type="b" direction="out"/>
		</method>
		<!--
		renderSurfaceToArea:
		@surfaceId: The surface that is requested.
		@layoutArea: The layout area where the surface shall be rendered. Find the layoutArea ids in the layout definition!

		This is a special case. In the normal use case, one layout area is always filled completely
		with the first surface, that the process creates (more precise: the surface with the lowest id).
		By using this function, an app can request to position a different surface in the layout area.
		-->
		<method name="renderSurfaceToArea">
			<arg name="surfaceId" type="i" direction="in"/>
			<arg name="layoutArea" type="i" direction="in"/>
		</method>
		<!--
		  surfaceVisibilityChanged:
		  @surfaceId: The surface that changed.
		  @visible: True, if the surface is visible.

		  This is emitted when the visible property of the surfaces changes.
		-->
		<signal name="surfaceVisibilityChanged">
			<arg name="surfaceId" type="i"/>
			<arg name="visible" type="b"/>
		</signal>
	</interface>
</node>