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

  1. package mx.controls
  2. {
  3.    import mx.core.UITextField;
  4.    import mx.core.mx_internal;
  5.    import mx.events.FlexEvent;
  6.    
  7.    use namespace mx_internal;
  8.    
  9.    public class Text extends Label
  10.    {
  11.       mx_internal static const VERSION:String = "4.5.0.20967";
  12.       
  13.       private var lastUnscaledWidth:Number = NaN;
  14.       
  15.       private var widthChanged:Boolean = true;
  16.       
  17.       public function Text()
  18.       {
  19.          super();
  20.          selectable = true;
  21.          truncateToFit = false;
  22.          addEventListener(FlexEvent.UPDATE_COMPLETE,this.updateCompleteHandler);
  23.       }
  24.       
  25.       override public function set explicitWidth(param1:Number) : void
  26.       {
  27.          if(param1 != explicitWidth)
  28.          {
  29.             this.widthChanged = true;
  30.             invalidateProperties();
  31.             invalidateSize();
  32.          }
  33.          super.explicitWidth = param1;
  34.       }
  35.       
  36.       override public function set maxWidth(param1:Number) : void
  37.       {
  38.          if(param1 != maxWidth)
  39.          {
  40.             this.widthChanged = true;
  41.             invalidateProperties();
  42.             invalidateSize();
  43.          }
  44.          super.maxWidth = param1;
  45.       }
  46.       
  47.       override public function set percentWidth(param1:Number) : void
  48.       {
  49.          if(param1 != percentWidth)
  50.          {
  51.             this.widthChanged = true;
  52.             invalidateProperties();
  53.             invalidateSize();
  54.          }
  55.          super.percentWidth = param1;
  56.       }
  57.       
  58.       override protected function childrenCreated() : void
  59.       {
  60.          super.childrenCreated();
  61.          textField.wordWrap = true;
  62.          textField.multiline = true;
  63.          textField.mouseWheelEnabled = false;
  64.       }
  65.       
  66.       override protected function commitProperties() : void
  67.       {
  68.          super.commitProperties();
  69.          if(this.widthChanged)
  70.          {
  71.             textField.wordWrap = !isNaN(explicitWidth) || !isNaN(explicitMaxWidth) || !isNaN(percentWidth);
  72.             this.widthChanged = false;
  73.          }
  74.       }
  75.       
  76.       override protected function measure() : void
  77.       {
  78.          var _loc1_:Number = NaN;
  79.          if(this.isSpecialCase())
  80.          {
  81.             if(!isNaN(this.lastUnscaledWidth))
  82.             {
  83.                this.measureUsingWidth(this.lastUnscaledWidth);
  84.             }
  85.             else
  86.             {
  87.                measuredWidth = 0;
  88.                measuredHeight = 0;
  89.             }
  90.             return;
  91.          }
  92.          if(!isNaN(explicitWidth))
  93.          {
  94.             _loc1_ = explicitWidth;
  95.          }
  96.          else if(!isNaN(explicitMaxWidth))
  97.          {
  98.             _loc1_ = explicitMaxWidth;
  99.          }
  100.          this.measureUsingWidth(_loc1_);
  101.       }
  102.       
  103.       override protected function updateDisplayList(param1:Number, param2:Number) : void
  104.       {
  105.          var _loc7_:Boolean = false;
  106.          if(this.isSpecialCase())
  107.          {
  108.             _loc7_ = isNaN(this.lastUnscaledWidth) || this.lastUnscaledWidth != param1;
  109.             this.lastUnscaledWidth = param1;
  110.             if(_loc7_)
  111.             {
  112.                invalidateSize();
  113.                return;
  114.             }
  115.          }
  116.          var _loc3_:Number = getStyle("paddingLeft");
  117.          var _loc4_:Number = getStyle("paddingTop");
  118.          var _loc5_:Number = getStyle("paddingRight");
  119.          var _loc6_:Number = getStyle("paddingBottom");
  120.          textField.setActualSize(param1 - _loc3_ - _loc5_,param2 - _loc4_ - _loc6_);
  121.          textField.x = _loc3_;
  122.          textField.y = _loc4_;
  123.          if(Math.floor(width) < Math.floor(measuredWidth))
  124.          {
  125.             textField.wordWrap = true;
  126.          }
  127.       }
  128.       
  129.       private function isSpecialCase() : Boolean
  130.       {
  131.          var _loc1_:Number = getStyle("left");
  132.          var _loc2_:Number = getStyle("right");
  133.          return (!isNaN(percentWidth) || !isNaN(_loc1_) && !isNaN(_loc2_)) && isNaN(explicitHeight) && isNaN(percentHeight);
  134.       }
  135.       
  136.       private function measureUsingWidth(param1:Number) : void
  137.       {
  138.          var _loc4_:Number = NaN;
  139.          var _loc5_:Number = NaN;
  140.          var _loc6_:Boolean = false;
  141.          var _loc2_:Number = getStyle("paddingLeft");
  142.          var _loc3_:Number = getStyle("paddingTop");
  143.          _loc4_ = getStyle("paddingRight");
  144.          _loc5_ = getStyle("paddingBottom");
  145.          textField.validateNow();
  146.          textField.autoSize = "left";
  147.          if(!isNaN(param1))
  148.          {
  149.             textField.width = param1 - _loc2_ - _loc4_;
  150.             measuredWidth = Math.ceil(textField.textWidth) + UITextField.mx_internal::TEXT_WIDTH_PADDING;
  151.             measuredHeight = Math.ceil(textField.textHeight) + UITextField.mx_internal::TEXT_HEIGHT_PADDING;
  152.          }
  153.          else
  154.          {
  155.             _loc6_ = textField.wordWrap;
  156.             textField.wordWrap = false;
  157.             measuredWidth = Math.ceil(textField.textWidth) + UITextField.mx_internal::TEXT_WIDTH_PADDING;
  158.             measuredHeight = Math.ceil(textField.textHeight) + UITextField.mx_internal::TEXT_HEIGHT_PADDING;
  159.             textField.wordWrap = _loc6_;
  160.          }
  161.          textField.autoSize = "none";
  162.          measuredWidth += _loc2_ + _loc4_;
  163.          measuredHeight += _loc3_ + _loc5_;
  164.          if(isNaN(explicitWidth))
  165.          {
  166.             measuredMinWidth = DEFAULT_MEASURED_MIN_WIDTH;
  167.             measuredMinHeight = DEFAULT_MEASURED_MIN_HEIGHT;
  168.          }
  169.          else
  170.          {
  171.             measuredMinWidth = measuredWidth;
  172.             measuredMinHeight = measuredHeight;
  173.          }
  174.       }
  175.       
  176.       private function updateCompleteHandler(param1:FlexEvent) : void
  177.       {
  178.          this.lastUnscaledWidth = NaN;
  179.       }
  180.    }
  181. }
  182.  
  183.