Do something sensible when people set the width on this control
git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@193 ed5b42cb-e716-0410-a449-f6a68f950b19
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package com.threerings.flex {
|
||||
|
||||
import mx.core.ScrollPolicy;
|
||||
|
||||
import mx.containers.HBox;
|
||||
|
||||
import mx.controls.Label;
|
||||
@@ -19,10 +21,14 @@ public class LabeledSlider extends HBox
|
||||
/**
|
||||
* Create a LabeledSlider holding the specified slider.
|
||||
*/
|
||||
public function LabeledSlider (slider :Slider)
|
||||
public function LabeledSlider (slider :Slider, labelWidth :int = 17)
|
||||
{
|
||||
_label = new Label();
|
||||
_label.text = String(slider.value);
|
||||
_label.width = labelWidth;
|
||||
|
||||
horizontalScrollPolicy = ScrollPolicy.OFF;
|
||||
setStyle("horizontalGap", 2);
|
||||
|
||||
addChild(_label);
|
||||
this.slider = slider;
|
||||
@@ -32,6 +38,12 @@ public class LabeledSlider extends HBox
|
||||
slider.addEventListener(SliderEvent.CHANGE, handleSliderChange, false, 0, true);
|
||||
}
|
||||
|
||||
override public function set width (width :Number) :void
|
||||
{
|
||||
super.width = width;
|
||||
slider.width = width - _label.width - 2;
|
||||
}
|
||||
|
||||
protected function handleSliderChange (event :SliderEvent) :void
|
||||
{
|
||||
_label.text = String(event.value);
|
||||
|
||||
Reference in New Issue
Block a user