1 // Permission is hereby granted, free of charge, to any person obtaining
2 // a copy of this software and associated documentation files (the
3 // "Software"), to deal in the Software without restriction, including
4 // without limitation the rights to use, copy, modify, merge, publish,
5 // distribute, sublicense, and/or sell copies of the Software, and to
6 // permit persons to whom the Software is furnished to do so, subject to
7 // the following conditions:
9 // The above copyright notice and this permission notice shall be
10 // included in all copies or substantial portions of the Software.
12 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
13 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
14 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
15 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
16 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
17 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
18 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20 // Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
23 // Pedro MartÃnez Juliá <pedromj@gmail.com>
28 namespace System.Windows.Forms
30 public class DataGridViewTopLeftHeaderCell : DataGridViewColumnHeaderCell
32 public DataGridViewTopLeftHeaderCell ()
36 public override string ToString ()
38 return GetType ().Name;
41 protected override AccessibleObject CreateAccessibilityInstance ()
43 return new DataGridViewTopLeftHeaderCellAccessibleObject (this);
46 protected override Rectangle GetContentBounds (Graphics graphics, DataGridViewCellStyle cellStyle, int rowIndex)
48 if (DataGridView == null)
49 return Rectangle.Empty;
51 Size s = new Size (36, 13);
52 return new Rectangle (2, (DataGridView.ColumnHeadersHeight - s.Height) / 2, s.Width, s.Height);
55 protected override Rectangle GetErrorIconBounds (Graphics graphics, DataGridViewCellStyle cellStyle, int rowIndex)
57 if (DataGridView == null || string.IsNullOrEmpty (ErrorText))
58 return Rectangle.Empty;
60 Size error_icon = new Size (12, 11);
61 return new Rectangle (new Point (Size.Width - error_icon.Width - 5, (Size.Height - error_icon.Height) / 2), error_icon);
64 protected override Size GetPreferredSize (Graphics graphics, DataGridViewCellStyle cellStyle, int rowIndex, Size constraintSize)
69 Size s = DataGridViewCell.MeasureTextSize (graphics, o.ToString (), cellStyle.Font, TextFormatFlags.Default);
70 s.Height = Math.Max (s.Height, 17);
74 return new Size (39, 17);
77 protected override void Paint (Graphics graphics, Rectangle clipBounds, Rectangle cellBounds, int rowIndex, DataGridViewElementStates cellState, object value, object formattedValue, string errorText, DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts)
79 base.Paint (graphics, clipBounds, cellBounds, rowIndex, cellState, value, formattedValue, errorText, cellStyle, advancedBorderStyle, paintParts);
82 protected override void PaintBorder (Graphics graphics, Rectangle clipBounds, Rectangle bounds, DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle)
84 base.PaintBorder (graphics, clipBounds, bounds, cellStyle, advancedBorderStyle);
87 protected class DataGridViewTopLeftHeaderCellAccessibleObject : DataGridViewColumnHeaderCellAccessibleObject
89 public DataGridViewTopLeftHeaderCellAccessibleObject (DataGridViewTopLeftHeaderCell owner) : base (owner)
93 public override Rectangle Bounds {
94 get { throw new NotImplementedException (); }
97 public override string DefaultAction {
99 if (Owner.DataGridView != null && Owner.DataGridView.MultiSelect) {
100 return "Press to Select All";
106 public override string Name {
107 get { return base.Name; }
110 public override AccessibleStates State {
111 get { return base.State; }
114 public override string Value {
115 get { return base.Value; }
118 public override void DoDefaultAction ()
120 if (Owner.DataGridView != null)
121 Owner.DataGridView.SelectAll();
124 public override AccessibleObject Navigate (AccessibleNavigation navigationDirection)
126 throw new NotImplementedException ();
129 public override void Select (AccessibleSelection flags)