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

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/class/Managed.Windows.Forms/System.Windows.Forms/TableLayoutSettings.cs')
-rw-r--r--mcs/class/Managed.Windows.Forms/System.Windows.Forms/TableLayoutSettings.cs208
1 files changed, 208 insertions, 0 deletions
diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TableLayoutSettings.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TableLayoutSettings.cs
new file mode 100644
index 00000000000..cd48738c2bc
--- /dev/null
+++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TableLayoutSettings.cs
@@ -0,0 +1,208 @@
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+//
+// Author:
+// Miguel de Icaza (miguel@gnome.org)
+//
+// (C) 2004 Novell, Inc.
+//
+#if NET_2_0
+using System;
+using System.ComponentModel;
+using System.Collections;
+using System.Windows.Forms.Layout;
+
+namespace System.Windows.Forms {
+
+ public class TableLayoutSettings : LayoutSettings {
+ TableLayoutPanel panel;
+ ColumnStyleCollection column_style;
+ TableLayoutPanelGrowStyle grow_style;
+ int column_count;
+ int row_count;
+
+ // Statics
+ static LayoutEngine layout_engine = new TableLayout ();
+
+ internal TableLayoutSettings (TableLayoutPanel panel)
+ {
+ this.panel = panel;
+ column_count = 0;
+ row_count = 0;
+ grow_style = TableLayoutPanelGrowStyle.AddRows;
+ column_style = new ColumnStyleCollection (panel);
+ }
+
+ public int ColumnCount {
+ get {
+ return column_count;
+ }
+
+ set {
+ column_count = value;
+ }
+ }
+
+ public int RowCount {
+ get {
+ return row_count;
+ }
+
+ set {
+ row_count = value;
+ }
+ }
+
+ public TableLayoutPanelGrowStyle GrowStyle {
+ get {
+ return grow_style;
+ }
+ }
+
+ public override LayoutEngine LayoutEngine {
+ get {
+ return layout_engine;
+ }
+ }
+
+ public TableLayoutSettings.ColumnStyleCollection ColumnStyle {
+ get {
+ return column_style;
+ }
+ }
+
+ public abstract class StyleCollection {
+ ArrayList al = new ArrayList ();
+ TableLayoutPanel table;
+
+ internal StyleCollection (TableLayoutPanel table)
+ {
+ this.table = table;
+ }
+
+ public int Add (TableLayoutSettings.Style style)
+ {
+ return al.Add (style);
+ }
+
+ // FIXME; later this should be an override.
+ public void Clear ()
+ {
+ al.Clear ();
+
+ // FIXME: Need to investigate what happens when the style is gone.
+ table.Relayout ();
+ }
+
+#region IList methods
+ //
+ // The IList methods will later be implemeneted, this is to get us started
+ //
+ internal bool Contains (Style style)
+ {
+ return al.Contains (style);
+ }
+
+ internal int IndexOf (Style style)
+ {
+ return al.IndexOf (style);
+ }
+
+ internal void Insert (int index, Style style)
+ {
+ al.Insert (index, style);
+ }
+
+ internal void Remove (Style style)
+ {
+ al.Remove (style);
+ }
+
+#endregion
+ public Style this [int idx] {
+ get {
+ return (Style) al [idx];
+ }
+
+ set {
+ al [idx] = value;
+ }
+ }
+ }
+
+ public class ColumnStyleCollection : StyleCollection {
+
+ internal ColumnStyleCollection (TableLayoutPanel panel) : base (panel)
+ {
+ }
+
+ public void Add (ColumnStyle style)
+ {
+ base.Add (style);
+ }
+
+ public bool Contains (ColumnStyle style)
+ {
+ return base.Contains (style);
+ }
+
+ public int IndexOf (ColumnStyle style)
+ {
+ return base.IndexOf (style);
+ }
+
+ public void Insert (int index, ColumnStyle style)
+ {
+ base.Insert (index, style);
+ }
+
+ public void Remove (ColumnStyle style)
+ {
+ base.Remove (style);
+ }
+
+ public new ColumnStyle this [int index] {
+ get {
+ return (ColumnStyle) base [index];
+ }
+
+ set {
+ base [index] = value;
+ }
+ }
+ }
+
+ public class Style {
+ internal SizeType size_type;
+
+ public SizeType SizeType {
+ get {
+ return size_type;
+ }
+
+ set {
+ size_type = value;
+ }
+ }
+ }
+ }
+
+}
+#endif