- Replaced direct XplatUI calls with their Control counterpart
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / TrackBar.cs
index 397ce6898f61d5b5693adeea7caa960e3ca9f742..d12756ade89ecfa0634752c864561060fa76bf9f 100644 (file)
 // Copyright (C) Novell Inc., 2004
 //
 //
-// $Revision: 1.9 $
+// $Revision: 1.12 $
 // $Modtime: $
 // $Log: TrackBar.cs,v $
+// Revision 1.12  2004/08/21 20:21:48  pbartok
+// - Replaced direct XplatUI calls with their Control counterpart
+//
+// Revision 1.11  2004/08/20 19:45:50  jordi
+// fixes timer, new properties and methods
+//
+// Revision 1.10  2004/08/13 20:55:20  jordi
+// change from wndproc to events
+//
 // Revision 1.9  2004/08/13 18:46:26  jordi
 // adds timer and grap window
 //
@@ -94,6 +103,9 @@ namespace System.Windows.Forms
                #region Events
                public event EventHandler Scroll;
                public event EventHandler ValueChanged;         
+               public new event EventHandler ImeModeChanged;
+               public new event EventHandler ForeColorChanged;
+               public new event EventHandler TextChanged;
                #endregion // Events
 
                public TrackBar ()
@@ -110,6 +122,10 @@ namespace System.Windows.Forms
                        Scroll = null;
                        ValueChanged  = null;           
                        mouse_clickmove = false;
+                       SizeChanged += new System.EventHandler (OnResizeTB);
+                       MouseDown += new MouseEventHandler (OnMouseDownTB); 
+                       MouseUp += new MouseEventHandler (OnMouseUpTB); 
+                       holdclick_timer.Elapsed += new ElapsedEventHandler (OnFirstClickTimer);
 
                        SetStyle (ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);
                        SetStyle (ControlStyles.ResizeRedraw | ControlStyles.Opaque, true);                     
@@ -158,10 +174,31 @@ namespace System.Windows.Forms
                [EditorBrowsable (EditorBrowsableState.Never)]  
                public override Color ForeColor {
                        get { return base.ForeColor; }
-                       set { base.ForeColor = value; }
+                       set {
+                               if (value == base.ForeColor)
+                                       return;
+
+                               if (ForeColorChanged != null)
+                                       ForeColorChanged (this, EventArgs.Empty);
+
+                               Refresh ();
+                       }
                }               
 
-               public int LargeChange {
+               public new ImeMode ImeMode {
+                       get { return base.ImeMode; }
+                       set {
+                               if (value == base.ImeMode)
+                                       return;
+
+                               base.ImeMode = value;
+                               if (ImeModeChanged != null)
+                                       ImeModeChanged (this, EventArgs.Empty);
+                       }
+               }
+
+               public int LargeChange \r
+               {
                        get { return largeChange; }
                        set {
                                if (value < 0)
@@ -234,8 +271,16 @@ namespace System.Windows.Forms
 
                [EditorBrowsable (EditorBrowsableState.Never)]
                public override string Text {
-                       get {   return base.Text; }
-                       set {   base.Text = value; }
+                       get {   return base.Text; }                     
+                       set {
+                               if (value == base.Text)
+                                       return;
+
+                               if (TextChanged != null)
+                                       TextChanged (this, EventArgs.Empty);
+
+                               Refresh ();
+                       }
                }
 
 
@@ -368,19 +413,6 @@ namespace System.Windows.Forms
 
                        switch ((Msg) m.Msg) {
                                
-                       case Msg.WM_LBUTTONDOWN:
-                               OnMouseDownTB (new MouseEventArgs (FromParamToMouseButtons ((int) m.WParam.ToInt32()), 
-                                               clicks, LowOrder ((int) m.LParam.ToInt32 ()), HighOrder ((int) m.LParam.ToInt32 ()), 
-                                               0));
-                                       
-                               break;
-
-                       case Msg.WM_LBUTTONUP:
-                               OnMouseUpTB (new MouseEventArgs (FromParamToMouseButtons ((int) m.WParam.ToInt32()), 
-                                       clicks, LowOrder ((int) m.LParam.ToInt32 ()), HighOrder ((int) m.LParam.ToInt32 ()), 
-                                       0));
-                                       
-                               break;
                                
                        case Msg.WM_MOUSEMOVE: 
                                OnMouseMoveTB  (new MouseEventArgs (FromParamToMouseButtons ((int) m.WParam.ToInt32()), 
@@ -388,11 +420,7 @@ namespace System.Windows.Forms
                                                LowOrder ((int) m.LParam.ToInt32 ()), HighOrder ((int) m.LParam.ToInt32 ()), 
                                                0));
                                break;
-
-                       case Msg.WM_SIZE:
-                               OnResizeTB ();
-                               break;
-
+                       
                        case Msg.WM_PAINT: {                            
                                PaintEventArgs  paint_event;
 
@@ -482,19 +510,19 @@ namespace System.Windows.Forms
 
                }               
 
-               private void OnMouseUpTB (MouseEventArgs e)
+               private void OnMouseUpTB (object sender, MouseEventArgs e)
                {       
                        if (!Enabled) return;                   
 
                        if (thumb_pressed == true || mouse_clickmove == true) { 
                                thumb_pressed = false;
                                holdclick_timer.Enabled = false;
-                               XplatUI.ReleaseWindow (Handle);
+                               this.Capture = false;
                                Refresh ();
                        }
                }
 
-               private void OnMouseDownTB (MouseEventArgs e)
+               private void OnMouseDownTB (object sender, MouseEventArgs e)
                {
                        if (!Enabled) return;                                           
 
@@ -505,7 +533,7 @@ namespace System.Windows.Forms
                        if (orientation == Orientation.Horizontal) {
                                
                                if (thumb_pos.Contains (point)) {
-                                       XplatUI.GrabWindow (Handle);
+                                       this.Capture = true;
                                        thumb_pressed = true;
                                        thumb_mouseclick = e.X;
                                        Refresh ();                                     
@@ -525,7 +553,7 @@ namespace System.Windows.Forms
                        }
                        else {
                                if (thumb_pos.Contains (point)) {
-                                       XplatUI.GrabWindow (Handle);
+                                       this.Capture = true;
                                        thumb_pressed = true;
                                        thumb_mouseclick = e.Y;
                                        Refresh ();
@@ -545,8 +573,7 @@ namespace System.Windows.Forms
                                }
                        }
 
-                       if (fire_timer) { 
-                               holdclick_timer.Elapsed += new ElapsedEventHandler (OnFirstClickTimer);\r
+                       if (fire_timer) {                               \r
                                holdclick_timer.Interval = 300;\r
                                holdclick_timer.Enabled = true;                         
                        }                       
@@ -575,8 +602,8 @@ namespace System.Windows.Forms
                        }
                }
 
-               private void OnResizeTB ()
-               {
+               private void OnResizeTB (object sender, System.EventArgs e)
+               {                       
                        if (Width <= 0 || Height <= 0)
                                return;
 
@@ -637,9 +664,14 @@ namespace System.Windows.Forms
                                Refresh ();
 \r
                        }                       \r
-               }                       
+               }                                       
 
+               protected override void SetBoundsCore (int x, int y,int width, int height, BoundsSpecified specified)
+               {
+                       base.SetBoundsCore (x, y,width, height, specified);
+               }
 
+               
                #endregion // Private Methods
        }
 }