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