Welcome to mirror list, hosted at ThFree Co, Russian Federation.

LinkArea.cs « System.Windows.Forms « System.Windows.Forms « class « mcs - github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 2a50d95ff297fe034460829d0ed0146b83a77484 (plain)
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
//
// System.Drawing.LinkArea.cs
//
// Author:
//   Dennis Hayes (dennish@raytek.com)
//
// (C) 2002 Ximian, Inc.  http://www.ximian.com
//

using System;

namespace System.Windows.Forms {
	[Serializable]
	public struct LinkArea { 

		private int start;
		private int length;

		// -----------------------
		// Public Constructor
		// -----------------------

		/// <summary>
		/// 
		/// </summary>
		///
		/// <remarks>
		///
		/// </remarks>
		
		public LinkArea (int Start, int Length){
			start = Start;
			length = Length;
		}

		// -----------------------
		// Public Shared Members
		// -----------------------

		/// <summary>
		///	Equality Operator
		/// </summary>
		///
		/// <remarks>
		///	Compares two LinkArea objects. The return value is
		///	based on the equivalence of the Start and Length properties of the two objects.
		/// </remarks>

		public static bool operator == (LinkArea la_a, 
			LinkArea la_b)
		{
			return ((la_a.start == la_b.start) &&
				(la_a.length == la_b.length));
		}
		
		/// <summary>
		///	Inequality Operator
		/// </summary>
		///
		/// <remarks>
		///	Compares two LinkArea objects. The return value is
		///	based on the equivalence of the Start and Length properties of the two objects.
		/// </remarks>
		public static bool operator != (LinkArea la_a, 
			LinkArea la_b) {
			return ((la_a.start != la_b.start) ||
				(la_a.length != la_b.length));
		}
		
		// -----------------------
		// Public Instance Members
		// -----------------------

		public int IsEmpty {
			get{
				// Start can be 0, so no way to know if it is empty.
				// Docs seem to say Start must/should be set before
				// length, os if length is valid, start must also be ok.
				return length!=0;
			}
		}

		public int Start {
			get{
				return start;
			}
			set{
				start = value;
			}
		}

		public int Length {
			get{
				return length;
			}
			set{
				length = value;
			}
		}



		/// <summary>
		///	Equals Method
		/// </summary>
		///
		/// <remarks>
		///	Checks equivalence of this LinkArea and another object.
		/// </remarks>
		
		public override bool Equals (object o)
		{
			if (!(o is LinkArea))
				return false;

			return (this == (LinkArea) o);
		}

		/// <summary>
		///	GetHashCode Method
		/// </summary>
		///
		/// <remarks>
		///	Calculates a hashing value.
		/// </remarks>
		
		public override int GetHashCode ()
		{
			return (int)( start ^ length);
		}

		/// <summary>
		///	ToString Method
		/// </summary>
		///
		/// <remarks>
		///	Formats the LinkArea as a string.
		/// </remarks>
		
		public override string ToString ()
		{
			return String.Format ("[{0},{1}]", start, length );
		}
	}
}