File: ToolstripColorRangeIntervalSlider.cs

package info (click to toggle)
quickroute-gps 2.5-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 19,576 kB
  • sloc: cs: 74,488; makefile: 72; sh: 43
file content (112 lines) | stat: -rw-r--r-- 4,377 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms.Design;
using System.ComponentModel;
using System.Windows.Forms;
using System.Drawing;

namespace QuickRoute.Controls
{
  [DesignerCategory("code")]
  [ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.ToolStrip | ToolStripItemDesignerAvailability.StatusStrip)]
  public class ToolstripColorRangeIntervalSlider : ToolStripControlHost
  {
    // add events that are subscribable from the designer.
    public event EventHandler ColorRangeStartValueChanged;
    public event EventHandler ColorRangeEndValueChanged;
    public event EventHandler ColorRangeStartValueChanging;
    public event EventHandler ColorRangeEndValueChanging;
    public event MouseEventHandler ColorRangeClicked;

    public ToolstripColorRangeIntervalSlider()
      : base(CreateControlInstance())
    {

    }

    /// <summary>
    /// Export a strongly typed property called colorRangeIntervalSlider - handy to prevent casting everywhere.
    /// </summary>
    public ColorRangeIntervalSlider SliderControl
    {
      get
      {
        return Control as ColorRangeIntervalSlider;
      }
    }

    private static Control CreateControlInstance()
    {
      ColorRangeIntervalSlider cris = new ColorRangeIntervalSlider();
      cris.AutoSize = false;
      cris.Size = new Size(200, 24);
      // Add other initialization code here.
      return cris;
    }

    /// <summary>
    /// Attach to events we want to re-wrap
    /// </summary>
    /// <param name="control"></param>
    protected override void OnSubscribeControlEvents(Control control)
    {
      base.OnSubscribeControlEvents(control);
      SliderControl.ColorRangeStartValueChanged += new EventHandler(ColorRangeIntervalSlider_ColorRangeStartValueChanged);
      SliderControl.ColorRangeEndValueChanged += new EventHandler(ColorRangeIntervalSlider_ColorRangeEndValueChanged);
      SliderControl.ColorRangeStartValueChanging += new EventHandler(ColorRangeIntervalSlider_ColorRangeStartValueChanging);
      SliderControl.ColorRangeEndValueChanging += new EventHandler(ColorRangeIntervalSlider_ColorRangeEndValueChanging);
      SliderControl.ColorRangeClicked += new MouseEventHandler(ColorRangeIntervalSlider_ColorRangeClicked);
    }

    /// <summary>
    /// Detach from events.
    /// </summary>
    /// <param name="control"></param>
    protected override void OnUnsubscribeControlEvents(Control control)
    {
      base.OnUnsubscribeControlEvents(control);
      SliderControl.ColorRangeStartValueChanged -= new EventHandler(ColorRangeIntervalSlider_ColorRangeStartValueChanged);
      SliderControl.ColorRangeEndValueChanged -= new EventHandler(ColorRangeIntervalSlider_ColorRangeEndValueChanged);
      SliderControl.ColorRangeStartValueChanging -= new EventHandler(ColorRangeIntervalSlider_ColorRangeStartValueChanging);
      SliderControl.ColorRangeEndValueChanging -= new EventHandler(ColorRangeIntervalSlider_ColorRangeEndValueChanging);
      SliderControl.ColorRangeClicked -= new MouseEventHandler(ColorRangeIntervalSlider_ColorRangeClicked);
    }

    void ColorRangeIntervalSlider_ColorRangeStartValueChanged(object sender, EventArgs e)
    {
      if (this.ColorRangeStartValueChanged != null) this.ColorRangeStartValueChanged(sender, e);
    }

    void ColorRangeIntervalSlider_ColorRangeEndValueChanged(object sender, EventArgs e)
    {
      if (this.ColorRangeEndValueChanged != null) this.ColorRangeEndValueChanged(sender, e);
    }

    void ColorRangeIntervalSlider_ColorRangeStartValueChanging(object sender, EventArgs e)
    {
      if (this.ColorRangeStartValueChanging != null) this.ColorRangeStartValueChanging(sender, e);
    }

    void ColorRangeIntervalSlider_ColorRangeEndValueChanging(object sender, EventArgs e)
    {
      if (this.ColorRangeEndValueChanging != null) this.ColorRangeEndValueChanging(sender, e);
    }

    void ColorRangeIntervalSlider_ColorRangeClicked(object sender, MouseEventArgs e)
    {
      if (this.ColorRangeClicked != null) this.ColorRangeClicked(sender, e);
    }

    // set other defaults that are interesting
    protected override Size DefaultSize
    {
      get
      {
        return new Size(200, 24);
      }
    }

  }

}