diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/webrtcDeskshare/events/AppletStartedEvent.as b/bigbluebutton-client/src/org/bigbluebutton/modules/webrtcDeskshare/events/AppletStartedEvent.as deleted file mode 100755 index 99e3c50a3af1bb129af5d4f4d82821f7843d22b3..0000000000000000000000000000000000000000 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/webrtcDeskshare/events/AppletStartedEvent.as +++ /dev/null @@ -1,36 +0,0 @@ -/** -* BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ -* -* Copyright (c) 2015 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.modules.webrtcDeskshare.events -{ - import flash.events.Event; - - public class AppletStartedEvent extends Event - { - public static const APPLET_STARTED:String = "AppletStartedEvent"; - - public var videoWidth:Number = 0; - public var videoHeight:Number = 0; - - public function AppletStartedEvent(type:String = APPLET_STARTED) - { - super(type, true, false); - } - - } -} \ No newline at end of file diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/webrtcDeskshare/events/DeskshareAppletLaunchedEvent.as b/bigbluebutton-client/src/org/bigbluebutton/modules/webrtcDeskshare/events/DeskshareAppletLaunchedEvent.as deleted file mode 100755 index a182a5d28de0efc5c9f924dfb1b4d16b956933a2..0000000000000000000000000000000000000000 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/webrtcDeskshare/events/DeskshareAppletLaunchedEvent.as +++ /dev/null @@ -1,32 +0,0 @@ -/** -* BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ -* -* Copyright (c) 2015 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.modules.webrtcDeskshare.events -{ - import flash.events.Event; - - public class DeskshareAppletLaunchedEvent extends Event - { - public static const APPLET_LAUNCHED:String = "DESKSHARE_APPLET_LAUNCHED_EVENT"; - - public function DeskshareAppletLaunchedEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false) - { - super(type, bubbles, cancelable); - } - } -} \ No newline at end of file diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/webrtcDeskshare/managers/PublishWindowManager.as b/bigbluebutton-client/src/org/bigbluebutton/modules/webrtcDeskshare/managers/PublishWindowManager.as index 175a034bd58d6ab599ca4fc0572a685a10cd79da..136713c5fddca1f8149c222939c9dcfe9f87e104 100644 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/webrtcDeskshare/managers/PublishWindowManager.as +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/webrtcDeskshare/managers/PublishWindowManager.as @@ -31,6 +31,7 @@ package org.bigbluebutton.modules.webrtcDeskshare.managers import org.bigbluebutton.common.events.OpenWindowEvent; import org.bigbluebutton.modules.webrtcDeskshare.services.DeskshareService; import org.bigbluebutton.modules.webrtcDeskshare.view.components.DesktopPublishWindow; + import org.bigbluebutton.main.api.JSLog; public class PublishWindowManager { private static const LOGGER:ILogger = getClassLogger(PublishWindowManager); @@ -62,12 +63,16 @@ package org.bigbluebutton.modules.webrtcDeskshare.managers var result:String; if (ExternalInterface.available) { result = ExternalInterface.call("vertoScreenStart"); + var logData:Object = new Object(); + logData.uri = uri; + JSLog.warn("uri:", logData); } -// shareWindow = new DesktopPublishWindow(); -// shareWindow.initWindow(service.getConnection(), uri , useTLS , room, autoStart, autoFullScreen); -// shareWindow.visible = true; -// openWindow(shareWindow); + + shareWindow = new DesktopPublishWindow(); + shareWindow.initWindow(service.getConnection(), uri , useTLS , room, autoStart, autoFullScreen); + shareWindow.visible = true; + openWindow(shareWindow); // if (autoStart || autoFullScreen) { // /* // * Need to have a timer to trigger auto-publishing of deskshare. diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/webrtcDeskshare/services/red5/Connection.as b/bigbluebutton-client/src/org/bigbluebutton/modules/webrtcDeskshare/services/red5/Connection.as index 0bde787bf7d3e610984e12fc5863c18a36a9658f..580899ac1c31a4f698b9f0ede91335127ccf080a 100644 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/webrtcDeskshare/services/red5/Connection.as +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/webrtcDeskshare/services/red5/Connection.as @@ -38,7 +38,6 @@ package org.bigbluebutton.modules.webrtcDeskshare.services.red5 import org.bigbluebutton.core.UsersUtil; import org.bigbluebutton.core.managers.ReconnectionManager; import org.bigbluebutton.main.events.BBBEvent; - import org.bigbluebutton.modules.webrtcDeskshare.events.AppletStartedEvent; import org.bigbluebutton.modules.webrtcDeskshare.events.CursorEvent; import org.bigbluebutton.modules.webrtcDeskshare.events.ViewStreamEvent; @@ -325,22 +324,6 @@ package org.bigbluebutton.modules.webrtcDeskshare.services.red5 LOGGER.error("connection rejected to {0} with message {1}", [uri, e.toString()]); } - - /** - * Invoked on the server once the clients' applet has started sharing and the server has started a video stream - * - */ - public function appletStarted(videoWidth:Number, videoHeight:Number):void{ - LOGGER.debug("Got applet started"); - if (nc != null && nc.connected) { - var event:AppletStartedEvent = new AppletStartedEvent(); - event.videoWidth = videoWidth; - event.videoHeight = videoHeight; - dispatcher.dispatchEvent(event); - } - - } - /** * Call this method to send out a room-wide notification to start viewing the stream * diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/webrtcDeskshare/utils/JavaCheck.as b/bigbluebutton-client/src/org/bigbluebutton/modules/webrtcDeskshare/utils/JavaCheck.as deleted file mode 100755 index c3963201d21f3efc286d7ec2f8879359be0c888a..0000000000000000000000000000000000000000 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/webrtcDeskshare/utils/JavaCheck.as +++ /dev/null @@ -1,62 +0,0 @@ -/** - * WebMeeting open source conferencing system - http://www.speakserve.org/ - * - * Copyright (c) 2013 SpeakServe Ltd. 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. - * - * WebMeeting 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 WebMeeting; if not, see <http://www.gnu.org/licenses/>. - * - */ -package org.bigbluebutton.modules.webrtcDeskshare.utils -{ - import com.asfusion.mate.events.Dispatcher; - - import flash.external.ExternalInterface; - import flash.utils.setTimeout; - - import org.bigbluebutton.core.BBB; - import org.bigbluebutton.main.events.ClientStatusEvent; - import org.bigbluebutton.util.i18n.ResourceUtil; - - public class JavaCheck { - public static function checkJava():String { - var dispatcher : Dispatcher = new Dispatcher(); - var java_version:String = "1.7.0_51"; - - var xml:XML = BBB.initConfigManager().config.browserVersions; - if (xml.@java != undefined) { - java_version = xml.@java.toString(); - } - - var isJavaOk: Object = checkJavaVersion(java_version); - - if (isJavaOk.result == "JAVA_OK") { - // Java success - return null; - - } else if (isJavaOk.result == "JAVA_NOT_INSTALLED") { - dispatcher.dispatchEvent(new ClientStatusEvent(ClientStatusEvent.FAIL_MESSAGE_EVENT, ResourceUtil.getInstance().getString("bbb.clientstatus.java.title"), ResourceUtil.getInstance().getString("bbb.clientstatus.java.notinstalled"))); - return ResourceUtil.getInstance().getString("bbb.clientstatus.java.notinstalled"); - } else if (isJavaOk.result == "JAVA_OLDER") { - dispatcher.dispatchEvent(new ClientStatusEvent(ClientStatusEvent.FAIL_MESSAGE_EVENT, ResourceUtil.getInstance().getString("bbb.clientstatus.java.title"), ResourceUtil.getInstance().getString("bbb.clientstatus.java.oldversion"))); - return ResourceUtil.getInstance().getString("bbb.clientstatus.java.oldversion"); - } else { - dispatcher.dispatchEvent(new ClientStatusEvent(ClientStatusEvent.FAIL_MESSAGE_EVENT, ResourceUtil.getInstance().getString("bbb.clientstatus.java.title"), ResourceUtil.getInstance().getString("bbb.clientstatus.java.notdetected"))); - return ResourceUtil.getInstance().getString("bbb.clientstatus.java.notdetected"); - } - } - - private static function checkJavaVersion(minVersion: String):Object { - return ExternalInterface.call("checkJavaVersion", minVersion); - } - } -} \ No newline at end of file diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/webrtcDeskshare/view/components/DesktopPublishWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/webrtcDeskshare/view/components/DesktopPublishWindow.mxml index 68109167ae2e36e007340c9b931843fe11960d3b..13dbd8e0e59b4b7a8ea630f47743c1c252c7d927 100644 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/webrtcDeskshare/view/components/DesktopPublishWindow.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/webrtcDeskshare/view/components/DesktopPublishWindow.mxml @@ -4,7 +4,7 @@ BigBlueButton open source conferencing system - http://www.bigbluebutton.org/ -Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below). +Copyright (c) 2015 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 @@ -33,14 +33,12 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. title="{ResourceUtil.getInstance().getString('bbb.desktopPublish.title')}" resizable="false"> - <mate:Listener type="{AppletStartedEvent.APPLET_STARTED}" method="onAppletStart" /> <!-- (comes from the server deskshare red5 app - the app started sharing) (replace with ) (here is for the small window) --> <mate:Listener type="{MadePresenterEvent.SWITCH_TO_PRESENTER_MODE}" method="onChangedPresenter" /> <mate:Listener type="{MadePresenterEvent.SWITCH_TO_VIEWER_MODE}" method="onChangedPresenter" /> <mate:Listener type="{CursorEvent.UPDATE_CURSOR_LOC_EVENT}" method="onUpdateCursorEvent" /> <mate:Listener type="{ViewStreamEvent.STOP}" method="closePublishWindow" /> <mate:Listener type="{LocaleChangeEvent.LOCALE_CHANGED}" method="localeChanged" /> <mate:Listener type="{StopSharingButtonEvent.STOP_SHARING}" method="stopSharingEvent" /> - <mate:Listener type="{DeskshareAppletLaunchedEvent.APPLET_LAUNCHED}" method="handleDeskshareAppletLaunchedEvent" /> <mate:Listener type="{ShortcutEvent.REMOTE_FOCUS_DESKTOP}" method="remoteFocus" /> @@ -59,15 +57,12 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. import org.bigbluebutton.main.events.MadePresenterEvent; import org.bigbluebutton.main.events.ShortcutEvent; import org.bigbluebutton.main.views.MainCanvas; - import org.bigbluebutton.modules.webrtcDeskshare.events.AppletStartedEvent; import org.bigbluebutton.modules.webrtcDeskshare.events.CursorEvent; - import org.bigbluebutton.modules.webrtcDeskshare.events.DeskshareAppletLaunchedEvent; import org.bigbluebutton.modules.webrtcDeskshare.events.ShareWindowEvent; import org.bigbluebutton.modules.webrtcDeskshare.events.StopSharingButtonEvent; import org.bigbluebutton.modules.webrtcDeskshare.events.StreamEvent; import org.bigbluebutton.modules.webrtcDeskshare.events.ViewStreamEvent; import org.bigbluebutton.modules.webrtcDeskshare.model.DeskshareOptions; - import org.bigbluebutton.modules.webrtcDeskshare.utils.JavaCheck; import org.bigbluebutton.util.i18n.ResourceUtil; private static const LOGGER:ILogger = getClassLogger(DesktopPublishWindow); @@ -97,13 +92,10 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. private var captureWidth:Number = Capabilities.screenResolutionX; private var autoStart:Boolean = false; private var globalDispatcher:Dispatcher = new Dispatcher(); - private var javaTimer:Timer; [Bindable] private var cursor:Sprite; [Bindable] private var dsOptions:DeskshareOptions; - private var calledStopApplet:Boolean = false; - private function init():void { dsOptions = new DeskshareOptions(); } @@ -115,22 +107,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. cursor.graphics.lineStyle(6, 0xFF0000, 0.6); cursor.graphics.drawCircle(0,0,3); - if (isUsingLessThanChrome38OnMac()) { - setCurrentState("chromeOnMacWarningState"); - } else { - var javaIssue:String = JavaCheck.checkJava(); - - if (javaIssue != null) { - if (isChrome42OrHigher()) { - setCurrentState("chrome42WarningState"); - } else { - setCurrentState("javaIssueWarningState"); - javaIssueWarningStateLbl.htmlText = javaIssue; - } - } else { - setCurrentState("dispFullRegionControlBar"); - } - } + setCurrentState("dispFullRegionControlBar"); //TODO ANTON resourcesChanged(); titleBarOverlay.tabIndex = dsOptions.baseTabIndex; @@ -181,9 +158,6 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. btnFSPublish.enabled = false; btnRegionPublish.enabled = false; // useSVC2Check.enabled = false; - javaTimer = new Timer(7000, 1); - javaTimer.addEventListener(TimerEvent.TIMER, onJavaTimer); - javaTimer.start(); startSharing(connection, uri, useTLS , room, fullScreen); } @@ -191,8 +165,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. var captureX:Number = 0; var captureY:Number = 0; sharingFullScreen = fullScreen; - LOGGER.debug("Calling startApplet"); - ExternalInterface.call("startApplet", uri , useTLS , room, fullScreen, true /*useSVC2Check.selected*/); + //ExternalInterface.call("startApplet", uri , useTLS , room, fullScreen, true /*useSVC2Check.selected*/); //TODO ANTON REMOVE THIS } public function stopSharing():void{ @@ -219,29 +192,23 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. closeWindow(); } - private function onJavaTimer(e:TimerEvent):void { - var browser:Array = ExternalInterface.call("determineBrowser"); - if (browser[0] == "Chrome") - javaHelpArea.visible = javaHelpArea.includeInLayout = true; - } - private function onUpdateCursorEvent(event:CursorEvent):void { // DO NOT compute the x and y coordinate and assign directly to the cursorImg - // as it results in a flickering and jerky mouse pointer (ralam jun 10, 2010). + // as it results in a flickering and jerky mouse pointer (ralam jun 10, 2010). cursor.x = video.x + ((event.x/captureWidth)) * video.width; cursor.y = video.y + ((event.y/captureHeight)) * video.height; cursorImg.visible = true; // Do not display cursor if they are outside the capture area. - if (cursor.x < video.x) cursor.x = video.x; - if (cursor.y < video.y) cursor.y = video.y; - if (cursor.x > video.x + video.width) cursor.x = video.x + video.width; - if (cursor.y > video.y + video.height) cursor.y = video.y + video.height; - cursorImg.x = cursor.x; - cursorImg.y = cursor.y; + if (cursor.x < video.x) cursor.x = video.x; + if (cursor.y < video.y) cursor.y = video.y; + if (cursor.x > video.x + video.width) cursor.x = video.x + video.width; + if (cursor.y > video.y + video.height) cursor.y = video.y + video.height; + cursorImg.x = cursor.x; + cursorImg.y = cursor.y; } - private function onAppletStart(event:AppletStartedEvent):void{ + /*private function onAppletStart(event:AppletStartedEvent):void{ //TODO ANTON REMOVE THIS if (!connection.connected) return; LOGGER.debug("DeskShareWindow::onAppletStart"); @@ -251,7 +218,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. streamEvent.videoWidth = event.videoWidth; streamEvent.videoHeight = event.videoHeight; dispatchEvent(streamEvent); // anton todo - } + }*/ private function startPreviewStream(nc:NetConnection, streamName:String, capWidth:Number, capHeight:Number):void{ streaming = true; @@ -342,30 +309,9 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. closeWindow(); } - private function callStopApplet():void { - if (!calledStopApplet) { - calledStopApplet = true; - LOGGER.debug("Calling stopApplet in callStopApplet()"); - ExternalInterface.call("stopApplet"); - } - } - private function closeWindow():void { - LOGGER.debug("Calling stopApplet in closeWindow()"); - callStopApplet(); - dispatchEvent(new ShareWindowEvent(ShareWindowEvent.CLOSE)); - } - - private function restartJava():void { - LOGGER.debug("Calling stopApplet in restartJava()"); - callStopApplet(); - shareScreen(sharingFullScreen); - } - - private function handleDeskshareAppletLaunchedEvent(e:DeskshareAppletLaunchedEvent):void { - if (javaTimer && javaTimer.running) { - javaTimer.stop(); - } - javaHelpArea.visible = javaHelpArea.includeInLayout = false; + private function closeWindow():void { + // LOGGER.debug("Calling stopApplet in closeWindow()"); + dispatchEvent(new ShareWindowEvent(ShareWindowEvent.CLOSE)); } /* @@ -405,82 +351,41 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. stopStream(); closeWindow(); } - - private function isUsingLessThanChrome38OnMac():Boolean { - var browser:Array = ExternalInterface.call("determineBrowser"); - return ((browser[0] == "Chrome") && (parseInt(browser[1]) <= 38) && (Capabilities.os.indexOf("Mac") >= 0)); - } - - private function isChrome42OrHigher():Boolean { - var browser:Array = ExternalInterface.call("determineBrowser"); - return ((browser[0] == "Chrome") && (parseInt(browser[1]) >= 42)); - } ]]> </mx:Script> <dspub:TabIndexer startIndex="{dsOptions.baseTabIndex + 1}" tabIndices="{[minimizeBtn, maximizeRestoreBtn, closeBtn, btnFSPublish, btnClosePublish, btnRegionPublish]}"/> - - <!--http://stackoverflow.com/questions/369120/why-does-mxstates-have-trouble-being-resolved-to-a-component-implementation--> - <mx:VBox id="javaHelpArea" includeInLayout="false" visible="false" height="100%" width="100%" verticalAlign="middle" horizontalAlign="center"> - <mx:Text width="80%" textAlign="center" styleName="desktopShareTextStyle" text="{ResourceUtil.getInstance().getString('bbb.desktopPublish.chromeHint.title')}" /> - <mx:Image id="javaHelpImg" styleName="chromeJavaHelpImage" source="{javaHelpImg.getStyle('imageSource')}" /> - <mx:Text width="80%" textAlign="center" styleName="desktopShareTextStyle" text="{ResourceUtil.getInstance().getString('bbb.desktopPublish.chromeHint.message')}" /> - <mx:Button label="{ResourceUtil.getInstance().getString('bbb.desktopPublish.chromeHint.button')}" click="restartJava()"/> - </mx:VBox> <dspub:states> - <mx:State name="dispFullRegionControlBar"> - <mx:AddChild> - <mx:ControlBar id="fullRegionBottomBar"> - <mx:VBox width="100%" height="100%" horizontalAlign="center"> - <mx:HBox horizontalAlign="center"> - <mx:Button id="btnFSPublish" - toolTip="{ResourceUtil.getInstance().getString('bbb.desktopPublish.fullscreen.tooltip')}" - label="{ResourceUtil.getInstance().getString('bbb.desktopPublish.fullscreen.label')}" - visible="true" - click="shareScreen(true)" /> - <mx:Spacer width="100%"/> - <mx:Button id="btnClosePublish" - toolTip="{ResourceUtil.getInstance().getString('bbb.desktopPublish.stop.tooltip')}" - label="{ResourceUtil.getInstance().getString('bbb.desktopPublish.stop.label')}" - visible="true" - enabled="false" - click="stopSharing()" /> - <mx:Spacer width="100%"/> - <mx:Button id="btnRegionPublish" - toolTip="{ResourceUtil.getInstance().getString('bbb.desktopPublish.region.tooltip')}" - label="{ResourceUtil.getInstance().getString('bbb.desktopPublish.region.label')}" - visible="true" - click="shareScreen(false)" - focusEnabled="false" - tabEnabled="false"/> - <mx:Spacer width="100%"/> - </mx:HBox> - </mx:VBox> - </mx:ControlBar> - </mx:AddChild> - </mx:State> - <mx:State name="chromeOnMacWarningState"> - <mx:AddChild> - <mx:VBox height="100%" width="100%" verticalAlign="middle" horizontalAlign="center"> - <mx:Text id="chromeOnMacWarningLbl" width="80%" textAlign="center" styleName="desktopShareTextStyle" - text="{ResourceUtil.getInstance().getString('bbb.desktopPublish.chromeOnMacUnsupportedHint')}" /> - </mx:VBox> - </mx:AddChild> - </mx:State> - <mx:State name="chrome42WarningState"> - <mx:AddChild> - <mx:VBox height="100%" width="100%" verticalAlign="middle" horizontalAlign="center"> - <mx:Text id="chrome42WarningLbl" width="80%" textAlign="center" styleName="desktopShareTextStyle" - text="{ResourceUtil.getInstance().getString('bbb.desktopPublish.chrome42UnsupportedHint')}" /> - </mx:VBox> - </mx:AddChild> - </mx:State> - <mx:State name="javaIssueWarningState"> + <mx:State name="dispFullRegionControlBar"> <mx:AddChild> - <mx:VBox height="100%" width="100%" verticalAlign="middle" horizontalAlign="center"> - <mx:Text id="javaIssueWarningStateLbl" width="80%" textAlign="center" styleName="desktopShareTextStyle" /> + <mx:ControlBar id="fullRegionBottomBar"> + <mx:VBox width="100%" height="100%" horizontalAlign="center"> + <mx:HBox horizontalAlign="center"> + <mx:Button id="btnFSPublish" + toolTip="{ResourceUtil.getInstance().getString('bbb.desktopPublish.fullscreen.tooltip')}" + label="{ResourceUtil.getInstance().getString('bbb.desktopPublish.fullscreen.label')}" + visible="true" + click="shareScreen(true)" /> + <mx:Spacer width="100%"/> + <mx:Button id="btnClosePublish" + toolTip="{ResourceUtil.getInstance().getString('bbb.desktopPublish.stop.tooltip')}" + label="{ResourceUtil.getInstance().getString('bbb.desktopPublish.stop.label')}" + visible="true" + enabled="false" + click="stopSharing()" /> + <mx:Spacer width="100%"/> + <mx:Button id="btnRegionPublish" + toolTip="{ResourceUtil.getInstance().getString('bbb.desktopPublish.region.tooltip')}" + label="{ResourceUtil.getInstance().getString('bbb.desktopPublish.region.label')}" + visible="true" + click="shareScreen(false)" + focusEnabled="false" + tabEnabled="false"/> + <mx:Spacer width="100%"/> + </mx:HBox> </mx:VBox> + </mx:ControlBar> </mx:AddChild> </mx:State> </dspub:states>