**** Merged from MCS ****
[mono-project.git] / mcs / class / System.Windows.Forms / Gtk / DataGrid.cs
bloba773ebd4ae2f22328e172c5e340ed8bbe415a758
1 //
2 // System.Windows.Forms.DataGrid
3 //
4 // Author:
5 // stubbed out by Jaak Simm (jaaksimm@firm.ee)
6 // Dennis Hayes (dennish@Raytek.com)
7 // Modified for System.Window.Forms/Gtk by :
8 // Joel Basson
9 // (C) Ximian, Inc., 2002/3
11 using System;
12 using System.Drawing;
13 using System.ComponentModel;
14 using System.Collections;
15 using System.Reflection;
16 using System.Text;
17 using System.Runtime.InteropServices;
18 using GLib;
19 using Gtk;
20 using GtkSharp;
22 namespace System.Windows.Forms {
24 /// <summary>
25 /// Displays ADO.NET data in a scrollable grid.
26 ///
27 /// </summary>
29 [MonoTODO]
30 public class DataGrid : Control, ISupportInitialize {
32 TreeView treeView = null;
33 DataGridColumn[] gridColumns = null;
34 ListStore store = null;
36 #region Fields
37 bool allowNavigation;
38 bool allowSorting;
39 Color alternatingBackColor;
40 Color backgroundColor;
41 BorderStyle borderStyle;
42 Color captionBackColor;
43 Font captionFont;
44 Color captionForeColor;
45 string captionText;
46 bool captionVisible;
47 bool columnHeadersVisible;
48 string dataMember;
49 bool flatMode;
50 Color gridLineColor;
51 DataGridLineStyle gridLineStyle;
52 Color headerBackColor;
53 Color headerForeColor;
54 Color linkColor;
55 Color linkHoverColor;
56 Color parentRowsBackColor;
57 Color parentRowsForeColor;
58 DataGridParentRowsLabelStyle parentRowsLabelStyle;
59 bool parentRowsVisible;
60 bool readOnly;
61 int rowHeaderWidth;
62 Color selectionBackColor;
63 Color selectionForeColor;
64 #endregion
66 #region Constructors
67 [MonoTODO]
68 public DataGrid()
70 // setting default values:
71 allowNavigation=true;
72 borderStyle = BorderStyle.FixedSingle;
73 captionBackColor = SystemColors.ActiveCaption;
74 captionForeColor = SystemColors.ActiveCaptionText;
75 captionText = "";
76 captionVisible = true;
77 columnHeadersVisible = true;
78 dataMember = "";
79 flatMode = true;
80 gridLineColor = SystemColors.Control;
81 gridLineStyle = DataGridLineStyle.Solid;
82 headerBackColor = SystemColors.Control;
83 headerForeColor = SystemColors.ControlText;
84 linkColor = SystemColors.HotTrack;
85 linkHoverColor = SystemColors.HotTrack;
86 parentRowsBackColor = SystemColors.Control;
87 parentRowsForeColor = SystemColors.WindowText;
88 parentRowsLabelStyle = DataGridParentRowsLabelStyle.Both;
89 parentRowsVisible = true;
90 readOnly = false;
91 rowHeaderWidth = 50;
92 selectionBackColor = SystemColors.ActiveCaption;
93 selectionForeColor = SystemColors.ActiveCaptionText;
96 internal class DataGridColumn
98 internal string columnName = "";
99 internal TreeViewColumn treeViewColumn = null;
101 internal string ColumnName {
102 get {
103 return columnName;
105 set {
106 columnName = value;
110 internal TreeViewColumn TreeViewColumn {
111 get {
112 return treeViewColumn;
114 set {
115 treeViewColumn = value;
120 internal override Gtk.Widget CreateWidget () {
122 //VBox vb = new VBox(false, 4);
124 ScrolledWindow sw = new ScrolledWindow ();
125 //vb.PackStart (sw, true, true, 0);
127 treeView = new TreeView (store);
128 treeView.HeadersVisible = CaptionVisible;
129 treeView.Show();
130 sw.Add (treeView);
131 sw.Show();
132 //vb.Show();
133 return sw;
135 #endregion
137 protected override void Dispose(bool disposing){
141 #region Properties
142 public bool AllowNavigation {
143 get {
144 return allowNavigation;
146 set {
147 allowNavigation=value;
151 public bool AllowSorting {
152 get {
153 return allowSorting;
155 set {
156 allowSorting=value;
160 public Color AlternatingBackColor {
161 get {
162 return alternatingBackColor;
164 set {
165 alternatingBackColor=value;
169 [MonoTODO]
170 public override Color BackColor {
171 get {
172 throw new NotImplementedException ();
174 set {
175 //FIXME:
179 public Color BackgroundColor {
180 get {
181 return backgroundColor;
183 set {
184 backgroundColor=value;
188 [MonoTODO]
189 public override System.Drawing.Image BackgroundImage {
190 get {
191 //FIXME:
192 return base.BackgroundImage;
194 set {
195 //FIXME:
196 base.BackgroundImage = value;
200 public BorderStyle BorderStyle {
201 get {
202 return borderStyle;
204 set {
205 borderStyle=value;
209 public Color CaptionBackColor {
210 get {
211 return captionBackColor;
213 set {
214 captionBackColor=value;
218 public Font CaptionFont {
219 get {
220 return captionFont;
222 set {
223 captionFont=value;
227 public Color CaptionForeColor {
228 get {
229 return captionForeColor;
231 set {
232 captionForeColor=value;
236 public string CaptionText {
237 get {
238 return captionText;
240 set {
241 captionText=value;
245 public bool CaptionVisible {
246 get {
247 return captionVisible;
249 set {
250 captionVisible=value;
254 public bool ColumnHeadersVisible {
255 get {
256 return columnHeadersVisible;
258 set {
259 columnHeadersVisible=value;
263 [MonoTODO]
264 public DataGridCell CurrentCell {
265 get {
266 throw new NotImplementedException ();
268 set {
269 //FIXME:
273 [MonoTODO]
274 public int CurrentRowIndex {
275 get {
276 throw new NotImplementedException ();
278 set {
279 //FIXME:
283 //[MonoTODO]
284 //public override Cursor Cursor {
285 // get {
286 // throw new NotImplementedException ();
287 // }
288 // set {
289 //FIXME:
290 // }
293 public string DataMember {
294 get { return dataMember; }
295 set { dataMember=value; }
298 [MonoTODO]
299 public object DataSource {
300 get {
301 throw new NotImplementedException ();
303 set {
304 //FIXME:
308 protected override Size DefaultSize {
309 get {
310 //FIXME: verify numbers
311 return new Size(300,200);
315 [MonoTODO]
316 public int FirstVisibleColumn {
317 get { throw new NotImplementedException (); }
320 public bool FlatMode {
321 get { return flatMode; }
322 set { flatMode=value; }
325 [MonoTODO]
326 public override Color ForeColor {
327 get {
328 //FIXME:
329 return base.ForeColor;
331 set {
332 //FIXME:
333 base.ForeColor = value;
337 public Color GridLineColor {
338 get { return gridLineColor; }
339 set { gridLineColor=value; }
342 public DataGridLineStyle GridLineStyle {
343 get { return gridLineStyle; }
344 set { gridLineStyle=value; }
347 public Color HeaderBackColor {
348 get { return headerBackColor; }
349 set {
350 if (value==Color.Empty) throw new ArgumentNullException();
351 headerBackColor=value;
355 public Color HeaderForeColor {
356 get { return headerForeColor; }
357 set { headerForeColor=value; }
360 [MonoTODO]
361 protected ScrollBar HorizScrollBar {
362 get { throw new NotImplementedException (); }
365 [MonoTODO]
366 public object this[DataGridCell cell] {
367 get { throw new NotImplementedException (); }
368 set { throw new NotImplementedException (); }
371 [MonoTODO]
372 public object this[int rowIndex,int columnIndex] {
373 get { throw new NotImplementedException (); }
374 set { throw new NotImplementedException (); }
377 public Color LinkColor {
378 get { return linkColor; }
379 set { linkColor=value; }
382 public Color LinkHoverColor {
383 get { return linkHoverColor; }
384 set { linkHoverColor=value; }
387 [MonoTODO]
388 protected internal CurrencyManager ListManager {
389 get { throw new NotImplementedException (); }
390 set { throw new NotImplementedException (); }
393 public Color ParentRowsBackColor {
394 get { return parentRowsBackColor; }
395 set { parentRowsBackColor=value; }
398 public Color ParentRowsForeColor {
399 get { return parentRowsForeColor; }
400 set { parentRowsForeColor=value; }
403 public DataGridParentRowsLabelStyle ParentRowsLabelStyle {
404 get { return parentRowsLabelStyle; }
405 set { parentRowsLabelStyle=value; }
408 public bool ParentRowsVisible {
409 get { return parentRowsVisible; }
410 set { parentRowsVisible=value; }
413 [MonoTODO]
414 public int PreferredColumnWidth {
415 get { throw new NotImplementedException (); }
416 set { throw new NotImplementedException (); }
419 [MonoTODO]
420 public int PreferredRowHeight {
421 get { throw new NotImplementedException (); }
422 set { throw new NotImplementedException (); }
425 public bool ReadOnly {
426 get { return readOnly; }
427 set { readOnly=value; }
430 [MonoTODO]
431 public bool RowHeadersVisible {
432 get { throw new NotImplementedException (); }
433 set { throw new NotImplementedException (); }
436 [MonoTODO]
437 public int RowHeaderWidth {
438 get { return rowHeaderWidth; }
439 set { rowHeaderWidth=value; }
442 public Color SelectionBackColor {
443 get { return selectionBackColor; }
444 set { selectionBackColor=value; }
447 public Color SelectionForeColor {
448 get { return selectionForeColor; }
449 set { selectionForeColor=value; }
452 [MonoTODO]
453 public override ISite Site {
454 get { throw new NotImplementedException (); }
455 set { throw new NotImplementedException (); }
458 [MonoTODO]
459 public GridTableStylesCollection TableStyles {
460 get { throw new NotImplementedException (); }
463 [MonoTODO]
464 public override string Text {
465 get {
466 //FIXME:
467 return base.Text;
469 set {
470 //FIXME:
471 base.Text = value;
475 [MonoTODO]
476 protected ScrollBar VertScrollBar {
477 get { throw new NotImplementedException (); }
480 [MonoTODO]
481 public int VisibleColumnCount {
482 get { throw new NotImplementedException (); }
485 [MonoTODO]
486 public int VisibleRowCount {
487 get { throw new NotImplementedException (); }
489 #endregion
491 #region Methods
492 /* Following members support the .NET Framework infrastructure and are not intended to be used directly from your code.
493 * Methods not stubbed out:
494 - protected virtual string GetOutputTextDelimiter()
495 - public void ResetLinkHoverColor()
496 - public void SubObjectsSiteChange(bool site)
498 [MonoTODO]
499 public virtual bool BeginEdit(DataGridColumnStyle gridColumn,int rowNumber)
501 throw new NotImplementedException ();
504 [MonoTODO]
505 public void BeginInit()
507 //FIXME:
510 [MonoTODO]
511 protected virtual void CancelEditing()
513 //FIXME:
516 [MonoTODO]
517 public void Collapse(int row)
519 //FIXME:
522 [MonoTODO]
523 protected internal virtual void ColumnStartedEditing(Control editingControl)
525 //FIXME:
528 [MonoTODO]
529 protected internal virtual void ColumnStartedEditing(Rectangle bounds)
531 //FIXME:
534 [MonoTODO]
535 protected override AccessibleObject CreateAccessibilityInstance()
537 //FIXME:
538 return base.CreateAccessibilityInstance();
541 [MonoTODO]
542 protected virtual DataGridColumnStyle CreateGridColumn(PropertyDescriptor prop)
544 throw new NotImplementedException ();
547 [MonoTODO]
548 protected virtual DataGridColumnStyle CreateGridColumn(PropertyDescriptor prop,bool isDefault)
550 throw new NotImplementedException ();
553 [MonoTODO]
554 public virtual bool EndEdit(DataGridColumnStyle gridColumn,int rowNumber,bool shouldAbort)
556 throw new NotImplementedException ();
559 [MonoTODO]
560 public void EndInit()
562 //FIXME:
565 [MonoTODO]
566 public void Expand(int row)
568 throw new NotImplementedException ();
571 [MonoTODO]
572 public Rectangle GetCellBounds(DataGridCell dgc)
574 throw new NotImplementedException ();
577 [MonoTODO]
578 public Rectangle GetCellBounds(int row,int col)
580 throw new NotImplementedException ();
583 [MonoTODO]
584 public Rectangle GetCurrentCellBounds()
586 throw new NotImplementedException ();
589 [MonoTODO]
590 protected virtual void GridHScrolled(object sender,ScrollEventArgs se)
592 //FIXME:
595 [MonoTODO]
596 protected virtual void GridVScrolled(object sender,ScrollEventArgs se)
598 //FIXME:
601 [MonoTODO]
602 public HitTestInfo HitTest(Point position)
604 throw new NotImplementedException ();
607 [MonoTODO]
608 public HitTestInfo HitTest(int x,int y)
610 throw new NotImplementedException ();
613 [MonoTODO]
614 public bool IsExpanded(int rowNumber)
616 throw new NotImplementedException ();
619 [MonoTODO]
620 public bool IsSelected(int row)
622 throw new NotImplementedException ();
625 [MonoTODO]
626 public void NavigateBack()
628 //FIXME:
631 [MonoTODO]
632 public void NavigateTo(int rowNumber,string relationName)
634 //FIXME:
637 [MonoTODO]
638 protected virtual void OnAllowNavigationChanged(EventArgs e)
640 //FIXME:
643 [MonoTODO]
644 protected void OnBackButtonClicked(object sender,EventArgs e)
646 //FIXME:
649 [MonoTODO]
650 protected override void OnBackColorChanged(EventArgs e)
652 //FIXME:
653 base.OnBackColorChanged(e);
656 [MonoTODO]
657 protected virtual void OnBackgroundColorChanged(EventArgs e)
659 //FIXME:
662 [MonoTODO]
663 protected override void OnBindingContextChanged(EventArgs e)
665 //FIXME:
666 base.OnBindingContextChanged(e);
669 [MonoTODO]
670 protected virtual void OnBorderStyleChanged(EventArgs e)
672 //FIXME:
675 [MonoTODO]
676 protected virtual void OnCaptionVisibleChanged(EventArgs e)
678 //FIXME:
681 [MonoTODO]
682 protected virtual void OnCurrentCellChanged(EventArgs e)
684 //FIXME:
687 [MonoTODO]
688 protected virtual void OnDataSourceChanged(EventArgs e)
690 //FIXME:
693 [MonoTODO]
694 protected override void OnEnter(EventArgs e)
696 //FIXME:
697 base.OnEnter(e);
700 [MonoTODO]
701 protected virtual void OnFlatModeChanged(EventArgs e)
703 //FIXME:
706 [MonoTODO]
707 protected override void OnFontChanged(EventArgs e)
709 //FIXME:
710 base.OnFontChanged(e);
713 [MonoTODO]
714 protected override void OnForeColorChanged(EventArgs e)
716 //FIXME:
717 base.OnForeColorChanged(e);
720 [MonoTODO]
721 protected override void OnHandleCreated(EventArgs e)
723 //FIXME:
724 base.OnHandleCreated(e);
727 [MonoTODO]
728 protected override void OnHandleDestroyed(EventArgs e)
730 //FIXME:
731 base.OnHandleDestroyed(e);
734 [MonoTODO]
735 protected override void OnKeyDown(KeyEventArgs e)
737 //FIXME:
738 base.OnKeyDown(e);
741 [MonoTODO]
742 protected override void OnKeyPress(KeyPressEventArgs kpe)
744 //FIXME:
745 base.OnKeyPress(kpe);
748 [MonoTODO]
749 protected override void OnLayout(LayoutEventArgs levent)
751 //FIXME:
752 base.OnLayout(levent);
755 [MonoTODO]
756 protected override void OnLeave(EventArgs e)
758 //FIXME:
759 base.OnLeave(e);
762 [MonoTODO]
763 protected override void OnMouseDown(MouseEventArgs e)
765 //FIXME:
766 base.OnMouseDown(e);
769 [MonoTODO]
770 protected override void OnMouseLeave(EventArgs e)
772 //FIXME:
773 base.OnMouseLeave(e);
776 [MonoTODO]
777 protected override void OnMouseMove(MouseEventArgs e)
779 //FIXME:
780 base.OnMouseMove(e);
783 [MonoTODO]
784 protected override void OnMouseUp(MouseEventArgs e)
786 //FIXME:
787 base.OnMouseUp(e);
790 [MonoTODO]
791 protected override void OnMouseWheel(MouseEventArgs e)
793 //FIXME:
794 base.OnMouseWheel(e);
797 [MonoTODO]
798 protected void OnNavigate(NavigateEventArgs e)
800 //FIXME:
803 [MonoTODO]
804 protected override void OnPaint(PaintEventArgs pe)
806 //FIXME:
807 base.OnPaint(pe);
810 [MonoTODO]
811 protected override void OnPaintBackground(PaintEventArgs ebe)
813 //FIXME:
814 base.OnPaintBackground(ebe);
817 [MonoTODO]
818 protected virtual void OnParentRowsLabelStyleChanged(EventArgs e)
820 //FIXME:
823 [MonoTODO]
824 protected virtual void OnParentRowsVisibleChanged(EventArgs e)
826 //FIXME:
831 [MonoTODO]
832 protected virtual void OnReadOnlyChanged(EventArgs e)
834 //FIXME:
836 [MonoTODO]
837 protected void OnRowHeaderClick(EventArgs e)
839 //FIXME:
842 [MonoTODO]
843 protected void OnScroll(EventArgs e)
845 //FIXME:
848 [MonoTODO]
849 protected void OnShowParentDetailsButtonClicked(object sender,EventArgs e)
851 //FIXME:
854 [MonoTODO]
855 protected override bool ProcessDialogKey(Keys keyData)
857 //FIXME:
858 return base.ProcessDialogKey(keyData);
861 [MonoTODO]
862 protected bool ProcessGridKey(KeyEventArgs ke)
864 throw new NotImplementedException ();
867 [MonoTODO]
868 //protected override bool ProcessKeyPreview(ref Message m)
870 //FIXME:
871 //return base.ProcessKeyPreview(ref m);
874 [MonoTODO]
875 protected bool ProcessTabKey(Keys keyData)
877 throw new NotImplementedException ();
880 [MonoTODO]
881 public void ResetAlternatingBackColor()
883 //FIXME:
886 [MonoTODO]
887 public override void ResetBackColor()
889 //FIXME:
890 base.ResetBackColor();
893 [MonoTODO]
894 public override void ResetForeColor()
896 //FIXME:
897 base.ResetForeColor();
900 [MonoTODO]
901 public void ResetGridLineColor()
903 //FIXME:
906 [MonoTODO]
907 public void ResetHeaderBackColor()
909 //FIXME:
912 [MonoTODO]
913 public void ResetHeaderFont()
915 //FIXME:
918 [MonoTODO]
919 public void ResetHeaderForeColor()
921 //FIXME:
924 [MonoTODO]
925 public void ResetLinkColor()
927 //FIXME:
930 [MonoTODO]
931 protected void ResetSelection()
933 //FIXME:
936 [MonoTODO]
937 public void ResetSelectionBackColor()
939 //FIXME:
942 [MonoTODO]
943 public void ResetSelectionForeColor()
945 //FIXME:
948 [MonoTODO]
949 public void Select(int row)
951 //FIXME:
954 // start of Gtk# stuff
955 [MonoTODO]
956 public void SetDataBinding(object mydataSource, string mydataMember)
958 Clear();
959 System.Object o = null;
960 o = GetResolvedDataSource (mydataSource, mydataMember);
961 IEnumerable ie = (IEnumerable) o;
962 ITypedList tlist = (ITypedList) o;
964 // FIXME: does not belong in this base method
965 TreeIter iter = new TreeIter ();
967 PropertyDescriptorCollection pdc = tlist.GetItemProperties (new PropertyDescriptor[0]);
969 // FIXME: does not belong in this base method
970 gridColumns = new DataGridColumn[pdc.Count];
972 // FIXME: does not belong in base method
973 // define the columns in the treeview store
974 // based on the schema of the result
975 GLib.GType[] theTypes = new GLib.GType[pdc.Count];
977 for (int col = 0; col < pdc.Count; col++) {
978 theTypes[col] = GType.String;
980 store.SetColumnTypes (theTypes);
982 // FIXME: does not belong in this base method
983 int colndx = -1;
984 foreach (PropertyDescriptor pd in pdc) {
985 colndx ++;
986 gridColumns[colndx] = new DataGridColumn ();
987 gridColumns[colndx].ColumnName = pd.Name;
990 foreach (System.Object obj in ie) {
991 ICustomTypeDescriptor custom = (ICustomTypeDescriptor) obj;
992 PropertyDescriptorCollection properties;
993 properties = custom.GetProperties ();
995 iter = NewRow ();
996 int cv = 0;
997 foreach (PropertyDescriptor property in properties) {
998 object oPropValue = property.GetValue (obj);
999 string sPropValue = oPropValue.ToString ();
1001 // FIXME: does not belong in this base method
1002 SetColumnValue (iter, cv, sPropValue);
1004 cv++;
1008 // FIXME: does not belong in this base method
1009 treeView.Model = store;
1010 AutoCreateTreeViewColumns (treeView);
1013 private IEnumerable GetResolvedDataSource(object source, string member)
1015 if (source != null && source is IListSource) {
1016 IListSource src = (IListSource) source;
1017 IList list = src.GetList ();
1018 if (!src.ContainsListCollection) {
1019 return list;
1021 if (list != null && list is ITypedList) {
1023 ITypedList tlist = (ITypedList) list;
1024 PropertyDescriptorCollection pdc = tlist.GetItemProperties (new PropertyDescriptor[0]);
1025 if (pdc != null && pdc.Count > 0) {
1026 PropertyDescriptor pd = null;
1027 if (member != null && member.Length > 0) {
1028 pd = pdc.Find (member, true);
1029 } else {
1030 pd = pdc[0];
1032 if (pd != null) {
1033 object rv = pd.GetValue (list[0]);
1034 if (rv != null && rv is IEnumerable) {
1035 return (IEnumerable)rv;
1038 throw new Exception ("ListSource_Missing_DataMember");
1040 throw new Exception ("ListSource_Without_DataMembers");
1043 if (source is IEnumerable) {
1044 return (IEnumerable)source;
1046 return null;
1049 private TreeIter NewRow ()
1051 TreeIter rowTreeIter = new TreeIter();
1052 rowTreeIter = store.Append ();
1053 return rowTreeIter;
1056 private void AutoCreateTreeViewColumns (TreeView theTreeView)
1058 for(int col = 0; col < gridColumns.Length; col++) {
1059 // escape underscore _ because it is used
1060 // as the underline in menus and labels
1061 StringBuilder name = new StringBuilder ();
1062 foreach (char ch in gridColumns[col].ColumnName) {
1063 if (ch == '_')
1064 name.Append ("__");
1065 else
1066 name.Append (ch);
1068 TreeViewColumn tvc;
1069 tvc = CreateColumn (theTreeView, col,
1070 name.ToString ());
1071 theTreeView.AppendColumn (tvc);
1075 private void SetColumnValue (TreeIter iter, int column, string value)
1077 GLib.Value cell = new GLib.Value (value);
1078 store.SetValue (iter, column, cell);
1081 public TreeViewColumn CreateColumn (TreeView theTreeView, int col,
1082 string columnName)
1084 TreeViewColumn NameCol = new TreeViewColumn ();
1085 CellRenderer NameRenderer = new CellRendererText ();
1087 NameCol.Title = columnName;
1088 NameCol.PackStart (NameRenderer, true);
1089 NameCol.AddAttribute (NameRenderer, "text", col);
1091 gridColumns[col].TreeViewColumn = NameCol;
1093 return NameCol;
1096 internal void Clear ()
1098 if (store != null) {
1099 store.Clear ();
1100 store = null;
1101 store = new ListStore (typeof (string));
1103 else
1104 store = new ListStore (typeof (string));
1106 if (gridColumns != null) {
1107 for (int c = 0; c < gridColumns.Length; c++) {
1108 if (gridColumns[c] != null) {
1109 if (gridColumns[c].TreeViewColumn != null) {
1110 treeView.RemoveColumn (gridColumns[c].TreeViewColumn);
1111 gridColumns[c].TreeViewColumn = null;
1113 gridColumns[c] = null;
1116 gridColumns = null;
1119 // end of gtk# stuff
1121 [MonoTODO]
1122 protected virtual bool ShouldSerializeAlternatingBackColor()
1124 throw new NotImplementedException ();
1127 [MonoTODO]
1128 protected virtual bool ShouldSerializeBackgroundColor()
1130 throw new NotImplementedException ();
1133 [MonoTODO]
1134 protected virtual bool ShouldSerializeCaptionBackColor()
1136 throw new NotImplementedException ();
1139 [MonoTODO]
1140 protected virtual bool ShouldSerializeCaptionForeColor()
1142 throw new NotImplementedException ();
1145 [MonoTODO]
1146 protected virtual bool ShouldSerializeGridLineColor()
1148 throw new NotImplementedException ();
1151 [MonoTODO]
1152 protected virtual bool ShouldSerializeHeaderBackColor()
1154 throw new NotImplementedException ();
1157 [MonoTODO]
1158 protected bool ShouldSerializeHeaderFont()
1160 throw new NotImplementedException ();
1163 [MonoTODO]
1164 protected virtual bool ShouldSerializeHeaderForeColor()
1166 throw new NotImplementedException ();
1169 [MonoTODO]
1170 protected virtual bool ShouldSerializeLinkHoverColor()
1172 throw new NotImplementedException ();
1175 [MonoTODO]
1176 protected virtual bool ShouldSerializeParentRowsBackColor()
1178 throw new NotImplementedException ();
1181 [MonoTODO]
1182 protected virtual bool ShouldSerializeParentRowsForeColor()
1184 throw new NotImplementedException ();
1187 [MonoTODO]
1188 protected bool ShouldSerializePreferredRowHeight()
1190 throw new NotImplementedException ();
1193 [MonoTODO]
1194 protected bool ShouldSerializeSelectionBackColor()
1196 throw new NotImplementedException ();
1199 [MonoTODO]
1200 protected virtual bool ShouldSerializeSelectionForeColor()
1202 throw new NotImplementedException ();
1205 [MonoTODO]
1206 public void UnSelect(int row)
1208 //FIXME:
1210 #endregion
1212 #region Events
1213 public event EventHandler AllowNavigationChanged;
1214 public event EventHandler BackButtonClick;
1215 public event EventHandler BackgroundColorChanged;
1216 public event EventHandler BorderStyleChanged;
1217 public event EventHandler CaptionVisibleChanged;
1218 public event EventHandler CurrentCellChanged;
1219 public event EventHandler DataSourceChanged;
1220 public event EventHandler FlatModeChanged;
1221 public event NavigateEventHandler Navigate;
1222 public event EventHandler ParentRowsLabelStyleChanged;
1223 public event EventHandler ParentRowsVisibleChanged;
1224 public event EventHandler ReadOnlyChanged;
1225 protected event EventHandler RowHeaderClick;
1226 public event EventHandler Scroll;
1227 public event EventHandler ShowParentDetailsButtonClick;
1228 #endregion
1230 /// sub-class: DataGrid.HitTestInfo
1231 /// <summary>
1232 /// Contains information about a part of the System.Windows.Forms.DataGrid at a specified coordinate. This class cannot be inherited.
1233 /// </summary>
1234 [MonoTODO]
1235 public sealed class HitTestInfo {
1236 #region DataGrid.HitTestInfo: Fields
1237 [MonoTODO]
1238 public static readonly DataGrid.HitTestInfo Nowhere;
1239 #endregion
1241 #region DataGrid.HitTestInfo: Properties
1242 [MonoTODO]
1243 public int Column {
1244 get {
1245 throw new NotImplementedException ();
1249 [MonoTODO]
1250 public int Row {
1251 get {
1252 throw new NotImplementedException ();
1256 [MonoTODO]
1257 public HitTestType Type {
1258 get {
1259 throw new NotImplementedException ();
1262 #endregion
1264 /// sub-enumeration: DataGrid.HitTestType
1265 /// <summary>
1266 /// Specifies the part of the System.Windows.Forms.DataGrid control the user has clicked
1267 /// </summary>
1268 [Flags]
1269 [Serializable]
1270 public enum HitTestType {
1271 Caption = 32,
1272 Cell = 1,
1273 ColumnHeader = 2,
1274 ColumnResize = 8,
1275 None = 0,
1276 ParentRows = 64,
1277 RowHeader = 4,
1278 RowResize = 16