External/Aga.Controls/Tree/NodeControls/NodeNumericUpDown.cs
author moel.mich
Sun, 23 Sep 2012 18:37:43 +0000
changeset 380 573f1fff48b2
permissions -rw-r--r--
Fixed Issue 387. The new implementation does not try to start a ring 0 driver that already exists, but could not be opened. It tries to delete the driver and install it new. The driver is now stored temporarily in the application folder. The driver is not correctly removed on system shutdown.
moel@345
     1
using System;
moel@345
     2
using System.Collections.Generic;
moel@345
     3
using System.Text;
moel@345
     4
using System.Drawing;
moel@345
     5
using System.Windows.Forms;
moel@345
     6
using System.Reflection;
moel@345
     7
using System.ComponentModel;
moel@345
     8
using System.Drawing.Design;
moel@345
     9
moel@345
    10
namespace Aga.Controls.Tree.NodeControls
moel@345
    11
{
moel@345
    12
	public class NodeNumericUpDown : BaseTextControl
moel@345
    13
	{
moel@345
    14
		#region Properties
moel@345
    15
moel@345
    16
		private int _editorWidth = 100;
moel@345
    17
		[DefaultValue(100)]
moel@345
    18
		public int EditorWidth
moel@345
    19
		{
moel@345
    20
			get { return _editorWidth; }
moel@345
    21
			set { _editorWidth = value; }
moel@345
    22
		}
moel@345
    23
moel@345
    24
		private int _decimalPlaces = 0;
moel@345
    25
		[Category("Data"), DefaultValue(0)]
moel@345
    26
		public int DecimalPlaces
moel@345
    27
		{
moel@345
    28
			get
moel@345
    29
			{
moel@345
    30
				return this._decimalPlaces;
moel@345
    31
			}
moel@345
    32
			set
moel@345
    33
			{
moel@345
    34
				this._decimalPlaces = value;
moel@345
    35
			}
moel@345
    36
		}
moel@345
    37
moel@345
    38
		private decimal _increment = 1;
moel@345
    39
		[Category("Data"), DefaultValue(1)]
moel@345
    40
		public decimal Increment
moel@345
    41
		{
moel@345
    42
			get
moel@345
    43
			{
moel@345
    44
				return this._increment;
moel@345
    45
			}
moel@345
    46
			set
moel@345
    47
			{
moel@345
    48
				this._increment = value;
moel@345
    49
			}
moel@345
    50
		}
moel@345
    51
moel@345
    52
		private decimal _minimum = 0;
moel@345
    53
		[Category("Data"), DefaultValue(0)]
moel@345
    54
		public decimal Minimum
moel@345
    55
		{
moel@345
    56
			get
moel@345
    57
			{
moel@345
    58
				return _minimum;
moel@345
    59
			}
moel@345
    60
			set
moel@345
    61
			{
moel@345
    62
				_minimum = value;
moel@345
    63
			}
moel@345
    64
		}
moel@345
    65
moel@345
    66
		private decimal _maximum = 100;
moel@345
    67
		[Category("Data"), DefaultValue(100)]
moel@345
    68
		public decimal Maximum
moel@345
    69
		{
moel@345
    70
			get
moel@345
    71
			{
moel@345
    72
				return this._maximum;
moel@345
    73
			}
moel@345
    74
			set
moel@345
    75
			{
moel@345
    76
				this._maximum = value;
moel@345
    77
			}
moel@345
    78
		}
moel@345
    79
moel@345
    80
		#endregion
moel@345
    81
moel@345
    82
		public NodeNumericUpDown()
moel@345
    83
		{
moel@345
    84
		}
moel@345
    85
moel@345
    86
		protected override Size CalculateEditorSize(EditorContext context)
moel@345
    87
		{
moel@345
    88
			if (Parent.UseColumns)
moel@345
    89
				return context.Bounds.Size;
moel@345
    90
			else
moel@345
    91
				return new Size(EditorWidth, context.Bounds.Height);
moel@345
    92
		}
moel@345
    93
moel@345
    94
		protected override Control CreateEditor(TreeNodeAdv node)
moel@345
    95
		{
moel@345
    96
			NumericUpDown num = new NumericUpDown();
moel@345
    97
			num.Increment = Increment;
moel@345
    98
			num.DecimalPlaces = DecimalPlaces;
moel@345
    99
			num.Minimum = Minimum;
moel@345
   100
			num.Maximum = Maximum;
moel@345
   101
			num.Value = (decimal)GetValue(node);
moel@345
   102
			SetEditControlProperties(num, node);
moel@345
   103
			return num;
moel@345
   104
		}
moel@345
   105
moel@345
   106
		protected override void DisposeEditor(Control editor)
moel@345
   107
		{
moel@345
   108
		}
moel@345
   109
moel@345
   110
		protected override void DoApplyChanges(TreeNodeAdv node, Control editor)
moel@345
   111
		{
moel@345
   112
			SetValue(node, (editor as NumericUpDown).Value);
moel@345
   113
		}
moel@345
   114
	}
moel@345
   115
}