home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2012 April / ME_04_2012.iso / Video-Tutorial / iPhoto / media / player.swf / scripts / mx / skins / ProgrammaticSkin.as < prev    next >
Encoding:
Text File  |  2011-11-11  |  8.8 KB  |  306 lines

  1. package mx.skins
  2. {
  3.    import flash.display.Graphics;
  4.    import flash.geom.Matrix;
  5.    import flash.utils.getDefinitionByName;
  6.    import mx.core.FlexShape;
  7.    import mx.core.IFlexDisplayObject;
  8.    import mx.core.IInvalidating;
  9.    import mx.core.IProgrammaticSkin;
  10.    import mx.core.UIComponentGlobals;
  11.    import mx.core.mx_internal;
  12.    import mx.managers.ILayoutManagerClient;
  13.    import mx.styles.ISimpleStyleClient;
  14.    import mx.styles.IStyleClient;
  15.    import mx.styles.IStyleManager2;
  16.    import mx.styles.StyleManager;
  17.    import mx.utils.GraphicsUtil;
  18.    
  19.    use namespace mx_internal;
  20.    
  21.    public class ProgrammaticSkin extends FlexShape implements IFlexDisplayObject, IInvalidating, ILayoutManagerClient, ISimpleStyleClient, IProgrammaticSkin
  22.    {
  23.       private static var uiComponentClass:Class;
  24.       
  25.       mx_internal static const VERSION:String = "4.5.0.20967";
  26.       
  27.       private static var tempMatrix:Matrix = new Matrix();
  28.       
  29.       private var invalidateDisplayListFlag:Boolean = false;
  30.       
  31.       private var _height:Number;
  32.       
  33.       private var _width:Number;
  34.       
  35.       private var _initialized:Boolean = false;
  36.       
  37.       private var _nestLevel:int = 0;
  38.       
  39.       private var _processedDescriptors:Boolean = false;
  40.       
  41.       private var _updateCompletePendingFlag:Boolean = true;
  42.       
  43.       private var _styleName:IStyleClient;
  44.       
  45.       public function ProgrammaticSkin()
  46.       {
  47.          super();
  48.          this._width = this.measuredWidth;
  49.          this._height = this.measuredHeight;
  50.       }
  51.       
  52.       override public function get height() : Number
  53.       {
  54.          return this._height;
  55.       }
  56.       
  57.       override public function set height(param1:Number) : void
  58.       {
  59.          this._height = param1;
  60.          this.invalidateDisplayList();
  61.       }
  62.       
  63.       override public function get width() : Number
  64.       {
  65.          return this._width;
  66.       }
  67.       
  68.       override public function set width(param1:Number) : void
  69.       {
  70.          this._width = param1;
  71.          this.invalidateDisplayList();
  72.       }
  73.       
  74.       public function get measuredHeight() : Number
  75.       {
  76.          return 0;
  77.       }
  78.       
  79.       public function get measuredWidth() : Number
  80.       {
  81.          return 0;
  82.       }
  83.       
  84.       public function get initialized() : Boolean
  85.       {
  86.          return this._initialized;
  87.       }
  88.       
  89.       public function set initialized(param1:Boolean) : void
  90.       {
  91.          this._initialized = param1;
  92.       }
  93.       
  94.       public function get nestLevel() : int
  95.       {
  96.          return this._nestLevel;
  97.       }
  98.       
  99.       public function set nestLevel(param1:int) : void
  100.       {
  101.          this._nestLevel = param1;
  102.          this.invalidateDisplayList();
  103.       }
  104.       
  105.       public function get processedDescriptors() : Boolean
  106.       {
  107.          return this._processedDescriptors;
  108.       }
  109.       
  110.       public function set processedDescriptors(param1:Boolean) : void
  111.       {
  112.          this._processedDescriptors = param1;
  113.       }
  114.       
  115.       public function get updateCompletePendingFlag() : Boolean
  116.       {
  117.          return this._updateCompletePendingFlag;
  118.       }
  119.       
  120.       public function set updateCompletePendingFlag(param1:Boolean) : void
  121.       {
  122.          this._updateCompletePendingFlag = param1;
  123.       }
  124.       
  125.       public function get styleName() : Object
  126.       {
  127.          return this._styleName;
  128.       }
  129.       
  130.       public function set styleName(param1:Object) : void
  131.       {
  132.          if(this._styleName != param1)
  133.          {
  134.             this._styleName = param1 as IStyleClient;
  135.             this.invalidateDisplayList();
  136.          }
  137.       }
  138.       
  139.       public function move(param1:Number, param2:Number) : void
  140.       {
  141.          this.x = param1;
  142.          this.y = param2;
  143.       }
  144.       
  145.       public function setActualSize(param1:Number, param2:Number) : void
  146.       {
  147.          var _loc3_:Boolean = false;
  148.          if(this._width != param1)
  149.          {
  150.             this._width = param1;
  151.             _loc3_ = true;
  152.          }
  153.          if(this._height != param2)
  154.          {
  155.             this._height = param2;
  156.             _loc3_ = true;
  157.          }
  158.          if(_loc3_)
  159.          {
  160.             this.invalidateDisplayList();
  161.          }
  162.       }
  163.       
  164.       public function validateProperties() : void
  165.       {
  166.       }
  167.       
  168.       public function validateSize(param1:Boolean = false) : void
  169.       {
  170.       }
  171.       
  172.       public function validateDisplayList() : void
  173.       {
  174.          this.invalidateDisplayListFlag = false;
  175.          this.updateDisplayList(this.width,this.height);
  176.       }
  177.       
  178.       public function styleChanged(param1:String) : void
  179.       {
  180.          this.invalidateDisplayList();
  181.       }
  182.       
  183.       public function invalidateDisplayList() : void
  184.       {
  185.          if(!this.invalidateDisplayListFlag && this.nestLevel > 0)
  186.          {
  187.             this.invalidateDisplayListFlag = true;
  188.             UIComponentGlobals.mx_internal::layoutManager.invalidateDisplayList(this);
  189.          }
  190.       }
  191.       
  192.       protected function updateDisplayList(param1:Number, param2:Number) : void
  193.       {
  194.       }
  195.       
  196.       public function invalidateSize() : void
  197.       {
  198.       }
  199.       
  200.       public function invalidateProperties() : void
  201.       {
  202.       }
  203.       
  204.       public function validateNow() : void
  205.       {
  206.          if(this.invalidateDisplayListFlag)
  207.          {
  208.             this.validateDisplayList();
  209.          }
  210.       }
  211.       
  212.       public function getStyle(param1:String) : *
  213.       {
  214.          return !!this._styleName ? this._styleName.getStyle(param1) : null;
  215.       }
  216.       
  217.       protected function get styleManager() : IStyleManager2
  218.       {
  219.          if(uiComponentClass == null)
  220.          {
  221.             uiComponentClass = Class(getDefinitionByName("mx.core.UIComponent"));
  222.          }
  223.          if(this.styleName is uiComponentClass)
  224.          {
  225.             return this.styleName.styleManager;
  226.          }
  227.          return StyleManager.getStyleManager(null);
  228.       }
  229.       
  230.       protected function horizontalGradientMatrix(param1:Number, param2:Number, param3:Number, param4:Number) : Matrix
  231.       {
  232.          return this.rotatedGradientMatrix(param1,param2,param3,param4,0);
  233.       }
  234.       
  235.       protected function verticalGradientMatrix(param1:Number, param2:Number, param3:Number, param4:Number) : Matrix
  236.       {
  237.          return this.rotatedGradientMatrix(param1,param2,param3,param4,90);
  238.       }
  239.       
  240.       protected function rotatedGradientMatrix(param1:Number, param2:Number, param3:Number, param4:Number, param5:Number) : Matrix
  241.       {
  242.          tempMatrix.createGradientBox(param3,param4,param5 * Math.PI / 180,param1,param2);
  243.          return tempMatrix;
  244.       }
  245.       
  246.       protected function drawRoundRect(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null, param6:Object = null, param7:Object = null, param8:Matrix = null, param9:String = "linear", param10:Array = null, param11:Object = null) : void
  247.       {
  248.          var _loc13_:Number = NaN;
  249.          var _loc14_:Array = null;
  250.          var _loc15_:Object = null;
  251.          var _loc12_:Graphics = graphics;
  252.          if(param3 == 0 || param4 == 0)
  253.          {
  254.             return;
  255.          }
  256.          if(param6 !== null)
  257.          {
  258.             if(param6 is uint)
  259.             {
  260.                _loc12_.beginFill(uint(param6),Number(param7));
  261.             }
  262.             else if(param6 is Array)
  263.             {
  264.                _loc14_ = param7 is Array ? param7 as Array : [param7,param7];
  265.                if(!param10)
  266.                {
  267.                   param10 = [0,255];
  268.                }
  269.                _loc12_.beginGradientFill(param9,param6 as Array,_loc14_,param10,param8);
  270.             }
  271.          }
  272.          if(!param5)
  273.          {
  274.             _loc12_.drawRect(param1,param2,param3,param4);
  275.          }
  276.          else if(param5 is Number)
  277.          {
  278.             _loc13_ = Number(param5) * 2;
  279.             _loc12_.drawRoundRect(param1,param2,param3,param4,_loc13_,_loc13_);
  280.          }
  281.          else
  282.          {
  283.             GraphicsUtil.drawRoundRectComplex(_loc12_,param1,param2,param3,param4,param5.tl,param5.tr,param5.bl,param5.br);
  284.          }
  285.          if(param11)
  286.          {
  287.             _loc15_ = param11.r;
  288.             if(_loc15_ is Number)
  289.             {
  290.                _loc13_ = Number(_loc15_) * 2;
  291.                _loc12_.drawRoundRect(param11.x,param11.y,param11.w,param11.h,_loc13_,_loc13_);
  292.             }
  293.             else
  294.             {
  295.                GraphicsUtil.drawRoundRectComplex(_loc12_,param11.x,param11.y,param11.w,param11.h,_loc15_.tl,_loc15_.tr,_loc15_.bl,_loc15_.br);
  296.             }
  297.          }
  298.          if(param6 !== null)
  299.          {
  300.             _loc12_.endFill();
  301.          }
  302.       }
  303.    }
  304. }
  305.  
  306.