home *** CD-ROM | disk | FTP | other *** search
/ PCGUIA 2010 Software/Programs / PCGuia_programas.iso / Software / Utils / Livebrush / Install-LivebrushLite.air / livebrush.swf / scripts / com / livebrush / ui / LayersController.as < prev    next >
Encoding:
Text File  |  2009-10-26  |  5.7 KB  |  154 lines

  1. package com.livebrush.ui
  2. {
  3.    import com.livebrush.data.Settings;
  4.    import com.livebrush.events.ListEvent;
  5.    import com.livebrush.graphics.canvas.Layer;
  6.    import flash.display.Sprite;
  7.    import flash.events.Event;
  8.    import flash.events.MouseEvent;
  9.    
  10.    public class LayersController extends UIController
  11.    {
  12.       public var selectedLayerIndex:int;
  13.       
  14.       public function LayersController(layersView:LayersView)
  15.       {
  16.          super(layersView);
  17.          this.init();
  18.       }
  19.       
  20.       private function get layersList() : RichList
  21.       {
  22.          return this.layersView.layersList;
  23.       }
  24.       
  25.       private function listItemChange(e:ListEvent) : void
  26.       {
  27.          this.propsChangeEvent(e as Event);
  28.       }
  29.       
  30.       private function contextMenuEvent(e:Event) : void
  31.       {
  32.          switch(e.target.name)
  33.          {
  34.             case "layerToDeco":
  35.                canvasManager.layerToDeco(this.layersList.hoverItem.data.depth,false,false);
  36.                break;
  37.             case "copyLayerToDeco":
  38.                canvasManager.layerToDeco(this.layersList.hoverItem.data.depth,true,false);
  39.                break;
  40.             case "iLayerToDeco":
  41.                canvasManager.layerToDeco(this.layersList.hoverItem.data.depth,false);
  42.                break;
  43.             case "iCopyLayerToDeco":
  44.                canvasManager.layerToDeco(this.layersList.hoverItem.data.depth,true);
  45.          }
  46.       }
  47.       
  48.       private function get layersView() : LayersView
  49.       {
  50.          return LayersView(view);
  51.       }
  52.       
  53.       private function rightClick(e:MouseEvent) : void
  54.       {
  55.          if(Layer.isBoxLayer(this.layersList.hoverItem.data as Layer) && Layer.isLineLayer(activeLayer))
  56.          {
  57.             this.layersView.layerContextMenu.display(canvas.stage,canvas.stage.mouseX,canvas.stage.mouseY);
  58.          }
  59.       }
  60.       
  61.       override protected function init() : void
  62.       {
  63.          this.selectedLayerIndex = 0;
  64.          this.panelAsset.addEventListener(MouseEvent.CLICK,this.mouseEvent);
  65.          this.uiAsset.addEventListener(MouseEvent.CLICK,this.mouseEvent);
  66.          this.uiAsset.addEventListener(Event.CHANGE,this.propsChangeEvent);
  67.          this.layersView.blendInput._list.addEventListener(Event.CHANGE,this.propsChangeEvent);
  68.          this.layersList.addEventListener(ListEvent.SELECT,this.selectEvent);
  69.          this.layersList.addEventListener(ListEvent.LABEL_CHANGE,this.listItemChange);
  70.          this.layersList.addEventListener(MouseEvent.RIGHT_CLICK,this.rightClick);
  71.          this.layersView.otherLayerContextMenu.addEventListener(Event.SELECT,this.contextMenuEvent);
  72.       }
  73.       
  74.       private function mouseEvent(e:MouseEvent) : void
  75.       {
  76.          var name:String = e.target.name;
  77.          if(e.target.name == "toggleBtn")
  78.          {
  79.             this.layersView.toggle();
  80.             ui.uiUpdate();
  81.          }
  82.          else if(e.target.name == "helpBtn")
  83.          {
  84.             _loadHelp();
  85.          }
  86.          else if(name.indexOf("Btn") > -1)
  87.          {
  88.             if(name == "copyBtn" && this.layersList.selectedIndex < this.layersList.length - 1)
  89.             {
  90.                canvasManager.dupLayer(canvasManager.activeLayerDepth);
  91.             }
  92.             else if(name == "flatBtn")
  93.             {
  94.                ui.confirmActionDialog({
  95.                   "message":"This action will clear your undo history.\nThe source layers will remain intact.\nWould you like to continue?",
  96.                   "yesFunction":canvasManager.flattenLayers,
  97.                   "id":"flattenConfirm"
  98.                });
  99.             }
  100.             else if(name == "upBtn" && (this.layersList.selectedIndex > 0 && this.layersList.selectedIndex < this.layersList.length - 1))
  101.             {
  102.                canvasManager.moveLayer(this.layersList.selectedItem.depth,1);
  103.             }
  104.             else if(name == "downBtn" && this.layersList.selectedIndex < this.layersList.length - 2)
  105.             {
  106.                canvasManager.moveLayer(this.layersList.selectedItem.depth,-1);
  107.             }
  108.             else if(name == "removeBtn" && this.layersList.selectedIndex < this.layersList.length - 1)
  109.             {
  110.                canvasManager.deleteContent(true);
  111.             }
  112.             else if(name == "addBtn")
  113.             {
  114.                canvasManager.addBitmapLayer(true);
  115.             }
  116.          }
  117.       }
  118.       
  119.       private function propsChangeEvent(e:Event) : void
  120.       {
  121.          e.stopImmediatePropagation();
  122.          var layerSettings:Settings = new Settings();
  123.          var layer:Layer = this.layersView.layersList.selectedItem as Layer;
  124.          var depth:int = layer.depth;
  125.          layerSettings.blendMode = this.layersView.blendInput.value;
  126.          layerSettings.alpha = Number(this.layersView.alphaInput.value) / 100;
  127.          layerSettings.colorPercent = Number(this.layersView.tintInput.value) / 100;
  128.          layerSettings.label = this.layersView.layersList.selectedItem.label;
  129.          layerSettings.color = this.layersView.colorInput.color;
  130.          canvasManager.adjustLayer(this.layersView.layersList.selectedItem.depth,layerSettings);
  131.       }
  132.       
  133.       private function get panelAsset() : Sprite
  134.       {
  135.          return this.layersView.panelAsset;
  136.       }
  137.       
  138.       private function get uiAsset() : Object
  139.       {
  140.          return this.layersView.uiAsset;
  141.       }
  142.       
  143.       private function selectEvent(e:Event) : void
  144.       {
  145.          if(this.selectedLayerIndex != this.layersView.layersList.selectedIndex)
  146.          {
  147.             canvasManager.changeLayerSelection(this.layersView.getSelectedLayerDepths());
  148.             this.selectedLayerIndex = this.layersView.layersList.selectedIndex;
  149.          }
  150.       }
  151.    }
  152. }
  153.  
  154.