ui/wpf/UIcore/Container.cs

changeset 108
77254bd6dccb
parent 107
b34bd1557c6c
child 109
c3dfcb8f0be7
--- a/ui/wpf/UIcore/Container.cs	Sat Apr 05 17:57:04 2025 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,321 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows;
-using System.Windows.Controls;
-
-namespace UI
-{
-    public interface Container
-    {
-        Layout Layout { get; set; }
-        
-        void Add(UIElement control, bool fill);
-    }
-
-    public class Layout
-    {
-        public bool? Fill { get; set; }
-        public bool Hexpand { get; set; }
-        public bool Vexpand { get; set; }
-        public bool NewLine { get; set; }
-        public int GridWidth { get; set; }
-        public String Label { get; set; }
-
-        public Layout()
-        {
-            Reset();
-        }
-
-        public bool IsFill(bool fill)
-        {
-            if (Fill != null)
-            {
-                
-                return (bool)Fill;
-            }
-            return fill;
-        }
-
-        public void Reset()
-        {
-            Fill = null;
-            Hexpand = false;
-            Vexpand = false;
-            NewLine = false;
-            GridWidth = 1;
-            Label = null;
-        }
-    }
-
-    public enum BoxOrientation
-    {
-        VERTICAL,
-        HORIZONTAL
-    }
-
-    public class BoxContainer : Grid, Container
-    {
-        public Layout Layout { get; set; }
-        
-        private BoxOrientation Orientation;
-        private int Spacing;
-
-        private int x = 0;
-        private int y = 0;
-
-        private bool filled = false;
-
-        public BoxContainer(BoxOrientation orientation, int margin, int spacing) : base()
-        {
-            Layout = new Layout();
-            Margin = new Thickness(margin);
-            Spacing = spacing;
-            
-            Orientation = orientation;
-            if(Orientation == BoxOrientation.HORIZONTAL)
-            {
-                RowDefinition row = new RowDefinition();
-                row.Height = new GridLength(1, GridUnitType.Star);
-                RowDefinitions.Add(row);
-            }
-            else
-            {
-                ColumnDefinition col = new ColumnDefinition();
-                col.Width = new GridLength(1, GridUnitType.Star);
-                ColumnDefinitions.Add(col);
-            }
-        }
-
-        public BoxContainer(Container parent, BoxOrientation orientation, int margin, int spacing) : this(orientation, margin, spacing)
-        {
-            parent.Add(this, true);
-        }
-        
-        public void Add(UIElement control, bool fill)
-        {
-            fill = Layout.IsFill(fill);
-            
-            if(Orientation == BoxOrientation.HORIZONTAL)
-            {
-                if(Spacing > 0)
-                {
-                    ColumnDefinition spaceCol = new ColumnDefinition();
-                    spaceCol.Width = new GridLength(Spacing, GridUnitType.Pixel);
-                    ColumnDefinitions.Add(spaceCol);
-                    x++;
-                }
-
-                ColumnDefinition col = new ColumnDefinition();
-                if(filled && fill)
-                {
-                    fill = false;
-                    Console.WriteLine("BoxContainer can only contain one filled control");
-                }
-                if(fill)
-                {
-                    col.Width = new GridLength(1, GridUnitType.Star);
-                    filled = true;
-                }
-                else
-                {
-                    col.Width = GridLength.Auto;
-                }
-                ColumnDefinitions.Add(col);
-            }
-            else
-            {
-                if (Spacing > 0)
-                {
-                    RowDefinition spaceRow = new RowDefinition();
-                    spaceRow.Height = new GridLength(Spacing, GridUnitType.Pixel);
-                    RowDefinitions.Add(spaceRow);
-                    y++;
-                }
-
-                RowDefinition row = new RowDefinition();
-                if (filled && fill)
-                {
-                    fill = false;
-                    Console.WriteLine("BoxContainer can only contain one filled control");
-                }
-                if(fill)
-                {
-                    row.Height = new GridLength(1, GridUnitType.Star);
-                    filled = true;
-                }
-                else
-                {
-                    row.Height = GridLength.Auto;
-                }
-                RowDefinitions.Add(row);
-            }
-
-            Grid.SetColumn(control, x);
-            Grid.SetRow(control, y);
-            Children.Add(control);
-
-            if(Orientation == BoxOrientation.HORIZONTAL)
-            {
-                x++;
-            }
-            else
-            {
-                y++;
-            }
-
-            Layout.Reset();
-        }
-    }
-    
-    public class GridContainer : Grid, Container
-    {
-        public Layout Layout { get; set; }
-
-        private int X = 0;
-        private int Y = 0;
-        private int CurrentWidth = 0;
-        private int CurrentHeight = 0;
-
-        private int ColSpacing;
-        private int RowSpacing;
-
-        public GridContainer(Container parent, int margin, int colspacing, int rowspacing) : base()
-        {
-            Layout = new Layout();
-
-            Margin = new Thickness(margin);
-            ColSpacing = colspacing;
-            RowSpacing = rowspacing;
-
-            parent.Add(this, true);
-        }
-
-        public void Add(UIElement control, bool fill)
-        {
-            if(Layout.NewLine)
-            {
-                X = 0;
-                Y++;
-            }
-
-            ColumnDefinition col;
-            RowDefinition row;
-            bool getcol = false;
-            if(X >= CurrentWidth)
-            {
-                if (ColSpacing > 0 && X != 0)
-                {
-                    ColumnDefinition spaceCol = new ColumnDefinition();
-                    spaceCol.Width = new GridLength(ColSpacing, GridUnitType.Pixel);
-                    ColumnDefinitions.Add(spaceCol);
-                    X++;
-                }
-
-                col = new ColumnDefinition();
-                col.Width = GridLength.Auto;
-                ColumnDefinitions.Add(col);
-
-                CurrentWidth = X + 1;
-            }
-            else
-            {
-                if (ColSpacing > 0 && X % 2 > 0)
-                {
-                    X++;
-                }
-                col = ColumnDefinitions.ElementAt(X);
-            }
-
-            if(getcol)
-            {
-                col = ColumnDefinitions.ElementAt(X);
-            }
-
-            if (Y >= CurrentHeight)
-            {
-                if (RowSpacing > 0 && Y != 0)
-                {
-                    RowDefinition spaceRow = new RowDefinition();
-                    spaceRow.Height = new GridLength(RowSpacing, GridUnitType.Pixel);
-                    RowDefinitions.Add(spaceRow);
-                    Y++;
-                }
-
-                row = new RowDefinition();
-                row.Height = GridLength.Auto;
-                RowDefinitions.Add(row);
-                CurrentHeight = Y + 1;
-            }
-            else
-            {
-                row = RowDefinitions.ElementAt(Y);
-            }
-
-            if(Layout.Hexpand)
-            {
-                col.Width = new GridLength(1, GridUnitType.Star);
-            }
-            if(Layout.Vexpand)
-            {
-                row.Height = new GridLength(1, GridUnitType.Star);
-            }
-
-            int gridwidth = Layout.GridWidth;
-            if(gridwidth > 1)
-            {
-                gridwidth++;
-            }
-
-            Grid.SetColumn(control, X);
-            Grid.SetRow(control, Y);
-            Grid.SetColumnSpan(control, gridwidth);
-            Children.Add(control);
-
-            Layout.Reset();
-            X += gridwidth;
-        }
-    }
-
-    public class ScrollViewerContainer : ScrollViewer, Container
-    {
-        public Layout Layout { get; set; }
-
-        public ScrollViewerContainer(Container parent) : base()
-        {
-            Layout = new Layout();
-
-            HorizontalScrollBarVisibility = ScrollBarVisibility.Auto;
-            VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
-
-            parent.Add(this, true);
-        }
-
-        public void Add(UIElement control, bool fill)
-        {
-            Content = control;
-        }
-    }
-
-    public class TabViewContainer : TabControl, Container
-    {
-        public Layout Layout { get; set; }
-
-        public TabViewContainer(Container parent) : base()
-        {
-            Layout = new Layout();
-            parent.Add(this, true);
-        }
-
-        public void Add(UIElement control, bool fill)
-        {
-            TabItem tab = new TabItem();
-            tab.Header = Layout.Label != null ? Layout.Label : "New Tab";
-            Items.Add(tab);
-            tab.Content = control;
-            Layout.Reset();
-        }
-    }
-}

mercurial