1 using System;
2 using System.Drawing;
3 
4 namespace WeifenLuo.WinFormsUI.Docking
5 {
6     public sealed class NestedDockingStatus
7     {
NestedDockingStatus(DockPane pane)8         internal NestedDockingStatus(DockPane pane)
9         {
10             m_dockPane = pane;
11         }
12 
13         private DockPane m_dockPane = null;
14         public DockPane DockPane
15         {
16             get    {    return m_dockPane;    }
17         }
18 
19         private NestedPaneCollection m_nestedPanes = null;
20         public NestedPaneCollection NestedPanes
21         {
22             get    {    return m_nestedPanes;    }
23         }
24 
25         private DockPane m_previousPane = null;
26         public DockPane PreviousPane
27         {
28             get    {    return m_previousPane;    }
29         }
30 
31         private DockAlignment m_alignment = DockAlignment.Left;
32         public DockAlignment Alignment
33         {
34             get    {    return m_alignment;    }
35         }
36 
37         private double m_proportion = 0.5;
38         public double Proportion
39         {
40             get    {    return m_proportion;    }
41         }
42 
43         private bool m_isDisplaying = false;
44         public bool IsDisplaying
45         {
46             get    {    return m_isDisplaying;    }
47         }
48 
49         private DockPane m_displayingPreviousPane = null;
50         public DockPane DisplayingPreviousPane
51         {
52             get    {    return m_displayingPreviousPane;    }
53         }
54 
55         private DockAlignment m_displayingAlignment = DockAlignment.Left;
56         public DockAlignment DisplayingAlignment
57         {
58             get    {    return m_displayingAlignment;    }
59         }
60 
61         private double m_displayingProportion = 0.5;
62         public double DisplayingProportion
63         {
64             get    {    return m_displayingProportion;    }
65         }
66 
67         private Rectangle m_logicalBounds = Rectangle.Empty;
68         public Rectangle LogicalBounds
69         {
70             get    {    return m_logicalBounds;    }
71         }
72 
73         private Rectangle m_paneBounds = Rectangle.Empty;
74         public Rectangle PaneBounds
75         {
76             get    {    return m_paneBounds;    }
77         }
78 
79         private Rectangle m_splitterBounds = Rectangle.Empty;
80         public Rectangle SplitterBounds
81         {
82             get    {    return m_splitterBounds;    }
83         }
84 
SetStatus(NestedPaneCollection nestedPanes, DockPane previousPane, DockAlignment alignment, double proportion)85         internal void SetStatus(NestedPaneCollection nestedPanes, DockPane previousPane, DockAlignment alignment, double proportion)
86         {
87             m_nestedPanes = nestedPanes;
88             m_previousPane = previousPane;
89             m_alignment = alignment;
90             m_proportion = proportion;
91         }
92 
SetDisplayingStatus(bool isDisplaying, DockPane displayingPreviousPane, DockAlignment displayingAlignment, double displayingProportion)93         internal void SetDisplayingStatus(bool isDisplaying, DockPane displayingPreviousPane, DockAlignment displayingAlignment, double displayingProportion)
94         {
95             m_isDisplaying = isDisplaying;
96             m_displayingPreviousPane = displayingPreviousPane;
97             m_displayingAlignment = displayingAlignment;
98             m_displayingProportion = displayingProportion;
99         }
100 
SetDisplayingBounds(Rectangle logicalBounds, Rectangle paneBounds, Rectangle splitterBounds)101         internal void SetDisplayingBounds(Rectangle logicalBounds, Rectangle paneBounds, Rectangle splitterBounds)
102         {
103             m_logicalBounds = logicalBounds;
104             m_paneBounds = paneBounds;
105             m_splitterBounds = splitterBounds;
106         }
107     }
108 }
109