]> git.saurik.com Git - wxWidgets.git/blame - contrib/include/wx/fl/rowlayoutpl.h
Removed leaks from Forty demo
[wxWidgets.git] / contrib / include / wx / fl / rowlayoutpl.h
CommitLineData
8e08b761 1/////////////////////////////////////////////////////////////////////////////
4cbc57f0
JS
2// Name: rowlayoutpl.h
3// Purpose: cbRowLayoutPlugin header.
8e08b761
JS
4// Author: Aleksandras Gluchovas
5// Modified by:
6// Created: 02/10/98
7// RCS-ID: $Id$
8// Copyright: (c) Aleksandras Gluchovas
4cbc57f0 9// Licence: wxWindows licence
8e08b761
JS
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef __ROWLAYOUTPL_G__
13#define __ROWLAYOUTPL_G__
14
15#ifdef __GNUG__
16 #pragma interface "rowlayoutpl.h"
17#endif
18
19#include "wx/fl/controlbar.h"
20
21/*
4cbc57f0
JS
22Simple implementation of a plugin which handles row layout
23requests sent from a frame layout.
24*/
8e08b761
JS
25
26class cbRowLayoutPlugin : public cbPluginBase
27{
4cbc57f0 28 DECLARE_DYNAMIC_CLASS( cbRowLayoutPlugin )
8e08b761 29protected:
4cbc57f0 30 cbDockPane* mpPane; // is set up temporarily, while handling event
8e08b761
JS
31protected:
32
4cbc57f0
JS
33 // Internal helper relating to not-fixed-bars layout.
34 void FitBarsToRange( int from, int till, cbBarInfo* pTheBar, cbRowInfo* pRow );
8e08b761 35
4cbc57f0
JS
36 // Internal helper relating to not-fixed-bars layout.
37 void RelayoutNotFixedBarsAround( cbBarInfo* pTheBar, cbRowInfo* pRow );
8e08b761 38
4cbc57f0
JS
39 // Internal helper relating to not-fixed-bars layout.
40 void MinimzeNotFixedBars( cbRowInfo* pRow, cbBarInfo* pBarToPreserve );
8e08b761 41
4cbc57f0
JS
42 // Internal helper relating to not-fixed-bars layout.
43 int GetRowFreeSpace( cbRowInfo* pRow );
8e08b761 44
8e08b761 45
4cbc57f0
JS
46 // Internal helper relating to not-fixed-bars layout.
47 void RecalcLengthRatios( cbRowInfo* pRow );
8e08b761 48
4cbc57f0
JS
49 // Internal helper relating to not-fixed-bars layout.
50 void ApplyLengthRatios( cbRowInfo* pRow );
8e08b761 51
4cbc57f0
JS
52 // Internal helper relating to not-fixed-bars layout.
53 void ExpandNotFixedBars( cbRowInfo* pRow );
8e08b761 54
4cbc57f0
JS
55 // Internal helper relating to not-fixed-bars layout.
56 void AdjustLengthOfInserted( cbRowInfo* pRow, cbBarInfo* pTheBar );
8e08b761 57
8e08b761 58
4cbc57f0
JS
59 // Internal helper relating to not-fixed-bars layout.
60 void DetectBarHandles( cbRowInfo* pRow );
61
62 // Internal helper relating to not-fixed-bars layout.
63 void CheckIfAtTheBoundary( cbBarInfo* pTheBar, cbRowInfo& rowInfo );
64
65
66 // Row layout helper simulating bar 'friction'.
67 int CalcRowHeight( cbRowInfo& row );
68
69 // Row layout helper simulating bar 'friction'.
70 void LayoutItemsVertically( cbRowInfo& row );
71
72
73 // Row layout helper simulating bar 'friction'.
74 void StickRightSideBars( cbBarInfo* pToBar );
75
76
77 // Row layout helper simulating bar 'friction'.
78 void SlideLeftSideBars ( cbBarInfo* pTheBar );
79
80 // Row layout helper simulating bar 'friction'.
81 void SlideRightSideBars( cbBarInfo* pTheBar );
82
83
84 // Row layout helper simulating bar 'friction'.
85 void ShiftLeftTrashold ( cbBarInfo* pTheBar, cbRowInfo& row );
86
87 // Row layout helper simulating bar 'friction'.
88 void ShiftRightTrashold( cbBarInfo* pTheBar, cbRowInfo& row );
89
90
91 // Insert the bar before the given row.
92 void InsertBefore( cbBarInfo* pBeforeBar,
93 cbBarInfo* pTheBar,
94 cbRowInfo& row
95 );
96
97 // Insert the bar before the given row.
98 void DoInsertBar( cbBarInfo* pTheBar, cbRowInfo& row );
8e08b761
JS
99
100public:
4cbc57f0
JS
101 // Default constructor.
102 cbRowLayoutPlugin(void);
103
104 // Constructor taking frame layout pane and pane mask.
105 cbRowLayoutPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES );
106
107 // Responds to row resize event.
108 void OnResizeRow ( cbResizeRowEvent& event );
8e08b761 109
4cbc57f0
JS
110 // Responds to bar insertion event.
111 void OnInsertBar ( cbInsertBarEvent& event );
8e08b761 112
4cbc57f0
JS
113 // Responds to bar removal event.
114 void OnRemoveBar ( cbRemoveBarEvent& event );
8e08b761 115
4cbc57f0
JS
116 // Responds to row layout event.
117 void OnLayoutRow ( cbLayoutRowEvent& event );
8e08b761 118
4cbc57f0
JS
119 // Responds to rows layout event.
120 void OnLayoutRows( cbLayoutRowsEvent& event );
8e08b761 121
4cbc57f0 122 DECLARE_EVENT_TABLE()
8e08b761
JS
123};
124
125#endif /* __ROWLAYOUTPL_G__ */
126