// // TextField.qml // // Created by David Rowe on 17 Feb 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 QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import "../styles-uit" import "../controls-uit" as HifiControls TextField { id: textField property int colorScheme: hifi.colorSchemes.light readonly property bool isLightColorScheme: colorScheme == hifi.colorSchemes.light property bool isSearchField: false property string label: "" property real controlHeight: height + (textFieldLabel.visible ? textFieldLabel.height + 1 : 0) placeholderText: textField.placeholderText FontLoader { id: firaSansSemiBold; source: "../../fonts/FiraSans-SemiBold.ttf"; } font.family: firaSansSemiBold.name font.pixelSize: hifi.fontSizes.textFieldInput font.italic: textField.text == "" height: implicitHeight + 3 // Make surrounding box higher so that highlight is vertically centered. y: textFieldLabel.visible ? textFieldLabel.height + textFieldLabel.anchors.bottomMargin : 0 style: TextFieldStyle { textColor: isLightColorScheme ? (textField.activeFocus ? hifi.colors.black : hifi.colors.lightGray) : (textField.activeFocus ? hifi.colors.white : hifi.colors.lightGrayText) background: Rectangle { color: isLightColorScheme ? (textField.activeFocus ? hifi.colors.white : hifi.colors.textFieldLightBackground) : (textField.activeFocus ? hifi.colors.black : hifi.colors.baseGrayShadow) border.color: hifi.colors.primaryHighlight border.width: textField.activeFocus ? 1 : 0 radius: isSearchField ? textField.height / 2 : 0 HiFiGlyphs { text: hifi.glyphs.search color: textColor size: hifi.fontSizes.textFieldSearchIcon anchors.left: parent.left anchors.verticalCenter: parent.verticalCenter anchors.leftMargin: hifi.dimensions.textPadding - 2 visible: isSearchField } } placeholderTextColor: hifi.colors.lightGray selectedTextColor: hifi.colors.black selectionColor: hifi.colors.primaryHighlight padding.left: (isSearchField ? textField.height - 2 : 0) + hifi.dimensions.textPadding padding.right: hifi.dimensions.textPadding } HifiControls.Label { id: textFieldLabel text: textField.label colorScheme: textField.colorScheme anchors.left: parent.left anchors.bottom: parent.top anchors.bottomMargin: 3 visible: label != "" } }