diff --git a/bigbluebutton-client/branding/default/style/css/V2Theme.css b/bigbluebutton-client/branding/default/style/css/V2Theme.css index f9ef18c420143e19231789c9570b46be4d4d9f89..41fe87c6d38f8da597e390999d0f49dd63da7a3a 100755 --- a/bigbluebutton-client/branding/default/style/css/V2Theme.css +++ b/bigbluebutton-client/branding/default/style/css/V2Theme.css @@ -143,7 +143,7 @@ phonecomponents|MuteMeButton { .toolbarMainBox { backgroundColor : #FFFFFF; - paddingTop : 6; + paddingTop : 0; paddingBottom : 6; } @@ -156,7 +156,7 @@ phonecomponents|MuteMeButton { } .topBoxStyle { - paddingTop : 0; + paddingTop : 6; paddingBottom : 0; paddingLeft : 8; paddingRight : 8; @@ -429,7 +429,7 @@ mx|Button { borderAlphaUp : 1; borderAlphaOver : 1; borderAlphaDown : 1; - borderAlphaDisabled : 1; + borderAlphaDisabled : 0.25; borderThickness : 1; @@ -546,6 +546,10 @@ views|BrowserPermissionHelper { //------------------------------ */ +views|ClientStatusWindow { + horizontalAlign : right; +} + views|ClientStatusItemRenderer { iconSuccess : Embed(source="assets/swf/v2_skin.swf", symbol="Icon_Success"); iconWarning : Embed(source="assets/swf/v2_skin.swf", symbol="Icon_Warning"); @@ -636,7 +640,7 @@ chat|AddChatTabBox { } .chatOptionsLabel { - fontSize : 14; + fontSize : 14; } .chatMessageListStyle { @@ -911,6 +915,7 @@ views|LockSettings { */ views|MainApplicationShell { + borderStyle : none; paddingBottom : 0; verticalGap : 0; } @@ -1063,6 +1068,35 @@ views|NetworkStatsWindow { iconRefresh : Embed(source="assets/swf/v2_skin.swf", symbol="Icon_Refresh"); } +/* +//------------------------------ +// NumericStepper +//------------------------------ +*/ + +mx|NumericStepper { + /* Normal state */ + fillColorUp : #FFFFFF; + fillColorOver : #CDD4DB; + fillColorDown : #ACB2B7; + fillColorDisabled : #F0F2F6; + borderColorUp : #CDD4DB; + borderColorOver : #1070D7; + borderColorDown : #0A5EAC; + borderColorDisabled : #CDD4DB; + + /* Icon states */ + iconColor : #4E5A66; + iconColorOver : #1070D7; + iconColorDown : #4E5A66; + + borderThickness : 1; + + /* Skins */ + downArrowSkin : ClassReference("org.bigbluebutton.skins.NumericStepperDownSkin"); + upArrowSkin : ClassReference("org.bigbluebutton.skins.NumericStepperUpSkin"); +} + /* //------------------------------ // PopUpButton diff --git a/bigbluebutton-client/branding/default/style/css/org/bigbluebutton/skins/ButtonSkin.as b/bigbluebutton-client/branding/default/style/css/org/bigbluebutton/skins/ButtonSkin.as index 17869687a4fd46b750df112b26f0d5871aa91337..2449dea7b3006977b5b045564e4639a1ba51e657 100644 --- a/bigbluebutton-client/branding/default/style/css/org/bigbluebutton/skins/ButtonSkin.as +++ b/bigbluebutton-client/branding/default/style/css/org/bigbluebutton/skins/ButtonSkin.as @@ -22,24 +22,6 @@ package org.bigbluebutton.skins { public class ButtonSkin extends Border { - //-------------------------------------------------------------------------- - // - // Constructor - // - //-------------------------------------------------------------------------- - - /** - * Constructor. - * - * @langversion 3.0 - * @playerversion Flash 9 - * @playerversion AIR 1.1 - * @productversion Flex 3 - */ - public function ButtonSkin() { - super(); - } - //-------------------------------------------------------------------------- // // Overridden properties diff --git a/bigbluebutton-client/branding/default/style/css/org/bigbluebutton/skins/NumericStepperDownSkin.as b/bigbluebutton-client/branding/default/style/css/org/bigbluebutton/skins/NumericStepperDownSkin.as new file mode 100644 index 0000000000000000000000000000000000000000..6b0456bb1a53f86c1e8c5d9441cfeb33efef07a5 --- /dev/null +++ b/bigbluebutton-client/branding/default/style/css/org/bigbluebutton/skins/NumericStepperDownSkin.as @@ -0,0 +1,166 @@ +/** + * BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ + * + * Copyright (c) 2017 BigBlueButton Inc. and by respective authors (see below). + * + * This program is free software; you can redistribute it and/or modify it under the + * terms of the GNU Lesser General Public License as published by the Free Software + * Foundation; either version 3.0 of the License, or (at your option) any later + * version. + * + * BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License along + * with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. + * + */ + +//////////////////////////////////////////////////////////////////////////////// +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You under the Apache License, Version 2.0 +// (the "License"); you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//////////////////////////////////////////////////////////////////////////////// + +package org.bigbluebutton.skins { + import flash.display.Graphics; + + import mx.skins.Border; + + public class NumericStepperDownSkin extends Border { + + //-------------------------------------------------------------------------- + // + // Overridden properties + // + //-------------------------------------------------------------------------- + + //---------------------------------- + // measuredWidth + //---------------------------------- + + /** + * @private + */ + override public function get measuredWidth():Number { + return 19; + } + + //---------------------------------- + // measuredHeight + //---------------------------------- + + /** + * @private + */ + override public function get measuredHeight():Number { + return 11; + } + + //-------------------------------------------------------------------------- + // + // Overridden methods + // + //-------------------------------------------------------------------------- + + /** + * @private + */ + override protected function updateDisplayList(w:Number, h:Number):void { + super.updateDisplayList(w, h); + + var borderColorUp:uint = getStyle("borderColorUp"); + var borderColorOver:uint = getStyle("borderColorOver"); + var borderColorDown:uint = getStyle("borderColorDown"); + var borderColorDisabled:uint = getStyle("borderColorDisabled"); + + var borderThickness:uint = getStyle("borderThickness"); + + var fillColorUp:uint = getStyle("fillColorUp"); + var fillColorOver:uint = getStyle("fillColorOver"); + var fillColorDown:uint = getStyle("fillColorDown"); + var fillColorDisabled:uint = getStyle("fillColorDisabled"); + + // User-defined styles. + var arrowColor:uint = getStyle("iconColor"); + var arrowColorOver:uint = getStyle("iconColorOver"); + var arrowColorDown:uint = getStyle("iconColorDown"); + + var cornerRadius:Number = getStyle("cornerRadius"); + + var cr:Object = {tl: 0, tr: 0, bl: 0, br: cornerRadius}; + var cr1:Object = {tl: 0, tr: 0, bl: 0, br: Math.max(cornerRadius - 1, 0)}; + + // Draw the background and border. + var g:Graphics = graphics; + + g.clear(); + + switch (name) { + case "downArrowUpSkin": { + // border + drawRoundRect(0, 0, w, h, cr, borderColorUp, 1, null, null, null, {x: 1, y: 0, w: w - 2, h: h - 1, r: cr1}); + + // button fill + drawRoundRect(borderThickness, borderThickness, w - (borderThickness * 2), h - (borderThickness * 2), cr1, fillColorUp, 1); + + break; + } + + case "downArrowOverSkin": { + // border + drawRoundRect(0, 0, w, h, cr, borderColorOver, 1, null, null, null, {x: 1, y: 0, w: w - 2, h: h - 1, r: cr1}); + + // button fill + drawRoundRect(borderThickness, borderThickness, w - (borderThickness * 2), h - (borderThickness * 2), cr1, fillColorOver, 1, null); + + break; + } + + case "downArrowDownSkin": { + // border + drawRoundRect(0, 0, w, h, cr, borderColorDown, 1); + + // button fill + drawRoundRect(borderThickness, borderThickness, w - (borderThickness * 2), h - (borderThickness * 2), cr1, fillColorDown, 1); + + break; + } + + case "downArrowDisabledSkin": { + // border + drawRoundRect(0, 0, w, h, cr, borderColorDisabled, 0.5, null, null, null, {x: 1, y: 0, w: w - 2, h: h - 1, r: cr1}); + + // button fill + drawRoundRect(borderThickness, borderThickness, w - (borderThickness * 2), h - (borderThickness * 2), cr1, fillColorDisabled, 0.5, null); + + arrowColor = getStyle("disabledIconColor"); + break; + } + } + + // Draw the arrow. + g.beginFill(arrowColor); + g.moveTo(w / 2, h / 2 + 1.5); + g.lineTo(w / 2 - 3.5, h / 2 - 2.5); + g.lineTo(w / 2 + 3.5, h / 2 - 2.5); + g.lineTo(w / 2, h / 2 + 1.5); + g.endFill(); + } + } +} + diff --git a/bigbluebutton-client/branding/default/style/css/org/bigbluebutton/skins/NumericStepperUpSkin.as b/bigbluebutton-client/branding/default/style/css/org/bigbluebutton/skins/NumericStepperUpSkin.as new file mode 100644 index 0000000000000000000000000000000000000000..26f2938c3ddd4f7ecd68032017dafff338647ccd --- /dev/null +++ b/bigbluebutton-client/branding/default/style/css/org/bigbluebutton/skins/NumericStepperUpSkin.as @@ -0,0 +1,165 @@ +/** + * BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ + * + * Copyright (c) 2017 BigBlueButton Inc. and by respective authors (see below). + * + * This program is free software; you can redistribute it and/or modify it under the + * terms of the GNU Lesser General Public License as published by the Free Software + * Foundation; either version 3.0 of the License, or (at your option) any later + * version. + * + * BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License along + * with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. + * + */ + +//////////////////////////////////////////////////////////////////////////////// +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You under the Apache License, Version 2.0 +// (the "License"); you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//////////////////////////////////////////////////////////////////////////////// + +package org.bigbluebutton.skins { + import flash.display.Graphics; + + import mx.skins.Border; + + public class NumericStepperUpSkin extends Border { + + //-------------------------------------------------------------------------- + // + // Overridden properties + // + //-------------------------------------------------------------------------- + + //---------------------------------- + // measuredWidth + //---------------------------------- + + /** + * @private + */ + override public function get measuredWidth():Number { + return 19; + } + + //---------------------------------- + // measuredHeight + //---------------------------------- + + /** + * @private + */ + override public function get measuredHeight():Number { + return 11; + } + + //-------------------------------------------------------------------------- + // + // Overridden methods + // + //-------------------------------------------------------------------------- + + /** + * @private + */ + override protected function updateDisplayList(w:Number, h:Number):void { + super.updateDisplayList(w, h); + + var borderColorUp:uint = getStyle("borderColorUp"); + var borderColorOver:uint = getStyle("borderColorOver"); + var borderColorDown:uint = getStyle("borderColorDown"); + var borderColorDisabled:uint = getStyle("borderColorDisabled"); + + var borderThickness:uint = getStyle("borderThickness"); + + var fillColorUp:uint = getStyle("fillColorUp"); + var fillColorOver:uint = getStyle("fillColorOver"); + var fillColorDown:uint = getStyle("fillColorDown"); + var fillColorDisabled:uint = getStyle("fillColorDisabled"); + + // User-defined styles. + var arrowColor:uint = getStyle("iconColor"); + var arrowColorOver:uint = getStyle("iconColorOver"); + var arrowColorDown:uint = getStyle("iconColorDown"); + + var cornerRadius:Number = getStyle("cornerRadius"); + + var cr:Object = {tl: 0, tr: cornerRadius, bl: 0, br: 0}; + var cr1:Object = {tl: 0, tr: Math.max(cornerRadius - 1, 0), bl: 0, br: 0}; + + // Draw the background and border. + var g:Graphics = graphics; + + g.clear(); + + switch (name) { + case "upArrowUpSkin": { + // border + drawRoundRect(0, 0, w, h, cr, borderColorUp, 1, null, null, null, {x: 1, y: 1, w: w - 2, h: h - 2, r: cr1}); + + // button fill + drawRoundRect(borderThickness, borderThickness, w - (borderThickness * 2), h - (borderThickness * 2), cr1, fillColorUp, 1); + + break; + } + + case "upArrowOverSkin": { + // border + drawRoundRect(0, 0, w, h, cr, borderColorOver, 1, null, null, null, {x: 1, y: 1, w: w - 2, h: h - 2, r: cr1}); + + // button fill + drawRoundRect(borderThickness, borderThickness, w - (borderThickness * 2), h - (borderThickness * 2), cr1, fillColorOver, 1, null); + + break; + } + + case "upArrowDownSkin": { + // border + drawRoundRect(0, 0, w, h, cr, borderColorDown, 1); + + // button fill + drawRoundRect(borderThickness, borderThickness, w - (borderThickness * 2), h - (borderThickness * 2), cr1, fillColorDown, 1); + + break; + } + + case "upArrowDisabledSkin": { + // border + drawRoundRect(0, 0, w, h, cr, borderColorDisabled, 0.5, null, null, null, {x: 1, y: 1, w: w - 2, h: h - 2, r: cr1}); + + // button fill + drawRoundRect(borderThickness, borderThickness, w - (borderThickness * 2), h - (borderThickness * 2), cr1, fillColorDisabled, 0.5, null); + + arrowColor = getStyle("disabledIconColor"); + break; + } + } + + // Draw the arrow. + g.beginFill(arrowColor); + g.moveTo(w / 2, h / 2 - 2.5); + g.lineTo(w / 2 - 3.5, h / 2 + 1.5); + g.lineTo(w / 2 + 3.5, h / 2 + 1.5); + g.lineTo(w / 2, h / 2 - 2.5); + g.endFill(); + } + } +} diff --git a/bigbluebutton-client/branding/default/style/css/org/bigbluebutton/skins/TabSkin.as b/bigbluebutton-client/branding/default/style/css/org/bigbluebutton/skins/TabSkin.as index d98beece30ff2ee0009cc90d7515e9c27ec1c870..4393939c032e2245e73f4ad1b068fabe20752483 100644 --- a/bigbluebutton-client/branding/default/style/css/org/bigbluebutton/skins/TabSkin.as +++ b/bigbluebutton-client/branding/default/style/css/org/bigbluebutton/skins/TabSkin.as @@ -40,7 +40,7 @@ package org.bigbluebutton.skins { import flash.display.DisplayObjectContainer; import flash.utils.describeType; import flash.utils.getQualifiedClassName; - + import mx.core.EdgeMetrics; import mx.core.UIComponent; import mx.skins.Border; @@ -48,17 +48,6 @@ package org.bigbluebutton.skins { public class TabSkin extends Border { - //-------------------------------------------------------------------------- - // - // Class variables - // - //-------------------------------------------------------------------------- - - /** - * @private - */ - private static var cache:Object = {}; - //-------------------------------------------------------------------------- // // Overridden properties diff --git a/bigbluebutton-client/locale/en_US/bbbResources.properties b/bigbluebutton-client/locale/en_US/bbbResources.properties index 9c5f4dcafa3e831a303720b9b27d0d14c4fdeb4c..ff717853fc9230d4be7d3d8e556f2497e85b66ff 100755 --- a/bigbluebutton-client/locale/en_US/bbbResources.properties +++ b/bigbluebutton-client/locale/en_US/bbbResources.properties @@ -246,7 +246,7 @@ bbb.presentation.fitToWidth.toolTip = Fit Presentation To Width bbb.presentation.fitToPage.toolTip = Fit Presentation To Page bbb.presentation.uploadPresBtn.toolTip = Upload Presentation bbb.presentation.downloadPresBtn.toolTip = Download Presentations -bbb.presentation.poll.response = Response to poll +bbb.presentation.poll.response = Respond to poll bbb.presentation.backBtn.toolTip = Previous slide bbb.presentation.btnSlideNum.accessibilityName = Slide {0} of {1} bbb.presentation.btnSlideNum.toolTip = Select a slide @@ -449,6 +449,7 @@ bbb.toolbar.deskshare.toolTip.stop = Stop Sharing Your Screen bbb.toolbar.sharednotes.toolTip = Open Shared Notes bbb.toolbar.video.toolTip.start = Share Your Webcam bbb.toolbar.video.toolTip.stop = Stop Sharing Your Webcam +bbb.layout.addButton.label = Add bbb.layout.addButton.toolTip = Add the custom layout to the list bbb.layout.overwriteLayoutName.title = Overwrite layout bbb.layout.overwriteLayoutName.text = Name already in use. Do you want to overwrite? @@ -462,6 +463,8 @@ bbb.layout.combo.custom = * Custom layout bbb.layout.combo.customName = Custom layout bbb.layout.combo.remote = Remote bbb.layout.window.name = Layout name +bbb.layout.window.close.tooltip = Close +bbb.layout.window.close.accessibilityName = Close add new layout window bbb.layout.save.complete = Layouts were successfully saved bbb.layout.save.ioerror = Layouts were not saved. Try saving again. bbb.layout.load.complete = Layouts were successfully loaded diff --git a/bigbluebutton-client/src/org/bigbluebutton/common/IKeyboardClose.as b/bigbluebutton-client/src/org/bigbluebutton/common/IKeyboardClose.as new file mode 100644 index 0000000000000000000000000000000000000000..56fc919a237772830753b559600bdd6ae7607ef0 --- /dev/null +++ b/bigbluebutton-client/src/org/bigbluebutton/common/IKeyboardClose.as @@ -0,0 +1,26 @@ +/** + * BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ + * + * Copyright (c) 2017 BigBlueButton Inc. and by respective authors (see below). + * + * This program is free software; you can redistribute it and/or modify it under the + * terms of the GNU Lesser General Public License as published by the Free Software + * Foundation; either version 3.0 of the License, or (at your option) any later + * version. + * + * BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License along + * with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. + * + */ +package org.bigbluebutton.common { + + /** + * Add it to popup classes to add the Keyboard.ESCAPE close behaviour + */ + public interface IKeyboardClose { + } +} diff --git a/bigbluebutton-client/src/org/bigbluebutton/core/PopUpUtil.as b/bigbluebutton-client/src/org/bigbluebutton/core/PopUpUtil.as index d500bd937b60d2e196c7ac84e265230a9745d580..af268ec346ac0700cafc828d1b0ae9c56fa964de 100644 --- a/bigbluebutton-client/src/org/bigbluebutton/core/PopUpUtil.as +++ b/bigbluebutton-client/src/org/bigbluebutton/core/PopUpUtil.as @@ -17,76 +17,90 @@ * */ package org.bigbluebutton.core { - import flash.display.DisplayObject; - import flash.utils.Dictionary; - import flash.utils.getQualifiedClassName; + import flash.display.DisplayObject; + import flash.events.KeyboardEvent; + import flash.ui.Keyboard; + import flash.utils.Dictionary; + import flash.utils.getQualifiedClassName; - import mx.core.FlexGlobals; - import mx.core.IChildList; - import mx.core.IFlexDisplayObject; - import mx.core.IUIComponent; - import mx.managers.PopUpManager; - import mx.managers.SystemManager; + import mx.core.FlexGlobals; + import mx.core.IChildList; + import mx.core.IFlexDisplayObject; + import mx.core.IUIComponent; + import mx.managers.PopUpManager; + import mx.managers.SystemManager; - import org.as3commons.logging.api.ILogger; - import org.as3commons.logging.api.getClassLogger; + import org.as3commons.logging.api.ILogger; + import org.as3commons.logging.api.getClassLogger; + import org.bigbluebutton.common.IKeyboardClose; - public final class PopUpUtil { + public final class PopUpUtil { - private static const LOGGER:ILogger = getClassLogger(PopUpUtil); + private static const LOGGER:ILogger = getClassLogger(PopUpUtil); - private static var popUpDict:Dictionary = new Dictionary(true); + private static var popUpDict:Dictionary = new Dictionary(true); - public static function createNonModelPopUp(parent:DisplayObject, className:Class, center:Boolean = true):IFlexDisplayObject { - if (!checkPopUpExists(className)) { - return addPopUpToStage(parent, className, false, center); - } - return null; - } + public static function createNonModalPopUp(parent:DisplayObject, className:Class, center:Boolean = true):IFlexDisplayObject { + if (!checkPopUpExists(className)) { + return addPopUpToStage(parent, className, false, center); + } + return null; + } - public static function createModalPopUp(parent:DisplayObject, className:Class, center:Boolean = true):IFlexDisplayObject { - if (!checkPopUpExists(className)) { - return addPopUpToStage(parent, className, true, center); - } - return null; - } + public static function createModalPopUp(parent:DisplayObject, className:Class, center:Boolean = true):IFlexDisplayObject { + if (!checkPopUpExists(className)) { + return addPopUpToStage(parent, className, true, center); + } + return null; + } - public static function removePopUp(classOrInstance:*):void { - var fqcn:String = getQualifiedClassName(classOrInstance); - if (popUpDict[fqcn] != undefined) { - PopUpManager.removePopUp(popUpDict[fqcn]) - delete popUpDict[fqcn]; - LOGGER.debug("Removed PopUp with type [{0}]", [fqcn]); - } - } + public static function removePopUp(classOrInstance:*):void { + var fqcn:String = getQualifiedClassName(classOrInstance); + if (popUpDict[fqcn] != undefined) { + PopUpManager.removePopUp(popUpDict[fqcn]) + delete popUpDict[fqcn]; + LOGGER.debug("Removed PopUp with type [{0}]", [fqcn]); + } + } - private static function checkPopUpExists(className:Class):Boolean { - LOGGER.debug("Checking if [{0}] exists as a PopUp", [className]); - var systemManager:SystemManager = FlexGlobals.topLevelApplication.systemManager; + private static function checkPopUpExists(className:Class):Boolean { + LOGGER.debug("Checking if [{0}] exists as a PopUp", [className]); + var systemManager:SystemManager = FlexGlobals.topLevelApplication.systemManager; - var childList:IChildList = systemManager.rawChildren; - for (var i:int = childList.numChildren - 1; i >= 0; i--) { - var childObject:IUIComponent = childList.getChildAt(i) as IUIComponent; - // PopUp already exists - if (childObject is className && childObject.isPopUp) { - LOGGER.debug("PopUp with type [{0}] found", [className]); - return true; - } - } - LOGGER.debug("No PopUp with type [{0}] not found", [className]); - return false; - } + var childList:IChildList = systemManager.rawChildren; + for (var i:int = childList.numChildren - 1; i >= 0; i--) { + var childObject:IUIComponent = childList.getChildAt(i) as IUIComponent; + // PopUp already exists + if (childObject is className && childObject.isPopUp) { + LOGGER.debug("PopUp with type [{0}] found", [className]); + return true; + } + } + LOGGER.debug("No PopUp with type [{0}] not found", [className]); + return false; + } - private static function addPopUpToStage(parent:DisplayObject, className:Class, modal:Boolean = false, center:Boolean = true):IFlexDisplayObject { - var popUp:IFlexDisplayObject = PopUpManager.createPopUp(parent, className, modal); - if (center) { - PopUpManager.centerPopUp(popUp) - } - popUpDict[getQualifiedClassName(className)] = popUp; + private static function addPopUpToStage(parent:DisplayObject, className:Class, modal:Boolean = false, center:Boolean = true):IFlexDisplayObject { + var popUp:IFlexDisplayObject = PopUpManager.createPopUp(parent, className, modal); + if (center) { + PopUpManager.centerPopUp(popUp) + } + popUpDict[getQualifiedClassName(className)] = popUp; - LOGGER.debug("Created PopUp with type [{0}]", [className]); + if (popUp is IKeyboardClose) { + popUp.addEventListener(KeyboardEvent.KEY_DOWN, escapeKeyDownHandler); + } - return popUp; - } - } + LOGGER.debug("Created PopUp with type [{0}]", [className]); + + return popUp; + } + + private static function escapeKeyDownHandler(event:KeyboardEvent):void { + if (event.charCode == Keyboard.ESCAPE) { + event.currentTarget.removeEventListener(KeyboardEvent.KEY_DOWN, escapeKeyDownHandler); + removePopUp(event.currentTarget); + } + } + } } diff --git a/bigbluebutton-client/src/org/bigbluebutton/main/views/AudioSelectionWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/main/views/AudioSelectionWindow.mxml index efe6d4e6b27c7f5d498f976a2a125f8d2058d969..96342523040b0e904a5674908f3b2cc516ce2b47 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/main/views/AudioSelectionWindow.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/main/views/AudioSelectionWindow.mxml @@ -23,9 +23,10 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mate="http://mate.asfusion.com/" xmlns:common="org.bigbluebutton.common.*" + implements="org.bigbluebutton.common.IKeyboardClose" + show="this.setFocus()" initialize="init()" layout="absolute" - close="onCancelClicked()" verticalScrollPolicy="off" horizontalScrollPolicy="off" showCloseButton="false"> @@ -103,7 +104,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. } private function onCancelClicked():void { - LOGGER.debug("AudioSelectionWindow - Cancel clicked"); + LOGGER.debug("AudioSelectionWindow - Close clicked"); var dispatcher:Dispatcher = new Dispatcher(); dispatcher.dispatchEvent(new AudioSelectionWindowEvent(AudioSelectionWindowEvent.CLOSED_AUDIO_SELECTION)); diff --git a/bigbluebutton-client/src/org/bigbluebutton/main/views/BBBSettings.mxml b/bigbluebutton-client/src/org/bigbluebutton/main/views/BBBSettings.mxml index ef9fc85597cad67749505ce61f05ce6a43d2827e..84c386eac9eba1eb47d02d8ab10920f04eb4ba2b 100644 --- a/bigbluebutton-client/src/org/bigbluebutton/main/views/BBBSettings.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/main/views/BBBSettings.mxml @@ -3,6 +3,8 @@ xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:common="org.bigbluebutton.common.*" xmlns:mate="http://mate.asfusion.com/" + implements="org.bigbluebutton.common.IKeyboardClose" + show="this.setFocus()" layout="vertical" horizontalAlign="center" showCloseButton="false" @@ -14,6 +16,7 @@ import mx.core.UIComponent; import mx.managers.PopUpManager; + import org.bigbluebutton.common.IKeyboardClose; import org.bigbluebutton.main.events.BBBEvent; import org.bigbluebutton.util.i18n.ResourceUtil; diff --git a/bigbluebutton-client/src/org/bigbluebutton/main/views/CameraDisplaySettings.mxml b/bigbluebutton-client/src/org/bigbluebutton/main/views/CameraDisplaySettings.mxml index 3aaea09d0cbe9c5c11aeee9bdf09c2b05d72ea24..5391b2262dcc46be17f37c4d96868eee1e9ed47c 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/main/views/CameraDisplaySettings.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/main/views/CameraDisplaySettings.mxml @@ -25,7 +25,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. layout="absolute" verticalScrollPolicy="off" horizontalScrollPolicy="off" width="630" height="450" creationComplete="onCreationComplete()" styleName="cameraDisplaySettingsWindowStyle" - showCloseButton="false" close="onCancelClicked()" keyDown="handleKeyDown(event)"> + showCloseButton="false" keyDown="handleKeyDown(event)"> <fx:Script> <![CDATA[ import com.asfusion.mate.events.Dispatcher; @@ -34,7 +34,6 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. import mx.collections.ArrayCollection; import mx.collections.ArrayList; - import mx.events.CloseEvent; import org.bigbluebutton.common.Media; import org.bigbluebutton.core.BBB; @@ -188,8 +187,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. private function handleKeyDown(event:KeyboardEvent):void { if (event.charCode == Keyboard.ESCAPE) { - disableCamera(); - this.dispatchEvent(new CloseEvent(CloseEvent.CLOSE)); + onCancelClicked(); } } diff --git a/bigbluebutton-client/src/org/bigbluebutton/main/views/ClientStatusWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/main/views/ClientStatusWindow.mxml index f58613d45a7d53a9ed1de0f8a9bf43299a87f7c7..4904357c7ec4831dd8593436d9677eabcb2cf7e6 100644 --- a/bigbluebutton-client/src/org/bigbluebutton/main/views/ClientStatusWindow.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/main/views/ClientStatusWindow.mxml @@ -23,12 +23,14 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:chat="org.bigbluebutton.modules.chat.views.*" width="500" height="400" + implements="org.bigbluebutton.common.IKeyboardClose" + show="this.setFocus()" horizontalScrollPolicy="off" title="{ResourceUtil.getInstance().getString('bbb.clientstatus.title')}" - horizontalAlign="center" creationComplete="onCreationComplete();"> <fx:Script> <![CDATA[ + import org.bigbluebutton.common.IKeyboardClose; import org.bigbluebutton.core.PopUpUtil; import org.bigbluebutton.util.i18n.ResourceUtil; @@ -45,6 +47,6 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. } ]]> </fx:Script> - <chat:AdvancedList id="messageList" width="100%" dragEnabled="false" variableRowHeight="true" wordWrap="true" alternatingItemColors="[#EFEFEF, #FEFEFE]" itemRenderer="org.bigbluebutton.main.views.ClientStatusItemRenderer"/> + <chat:AdvancedList id="messageList" width="100%" height="100%" dragEnabled="false" variableRowHeight="true" wordWrap="true" itemRenderer="org.bigbluebutton.main.views.ClientStatusItemRenderer"/> <mx:Button id="closeBtn" label="{ResourceUtil.getInstance().getString('bbb.clientstatus.close')}" click="handleCloseButtonClick();" /> </mx:TitleWindow> diff --git a/bigbluebutton-client/src/org/bigbluebutton/main/views/FlashMicSettings.mxml b/bigbluebutton-client/src/org/bigbluebutton/main/views/FlashMicSettings.mxml index f9b180daa6514a71a2a836310ac903babb6ab473..c5fab8fe03f26bd63ce141e2f284558bc648ecf8 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/main/views/FlashMicSettings.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/main/views/FlashMicSettings.mxml @@ -25,8 +25,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. width="600" height="390" verticalScrollPolicy="off" creationComplete="onCreationComplete()" - showCloseButton="false" - close="onCancelClicked()" + showCloseButton="false" keyDown="handleKeyDown(event)"> <fx:Declarations> @@ -44,7 +43,6 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. import flash.ui.Keyboard; import mx.controls.sliderClasses.Slider; - import mx.events.CloseEvent; import mx.events.SliderEvent; import org.as3commons.logging.api.ILogger; @@ -184,7 +182,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. // Added by Chad to enable closing the window without clicking the X private function handleKeyDown(event:KeyboardEvent):void { if (event.charCode == Keyboard.ESCAPE) { - this.dispatchEvent(new CloseEvent(CloseEvent.CLOSE)); + onCancelClicked(); } } diff --git a/bigbluebutton-client/src/org/bigbluebutton/main/views/GuestWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/main/views/GuestWindow.mxml index 21262cec7d80b38a20cdd703782b10e852d7d63b..21601df606c3966582ae7d7fe52facfb264d3fce 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/main/views/GuestWindow.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/main/views/GuestWindow.mxml @@ -128,7 +128,6 @@ $Id: $ public function closeWindow():void { this.visible = false; PopUpManager.removePopUp(this); - //dispatchEvent(new CloseEvent(CloseEvent.CLOSE)); } ]]> diff --git a/bigbluebutton-client/src/org/bigbluebutton/main/views/LockSettings.mxml b/bigbluebutton-client/src/org/bigbluebutton/main/views/LockSettings.mxml index cba5732e212519d275465df4cc0a217e15491978..82da5cbe347b1d786a9beebd310ba7221e93c9d4 100644 --- a/bigbluebutton-client/src/org/bigbluebutton/main/views/LockSettings.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/main/views/LockSettings.mxml @@ -21,15 +21,14 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. <mx:TitleWindow xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mate="http://mate.asfusion.com/" + implements="org.bigbluebutton.common.IKeyboardClose" + show="this.setFocus()" xmlns:common="org.bigbluebutton.common.*" minWidth="340" showCloseButton="false" - close="onCancelClicked()" keyDown="handleKeyDown(event)"> <fx:Script> <![CDATA[ - import mx.events.CloseEvent; - import org.bigbluebutton.core.PopUpUtil; import org.bigbluebutton.core.events.LockControlEvent; import org.bigbluebutton.core.vo.LockSettingsVO; @@ -49,7 +48,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. private function handleKeyDown(event:KeyboardEvent):void { if (event.charCode == Keyboard.ESCAPE) { - this.dispatchEvent(new CloseEvent(CloseEvent.CLOSE)); + onCancelClicked(); } } diff --git a/bigbluebutton-client/src/org/bigbluebutton/main/views/LogoutWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/main/views/LogoutWindow.mxml index 1d7dfdbee6996145fda94d36b0a60e2830c676f0..7fbcafb862f8ca76e7c293db655370d10d20caa7 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/main/views/LogoutWindow.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/main/views/LogoutWindow.mxml @@ -22,6 +22,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. <mx:TitleWindow xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mate="http://mate.asfusion.com/" + implements="org.bigbluebutton.common.IKeyboardClose" verticalScrollPolicy="off" horizontalScrollPolicy="off" horizontalAlign="center" diff --git a/bigbluebutton-client/src/org/bigbluebutton/main/views/MainApplicationShell.mxml b/bigbluebutton-client/src/org/bigbluebutton/main/views/MainApplicationShell.mxml index f868abcf1af476c8cb523ddb8346c90bac90f4cc..b4af325d646e1db8de59c2fb4bd05a5c0f69306a 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/main/views/MainApplicationShell.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/main/views/MainApplicationShell.mxml @@ -606,7 +606,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. } private function wrongLocaleVersion():void { - var localeWindow:OldLocaleWarnWindow = PopUpUtil.createNonModelPopUp(mdiCanvas, OldLocaleWarnWindow, false) as OldLocaleWarnWindow; + var localeWindow:OldLocaleWarnWindow = PopUpUtil.createNonModalPopUp(mdiCanvas, OldLocaleWarnWindow, false) as OldLocaleWarnWindow; if (localeWindow) { var point1:Point = new Point(); // Calculate position of TitleWindow in Application's coordinates. @@ -671,7 +671,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. } private function showbrowserPermissionHelper() : void { - var browserPermissionHelper : BrowserPermissionHelper = PopUpUtil.createNonModelPopUp(mdiCanvas, BrowserPermissionHelper, false) as BrowserPermissionHelper; + var browserPermissionHelper : BrowserPermissionHelper = PopUpUtil.createNonModalPopUp(mdiCanvas, BrowserPermissionHelper, false) as BrowserPermissionHelper; if (browserPermissionHelper) { browserPermissionHelper.currentState = "chromeCam"; browserPermissionHelper.x = 20; diff --git a/bigbluebutton-client/src/org/bigbluebutton/main/views/MainToolbar.mxml b/bigbluebutton-client/src/org/bigbluebutton/main/views/MainToolbar.mxml index f939574e9649e32d20de1b5da79741da5641a9ca..4c89be6da6d21a1ec2a0dab11ad0df8436ef0e06 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/main/views/MainToolbar.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/main/views/MainToolbar.mxml @@ -75,6 +75,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. import org.bigbluebutton.common.events.ToolbarButtonEvent; import org.bigbluebutton.core.BBB; import org.bigbluebutton.core.Options; + import org.bigbluebutton.core.PopUpUtil; import org.bigbluebutton.core.TimerUtil; import org.bigbluebutton.core.UsersUtil; import org.bigbluebutton.core.events.MeetingTimeRemainingEvent; @@ -300,14 +301,11 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. private function confirmLogout():void { if (toolbarOptions.confirmLogout) { - var logoutWindow:LogoutWindow; - logoutWindow = LogoutWindow(PopUpManager.createPopUp(FlexGlobals.topLevelApplication as DisplayObject, LogoutWindow, true)); + var logoutWindow:LogoutWindow = PopUpUtil.createModalPopUp(FlexGlobals.topLevelApplication as DisplayObject, LogoutWindow, true) as LogoutWindow; var newX:Number = this.width - logoutWindow.width - 5; var newY:Number = btnLogout.y + btnLogout.height + 5; - PopUpManager.centerPopUp(logoutWindow); - logoutWindow.x = newX; logoutWindow.y = newY; } else { @@ -517,8 +515,9 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. } private function onSettingsButtonClick():void { - settingsPopup = BBBSettings(PopUpManager.createPopUp(this.parent, BBBSettings, true)); + settingsPopup = PopUpUtil.createModalPopUp(this.parent, BBBSettings, true) as BBBSettings; settingsPopup.pushComponents(settingsComponents); + PopUpManager.centerPopUp(settingsPopup); } private function refreshRole(e:ChangeMyRole):void { diff --git a/bigbluebutton-client/src/org/bigbluebutton/main/views/WebRTCEchoTest.mxml b/bigbluebutton-client/src/org/bigbluebutton/main/views/WebRTCEchoTest.mxml index 87f69ff8a22bba353570f058119c8a8bbf408a83..2e31a4454a1a2f797926061f4603f674905f85b6 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/main/views/WebRTCEchoTest.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/main/views/WebRTCEchoTest.mxml @@ -24,8 +24,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. xmlns:common="org.bigbluebutton.common.*" width="600" height="380" creationComplete="onCreationComplete()" - showCloseButton="false" - close="onCancelClicked()"> + showCloseButton="false"> <fx:Declarations> <mate:Listener type="{WebRTCEchoTestStartedEvent.WEBRTC_ECHO_TEST_STARTED}" method="handleWebRTCEchoTestStartedEvent" /> diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/AddChatTabBox.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/AddChatTabBox.mxml index 7887fc9f9e9208dac8349da3567caefee201f741..70155be04396be5833ed5606a65963b35a2c3003 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/AddChatTabBox.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/AddChatTabBox.mxml @@ -199,7 +199,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. <common:TabIndexer id="tabIndexer" startIndex="1" tabIndices="{[usersList, cmbFontSize, chatNoiseCheckBox, saveBtn, copyBtn, clearBtn]}"/> </fx:Declarations> - <mx:Label id="lblSelect" styleName="chatOptionsLabel" + <common:AdvancedLabel id="lblSelect" styleName="chatOptionsLabel" width="100%" text="{ResourceUtil.getInstance().getString('bbb.chat.privateChatSelect')}" visible="{chatOptions.privateEnabled}" includeInLayout="{chatOptions.privateEnabled}"/> <mx:List id="usersList" height="50%" width="100%" dataProvider="{users}" dragEnabled="false" @@ -210,7 +210,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. keyDown="onUserListKeyDown(event)" toolTip="{ResourceUtil.getInstance().getString('bbb.chat.usersList.toolTip')}" accessibilityName="{ResourceUtil.getInstance().getString('bbb.chat.usersList.accessibilityName')}"/> - <mx:Label styleName="chatOptionsLabel" text="{ResourceUtil.getInstance().getString('bbb.chat.chatOptions')}" /> + <mx:Label styleName="chatOptionsLabel" width="100%" fontWeight="bold" text="{ResourceUtil.getInstance().getString('bbb.chat.chatOptions')}" /> <mx:HBox width="100%"> <mx:Label styleName="chatOptionsLabel" text="{ResourceUtil.getInstance().getString('bbb.chat.fontSize')}" width="100%"/> <mx:ComboBox width="60" id="cmbFontSize" dataProvider="{fontSizes}" change="changeFontSize()" diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/layout/managers/LayoutManager.as b/bigbluebutton-client/src/org/bigbluebutton/modules/layout/managers/LayoutManager.as index 1cc0824e14012f022f9d6ea54964c9a51be4948b..8789bd413f8f2be157101797fdc91088fa810d0b 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/layout/managers/LayoutManager.as +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/layout/managers/LayoutManager.as @@ -33,7 +33,6 @@ package org.bigbluebutton.modules.layout.managers import mx.events.CloseEvent; import mx.events.EffectEvent; import mx.events.ResizeEvent; - import mx.managers.PopUpManager; import flexlib.mdi.containers.MDICanvas; import flexlib.mdi.containers.MDIWindow; @@ -43,6 +42,7 @@ package org.bigbluebutton.modules.layout.managers import org.as3commons.logging.api.getClassLogger; import org.bigbluebutton.common.CustomMdiWindow; import org.bigbluebutton.core.Options; + import org.bigbluebutton.core.PopUpUtil; import org.bigbluebutton.core.UsersUtil; import org.bigbluebutton.core.events.SwitchedLayoutEvent; import org.bigbluebutton.core.model.LiveMeeting; @@ -130,9 +130,8 @@ package org.bigbluebutton.modules.layout.managers public function alertSaveCurrentLayoutFile(e:CloseEvent):void { // Check to see if the YES button was pressed. if (e.detail==Alert.YES) { - var layoutNameWindow:CustomLayoutNameWindow = PopUpManager.createPopUp(FlexGlobals.topLevelApplication as DisplayObject, CustomLayoutNameWindow, true) as CustomLayoutNameWindow; + var layoutNameWindow:CustomLayoutNameWindow = PopUpUtil.createModalPopUp(FlexGlobals.topLevelApplication as DisplayObject, CustomLayoutNameWindow, true) as CustomLayoutNameWindow; layoutNameWindow.savingForFileDownload = true; - PopUpManager.centerPopUp(layoutNameWindow); } else if (e.detail==Alert.NO){ saveLayoutsWindow(); } diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/layout/views/AddButton.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/layout/views/AddButton.mxml index 8379e718a56b126b79eec8b8248fa383700bd320..94a959779e4f7ca7d1b649817e04fec1db06c40b 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/layout/views/AddButton.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/layout/views/AddButton.mxml @@ -34,9 +34,8 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. import flash.events.Event; import mx.core.FlexGlobals; - import mx.core.IFlexDisplayObject; - import mx.managers.PopUpManager; + import org.bigbluebutton.core.PopUpUtil; import org.bigbluebutton.core.UsersUtil; import org.bigbluebutton.util.i18n.ResourceUtil; @@ -46,8 +45,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. } private function onClick(e:Event):void { - var layoutNameWindow:IFlexDisplayObject = PopUpManager.createPopUp(FlexGlobals.topLevelApplication as DisplayObject, CustomLayoutNameWindow, true); - PopUpManager.centerPopUp(layoutNameWindow); + PopUpUtil.createModalPopUp(FlexGlobals.topLevelApplication as DisplayObject, CustomLayoutNameWindow, true); } public function refreshRole(amIModerator:Boolean):void { diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/layout/views/CustomLayoutNameWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/layout/views/CustomLayoutNameWindow.mxml index 0a76cea90ca0fd8806c1a47e165005325eee0815..fb9c77872605c83fadc7b9947fa86721ac9d0878 100644 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/layout/views/CustomLayoutNameWindow.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/layout/views/CustomLayoutNameWindow.mxml @@ -22,14 +22,15 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. <mx:TitleWindow xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mate="http://mate.asfusion.com/" + xmlns:common="org.bigbluebutton.common.*" + implements="org.bigbluebutton.common.IKeyboardClose" verticalScrollPolicy="off" horizontalScrollPolicy="off" horizontalAlign="center" - showCloseButton="true" - close="onCancelClicked()" + layout="absolute" + showCloseButton="false" creationComplete="onCreationComplete()" - width="250" - title="{ResourceUtil.getInstance().getString('bbb.layout.window.name')}"> + width="280"> <fx:Declarations> <mate:Listener type="{LayoutNameInUseEvent.LAYOUT_NAME_IN_USE_EVENT}" method="handleLayoutNameInUse"/> @@ -37,13 +38,17 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. <fx:Script> <![CDATA[ - import com.asfusion.mate.events.Dispatcher; - - import mx.managers.PopUpManager; - - import org.bigbluebutton.modules.layout.events.LayoutEvent; - import org.bigbluebutton.modules.layout.events.LayoutNameInUseEvent; - import org.bigbluebutton.util.i18n.ResourceUtil; + import com.asfusion.mate.events.Dispatcher; + + import mx.managers.PopUpManager; + + import org.as3commons.logging.api.ILogger; + import org.as3commons.logging.api.getClassLogger; + import org.bigbluebutton.modules.layout.events.LayoutEvent; + import org.bigbluebutton.modules.layout.events.LayoutNameInUseEvent; + import org.bigbluebutton.util.i18n.ResourceUtil; + + private static const LOGGER:ILogger = getClassLogger(CustomLayoutNameWindow); public var savingForFileDownload:Boolean = false; @@ -65,7 +70,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. savingForFileDownload = false; } } else { - trace("The name is already in use, waiting for overwrite command or rename"); + LOGGER.debug("The name is already in use, waiting for overwrite command or rename"); } } @@ -79,8 +84,23 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. ]]> </fx:Script> - <mx:HBox width="100%" height="100%" horizontalAlign="center" verticalAlign="middle"> - <mx:TextInput id="textInput" maxChars="140" width="100%" text="{ResourceUtil.getInstance().getString('bbb.layout.combo.customName')}" enter="addButton_clickHandler()"/> - <mx:Button id="addButton" click="addButton_clickHandler()" enabled="{textInput.text.length > 0}" styleName="addLayoutButtonStyle" toolTip="{ResourceUtil.getInstance().getString('bbb.layout.addButton.toolTip')}"/> - </mx:HBox> + <mx:VBox width="100%" + height="100%" + paddingTop="5" + horizontalAlign="center"> + <common:AdvancedLabel text="{ResourceUtil.getInstance().getString('bbb.layout.window.name')}" + styleName="titleWindowStyle" + width="180" /> + <mx:TextInput id="textInput" height="26" maxChars="140" width="100%" + text="{ResourceUtil.getInstance().getString('bbb.layout.combo.customName')}" + enter="addButton_clickHandler()" /> + <mx:Button id="addButton" height="30" width="100%" click="addButton_clickHandler()" enabled="{textInput.text.length > 0}" styleName="mainActionButton" + label="{ResourceUtil.getInstance().getString('bbb.layout.addButton.label')}" toolTip="{ResourceUtil.getInstance().getString('bbb.layout.addButton.toolTip')}" /> + </mx:VBox> + + <mx:Button id="closeButton" click="onCancelClicked()" styleName="titleWindowCloseButton" + toolTip="{ResourceUtil.getInstance().getString('bbb.layout.window.close.tooltip')}" + top="15" right="10" + accessibilityName="{ResourceUtil.getInstance().getString('bbb.layout.window.accessibilityName')}" /> + </mx:TitleWindow> diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/polling/views/PollChoicesModal.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/polling/views/PollChoicesModal.mxml index 816fc93020d6a6336ae25863ee02e9d24d29510e..7ebd65c0be60d25b577b86f4546f85644171a7b6 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/polling/views/PollChoicesModal.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/polling/views/PollChoicesModal.mxml @@ -21,15 +21,17 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. <mx:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" + xmlns:common="org.bigbluebutton.common.*" width="350" layout="vertical" - close="onCloseClicked()" - show="{focusManager.setFocus(choiceFirst)}" xmlns:common="org.bigbluebutton.common.*"> + implements="org.bigbluebutton.common.IKeyboardClose" + show="focusManager.setFocus(choiceFirst)"> <fx:Script> <![CDATA[ import com.asfusion.mate.events.Dispatcher; import org.as3commons.lang.ArrayUtils; import org.as3commons.lang.StringUtils; + import org.bigbluebutton.common.IKeyboardClose; import org.bigbluebutton.core.PopUpUtil; import org.bigbluebutton.modules.polling.events.StartCustomPollEvent; import org.bigbluebutton.modules.present.ui.views.PresentationWindow; diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/FileDownloadWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/FileDownloadWindow.mxml index 4544f32ad88d72bc1dd32e69f68c23477f72b914..8d41b611f7588dfd3135ae0a3916c9b605f55975 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/FileDownloadWindow.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/FileDownloadWindow.mxml @@ -24,9 +24,11 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mate="http://mate.asfusion.com/" xmlns:common="org.bigbluebutton.common.*" + implements="org.bigbluebutton.common.IKeyboardClose" layout="absolute" width="580" height="410" + creationComplete="creationCompleteHandler(event)" close="onCancelClicked()" initialize="initData();" > @@ -37,6 +39,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. <fx:Script> <![CDATA[ import mx.collections.ArrayCollection; + import mx.events.FlexEvent; import org.bigbluebutton.modules.present.events.DownloadEvent; import org.bigbluebutton.modules.present.model.PresentationModel; @@ -44,6 +47,10 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. [Bindable] private var downloadablePresentations:ArrayCollection; + + protected function creationCompleteHandler(event:FlexEvent):void { + closeButton.setFocus() + } override public function move(x:Number, y:Number):void { return; @@ -56,6 +63,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. private function onCancelClicked():void { globalDispatch.dispatchEvent(new DownloadEvent(DownloadEvent.CLOSE_DOWNLOAD_WINDOW)); } + ]]> </fx:Script> diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/views/SharedNotesNameWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/views/SharedNotesNameWindow.mxml index a116d2546140e111a6b5271c8e517f4b8cbea842..432a3b1bb33a7b921464a4c4c12f7d412e8bb76a 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/views/SharedNotesNameWindow.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/views/SharedNotesNameWindow.mxml @@ -23,21 +23,22 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. <mx:TitleWindow xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mate="http://mate.asfusion.com/" + implements="org.bigbluebutton.common.IKeyboardClose" verticalScrollPolicy="off" horizontalScrollPolicy="off" horizontalAlign="center" - close="onCancelClicked()" layout="absolute" creationComplete="onCreationComplete()" keyUp="keyUpHandler(event)" - width="240" xmlns:common="org.bigbluebutton.common.*"> + width="280" xmlns:common="org.bigbluebutton.common.*"> <fx:Script> <![CDATA[ import com.asfusion.mate.events.Dispatcher; - + import mx.managers.PopUpManager; - + + import org.bigbluebutton.common.IKeyboardClose; import org.bigbluebutton.core.model.LiveMeeting; import org.bigbluebutton.modules.sharednotes.events.SharedNotesEvent; import org.bigbluebutton.util.i18n.ResourceUtil; diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/views/SharedNotesWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/views/SharedNotesWindow.mxml index 0e5c1ac1653df60c5bf692417b8c2654bb8ce167..6de89f5dfa3b487e31892350cefd8567866a33f4 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/views/SharedNotesWindow.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/views/SharedNotesWindow.mxml @@ -50,11 +50,9 @@ import mx.controls.Alert; import mx.controls.Menu; import mx.core.FlexGlobals; - import mx.core.IFlexDisplayObject; import mx.events.CloseEvent; import mx.events.FlexEvent; import mx.events.MenuEvent; - import mx.managers.PopUpManager; import flashx.textLayout.formats.Direction; @@ -66,6 +64,7 @@ import org.bigbluebutton.common.Role; import org.bigbluebutton.common.events.LocaleChangeEvent; import org.bigbluebutton.core.Options; + import org.bigbluebutton.core.PopUpUtil; import org.bigbluebutton.core.UsersUtil; import org.bigbluebutton.core.model.LiveMeeting; import org.bigbluebutton.main.events.ShortcutEvent; @@ -479,8 +478,7 @@ } protected function newNoteHandler():void { - var noteNameWindow:IFlexDisplayObject = PopUpManager.createPopUp(FlexGlobals.topLevelApplication as DisplayObject, SharedNotesNameWindow, true); - PopUpManager.centerPopUp(noteNameWindow); + PopUpUtil.createModalPopUp(FlexGlobals.topLevelApplication as DisplayObject, SharedNotesNameWindow, true); } protected function btnUndo_clickHandler(event:MouseEvent = null):void { diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/BreakoutRoomSettings.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/BreakoutRoomSettings.mxml index 0062d520004bf22948b8c1aee5c5377920bab3a4..e3c45162dfada46ff5a4941ea3bb88d1fec161e4 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/BreakoutRoomSettings.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/BreakoutRoomSettings.mxml @@ -25,8 +25,9 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:mate="http://mate.asfusion.com/" xmlns:common="org.bigbluebutton.common.*" + implements="org.bigbluebutton.common.IKeyboardClose" + show="this.setFocus()" width="630" - close="onCloseClicked()" visible="false" showCloseButton="false"> diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/JoinBreakoutRoomWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/JoinBreakoutRoomWindow.mxml index 8cbb7d6d08bf5332f1d525cf98f4221c71500e61..1e68d2f5e3bd5beec31b22a6ca4dc0f9168200ed 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/JoinBreakoutRoomWindow.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/JoinBreakoutRoomWindow.mxml @@ -23,6 +23,8 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. <mx:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" + implements="org.bigbluebutton.common.IKeyboardClose" + show="this.setFocus()" close="onCloseClick()" layout="absolute" width="600" xmlns:common="org.bigbluebutton.common.*"> diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/UsersWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/UsersWindow.mxml index 5dc475203f55b2e4389def224672708225658f5c..1992f62e615156a607c9cc234f34714f0e71cea9 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/UsersWindow.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/users/views/UsersWindow.mxml @@ -375,7 +375,7 @@ $Id: $ } private function openEmojiStatusMenu():void { - var moodMenu:MoodMenu = PopUpUtil.createNonModelPopUp(DisplayObject(FlexGlobals.topLevelApplication), MoodMenu, false) as MoodMenu; + var moodMenu:MoodMenu = PopUpUtil.createNonModalPopUp(DisplayObject(FlexGlobals.topLevelApplication), MoodMenu, false) as MoodMenu; moodMenu.btn = emojiStatusBtn; moodMenu.show(); }