////////////////////////////////////////////////////////////////// // FIELDS EDITOR MENUBARS Configure COMMANDS // Checks whether the control can be a child of the 'candidate parent' function __canBeChildOf(control, parent, _interactor) { if (!control || !_interactor) return false; var allowedControls = _interactor.getToolbarAllowedControls(parent); for (var k in allowedControls) { if ( ISA(control,allowedControls[k]) )return true; } return false; } function __isEnabled() { return ($ENV.contextElement.unit.isEnabled()); } $ENV.defineCommand({ id: '#NS[OPEN_TOOLBAR_EDITOR]', signal: 'MODAL("#URL[common.ToolbarEditor.htm]",null, true);', text: '#TEXT[XMIT_CMD_OPEN_TOOLBAR_EDITOR]', icon: '#URL[~skin:icons.toolbar16.gif]', disable: function(){ return !($ENV.contextElement.getProperty('showToolbar')); }, category: 'STANDARD' }); $ENV.defineCommand({ id: '#NS[BTN_UP]', signal: 'SELF->controlUp(1)', text: '#TEXT[XMIT_CMD_BTN_UP]', icon: '#URL[core.dev~skin:icons.up.gif]', category: 'STANDARD', disable: function (control){ if (!control) return true; if (! __isEnabled() ) return true; if (control && control.index <=0) return true; return false; } }); $ENV.defineCommand({ id: '#NS[BTN_DOWN]', signal: 'SELF->controlDown(1)', text: '#TEXT[XMIT_CMD_BTN_DOWN]', icon: '#URL[core.dev~skin:icons.down.gif]', category: 'STANDARD', disable: function (control){ if (!control) return true; if (! __isEnabled() ) return true; var parent = control.parent; var controls = parent && parent.getControls() || {}; var i = 0 ; for (var id in controls) i++; if (control && control.index == (i - 1)) return true; return false; } }); $ENV.defineCommand({ id: '#NS[TB_CONTROL_LEFT]', signal: 'SELF->controlLeft', text: '#TEXT[XMIT_CMD_CONTROL_LEFT]', icon: '#URL[dev~skin:icons.left.gif]', category: 'STANDARD', disable: function (control, _interactor, def){ if(!control) return true; if (! __isEnabled() ) return true; if (ISA(control.parent,'core.gml:Toolbar' )) return true; if (!__canBeChildOf(control, control.parent.parent, _interactor)) return true; return false; } }); $ENV.defineCommand({ id: '#NS[TB_CONTROL_RIGHT]', signal: 'SELF->controlRight', text: '#TEXT[XMIT_CMD_CONTROL_RIGHT]', icon: '#URL[dev~skin:icons.right.gif]', category: 'STANDARD', disable: function (control, _interactor, def){ if(!control) return true; if (! __isEnabled() ) return true; var parent = control.parent; if(!parent) return true; var childs = parent.getControls(); var prevControl = null; for (var id in childs){ if(childs[id].index == control.index - 1) { prevControl = childs[id]; break; } } if(!ISA(prevControl,'core.gml:ControlGroup')) return true; if (!__canBeChildOf(control, prevControl, _interactor)) return true; return false; } }); $ENV.defineCommand({ id: '#NS[ADD_BTN]', signal: 'SELF->addControl', text: '#TEXT[XMIT_CMD_ADD_BTN]', icon: '#URL[core.dev~skin:icons.plus.gif]', category: 'STANDARD', disable: function (control, _interactor, def){ if (! __isEnabled() ) return true; return false; } }); $ENV.defineCommand({ id: '#NS[REMOVE_BTN]', signal: 'SELF->removeControl', text: '#TEXT[XMIT_CMD_REMOVE_BTN]', icon: '#URL[dev~skin:icons.remove.gif]', category: 'STANDARD', disable: function (control){ if (!control) return true; if (! __isEnabled() ) return true; return false; } }); $ENV.defineCommand({ id: '#NS[BTN_TOP]', signal: 'SELF->controlUp(999)', text: '#TEXT[XMIT_CMD_MOVE_TO_TOP]', icon: '#URL[dev~skin:icons.move_to_top.gif]', category: 'STANDARD', disable: function (control, _interactor, def){ if(!control) return true; if (! __isEnabled() ) return true; if (control && control.index <=0) return true; var parent = control.parent; if (!parent || !ISA(parent,'core.gml:Toolbar' )) return true; return false; } }); $ENV.defineCommand({ id: '#NS[BTN_BOTTOM]', signal: 'SELF->controlDown(999)', text: '#TEXT[XMIT_CMD_MOVE_TO_BOTTOM]', icon: '#URL[dev~skin:icons.move_to_bottom.gif]', category: 'STANDARD', disable: function (control, _interactor, def){ if(!control) return true; if (! __isEnabled() ) return true; var parent = control.parent; if (!parent || !ISA(parent,'core.gml:Toolbar' )) return true; var controls = parent.getControls() || {}; var i = 0 ; for (var id in controls) i++; if (control && control.index == (i - 1)) return true; return false; } }); $ENV.defineCommand({ id: '#NS[CUT_TOOLBAR_CONTROL]', signal: 'SELF->cutControl', text: 'Cut Control', category: 'STANDARD', icon: '#URL[dev~skin:icons.cut.gif]', disable: function (control, _interactor, def){ if (!control) return true; return !$ENV.triggerEvent("canRemoveElement",control.parent,control,control.unit,"uicontrols","cutEvent"); }, textlabel: true }); $ENV.defineCommand({ id: '#NS[PASTE_TOOLBAR_CONTROL]', signal: 'SELF->pasteControl', text: 'Paste Control', category: 'STANDARD', icon: '#URL[dev~skin:icons.paste.gif]', disable: function (control, _interactor, def,_toolbar){ var cutControl = $ENV.model.getClipboard("control"); if (!cutControl) return true; return !$ENV.triggerEvent("canInsertElement",_toolbar,cutControl,cutControl.unit,"uicontrols","pasteEvent"); }, textlabel: true }); var toolbar = $ENV.defineMenubar('#NS[TOOLBAR_EDITOR_TOOLBAR]', 'STANDARD', '#TEXT[XMEN_STANDARD]', false); toolbar.append({button:'#NS[ADD_BTN]'}); toolbar.append({button:'#NS[REMOVE_BTN]'}); toolbar.append(); toolbar.append({button:'#NS[BTN_TOP]'}); toolbar.append({button:'#NS[BTN_UP]'}); toolbar.append(); toolbar.append({button:'#NS[BTN_DOWN]'}); toolbar.append({button:'#NS[BTN_BOTTOM]'}); toolbar.append(); toolbar.append({button:'#NS[TB_CONTROL_LEFT]'}); toolbar.append({button:'#NS[TB_CONTROL_RIGHT]'}); toolbar.append(); toolbar.append({button:'#NS[CUT_TOOLBAR_CONTROL]'}); toolbar.append({button:'#NS[PASTE_TOOLBAR_CONTROL]'}); toolbar.append();