Rename Managed.Windows.Forms to System.Windows.Forms for consistency.
[mono.git] / mcs / class / System.Windows.Forms / System.Windows.Forms / SelectionRange.cs
1 //
2 // Permission is hereby granted, free of charge, to any person obtaining
3 // a copy of this software and associated documentation files (the
4 // "Software"), to deal in the Software without restriction, including
5 // without limitation the rights to use, copy, modify, merge, publish,
6 // distribute, sublicense, and/or sell copies of the Software, and to
7 // permit persons to whom the Software is furnished to do so, subject to
8 // the following conditions:
9 // 
10 // The above copyright notice and this permission notice shall be
11 // included in all copies or substantial portions of the Software.
12 // 
13 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
14 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
15 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
16 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
17 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
18 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
19 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20 //
21 // Copyright (c) 2004-2005 Novell, Inc.
22 //
23 // Authors:
24 //      John BouAntoun  jba-mono@optusnet.com.au
25 //
26
27 using System.ComponentModel;
28
29 namespace System.Windows.Forms {
30         [TypeConverter(typeof(SelectionRangeConverter))]
31         public sealed class SelectionRange {
32                 #region local members 
33         
34                 DateTime end;
35                 DateTime start; 
36
37                 #endregion // local members 
38
39                 #region public constructors
40
41                 // default parameterless construcor, use default values
42                 public SelectionRange () {
43                         end = DateTime.MaxValue.Date;
44                         start = DateTime.MinValue.Date;
45                 }       
46         
47                 // constructor that receives another range, copies it's Start and End values
48                 public SelectionRange (SelectionRange range) {
49                         end = range.End;
50                         start = range.Start;
51                 }
52
53                 // constructor that receives two dates, uses the lower of the two as start
54                 public SelectionRange (DateTime lower, DateTime upper) {
55                         if (lower <= upper) {
56                                 end = upper.Date;
57                                 start = lower.Date;
58                         } else {
59                                 end = lower.Date;
60                                 start = upper.Date;
61                         }
62                 }
63
64                 #endregion // public constructors
65
66                 #region public properties
67
68                 // end date of this range
69                 public DateTime End {
70                         set {
71                                 if (end != value) {
72                                         end = value;
73                                 }
74                         }
75                         get {
76                                 return end;
77                         }
78                 }
79
80                 // start date of this range
81                 public DateTime Start {
82                         set {
83                                 if (start != value) {
84                                         start = value;
85                                 }
86                         }
87                         get {
88                                 return start;
89                         }
90                 }
91                         
92                 #endregion // public properties
93
94                 #region public methods
95
96                 public override string ToString() {
97                         return "SelectionRange: Start: " + Start.ToString() + ", End: " + End.ToString();
98                 }
99
100                 #endregion // public methods
101         }
102 }