/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Charts module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:GPL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3 or (at your option) any later version ** approved by the KDE Free Qt Foundation. The licenses are as published by ** the Free Software Foundation and appearing in the file LICENSE.GPL3 ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will ** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick Item { id: button property string text: "Option: " property variant items: ["first"] property int currentSelection: 0 signal selectionChanged(variant selection) signal clicked implicitWidth: buttonText.implicitWidth + 5 implicitHeight: buttonText.implicitHeight + 10 Rectangle { anchors.fill: parent radius: 3 gradient: button.enabled ? enabledGradient : disabledGradient Gradient { id: enabledGradient GradientStop { position: 0.0; color: "#eeeeee" } GradientStop { position: 1.0; color: "#cccccc" } } Gradient { id: disabledGradient GradientStop { position: 0.0; color: "#444444" } GradientStop { position: 1.0; color: "#666666" } } Text { id: buttonText text: button.text + button.items[currentSelection] clip: true wrapMode: Text.WordWrap verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter anchors.fill: parent font.pointSize: 14 } MouseArea { anchors.fill: parent onClicked: { currentSelection = (currentSelection + 1) % items.length; selectionChanged(button.items[currentSelection]); } } } }