9#if !defined(OWL_PANESPLI_H)
13#if defined(BI_HAS_PRAGMA_ONCE)
33#if !defined(IDC_SIZEALL)
34# define IDC_SIZEALL MAKEINTRESOURCE(32646)
58 int splitterWidth = 0,
64 int splitterWidth = 0,
113 enum TTraversalOrder {psPreOrder, psInOrder, psPostOrder};
117 uint SplitterCushion;
118 HCURSOR ResizeCursorH;
119 HCURSOR ResizeCursorV;
120 HCURSOR ResizeCursorHV;
121 bool PaneSplitterResizing;
122 TDelete ShouldDelete;
124 void MouseMoved(
const TPoint& point);
126 virtual void EndSplitterMove(
const TPoint& point);
130 TForEachObjectCallback callback,
131 void* p1,
void* p2 = 0,
132 TTraversalOrder order = psPostOrder);
133 void ScreenToClientRect(
TRect& rect);
134 void ClientToScreenRect(
TRect& rect);
137 void FindIntersectingSplitters(
const TPoint& point);
143 int DoForEachPane(
TWindow* splitter,
void* p1,
void* p2);
144 int DoFindIntersectingSplitters(
TWindow* splitter,
void* p1,
void* p2);
145 int GetListOfPanesToRemove(
TWindow* splitter,
void* p1,
void* p2);
146 int AdjSplitterWidth(
TWindow* splitter,
void* p1,
void* p2);
147 int DoPaneCount(
TWindow* splitter,
void* p1,
void* p2);
148 int GetPanes(
TWindow* splitter,
void* p1,
void* p2);
149 int GetSplitters(
TWindow* splitter,
void* p1,
void* p2);
171 return SplitterWidth;
180 SplitterCushion = cushion;
TDC is the root class for GDI DC wrappers.
When specifying the layout metrics for a window, four layout constraints are needed.
Derived from TWindow, TLayoutWindow provides functionality for defining the layout metrics for a wind...
TLayoutWindow(TWindow *parent, LPCTSTR title=0, TModule *module=0)
Creates a TLayoutWindow object with specified parent, window caption, and library ID.
ObjectWindows dynamic-link libraries (DLLs) construct an instance of TModule, which acts as an object...
TPaneSplitter is a class that acts as a container for child windows (called panes) and splitters (pan...
void CleanupWindow() override
Removes all panes (and related splitters). Destroys cursors.
void EvSize(uint sizeType, const TSize &size)
Sets data member 'PaneSplitterResizing' to indicate that contained splitters should adjust themselves...
int GetSplitterWidth()
Returns the width of the splitter widget.
bool ReplacePane(TWindow *target, TWindow *newPane, TDelete dt=TShouldDelete::DefDelete)
Replaces 'target' pane (must exist) with 'newPane' (does not exist).
TPaneSplitter(TWindow *parent, LPCTSTR title=0, int splitterWidth=0, TModule *module=0)
Initializes data members.
TSplitterIndicatorMgr SplitterIndicatorMgr
virtual void StartSplitterMove(TSplitter *splitter, const TPoint &point)
void SetSplitterCushion(uint cushion)
Set the cushion for the splitter widget.
void DeleteOnClose(TDelete dt=TShouldDelete::Delete)
void GetDefLM(TLayoutMetrics &lm)
virtual int RemovePanes()
int PaneCount()
Returns the number of panes in TPaneSplitter.
virtual void DrawSplitter(TDC &dc, const TRect &splitter)
Called by TSplitter when it needs to draw itself.
int(*) TForEachPaneCallback(TWindow &, void *)
bool RemovePane(TWindow *pane, TDelete dt=TShouldDelete::DefDelete)
Removes given pane from TPaneSplitter, deleting it if requested.
void ForEachPane(TForEachPaneCallback callback, void *p)
Iterates over each pane. If 'callback' returns 0, then iteration stops.
virtual bool SplitPane(TWindow *target, TWindow *newPane, TSplitDirection splitDir, float percent=0.50f)
Splits given pane, 'target', with 'newPane', in either the vertical or horizontal direction.
int SetSplitterWidth(int newWidth)
Sets the splitter width and adjusts all splitters. Takes effect immediately.
void SetupWindow() override
Loads cursors and sets TSplitter's pane splitter object.
TSplitterIndicatorList * SplitterIndicatorList
bool SwapPanes(TWindow *pane1, TWindow *pane2)
Swaps given panes (must exist). Panes take on each others' layout metrics.
void RemoveAllPanes(TDelete dt=TShouldDelete::DefDelete)
Removes all the panes (and their splitters).
bool DelObj(TDelete dt)
Returns true if the object should be deleted.
bool MoveSplitter(TWindow *pane, int dist)
Moves 'pane' a given distance.
TShouldDelete::TDelete TDelete
TPoint is a support class, derived from tagPOINT.
TRect is a mathematical class derived from tagRect.
The tagSIZE struct is defined as.
Abstract base class for TVSplitter and THSplitter.
Handles the moving of the indicators.
TWindow, derived from TEventHandler and TStreamableBase, provides window-specific behavior and encaps...
Object Windows Library (OWLNext Core).
TSplitDirection
Enumeration describing whether to split a window in the X or Y plane.
Definition of helper classes for Pane Splitters.