- extract webcam control icons

This commit is contained in:
Richard Alam 2013-01-08 20:04:03 +00:00
parent 9da16e3613
commit 6303de3007
13 changed files with 98 additions and 31 deletions

View File

@ -235,6 +235,44 @@ DataGrid {
fontFamily: Arial;
}
.videoMuteButtonStyle, .videoUnmutedButtonStyle, .videoSwitchPresenterButtonStyle, .videoEjectUserButtonStyle, .videoPrivateChatButtonStyle {
fillAlphas: 1, 1, 1, 1;
fillColors: #fefeff, #e1e2e5, #ffffff, #eeeeee;
color: #5e5f63;
textRollOverColor: #ffffff;
textSelectedColor: #ffffff;
borderColor: #b9babc;
cornerRadius: 17;
}
.videoMutedButtonStyle {
/* Need to duplicate info here as the styleName is programatically changed. Extracting it out doesn't have any effect. */
fillAlphas: 1, 1, 1, 1;
fillColors: #96c7e6, #50a6d7, #ffffff, #eeeeee;
color: #ffffff;
textRollOverColor: #ffffff;
textSelectedColor: #ffffff;
borderColor: #50a6d7;
cornerRadius: 17;
icon: Embed('assets/images/webcam-muted.png');
}
.videoUnmutedButtonStyle {
icon: Embed('assets/images/webcam-unmuted.png');
}
.videoSwitchPresenterButtonStyle {
icon: Embed('assets/images/webcam-switch-presenter.png');
}
.videoEjectUserButtonStyle {
icon: Embed('assets/images/webcam-eject-user.png');
}
.videoPrivateChatButtonStyle {
icon: Embed('assets/images/webcam-private-chat.png');
}
MDIWindow {
resizeCursorHorizontalXOffset: 2;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -25,13 +25,11 @@
uri="rtmp://HOST/bigbluebutton"
host="http://HOST/bigbluebutton/api/enter"
allowKickUser="false"
windowVisible="true"
/>
<module name="ListenersModule" url="http://HOST/client/ListenersModule.swf?v=VERSION"
uri="rtmp://HOST/bigbluebutton"
recordingHost="http://HOST"
windowVisible="true"
position="bottom-left"
/>
@ -109,6 +107,7 @@
layoutConfig="http://HOST/client/conf/layout.xml"
enableEdit="true"
/>
<!--
<module name="NotesModule" url="http://HOST/client/NotesModule.swf?v=VERSION"
saveURL="http://HOST"

View File

@ -78,7 +78,7 @@
<window name="ChatWindow" hidden="true" draggable="false" resizable="false"/>
<window name="ListenersWindow" hidden="true" draggable="false" resizable="false"/>
<window name="ViewersWindow" hidden="true" draggable="false" resizable="false"/>
<window name="PresentationWindow" width="1" height="1" x="0" y="0" draggable="false" resizable="false"/>
<window name="PresentationWindow" width="0.8" height="1" x="0" y="0" draggable="false" resizable="false"/>
<window name="VideoDock" hidden="true" draggable="false" resizable="false"/>
</layout>
<layout name="S2SVideoChat">

View File

@ -19,15 +19,19 @@
package org.bigbluebutton.modules.videoconf.business
{
import com.asfusion.mate.events.Dispatcher;
import com.asfusion.mate.events.Dispatcher;
import flash.events.MouseEvent;
import flash.geom.Point;
import flash.media.Video;
import flash.media.Video;
import flexlib.mdi.containers.MDIWindow;
import flexlib.mdi.events.MDIWindowEvent;
import flexlib.mdi.events.MDIWindowEvent;
import mx.containers.Panel;
import mx.controls.Button;
import mx.core.UIComponent;
import mx.core.UIComponent;
import org.bigbluebutton.common.IBbbModuleWindow;
import org.bigbluebutton.common.Images;
import org.bigbluebutton.common.LogUtil;
@ -318,5 +322,8 @@ package org.bigbluebutton.modules.videoconf.business
onFitVideoClick();
}
protected function userMuted(muted:Boolean):void {
_controlButtons.userMuted(muted);
}
}
}

View File

@ -34,6 +34,7 @@
verticalScrollPolicy="off"
layout="absolute">
<mate:Listener type="{BBBEvent.USER_VOICE_MUTED}" method="handleUserVoiceMutedEvent" />
<mate:Listener type="{EventConstants.USER_TALKING}" method="handleUserTalkingEvent" />
<mate:Listener type="{EventConstants.NEW_ROLE}" method="handleNewRoleEvent" />
<mate:Listener type="{CloseAllWindowsEvent.CLOSE_ALL_WINDOWS}" method="closeWindow" />
@ -54,6 +55,7 @@
import org.bigbluebutton.core.UsersUtil;
import org.bigbluebutton.core.events.CoreEvent;
import org.bigbluebutton.core.managers.UserManager;
import org.bigbluebutton.main.events.BBBEvent;
import org.bigbluebutton.main.views.MainCanvas;
import org.bigbluebutton.modules.videoconf.business.TalkingButtonOverlay;
import org.bigbluebutton.modules.videoconf.events.CloseAllWindowsEvent;
@ -132,6 +134,12 @@
private function handleNewRoleEvent(event:CoreEvent):void {
switchRole(event.message.role == Role.PRESENTER)
}
private function handleUserVoiceMutedEvent(event:BBBEvent):void {
if (event.payload.userID == userID) {
userMuted(event.payload.muted);
}
}
private function handleUserTalkingEvent(event:CoreEvent):void {
if (event.message.userID == userID) {
@ -152,9 +160,7 @@
maximizeRestoreBtn.visible = true;
this.resizable = true;
onResize();
createButtons();
addControlButtons();
updateButtonsPosition();

View File

@ -5,8 +5,7 @@
<mx:Script>
<![CDATA[
import com.asfusion.mate.events.Dispatcher;
import com.asfusion.mate.events.Dispatcher;
import org.bigbluebutton.common.Images;
import org.bigbluebutton.common.LogUtil;
import org.bigbluebutton.core.EventConstants;
@ -22,20 +21,9 @@
public var sharerUserID:String;
[Bindable]
private var BUTTONS_SIZE:int = 20;
private var BUTTONS_SIZE:int = 31;
private var BUTTONS_PADDING:int = 10;
private var images:Images = new Images();
[Bindable]
private var img_mute_icon:Class = images.webcam_mute;
[Bindable]
private var signOutIcon:Class = images.webcam_kickuser;
[Bindable]
private var adminIcon:Class = images.webcam_make_presenter;
[Bindable]
private var chatIcon:Class = images.webcam_private_chat;
[Bindable]
private var showButton:Boolean;
@ -48,6 +36,14 @@
return BUTTONS_PADDING;
}
public function userMuted(muted:Boolean):void {
if (muted) {
muteUnmuteBtn.styleName = "videoMutedButtonStyle";
} else {
muteUnmuteBtn.styleName = "videoUnmutedButtonStyle";
}
}
public function handleNewRoleEvent(presenter:Boolean):void {
showControlButtons(presenter);
}
@ -108,11 +104,15 @@
}
]]>
</mx:Script>
<mx:Button id="muteUnmuteBtn" visible="false" click="onMuteUnmuteClicked()" icon="{img_mute_icon}" width="{BUTTONS_SIZE}" height="{BUTTONS_SIZE}"/>
<mx:Button id="muteUnmuteBtn" visible="false" click="onMuteUnmuteClicked()"
width="{BUTTONS_SIZE}" height="{BUTTONS_SIZE}" styleName="videoUnmutedButtonStyle"/>
<mx:Spacer width="2"/>
<mx:Button id="switchPresenter" visible="false" click="onSwitchPresenterClicked()" icon="{adminIcon}" width="{BUTTONS_SIZE}" height="{BUTTONS_SIZE}"/>
<mx:Button id="switchPresenter" visible="false" click="onSwitchPresenterClicked()"
width="{BUTTONS_SIZE}" height="{BUTTONS_SIZE}" styleName="videoSwitchPresenterButtonStyle"/>
<mx:Spacer width="2"/>
<mx:Button id="ejectUserBtn" visible="false" click="onKickUserClicked()" icon="{signOutIcon}" width="{BUTTONS_SIZE}" height="{BUTTONS_SIZE}"/>
<mx:Button id="ejectUserBtn" visible="false" click="onKickUserClicked()"
width="{BUTTONS_SIZE}" height="{BUTTONS_SIZE}" styleName="videoEjectUserButtonStyle"/>
<mx:Spacer width="2"/>
<mx:Button id="privateChatBtn" click="onPrivateChatClicked()" icon="{chatIcon}" width="{BUTTONS_SIZE}" height="{BUTTONS_SIZE}"/>
<mx:Button id="privateChatBtn" click="onPrivateChatClicked()"
width="{BUTTONS_SIZE}" height="{BUTTONS_SIZE}" styleName="videoPrivateChatButtonStyle"/>
</mx:HBox>

View File

@ -34,15 +34,18 @@
verticalScrollPolicy="off"
layout="absolute">
<mate:Listener type="{BBBEvent.USER_VOICE_MUTED}" method="handleUserVoiceMutedEvent" />
<mate:Listener type="{EventConstants.USER_TALKING}" method="handleUserTalkingEvent" />
<mate:Listener type="{EventConstants.NEW_ROLE}" method="handleNewRoleEvent" />
<mate:Listener type="{CloseAllWindowsEvent.CLOSE_ALL_WINDOWS}" method="closeWindow" />
<mx:Script>
<![CDATA[
import flexlib.mdi.events.MDIWindowEvent;
import flexlib.mdi.events.MDIWindowEvent;
import mx.core.UIComponent;
import mx.events.ResizeEvent;
import mx.events.ResizeEvent;
import org.bigbluebutton.common.Images;
import org.bigbluebutton.common.LogUtil;
import org.bigbluebutton.common.Role;
@ -52,6 +55,7 @@
import org.bigbluebutton.core.UsersUtil;
import org.bigbluebutton.core.events.CoreEvent;
import org.bigbluebutton.core.managers.UserManager;
import org.bigbluebutton.main.events.BBBEvent;
import org.bigbluebutton.main.views.MainCanvas;
import org.bigbluebutton.modules.videoconf.business.TalkingButtonOverlay;
import org.bigbluebutton.modules.videoconf.events.CloseAllWindowsEvent;
@ -124,6 +128,12 @@
switchRole(event.message.role == Role.PRESENTER)
}
private function handleUserVoiceMutedEvent(event:BBBEvent):void {
if (event.payload.userID == userID) {
userMuted(event.payload.muted);
}
}
private function handleUserTalkingEvent(event:CoreEvent):void {
if (event.message.userID == userID) {
if (event.message.talking) {

View File

@ -31,6 +31,7 @@
resize="onResize()"
layout="absolute">
<mate:Listener type="{BBBEvent.USER_VOICE_MUTED}" method="handleUserVoiceMutedEvent" />
<mate:Listener type="{EventConstants.USER_TALKING}" method="handleUserTalkingEvent" />
<mate:Listener type="{EventConstants.NEW_ROLE}" method="handleNewRoleEvent" />
<mate:Listener type="{CloseAllWindowsEvent.CLOSE_ALL_WINDOWS}" method="closeWindow" />
@ -106,6 +107,12 @@
switchRole(event.message.role == Role.PRESENTER)
}
private function handleUserVoiceMutedEvent(event:BBBEvent):void {
if (event.payload.userID == userID) {
userMuted(event.payload.muted);
}
}
private var _closing:Boolean = false;
private function onCloseEvent(event:MDIWindowEvent = null):void {