private void LoadSettings()
 {
     IsDesignerEnabled = _settings.IsDesignerEnabled;
     DocumentView = _settings.DocumentView;
     SplitOrientation = _settings.SplitOrientation;
     IsReversed = _settings.IsReversed;
 }
示例#2
0
        public float CalculateMinimumSize(SplitOrientation orientation)
        {
            var minimumSize = 0f;

            foreach (var panelContainer in _panelContainers)
            {
                if (panelContainer.Panel is OSCSplitPanel splitPanel)
                {
                    if (splitPanel.Orientation == orientation)
                    {
                        minimumSize += splitPanel.CalculateMinimumSize(orientation);
                    }
                }

                if (orientation == Orientation)
                {
                    minimumSize += panelContainer.MinimumSizePixel;
                }

                if (SplitterSize > 0)
                {
                    minimumSize += _splitterMargin * 2f + SplitterSize;
                }
            }

            if (SplitterSize > 0)
            {
                minimumSize -= _splitterMargin * 2f + SplitterSize;
            }

            return(minimumSize);
        }
示例#3
0
        public float CalculateMinimumSize(SplitOrientation orientation)
        {
            var minimumSize = 0f;

            foreach (var storedData in _storedPanelData)
            {
                if (storedData.Panel is OSCSplitPanel splitPanel)
                {
                    if (splitPanel.Orientation == orientation)
                    {
                        minimumSize += splitPanel.CalculateMinimumSize(orientation);
                    }
                }

                if (orientation == Orientation)
                {
                    minimumSize += storedData.MinimumSizePixel;
                }

                if (ShowSplitters)
                {
                    minimumSize += _splitterMargin * 2f + SplitterSize;
                }
            }

            if (ShowSplitters)
            {
                minimumSize -= _splitterMargin * 2f + SplitterSize;
            }

            return(minimumSize);
        }
 private void LoadSettings()
 {
     IsDesignerEnabled = _settings.IsDesignerEnabled;
     DocumentView      = _settings.DocumentView;
     SplitOrientation  = _settings.SplitOrientation;
     IsReversed        = _settings.IsReversed;
 }
示例#5
0
        public static Orientation?ToOrientation(this SplitOrientation orientation)
        {
            if (orientation == SplitOrientation.Auto)
            {
                return(null);
            }

            return(orientation == SplitOrientation.Horizontal ? Orientation.Horizontal : Orientation.Vertical);
        }
示例#6
0
        /// <summary>
        /// Constructor.
        /// </summary>
        public SplitComponentContainer(
            SplitPane pane1,
            SplitPane pane2,
            SplitOrientation splitOrientation)
        {
            this.Pane1 = pane1;
            this.Pane2 = pane2;

            _splitOrientation = splitOrientation;
        }
示例#7
0
		protected SplitterBase(string name, SplitOrientation orientation, IWidgetStyle style)
			: base(name, Docking.None, style)
		{			
			//Styles.SetStyle (new SplitContainerSplitterStyle (), WidgetStates.Pressed);
			Styles.SetStyle (style, WidgetStates.Pressed);
			ZIndex = 1100;	// must be above Scrollbars!
			Orientation = orientation;
			SplitterWidth = 4;
			MinDistanceNear = 100;		
			MinDistanceFar = 50;
			Distance = 0.25f;
		}
示例#8
0
        /// <summary>
        /// Get all splits with a given orientation in ascending order.
        /// </summary>
        /// <param name="orientation">The desired orientation (horizontal or vertical).</param>
        /// <returns></returns>
        public double[] GetSplits(SplitOrientation orientation)
        {
            List <double> positions = new List <double>();

            foreach (var split in splits)
            {
                if (split.Orientation == orientation)
                {
                    positions.Add(split.Position);
                }
            }
            positions.Sort();
            return(positions.ToArray());
        }
        private void LoadSettings()
        {
            // IsDesignerEnabled, either read from the store or initialize to true.
            IsDesignerEnabled = !_store.PropertyExists(COLLECTION_PATH, IS_DESIGNER_ENABLED_PROPERTY) || _store.GetBoolean(COLLECTION_PATH, IS_DESIGNER_ENABLED_PROPERTY);

            SplitOrientation = _store.PropertyExists(COLLECTION_PATH, SPLIT_ORIENTATION_PROPERTY)
                ? (SplitOrientation)_store.GetInt32(COLLECTION_PATH, SPLIT_ORIENTATION_PROPERTY)
                : SplitOrientation.Default;

            DocumentView = _store.PropertyExists(COLLECTION_PATH, DOCUMENT_VIEW_PROPERTY)
                ? (DocumentView)_store.GetInt32(COLLECTION_PATH, DOCUMENT_VIEW_PROPERTY)
                : DocumentView.SplitView;

            IsReversed = _store.PropertyExists(COLLECTION_PATH, IS_REVERSED_PROPERTY) && _store.GetBoolean(COLLECTION_PATH, IS_REVERSED_PROPERTY);
        }
        public DockPanelSplitter(FrameworkElement prevControl, FrameworkElement nextControl, SplitOrientation split)
        {
            _prevControl = prevControl;
            _nextControl = nextControl;
            _split       = split;
            Background   = new SolidColorBrush(Colors.LightGray);

            if (_split == SplitOrientation.Vertical)
            {
                Cursor = Cursors.SizeWE;
                Width  = 5;
            }
            else
            {
                Cursor = Cursors.SizeNS;
                Height = 5;
            }
        }
        public DockPanelSplitter(FrameworkElement prevControl, FrameworkElement nextControl, SplitOrientation split)
        {
            _prevControl = prevControl;
            _nextControl = nextControl;
            _split = split;
            Background = new SolidColorBrush(Colors.LightGray);

            if (_split == SplitOrientation.Vertical)
            {
                Cursor = Cursors.SizeWE;
                Width = 5;
            }
            else
            {
                Cursor = Cursors.SizeNS;
                Height = 5;
            }
        }
示例#12
0
        void split()
        {
            splitOrientation = chooseSplit();
            if (splitOrientation == SplitOrientation.Horizontal)
            {
                int r = Rng.Random.Next(width - 2 * MIN_CELL_SIZE);
                r         = r + MIN_CELL_SIZE;
                child1    = new Cell(map, this);
                child1.x1 = x1;
                child1.y1 = y1;
                child1.x2 = x1 + r;
                child1.y2 = y2;
                child2    = new Cell(map, this);
                child2.x1 = x1 + r;
                child2.y1 = y1;
                child2.x2 = x2;
                child2.y2 = y2;
            }
            if (splitOrientation == SplitOrientation.Vertical)
            {
                int r = Rng.Random.Next(height - 2 * MIN_CELL_SIZE);
                r         = r + MIN_CELL_SIZE;
                child1    = new Cell(map, this);
                child1.x1 = x1;
                child1.y1 = y1;
                child1.x2 = x2;
                child1.y2 = y1 + r;
                child2    = new Cell(map, this);
                child2.x1 = x1;
                child2.y1 = y1 + r;
                child2.x2 = x2;
                child2.y2 = y2;
            }

            if (child1.canSplit)
            {
                child1.split();
            }
            if (child2.canSplit)
            {
                child2.split();
            }
        }
示例#13
0
        public SplitContainer(string name, SplitOrientation orientation, float distance)
            : base(name, Docking.Fill, new SplitContainerStyle())
        {
            /***
             * Panel1 = new ScrollableContainer ("panel1", Docking.Fill, new SplitContainerPanelStyle ());
             * Panel2 = new ScrollableContainer ("panel2", Docking.Fill, new SplitContainerPanelStyle ());
             ***/

            Panel1 = new ScrollableContainer("panel1", Docking.Fill, new EmptyWidgetStyle());
            Panel2 = new ScrollableContainer("panel2", Docking.Fill, new EmptyWidgetStyle());

            if (orientation == SplitOrientation.Horizontal)
            {
                Splitter = new HorizontalSplitter("splitter", new SplitContainerTransparentSplitterStyle());
            }
            else
            {
                Splitter = new VerticalSplitter("splitter", new SplitContainerTransparentSplitterStyle());
            }

            //Panel1.MinSize = new SizeF (Splitter.MinDistanceNear, Splitter.MinDistanceNear);
            //Panel2.MinSize = new SizeF (Splitter.MinDistanceFar, Splitter.MinDistanceFar);

            Children.Add(Panel1);
            Children.Add(Splitter);
            Children.Add(Panel2);

            //this.BackColor = Color.Yellow;
            //Panel2.BackColor = Color.Red;
            //Splitter.BackColor = Color.FromArgb(128, Color.LimeGreen);
            //Splitter.SplitterWidth = 12;

            if (distance != 0)
            {
                Splitter.Distance = distance;
            }
        }
示例#14
0
        public TripleSplitContainer(string name, SplitOrientation orientation, Docking dock, IWidgetStyle style)
            : base(name, dock, style)
        {
            Orientation = orientation;

            /***
             * Panel1 = new ScrollableContainer ("panel1", Docking.Fill, new SplitContainerPanelStyle ());
             * Panel2 = new ScrollableContainer ("panel2", Docking.Fill, new SplitContainerPanelStyle ());
             * Panel3 = new ScrollableContainer ("panel3", Docking.Fill, new SplitContainerPanelStyle ());
             ***/

            Panel1 = new ScrollableContainer("panel1", Docking.Fill, new EmptyWidgetStyle());
            Panel2 = new ScrollableContainer("panel2", Docking.Fill, new EmptyWidgetStyle());
            Panel3 = new ScrollableContainer("panel3", Docking.Fill, new EmptyWidgetStyle());


            if (orientation == SplitOrientation.Horizontal)
            {
                Splitter1 = new HorizontalSplitter("splitter1", new SplitContainerTransparentSplitterStyle());
                Splitter2 = new HorizontalSplitter("splitter2", new SplitContainerTransparentSplitterStyle());
            }
            else
            {
                Splitter1 = new VerticalSplitter("splitter1", new SplitContainerTransparentSplitterStyle());
                Splitter2 = new VerticalSplitter("splitter2", new SplitContainerTransparentSplitterStyle());
            }

            Children.Add(Panel1);
            Children.Add(Splitter1);
            Children.Add(Panel2);
            Children.Add(Splitter2);
            Children.Add(Panel3);

            //if (distance != 0)
            Splitter1.Distance = 0.334f;
            Splitter2.Distance = 0.334f;
        }
 void split()
 {
     splitOrientation = chooseSplit();
     if (splitOrientation == SplitOrientation.Horizontal)
     {
         int r = Rng.Random.Next(width - 2) + 1;
         child1    = new MazeCell(map, this);
         child1.x1 = x1;
         child1.y1 = y1;
         child1.x2 = x1 + r - 1;
         child1.y2 = y2;
         child2    = new MazeCell(map, this);
         child2.x1 = x1 + r + 1;
         child2.y1 = y1;
         child2.x2 = x2;
         child2.y2 = y2;
         for (int y = y1; y <= y2; ++y)
         {
             map[x1 + r, y] = Terrain.Get("wall").Character;
         }
         if (parent == null || splitOrientation == parent.splitOrientation)
         {
         }
         else
         {
             connection = Rng.Random.Next(height - 1);
             if (connection >= parent.connection)
             {
                 connection++;
             }
         }
         connection = Rng.Random.Next(height);
         map[x1 + r, y1 + connection] = Terrain.Get("ground").Character;
     }
     if (splitOrientation == SplitOrientation.Vertical)
     {
         int r = Rng.Random.Next(height - 2) + 1;
         child1    = new MazeCell(map, this);
         child1.x1 = x1;
         child1.y1 = y1;
         child1.x2 = x2;
         child1.y2 = y1 + r - 1;
         child2    = new MazeCell(map, this);
         child2.x1 = x1;
         child2.y1 = y1 + r + 1;
         child2.x2 = x2;
         child2.y2 = y2;
         for (int x = x1; x <= x2; ++x)
         {
             map[x, y1 + r] = Terrain.Get("wall").Character;
         }
         connection = Rng.Random.Next(width);
         map[x1 + connection, y1 + r] = Terrain.Get("ground").Character;
     }
     if (child1.canSplit)
     {
         child1.split();
     }
     if (child2.canSplit)
     {
         child2.split();
     }
 }
示例#16
0
        /// <summary>
        /// Split factory, that takes a point [0,1]x[0,1].
        /// Depending on where the point lays, the split will be horizontal or vertical.
        /// </summary>
        /// <param name="norm">Normalized point, i.e. x and y are in [0,1]</param>
        /// <returns>A new split object, with all attributes set.</returns>
        public static Split FromPosition(PointF norm)
        {
            SplitOrientation orientation = GetOrientationFromPosition(norm);

            return(new Split((orientation == SplitOrientation.Horizontal) ? norm.Y : norm.X, orientation));
        }
示例#17
0
 public Split(double position, SplitOrientation orientation, Line line)
 {
     this.position    = position;
     this.orientation = orientation;
     this.line        = line;
 }
示例#18
0
 public Split(double position, SplitOrientation orientation) : this(position, orientation, GetLine())
 {
 }
 public SplitContainerOrientationEventArgs(SplitOrientation orientation)
 {
     Orientation = orientation;
 }
示例#20
0
 public TownCell(Map map, TownCell parent)
 {
     splitOrientation = SplitOrientation.None;
     this.map         = map;
     this.parent      = parent;
 }
示例#21
0
		protected SplitterBase(string name, SplitOrientation orientation)
			: this(name, orientation, new SplitContainerSplitterStyle ()) {}
示例#22
0
 public DockPaneGroup(IDockPane first, IDockPane second, SplitOrientation split)
 {
     First  = first;
     Second = second;
     Split  = split;
 }
示例#23
0
 public PaneGroup(IPane first, IPane second, SplitOrientation split)
 {
     First = first;
     Second = second;
     Split = split;
 }
示例#24
0
 /// <summary>
 /// Constructor.
 /// </summary>
 public SplitComponentContainer(SplitOrientation splitOrientation)
 {
     _splitOrientation = splitOrientation;
 }