mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-26 04:15:14 +02:00
93 lines
2.5 KiB
QML
93 lines
2.5 KiB
QML
//
|
|
// DefaultFrame.qml
|
|
//
|
|
// Created by Bradley Austin Davis on 12 Jan 2016
|
|
// Copyright 2016 High Fidelity, Inc.
|
|
//
|
|
// Distributed under the Apache License, Version 2.0.
|
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
|
//
|
|
|
|
import QtQuick 2.5
|
|
import QtGraphicalEffects 1.0
|
|
|
|
import "."
|
|
import "../styles-uit"
|
|
|
|
Rectangle {
|
|
HifiConstants { id: hifi }
|
|
|
|
signal inflateDecorations();
|
|
signal deflateDecorations();
|
|
|
|
property int frameMargin: 9
|
|
property int frameMarginLeft: frameMargin
|
|
property int frameMarginRight: frameMargin
|
|
property int frameMarginTop: 2 * frameMargin + iconSize
|
|
property int frameMarginBottom: iconSize + 11
|
|
|
|
anchors {
|
|
topMargin: -frameMarginTop
|
|
leftMargin: -frameMarginLeft
|
|
rightMargin: -frameMarginRight
|
|
bottomMargin: -frameMarginBottom
|
|
}
|
|
anchors.fill: parent
|
|
color: hifi.colors.baseGrayHighlight40
|
|
border {
|
|
width: hifi.dimensions.borderWidth
|
|
color: hifi.colors.faintGray50
|
|
}
|
|
radius: hifi.dimensions.borderRadius
|
|
|
|
// Enable dragging of the window,
|
|
// detect mouseover of the window (including decoration)
|
|
MouseArea {
|
|
id: decorationMouseArea
|
|
anchors.fill: parent
|
|
drag.target: window
|
|
hoverEnabled: true
|
|
onEntered: window.mouseEntered();
|
|
onExited: {
|
|
if (!containsMouseGlobal()) {
|
|
window.mouseExited();
|
|
}
|
|
}
|
|
|
|
function containsMouseGlobal() {
|
|
var reticlePos = Reticle.position;
|
|
var globalPosition = decorationMouseArea.mapToItem(desktop, 0, 0);
|
|
var localPosition = {
|
|
x: reticlePos.x - globalPosition.x,
|
|
y: reticlePos.y - globalPosition.y,
|
|
};
|
|
return localPosition.x >= 0 && localPosition.x <= width &&
|
|
localPosition.y >= 0 && localPosition.y <= height;
|
|
}
|
|
|
|
}
|
|
Connections {
|
|
target: window
|
|
onMouseEntered: {
|
|
if (desktop.hmdHandMouseActive) {
|
|
root.inflateDecorations()
|
|
}
|
|
}
|
|
onMouseExited: {
|
|
root.deflateDecorations();
|
|
}
|
|
}
|
|
Connections {
|
|
target: desktop
|
|
onHmdHandMouseActiveChanged: {
|
|
if (desktop.hmdHandMouseActive) {
|
|
if (decorationMouseArea.containsMouse) {
|
|
root.inflateDecorations();
|
|
}
|
|
} else {
|
|
root.deflateDecorations();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|