Skip to content
Snippets Groups Projects
QGCMouseArea.qml 1.57 KiB
Newer Older
  • Learn to ignore specific revisions
  • import QtQuick 2.3
    
    
    import QGroundControl               1.0
    import QGroundControl.ScreenTools   1.0
    
    /// Works just like a regular MouseArea except:
    ///     1) It supports the ability to show touch extents based on QGroundControl.showTouchAreas
    ///     2) You can specify fillItem and it will automatically fill to the size and adjust touch areas on mobile
    
    MouseArea {
    
        anchors.leftMargin:     fillItem ? -_touchMarginHorizontal : 0
        anchors.rightMargin:    fillItem ? -_touchMarginHorizontal : 0
        anchors.topMargin:      fillItem ? -_touchMarginVertical : 0
        anchors.bottomMargin:   fillItem ? -_touchMarginVertical : 0
        anchors.fill:           fillItem ? fillItem : undefined
    
    
    DonLakeFlyer's avatar
    DonLakeFlyer committed
        property var    fillItem
        property bool   debugMobile:    false   ///< Allows you to debug mobile sizing on desktop builds
    
    
        property real _itemWidth:               fillItem ? fillItem.width : width
        property real _itemHeight:              fillItem ? fillItem.height : height
        property real _touchWidth:              Math.max(_itemWidth, ScreenTools.minTouchPixels)
        property real _touchHeight:             Math.max(_itemHeight, ScreenTools.minTouchPixels)
    
    DonLakeFlyer's avatar
    DonLakeFlyer committed
        property real _touchMarginHorizontal:   debugMobile || ScreenTools.isMobile ? (_touchWidth - _itemWidth) / 2 : 0
        property real _touchMarginVertical:     debugMobile || ScreenTools.isMobile ? (_touchHeight - _itemHeight) / 2 : 0
    
        Rectangle {
            anchors.fill:   parent
            border.color:   "red"
    
            border.width:   QGroundControl.corePlugin.showTouchAreas ? 1 : 0
    
            color:          "transparent"
        }
    }