home *** CD-ROM | disk | FTP | other *** search
- package com.livebrush.ui
- {
- import com.livebrush.data.Settings;
- import com.livebrush.events.ListEvent;
- import com.livebrush.graphics.canvas.Layer;
- import flash.display.Sprite;
- import flash.events.Event;
- import flash.events.MouseEvent;
-
- public class LayersController extends UIController
- {
- public var selectedLayerIndex:int;
-
- public function LayersController(layersView:LayersView)
- {
- super(layersView);
- this.init();
- }
-
- private function get layersList() : RichList
- {
- return this.layersView.layersList;
- }
-
- private function listItemChange(e:ListEvent) : void
- {
- this.propsChangeEvent(e as Event);
- }
-
- private function contextMenuEvent(e:Event) : void
- {
- switch(e.target.name)
- {
- case "layerToDeco":
- canvasManager.layerToDeco(this.layersList.hoverItem.data.depth,false,false);
- break;
- case "copyLayerToDeco":
- canvasManager.layerToDeco(this.layersList.hoverItem.data.depth,true,false);
- break;
- case "iLayerToDeco":
- canvasManager.layerToDeco(this.layersList.hoverItem.data.depth,false);
- break;
- case "iCopyLayerToDeco":
- canvasManager.layerToDeco(this.layersList.hoverItem.data.depth,true);
- }
- }
-
- private function get layersView() : LayersView
- {
- return LayersView(view);
- }
-
- private function rightClick(e:MouseEvent) : void
- {
- if(Layer.isBoxLayer(this.layersList.hoverItem.data as Layer) && Layer.isLineLayer(activeLayer))
- {
- this.layersView.layerContextMenu.display(canvas.stage,canvas.stage.mouseX,canvas.stage.mouseY);
- }
- }
-
- override protected function init() : void
- {
- this.selectedLayerIndex = 0;
- this.panelAsset.addEventListener(MouseEvent.CLICK,this.mouseEvent);
- this.uiAsset.addEventListener(MouseEvent.CLICK,this.mouseEvent);
- this.uiAsset.addEventListener(Event.CHANGE,this.propsChangeEvent);
- this.layersView.blendInput._list.addEventListener(Event.CHANGE,this.propsChangeEvent);
- this.layersList.addEventListener(ListEvent.SELECT,this.selectEvent);
- this.layersList.addEventListener(ListEvent.LABEL_CHANGE,this.listItemChange);
- this.layersList.addEventListener(MouseEvent.RIGHT_CLICK,this.rightClick);
- this.layersView.otherLayerContextMenu.addEventListener(Event.SELECT,this.contextMenuEvent);
- }
-
- private function mouseEvent(e:MouseEvent) : void
- {
- var name:String = e.target.name;
- if(e.target.name == "toggleBtn")
- {
- this.layersView.toggle();
- ui.uiUpdate();
- }
- else if(e.target.name == "helpBtn")
- {
- _loadHelp();
- }
- else if(name.indexOf("Btn") > -1)
- {
- if(name == "copyBtn" && this.layersList.selectedIndex < this.layersList.length - 1)
- {
- canvasManager.dupLayer(canvasManager.activeLayerDepth);
- }
- else if(name == "flatBtn")
- {
- ui.confirmActionDialog({
- "message":"This action will clear your undo history.\nThe source layers will remain intact.\nWould you like to continue?",
- "yesFunction":canvasManager.flattenLayers,
- "id":"flattenConfirm"
- });
- }
- else if(name == "upBtn" && (this.layersList.selectedIndex > 0 && this.layersList.selectedIndex < this.layersList.length - 1))
- {
- canvasManager.moveLayer(this.layersList.selectedItem.depth,1);
- }
- else if(name == "downBtn" && this.layersList.selectedIndex < this.layersList.length - 2)
- {
- canvasManager.moveLayer(this.layersList.selectedItem.depth,-1);
- }
- else if(name == "removeBtn" && this.layersList.selectedIndex < this.layersList.length - 1)
- {
- canvasManager.deleteContent(true);
- }
- else if(name == "addBtn")
- {
- canvasManager.addBitmapLayer(true);
- }
- }
- }
-
- private function propsChangeEvent(e:Event) : void
- {
- e.stopImmediatePropagation();
- var layerSettings:Settings = new Settings();
- var layer:Layer = this.layersView.layersList.selectedItem as Layer;
- var depth:int = layer.depth;
- layerSettings.blendMode = this.layersView.blendInput.value;
- layerSettings.alpha = Number(this.layersView.alphaInput.value) / 100;
- layerSettings.colorPercent = Number(this.layersView.tintInput.value) / 100;
- layerSettings.label = this.layersView.layersList.selectedItem.label;
- layerSettings.color = this.layersView.colorInput.color;
- canvasManager.adjustLayer(this.layersView.layersList.selectedItem.depth,layerSettings);
- }
-
- private function get panelAsset() : Sprite
- {
- return this.layersView.panelAsset;
- }
-
- private function get uiAsset() : Object
- {
- return this.layersView.uiAsset;
- }
-
- private function selectEvent(e:Event) : void
- {
- if(this.selectedLayerIndex != this.layersView.layersList.selectedIndex)
- {
- canvasManager.changeLayerSelection(this.layersView.getSelectedLayerDepths());
- this.selectedLayerIndex = this.layersView.layersList.selectedIndex;
- }
- }
- }
- }
-
-