Warning, /maui/mauikit/src/controls.6/ToolButtonMenu.qml is written in an unsupported language. File is not indexed.

0001 import QtQuick
0002 import QtQuick.Controls
0003 
0004 import org.mauikit.controls 1.3 as Maui
0005 
0006 /**
0007  * @inherit QtQuick.Controls.ToolButton
0008  * @since org.mauikit.controls 1.0
0009  * 
0010  * @brief A control to host into a Menu popup, a set of MenuItem or Actions as its children.
0011  *  
0012  * This control provides a quick way to have a menu attached to a tool button.
0013  * All child items will be positioned inside a MauiKit ContextualMenu.
0014  * @see ContextualMenu
0015  * 
0016  * @image html Misc/toolbuttonmenu.png
0017  * 
0018  * @code
0019  * Maui.ToolButtonMenu
0020  * {
0021  *    icon.name: "overflow-menu"
0022  * 
0023  *    MenuItem
0024  *    {
0025  *        text : "Menu1"
0026  *    }
0027  * 
0028  *    MenuItem
0029  *    {
0030  *        text : "Menu2"
0031  *    }
0032  * 
0033  *    MenuItem
0034  *    {
0035  *        text : "Menu3"
0036  *    }
0037  * }
0038  * @endcode
0039  */
0040 ToolButton
0041 {
0042     id: control
0043     
0044     /**
0045      * @brief List of items, such as MenuItem, or Action, to populate the contextual menu.
0046      * This is the default property, so all the children will go into the menu.
0047      * @property list<QtObject> ToolButtonMenu::content
0048      */
0049     default property alias content : _menu.contentData
0050         
0051         /**
0052          *  @brief Alias to the actual menu component holding the menu entries.
0053          * This can be modified for fine tuning the menu position or look.
0054          * @property ContextualMenu ToolButtonMenu::menu
0055          */
0056         readonly property alias menu : _menu
0057         
0058         subMenu: _menu.count > 0
0059         focusPolicy: Qt.NoFocus
0060         checked: _menu.visible
0061         display: ToolButton.IconOnly
0062         
0063         onClicked:
0064         {
0065             if(_menu.visible)
0066             {
0067                 close()
0068             }else
0069             {
0070                 open()
0071             }
0072         }
0073         
0074         Maui.ContextualMenu
0075         {
0076             id: _menu
0077         }
0078         
0079         /**
0080          * @brief Forces to open the contextual menu.
0081          * The menu will be positioned under the button.
0082          * To open the menu at a position where it has been invoked, use the `popup` function instead.
0083          * @see popup
0084          */
0085         function open()
0086         {
0087             _menu.show(0, height + Maui.Style.space.medium)
0088             _menu.forceActiveFocus()
0089         }
0090         
0091         /**
0092          * @brief Forces to popup the contextual menu.
0093          * This means the menu will be opened and positioned at the event coordinates.
0094          */
0095         function popup()
0096         {
0097             _menu.popup()
0098             _menu.forceActiveFocus()
0099         }
0100         
0101         /**
0102          * @brief Forces to close the contextual menu.
0103          */
0104         function close()
0105         {
0106             _menu.close()
0107         }
0108 }