Unity 8
ObjectPositioner.qml
1 /*
2  * Copyright (C) 2013 Canonical, Ltd.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; version 3.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  */
16 
17 import QtQuick 2.4
18 import Ubuntu.Components 1.3
19 
20 Item {
21  property int count
22  property int index
23  property real radius
24  property real halfSize
25  property real posOffset
26 
27  property real slice: (2 * Math.PI / count) * index;
28 
29  implicitWidth: childrenRect.width
30  implicitHeight: childrenRect.height
31 
32  x: (radius - halfSize * posOffset) * Math.sin(slice) + radius - halfSize
33  y: (radius - halfSize * posOffset) * -Math.cos(slice) + radius - halfSize
34 
35  rotation: Math.atan2(radius-(y+halfSize), radius-(x+halfSize)) * 180 / Math.PI - 90
36 }