home *** CD-ROM | disk | FTP | other *** search
/ 600 Games / 600games.iso / Nave / sky-chopper.swf / scripts / __Packages / mx / controls / listclasses / ScrollSelectList.as < prev    next >
Encoding:
Text File  |  2005-09-29  |  19.6 KB  |  712 lines

  1. class mx.controls.listclasses.ScrollSelectList extends mx.core.ScrollView
  2. {
  3.    var invLayoutContent;
  4.    var rows;
  5.    var topRowZ;
  6.    var listContent;
  7.    var __dataProvider;
  8.    var tW;
  9.    var layoutX;
  10.    var layoutY;
  11.    var tH;
  12.    var invRowHeight;
  13.    var __height;
  14.    var invUpdateControl;
  15.    var __cellRenderer;
  16.    var __labelFunction;
  17.    var __iconField;
  18.    var __iconFunction;
  19.    var getLength;
  20.    var baseRowZ;
  21.    var lastPosition;
  22.    var propertyTable;
  23.    var isSelected;
  24.    var changeFlag;
  25.    var clearSelected;
  26.    var selectItem;
  27.    var lastSelected;
  28.    var wasKeySelected;
  29.    var dispatchEvent;
  30.    var dragScrolling;
  31.    var scrollInterval;
  32.    var isPressed;
  33.    var onMouseUp;
  34.    var getSelectedIndex;
  35.    var border_mc;
  36.    static var mixIt1 = mx.controls.listclasses.DataSelector.Initialize(mx.controls.listclasses.ScrollSelectList);
  37.    static var mixIt2 = mx.controls.listclasses.DataProvider.Initialize(Array);
  38.    var CONTENTDEPTH = 100;
  39.    var __hPosition = 0;
  40.    var __rowRenderer = "SelectableRow";
  41.    var __rowHeight = 22;
  42.    var __rowCount = 0;
  43.    var __labelField = "label";
  44.    var minScrollInterval = 30;
  45.    var dropEnabled = false;
  46.    var dragEnabled = false;
  47.    var className = "ScrollSelectList";
  48.    var isRowStyle = {styleName:true,backgroundColor:true,selectionColor:true,rollOverColor:true,selectionDisabledColor:true,backgroundDisabledColor:true,textColor:true,textSelectedColor:true,textRollOverColor:true,textDisabledColor:true,alternatingRowColors:true,defaultIcon:true};
  49.    var roundUp = 0;
  50.    var selectable = true;
  51.    var multipleSelection = false;
  52.    function ScrollSelectList()
  53.    {
  54.       super();
  55.    }
  56.    function layoutContent(x, y, w, h)
  57.    {
  58.       delete this.invLayoutContent;
  59.       var _loc4_ = Math.ceil(h / this.__rowHeight);
  60.       this.roundUp = h % this.__rowHeight != 0;
  61.       var _loc12_ = _loc4_ - this.__rowCount;
  62.       if(_loc12_ < 0)
  63.       {
  64.          var _loc3_ = _loc4_;
  65.          while(_loc3_ < this.__rowCount)
  66.          {
  67.             this.rows[_loc3_].removeMovieClip();
  68.             delete this.rows[_loc3_];
  69.             _loc3_ = _loc3_ + 1;
  70.          }
  71.          this.topRowZ += _loc12_;
  72.       }
  73.       else if(_loc12_ > 0)
  74.       {
  75.          if(this.rows == undefined)
  76.          {
  77.             this.rows = new Array();
  78.          }
  79.          _loc3_ = this.__rowCount;
  80.          while(_loc3_ < _loc4_)
  81.          {
  82.             var _loc0_ = null;
  83.             var _loc2_ = this.rows[_loc3_] = this.listContent.createObject(this.__rowRenderer,"listRow" + this.topRowZ++,this.topRowZ,{owner:this,styleName:this,rowIndex:_loc3_});
  84.             _loc2_._x = x;
  85.             _loc2_._y = Math.round(_loc3_ * this.__rowHeight + y);
  86.             _loc2_.setSize(w,this.__rowHeight);
  87.             _loc2_.drawRow(this.__dataProvider.getItemAt(this.__vPosition + _loc3_),this.getStateAt(this.__vPosition + _loc3_));
  88.             _loc2_.lastY = _loc2_._y;
  89.             _loc3_ = _loc3_ + 1;
  90.          }
  91.       }
  92.       if(w != this.tW)
  93.       {
  94.          var _loc11_ = _loc12_ <= 0 ? _loc4_ : this.__rowCount;
  95.          _loc3_ = 0;
  96.          while(_loc3_ < _loc11_)
  97.          {
  98.             this.rows[_loc3_].setSize(w,this.__rowHeight);
  99.             _loc3_ = _loc3_ + 1;
  100.          }
  101.       }
  102.       if(this.layoutX != x || this.layoutY != y)
  103.       {
  104.          _loc3_ = 0;
  105.          while(_loc3_ < _loc4_)
  106.          {
  107.             this.rows[_loc3_]._x = x;
  108.             this.rows[_loc3_]._y = Math.round(_loc3_ * this.__rowHeight + y);
  109.             _loc3_ = _loc3_ + 1;
  110.          }
  111.       }
  112.       this.__rowCount = _loc4_;
  113.       this.layoutX = x;
  114.       this.layoutY = y;
  115.       this.tW = w;
  116.       this.tH = h;
  117.    }
  118.    function getRowHeight(Void)
  119.    {
  120.       return this.__rowHeight;
  121.    }
  122.    function setRowHeight(v)
  123.    {
  124.       this.__rowHeight = v;
  125.       this.invRowHeight = true;
  126.       this.invalidate();
  127.    }
  128.    function get rowHeight()
  129.    {
  130.       return this.getRowHeight();
  131.    }
  132.    function set rowHeight(w)
  133.    {
  134.       this.setRowHeight(w);
  135.    }
  136.    function setRowCount(v)
  137.    {
  138.       this.__rowCount = v;
  139.    }
  140.    function getRowCount(Void)
  141.    {
  142.       var _loc2_ = this.__rowCount != 0 ? this.__rowCount : Math.ceil(this.__height / this.__rowHeight);
  143.       return _loc2_;
  144.    }
  145.    function get rowCount()
  146.    {
  147.       return this.getRowCount();
  148.    }
  149.    function set rowCount(w)
  150.    {
  151.       this.setRowCount(w);
  152.    }
  153.    function setEnabled(v)
  154.    {
  155.       super.setEnabled(v);
  156.       this.invUpdateControl = true;
  157.       this.invalidate();
  158.    }
  159.    function setCellRenderer(cR)
  160.    {
  161.       this.__cellRenderer = cR;
  162.       var _loc2_ = 0;
  163.       while(_loc2_ < this.rows.length)
  164.       {
  165.          this.rows[_loc2_].setCellRenderer(true);
  166.          _loc2_ = _loc2_ + 1;
  167.       }
  168.       this.invUpdateControl = true;
  169.       this.invalidate();
  170.    }
  171.    function set cellRenderer(cR)
  172.    {
  173.       this.setCellRenderer(cR);
  174.    }
  175.    function get cellRenderer()
  176.    {
  177.       return this.__cellRenderer;
  178.    }
  179.    function set labelField(field)
  180.    {
  181.       this.setLabelField(field);
  182.    }
  183.    function setLabelField(field)
  184.    {
  185.       this.__labelField = field;
  186.       this.invUpdateControl = true;
  187.       this.invalidate();
  188.    }
  189.    function get labelField()
  190.    {
  191.       return this.__labelField;
  192.    }
  193.    function set labelFunction(func)
  194.    {
  195.       this.setLabelFunction(func);
  196.    }
  197.    function setLabelFunction(func)
  198.    {
  199.       this.__labelFunction = func;
  200.       this.invUpdateControl = true;
  201.       this.invalidate();
  202.    }
  203.    function get labelFunction()
  204.    {
  205.       return this.__labelFunction;
  206.    }
  207.    function set iconField(field)
  208.    {
  209.       this.setIconField(field);
  210.    }
  211.    function setIconField(field)
  212.    {
  213.       this.__iconField = field;
  214.       this.invUpdateControl = true;
  215.       this.invalidate();
  216.    }
  217.    function get iconField()
  218.    {
  219.       return this.__iconField;
  220.    }
  221.    function set iconFunction(func)
  222.    {
  223.       this.setIconFunction(func);
  224.    }
  225.    function setIconFunction(func)
  226.    {
  227.       this.__iconFunction = func;
  228.       this.invUpdateControl = true;
  229.       this.invalidate();
  230.    }
  231.    function get iconFunction()
  232.    {
  233.       return this.__iconFunction;
  234.    }
  235.    function setVPosition(pos)
  236.    {
  237.       if(pos < 0)
  238.       {
  239.          return undefined;
  240.       }
  241.       if(pos > 0 && pos > this.getLength() - this.__rowCount + this.roundUp)
  242.       {
  243.          return undefined;
  244.       }
  245.       var _loc8_ = pos - this.__vPosition;
  246.       if(_loc8_ == 0)
  247.       {
  248.          return undefined;
  249.       }
  250.       this.__vPosition = pos;
  251.       var _loc10_ = _loc8_ > 0;
  252.       _loc8_ = Math.abs(_loc8_);
  253.       if(_loc8_ >= this.__rowCount)
  254.       {
  255.          this.updateControl();
  256.       }
  257.       else
  258.       {
  259.          var _loc4_ = new Array();
  260.          var _loc9_ = this.__rowCount - _loc8_;
  261.          var _loc12_ = _loc8_ * this.__rowHeight;
  262.          var _loc11_ = _loc9_ * this.__rowHeight;
  263.          var _loc6_ = !_loc10_ ? -1 : 1;
  264.          var _loc3_ = 0;
  265.          while(_loc3_ < this.__rowCount)
  266.          {
  267.             if(_loc3_ < _loc8_ && _loc10_ || _loc3_ >= _loc9_ && !_loc10_)
  268.             {
  269.                this.rows[_loc3_]._y += Math.round(_loc6_ * _loc11_);
  270.                var _loc5_ = _loc3_ + _loc6_ * _loc9_;
  271.                var _loc7_ = this.__vPosition + _loc5_;
  272.                _loc4_[_loc5_] = this.rows[_loc3_];
  273.                _loc4_[_loc5_].rowIndex = _loc5_;
  274.                _loc4_[_loc5_].drawRow(this.__dataProvider.getItemAt(_loc7_),this.getStateAt(_loc7_),false);
  275.             }
  276.             else
  277.             {
  278.                this.rows[_loc3_]._y -= Math.round(_loc6_ * _loc12_);
  279.                _loc5_ = _loc3_ - _loc6_ * _loc8_;
  280.                _loc4_[_loc5_] = this.rows[_loc3_];
  281.                _loc4_[_loc5_].rowIndex = _loc5_;
  282.             }
  283.             _loc3_ = _loc3_ + 1;
  284.          }
  285.          this.rows = _loc4_;
  286.          _loc3_ = 0;
  287.          while(_loc3_ < this.__rowCount)
  288.          {
  289.             this.rows[_loc3_].swapDepths(this.baseRowZ + _loc3_);
  290.             _loc3_ = _loc3_ + 1;
  291.          }
  292.       }
  293.       this.lastPosition = pos;
  294.       super.setVPosition(pos);
  295.    }
  296.    function setPropertiesAt(index, obj)
  297.    {
  298.       var _loc2_ = this.__dataProvider.getItemID(index);
  299.       if(_loc2_ == undefined)
  300.       {
  301.          return undefined;
  302.       }
  303.       if(this.propertyTable == undefined)
  304.       {
  305.          this.propertyTable = new Object();
  306.       }
  307.       this.propertyTable[_loc2_] = obj;
  308.       this.rows[index - this.__vPosition].drawRow(this.__dataProvider.getItemAt(index),this.getStateAt(index));
  309.    }
  310.    function getPropertiesAt(index)
  311.    {
  312.       var _loc2_ = this.__dataProvider.getItemID(index);
  313.       if(_loc2_ == undefined)
  314.       {
  315.          return undefined;
  316.       }
  317.       return this.propertyTable[_loc2_];
  318.    }
  319.    function getStyle(styleProp)
  320.    {
  321.       var _loc2_ = super.getStyle(styleProp);
  322.       var _loc3_ = mx.styles.StyleManager.colorNames[_loc2_];
  323.       if(_loc3_ != undefined)
  324.       {
  325.          _loc2_ = _loc3_;
  326.       }
  327.       return _loc2_;
  328.    }
  329.    function updateControl(Void)
  330.    {
  331.       var _loc2_ = 0;
  332.       while(_loc2_ < this.__rowCount)
  333.       {
  334.          this.rows[_loc2_].drawRow(this.__dataProvider.getItemAt(_loc2_ + this.__vPosition),this.getStateAt(_loc2_ + this.__vPosition));
  335.          _loc2_ = _loc2_ + 1;
  336.       }
  337.       delete this.invUpdateControl;
  338.    }
  339.    function getStateAt(index)
  340.    {
  341.       return !this.isSelected(index) ? "normal" : "selected";
  342.    }
  343.    function selectRow(rowIndex, transition)
  344.    {
  345.       if(!this.selectable)
  346.       {
  347.          return undefined;
  348.       }
  349.       var _loc3_ = this.__vPosition + rowIndex;
  350.       var _loc8_ = this.__dataProvider.getItemAt(_loc3_);
  351.       var _loc5_ = this.rows[rowIndex];
  352.       if(_loc8_ == undefined)
  353.       {
  354.          return undefined;
  355.       }
  356.       if(transition == undefined)
  357.       {
  358.          transition = true;
  359.       }
  360.       this.changeFlag = true;
  361.       if(!this.multipleSelection && !Key.isDown(17) || !Key.isDown(16) && !Key.isDown(17))
  362.       {
  363.          this.clearSelected(transition);
  364.          this.selectItem(_loc3_,true);
  365.          this.lastSelected = _loc3_;
  366.          _loc5_.drawRow(_loc5_.item,this.getStateAt(_loc3_),transition);
  367.       }
  368.       else if(Key.isDown(16) && this.multipleSelection)
  369.       {
  370.          if(this.lastSelected == undefined)
  371.          {
  372.             this.lastSelected = _loc3_;
  373.          }
  374.          var _loc4_ = this.lastSelected >= _loc3_ ? -1 : 1;
  375.          this.clearSelected(false);
  376.          var _loc2_ = this.lastSelected;
  377.          while(_loc2_ != _loc3_)
  378.          {
  379.             this.selectItem(_loc2_,true);
  380.             if(_loc2_ >= this.__vPosition && _loc2_ < this.__vPosition + this.__rowCount)
  381.             {
  382.                this.rows[_loc2_ - this.__vPosition].drawRow(this.rows[_loc2_ - this.__vPosition].item,"selected",false);
  383.             }
  384.             _loc2_ += _loc4_;
  385.          }
  386.          this.selectItem(_loc3_,true);
  387.          _loc5_.drawRow(_loc5_.item,"selected",transition);
  388.       }
  389.       else if(Key.isDown(17))
  390.       {
  391.          var _loc7_ = this.isSelected(_loc3_);
  392.          if(!this.multipleSelection || this.wasKeySelected)
  393.          {
  394.             this.clearSelected(transition);
  395.          }
  396.          if(!(!this.multipleSelection && _loc7_))
  397.          {
  398.             this.selectItem(_loc3_,!_loc7_);
  399.             var _loc9_ = !!_loc7_ ? "normal" : "selected";
  400.             _loc5_.drawRow(_loc5_.item,_loc9_,transition);
  401.          }
  402.          this.lastSelected = _loc3_;
  403.       }
  404.       if(this.wasKeySelected)
  405.       {
  406.          this.dispatchEvent({type:"change"});
  407.       }
  408.       delete this.wasKeySelected;
  409.    }
  410.    function dragScroll(Void)
  411.    {
  412.       clearInterval(this.dragScrolling);
  413.       if(this._ymouse < 0)
  414.       {
  415.          this.setVPosition(this.__vPosition - 1);
  416.          this.selectRow(0,false);
  417.          var _loc2_ = Math.min(- this._ymouse - 30,0);
  418.          this.scrollInterval = 0.593 * _loc2_ * _loc2_ + 1 + this.minScrollInterval;
  419.          this.dragScrolling = setInterval(this,"dragScroll",this.scrollInterval);
  420.          this.dispatchEvent({type:"scroll",direction:"vertical",position:this.__vPosition});
  421.       }
  422.       else if(this._ymouse > this.__height)
  423.       {
  424.          var _loc3_ = this.__vPosition;
  425.          this.setVPosition(this.__vPosition + 1);
  426.          if(_loc3_ != this.__vPosition)
  427.          {
  428.             this.selectRow(this.__rowCount - 1 - this.roundUp,false);
  429.          }
  430.          _loc2_ = Math.min(this._ymouse - this.__height - 30,0);
  431.          this.scrollInterval = 0.593 * _loc2_ * _loc2_ + 1 + this.minScrollInterval;
  432.          this.dragScrolling = setInterval(this,"dragScroll",this.scrollInterval);
  433.          this.dispatchEvent({type:"scroll",direction:"vertical",position:this.__vPosition});
  434.       }
  435.       else
  436.       {
  437.          this.dragScrolling = setInterval(this,"dragScroll",15);
  438.       }
  439.       updateAfterEvent();
  440.    }
  441.    function __onMouseUp(Void)
  442.    {
  443.       clearInterval(this.dragScrolling);
  444.       delete this.dragScrolling;
  445.       delete this.dragScrolling;
  446.       delete this.isPressed;
  447.       delete this.onMouseUp;
  448.       if(!this.selectable)
  449.       {
  450.          return undefined;
  451.       }
  452.       if(this.changeFlag)
  453.       {
  454.          this.dispatchEvent({type:"change"});
  455.       }
  456.       delete this.changeFlag;
  457.    }
  458.    function moveSelBy(incr)
  459.    {
  460.       if(!this.selectable)
  461.       {
  462.          this.setVPosition(this.__vPosition + incr);
  463.          return undefined;
  464.       }
  465.       var _loc3_ = this.getSelectedIndex();
  466.       if(_loc3_ == undefined)
  467.       {
  468.          _loc3_ = -1;
  469.       }
  470.       var _loc2_ = _loc3_ + incr;
  471.       _loc2_ = Math.max(0,_loc2_);
  472.       _loc2_ = Math.min(this.getLength() - 1,_loc2_);
  473.       if(_loc2_ == _loc3_)
  474.       {
  475.          return undefined;
  476.       }
  477.       if(_loc3_ < this.__vPosition || _loc3_ >= this.__vPosition + this.__rowCount)
  478.       {
  479.          this.setVPosition(_loc3_);
  480.       }
  481.       if(_loc2_ >= this.__vPosition + this.__rowCount - this.roundUp || _loc2_ < this.__vPosition)
  482.       {
  483.          this.setVPosition(this.__vPosition + incr);
  484.       }
  485.       this.wasKeySelected = true;
  486.       this.selectRow(_loc2_ - this.__vPosition,false);
  487.    }
  488.    function keyDown(e)
  489.    {
  490.       if(this.selectable)
  491.       {
  492.          if(this.findInputText())
  493.          {
  494.             return undefined;
  495.          }
  496.       }
  497.       if(e.code == 40)
  498.       {
  499.          this.moveSelBy(1);
  500.       }
  501.       else if(e.code == 38)
  502.       {
  503.          this.moveSelBy(-1);
  504.       }
  505.       else if(e.code == 34)
  506.       {
  507.          if(this.selectable)
  508.          {
  509.             var _loc3_ = this.getSelectedIndex();
  510.             if(_loc3_ == undefined)
  511.             {
  512.                _loc3_ = 0;
  513.             }
  514.             this.setVPosition(_loc3_);
  515.          }
  516.          this.moveSelBy(this.__rowCount - 1 - this.roundUp);
  517.       }
  518.       else if(e.code == 33)
  519.       {
  520.          if(this.selectable)
  521.          {
  522.             _loc3_ = this.getSelectedIndex();
  523.             if(_loc3_ == undefined)
  524.             {
  525.                _loc3_ = 0;
  526.             }
  527.             this.setVPosition(_loc3_);
  528.          }
  529.          this.moveSelBy(1 - this.__rowCount + this.roundUp);
  530.       }
  531.       else if(e.code == 36)
  532.       {
  533.          this.moveSelBy(- this.__dataProvider.length);
  534.       }
  535.       else if(e.code == 35)
  536.       {
  537.          this.moveSelBy(this.__dataProvider.length);
  538.       }
  539.    }
  540.    function findInputText(Void)
  541.    {
  542.       var _loc2_ = Key.getAscii();
  543.       if(_loc2_ >= 33 && _loc2_ <= 126)
  544.       {
  545.          this.findString(String.fromCharCode(_loc2_));
  546.          return true;
  547.       }
  548.    }
  549.    function findString(str)
  550.    {
  551.       if(this.__dataProvider.length == 0)
  552.       {
  553.          return undefined;
  554.       }
  555.       var _loc4_ = this.getSelectedIndex();
  556.       var _loc6_ = 0;
  557.       var _loc3_ = _loc4_ + 1;
  558.       while(_loc3_ != _loc4_)
  559.       {
  560.          var _loc2_ = this.__dataProvider.getItemAt(_loc3_);
  561.          if(_loc2_ instanceof XMLNode)
  562.          {
  563.             _loc2_ = _loc2_.attributes[this.__labelField];
  564.          }
  565.          else if(typeof _loc2_ != "string")
  566.          {
  567.             _loc2_ = String(_loc2_[this.__labelField]);
  568.          }
  569.          _loc2_ = _loc2_.substring(0,str.length);
  570.          if(str == _loc2_ || str.toUpperCase() == _loc2_.toUpperCase())
  571.          {
  572.             _loc6_ = _loc3_ - _loc4_;
  573.             break;
  574.          }
  575.          if(_loc3_ >= this.getLength() - 1)
  576.          {
  577.             _loc3_ = -1;
  578.          }
  579.          _loc3_ = _loc3_ + 1;
  580.       }
  581.       if(_loc6_ != 0)
  582.       {
  583.          this.moveSelBy(_loc6_);
  584.       }
  585.    }
  586.    function onRowPress(rowIndex)
  587.    {
  588.       if(!this.enabled)
  589.       {
  590.          return undefined;
  591.       }
  592.       this.isPressed = true;
  593.       this.dragScrolling = setInterval(this,"dragScroll",15);
  594.       this.onMouseUp = this.__onMouseUp;
  595.       if(!this.selectable)
  596.       {
  597.          return undefined;
  598.       }
  599.       this.selectRow(rowIndex);
  600.    }
  601.    function onRowRelease(rowIndex)
  602.    {
  603.    }
  604.    function onRowRollOver(rowIndex)
  605.    {
  606.       if(!this.enabled)
  607.       {
  608.          return undefined;
  609.       }
  610.       var _loc2_ = this.rows[rowIndex].item;
  611.       if(this.getStyle("useRollOver") && _loc2_ != undefined)
  612.       {
  613.          this.rows[rowIndex].drawRow(_loc2_,"highlighted",false);
  614.       }
  615.       this.dispatchEvent({type:"itemRollOver",index:rowIndex + this.__vPosition});
  616.    }
  617.    function onRowRollOut(rowIndex)
  618.    {
  619.       if(!this.enabled)
  620.       {
  621.          return undefined;
  622.       }
  623.       if(this.getStyle("useRollOver"))
  624.       {
  625.          this.rows[rowIndex].drawRow(this.rows[rowIndex].item,this.getStateAt(rowIndex + this.__vPosition),false);
  626.       }
  627.       this.dispatchEvent({type:"itemRollOut",index:rowIndex + this.__vPosition});
  628.    }
  629.    function onRowDragOver(rowIndex)
  630.    {
  631.       if(!this.enabled || this.isPressed != true || !this.selectable)
  632.       {
  633.          return undefined;
  634.       }
  635.       if(!this.dropEnabled)
  636.       {
  637.          if(this.dragScrolling)
  638.          {
  639.             this.selectRow(rowIndex,false);
  640.          }
  641.          else
  642.          {
  643.             this.onMouseUp = this.__onMouseUp;
  644.             this.onRowPress(rowIndex);
  645.          }
  646.       }
  647.    }
  648.    function onRowDragOut(rowIndex)
  649.    {
  650.       if(!this.enabled)
  651.       {
  652.          return undefined;
  653.       }
  654.       if(!this.dragEnabled)
  655.       {
  656.          this.onRowRollOut(rowIndex);
  657.       }
  658.    }
  659.    function init(Void)
  660.    {
  661.       super.init();
  662.       this.tabEnabled = true;
  663.       this.tabChildren = false;
  664.       if(this.__dataProvider == undefined)
  665.       {
  666.          this.__dataProvider = new Array();
  667.          this.__dataProvider.addEventListener("modelChanged",this);
  668.       }
  669.       this.baseRowZ = this.topRowZ = 10;
  670.    }
  671.    function createChildren(Void)
  672.    {
  673.       super.createChildren();
  674.       this.listContent = this.createEmptyMovieClip("content_mc",this.CONTENTDEPTH);
  675.       this.invLayoutContent = true;
  676.       this.invalidate();
  677.    }
  678.    function draw(Void)
  679.    {
  680.       if(this.invRowHeight)
  681.       {
  682.          delete this.invRowHeight;
  683.          this.__rowCount = 0;
  684.          this.listContent.removeMovieClip();
  685.          this.listContent = this.createEmptyMovieClip("content_mc",this.CONTENTDEPTH);
  686.       }
  687.       if(this.invUpdateControl)
  688.       {
  689.          this.updateControl();
  690.       }
  691.       this.border_mc.draw();
  692.    }
  693.    function invalidateStyle(propName)
  694.    {
  695.       if(this.isRowStyle[propName])
  696.       {
  697.          this.invUpdateControl = true;
  698.          this.invalidate();
  699.       }
  700.       else
  701.       {
  702.          var _loc3_ = 0;
  703.          while(_loc3_ < this.__rowCount)
  704.          {
  705.             this.rows[_loc3_].invalidateStyle(propName);
  706.             _loc3_ = _loc3_ + 1;
  707.          }
  708.       }
  709.       super.invalidateStyle(propName);
  710.    }
  711. }
  712.