1 Demo.MenuDialog = function DemoMenuDialog( config ) {
2 Demo.MenuDialog.parent.call( this, config );
4 OO.inheritClass( Demo.MenuDialog, OO.ui.ProcessDialog );
5 Demo.MenuDialog.static.title = 'Menu dialog';
6 Demo.MenuDialog.static.actions = [
7 { action: 'save', label: 'Done', flags: [ 'primary', 'progressive' ] },
8 { action: 'cancel', label: 'Cancel', flags: [ 'safe', 'back' ] }
10 Demo.MenuDialog.prototype.getBodyHeight = function () {
13 Demo.MenuDialog.prototype.initialize = function () {
14 var menuLayout, positionField, showField, menuPanel, contentPanel;
15 Demo.MenuDialog.parent.prototype.initialize.apply( this, arguments );
17 menuLayout = new OO.ui.MenuLayout();
18 positionField = new OO.ui.FieldLayout(
19 new OO.ui.ButtonSelectWidget( {
21 new OO.ui.ButtonOptionWidget( {
25 new OO.ui.ButtonOptionWidget( {
29 new OO.ui.ButtonOptionWidget( {
33 new OO.ui.ButtonOptionWidget( {
38 } ).on( 'select', function ( item ) {
39 menuLayout.setMenuPosition( item.getData() );
42 label: 'Menu position',
46 showField = new OO.ui.FieldLayout(
47 new OO.ui.ToggleSwitchWidget( { value: true } ).on( 'change', function ( value ) {
48 menuLayout.toggleMenu( value );
55 menuPanel = new OO.ui.PanelLayout( { padded: true, expanded: true, scrollable: true } );
56 contentPanel = new OO.ui.PanelLayout( { padded: true, expanded: true, scrollable: true } );
58 menuLayout.$menu.append(
59 menuPanel.$element.append( 'Menu panel' )
61 menuLayout.$content.append(
62 contentPanel.$element.append(
63 positionField.$element,
68 this.$body.append( menuLayout.$element );
70 Demo.MenuDialog.prototype.getActionProcess = function ( action ) {
72 return new OO.ui.Process( function () {
73 this.close( { action: action } );
76 return Demo.MenuDialog.parent.prototype.getActionProcess.call( this, action );