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