Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.ExtLibs/HeuristicLab.WinFormsUI/2.3.1/WinFormsUI-2.3.1/Docking/Helpers/DockHelper.cs @ 4068

Last change on this file since 4068 was 4068, checked in by swagner, 14 years ago

Sorted usings and removed unused usings in entire solution (#1094)

File size: 3.5 KB
Line 
1using System.Drawing;
2using System.Windows.Forms;
3
4namespace WeifenLuo.WinFormsUI.Docking {
5  internal static class DockHelper {
6    public static bool IsDockStateAutoHide(DockState dockState) {
7      if (dockState == DockState.DockLeftAutoHide ||
8        dockState == DockState.DockRightAutoHide ||
9        dockState == DockState.DockTopAutoHide ||
10        dockState == DockState.DockBottomAutoHide)
11        return true;
12      else
13        return false;
14    }
15
16    public static bool IsDockStateValid(DockState dockState, DockAreas dockableAreas) {
17      if (((dockableAreas & DockAreas.Float) == 0) &&
18        (dockState == DockState.Float))
19        return false;
20      else if (((dockableAreas & DockAreas.Document) == 0) &&
21        (dockState == DockState.Document))
22        return false;
23      else if (((dockableAreas & DockAreas.DockLeft) == 0) &&
24        (dockState == DockState.DockLeft || dockState == DockState.DockLeftAutoHide))
25        return false;
26      else if (((dockableAreas & DockAreas.DockRight) == 0) &&
27        (dockState == DockState.DockRight || dockState == DockState.DockRightAutoHide))
28        return false;
29      else if (((dockableAreas & DockAreas.DockTop) == 0) &&
30        (dockState == DockState.DockTop || dockState == DockState.DockTopAutoHide))
31        return false;
32      else if (((dockableAreas & DockAreas.DockBottom) == 0) &&
33        (dockState == DockState.DockBottom || dockState == DockState.DockBottomAutoHide))
34        return false;
35      else
36        return true;
37    }
38
39    public static bool IsDockWindowState(DockState state) {
40      if (state == DockState.DockTop || state == DockState.DockBottom || state == DockState.DockLeft ||
41        state == DockState.DockRight || state == DockState.Document)
42        return true;
43      else
44        return false;
45    }
46
47    public static DockState ToggleAutoHideState(DockState state) {
48      if (state == DockState.DockLeft)
49        return DockState.DockLeftAutoHide;
50      else if (state == DockState.DockRight)
51        return DockState.DockRightAutoHide;
52      else if (state == DockState.DockTop)
53        return DockState.DockTopAutoHide;
54      else if (state == DockState.DockBottom)
55        return DockState.DockBottomAutoHide;
56      else if (state == DockState.DockLeftAutoHide)
57        return DockState.DockLeft;
58      else if (state == DockState.DockRightAutoHide)
59        return DockState.DockRight;
60      else if (state == DockState.DockTopAutoHide)
61        return DockState.DockTop;
62      else if (state == DockState.DockBottomAutoHide)
63        return DockState.DockBottom;
64      else
65        return state;
66    }
67
68    public static DockPane PaneAtPoint(Point pt, DockPanel dockPanel) {
69      for (Control control = Win32Helper.ControlAtPoint(pt); control != null; control = control.Parent) {
70        IDockContent content = control as IDockContent;
71        if (content != null && content.DockHandler.DockPanel == dockPanel)
72          return content.DockHandler.Pane;
73
74        DockPane pane = control as DockPane;
75        if (pane != null && pane.DockPanel == dockPanel)
76          return pane;
77      }
78
79      return null;
80    }
81
82    public static FloatWindow FloatWindowAtPoint(Point pt, DockPanel dockPanel) {
83      for (Control control = Win32Helper.ControlAtPoint(pt); control != null; control = control.Parent) {
84        FloatWindow floatWindow = control as FloatWindow;
85        if (floatWindow != null && floatWindow.DockPanel == dockPanel)
86          return floatWindow;
87      }
88
89      return null;
90    }
91  }
92}
Note: See TracBrowser for help on using the repository browser.