Commit | Line | Data |
---|---|---|
f017f3c4 LOK |
1 | using System.Globalization; |
2 | using System.Windows.Forms; | |
3 | ||
4 | namespace LibCECTray.settings | |
5 | { | |
6 | /// <summary> | |
7 | /// A setting of type ushort that can be persisted in the registry | |
8 | /// </summary> | |
9 | class CECSettingUShort : CECSettingString | |
10 | { | |
11 | public CECSettingUShort(string keyName, string friendlyName, ushort defaultValue, SettingChangedHandler changedHandler) : | |
12 | base(CECSettingType.UShort, keyName, friendlyName, string.Format("{0,4:X}", defaultValue), changedHandler) | |
13 | { | |
14 | } | |
15 | ||
16 | public new ushort Value | |
17 | { | |
18 | get | |
19 | { | |
20 | ushort iValue; | |
21 | return base.Value != null && ushort.TryParse(base.Value, NumberStyles.AllowHexSpecifier, null, out iValue) ? iValue : ushort.MinValue; | |
22 | } | |
23 | set | |
24 | { | |
25 | base.Value = string.Format("{0,4:X}", value); | |
26 | if (Form != null) | |
27 | Form.SetControlText(ValueControl, base.Value); | |
28 | } | |
29 | } | |
30 | ||
31 | public new ushort DefaultValue | |
32 | { | |
33 | get | |
34 | { | |
35 | ushort iValue; | |
36 | return base.DefaultValue != null && ushort.TryParse(base.DefaultValue, NumberStyles.AllowHexSpecifier, null, out iValue) ? iValue : ushort.MinValue; | |
37 | } | |
38 | set { base.DefaultValue = string.Format("{0,4:X}", value); } | |
39 | } | |
40 | ||
41 | public new Control ValueControl | |
42 | { | |
43 | get | |
44 | { | |
45 | if (BaseValueControl == null) | |
46 | { | |
47 | TextBox control = new TextBox | |
48 | { | |
49 | MaxLength = 4, | |
50 | Size = new System.Drawing.Size(100, 20), | |
51 | Enabled = InitialEnabledValue, | |
52 | Text = string.Format("{0,4:X}", Value) | |
53 | }; | |
54 | control.TextChanged += delegate | |
55 | { | |
56 | ushort iValue; | |
57 | if ( | |
58 | !ushort.TryParse(control.Text, NumberStyles.AllowHexSpecifier, null, | |
59 | out iValue)) | |
60 | iValue = DefaultValue; | |
61 | Value = iValue; | |
62 | }; | |
63 | BaseValueControl = control; | |
64 | } | |
65 | return BaseValueControl; | |
66 | } | |
67 | } | |
68 | } | |
69 | } |