// 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
//
#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 ()
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);
[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)
[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 ();
+ }
}
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()),
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;
}
- 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;
if (orientation == Orientation.Horizontal) {
if (thumb_pos.Contains (point)) {
- XplatUI.GrabWindow (Handle);
+ this.Capture = true;
thumb_pressed = true;
thumb_mouseclick = e.X;
Refresh ();
}
else {
if (thumb_pos.Contains (point)) {
- XplatUI.GrabWindow (Handle);
+ this.Capture = true;
thumb_pressed = true;
thumb_mouseclick = e.Y;
Refresh ();
}
}
- if (fire_timer) {
- holdclick_timer.Elapsed += new ElapsedEventHandler (OnFirstClickTimer);\r
+ if (fire_timer) { \r
holdclick_timer.Interval = 300;\r
holdclick_timer.Enabled = true;
}
}
}
- private void OnResizeTB ()
- {
+ private void OnResizeTB (object sender, System.EventArgs e)
+ {
if (Width <= 0 || Height <= 0)
return;
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
}
}