1
4
5 import org.aswing.plaf.basic.frame.Resizer;
6 import org.aswing.plaf.basic.frame.ResizeStrategy;
7 import org.aswing.utils.Delegate;
8
9
13 class org.aswing.plaf.basic.frame.ResizeBarHandler{
14 private var resizer:Resizer;
15 private var mc:MovieClip;
16 private var arrowRotation:Number;
17 private var strategy:ResizeStrategy;
18
19 public function ResizeBarHandler(resizer:Resizer, barMC:MovieClip, arrowRotation:Number, strategy:ResizeStrategy){
20 this.resizer = resizer;
21 mc = barMC;
22 this.arrowRotation = arrowRotation;
23 this.strategy = strategy;
24
25 handle();
26 }
27
28 public static function createHandler(resizer:Resizer, barMC:MovieClip, arrowRotation:Number, strategy:ResizeStrategy):ResizeBarHandler{
29 return new ResizeBarHandler(resizer, barMC, arrowRotation, strategy);
30 }
31
32 private function handle():Void{
33 mc.onRollOver = Delegate.create(this, __onRollOver);
34 mc.onRollOut = Delegate.create(this, __onRollOut);
35 mc.onPress = Delegate.create(this, __onPress);
36 mc.onRelease = Delegate.create(this, __onRelease);
37 mc.onReleaseOutside = Delegate.create(this, __onReleaseOutside);
38 }
39
40 private function __onRollOver():Void{
41 showArrowToMousePos();
42 mc.onMouseMove = Delegate.create(this, showArrowToMousePos);
43 }
44
45 private function __onRollOut():Void{
46 mc.onMouseMove = undefined;
47 resizer.hideArrow();
48 }
49
50 private function __onPress():Void{
51 resizer.startDragArrow();
52 startResize();
53 mc.onMouseMove = Delegate.create(this, resizing);
54 }
55
56 private function __onRelease():Void{
57 resizer.stopDragArrow();
58 mc.onMouseMove = undefined;
59 finishResize();
60 }
61
62 private function __onReleaseOutside():Void{
63 __onRelease();
64 resizer.hideArrow();
65 }
66
67 private function showArrowToMousePos():Void{
68 resizer.setArrowRotation(arrowRotation);
69 resizer.showArrowToMousePos(arrowRotation);
70 }
71
72 private function startResize():Void{
73 resizer.startResize(strategy);
74 }
75
76 private function resizing():Void{
77 resizer.resizing(strategy);
78 }
79
80 private function finishResize():Void{
81 resizer.finishResize(strategy);
82 }
83 }
84