Tidied/commented FL header files, regenerated docs and filled out Category section.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13738 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2002-01-21 22:34:42 +00:00
parent 293a0a8677
commit 4cbc57f086
108 changed files with 7384 additions and 5199 deletions

View File

@@ -1,19 +1,23 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% dyntbar.h at 05/Jan/02 22:50:56 % dyntbar.h at 21/Jan/02 21:14:18
% %
\section{\class{BagLayout}}\label{baglayout} \section{\class{BagLayout}}\label{baglayout}
layouts items in left-to-right order from BagLayout lays out items in left-to-right order from
top towards bottom top to bottom.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{LayoutManagerBase}{layoutmanagerbase} \helpref{LayoutManagerBase}{layoutmanagerbase}
\wxheading{Include files}
<dyntbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -23,3 +27,5 @@ top towards bottom
\func{void}{Layout}{\param{const wxSize\& }{parentDim}, \param{wxSize\& }{resultingDim}, \param{wxLayoutItemArrayT\& }{items}, \param{int }{horizGap}, \param{int }{vertGap}} \func{void}{Layout}{\param{const wxSize\& }{parentDim}, \param{wxSize\& }{resultingDim}, \param{wxLayoutItemArrayT\& }{items}, \param{int }{horizGap}, \param{int }{vertGap}}
Constructor.

View File

@@ -1,18 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:50:59 % controlbar.h at 21/Jan/02 21:14:14
% %
\section{\class{wxBarIterator}}\label{wxbariterator} \section{\class{wxBarIterator}}\label{wxbariterator}
used for traversing through all bars of all rows in the pane Used for traversing through all bars of all rows in the pane.
\wxheading{Derived from} \wxheading{Derived from}
No base class No base class
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -22,27 +26,33 @@ No base class
\func{}{wxBarIterator}{\param{RowArrayT\& }{rows}} \func{}{wxBarIterator}{\param{RowArrayT\& }{rows}}
Constructor, taking row array.
\membersection{wxBarIterator::BarInfo}\label{wxbariteratorbarinfo} \membersection{wxBarIterator::BarInfo}\label{wxbariteratorbarinfo}
\func{cbBarInfo\&}{BarInfo}{\void} \func{cbBarInfo\&}{BarInfo}{\void}
Gets the current bar information.
\membersection{wxBarIterator::Next}\label{wxbariteratornext} \membersection{wxBarIterator::Next}\label{wxbariteratornext}
\func{bool}{Next}{\void} \func{bool}{Next}{\void}
TRUE, if next bar is available Advances the iterator and returns TRUE if a bar is available.
\membersection{wxBarIterator::Reset}\label{wxbariteratorreset} \membersection{wxBarIterator::Reset}\label{wxbariteratorreset}
\func{void}{Reset}{\void} \func{void}{Reset}{\void}
Resets the iterator to the start of the first row.
\membersection{wxBarIterator::RowInfo}\label{wxbariteratorrowinfo} \membersection{wxBarIterator::RowInfo}\label{wxbariteratorrowinfo}
\func{cbRowInfo\&}{RowInfo}{\void} \func{cbRowInfo\&}{RowInfo}{\void}
returns reference to currently traversed row Returns a reference to the currently traversed row.

View File

@@ -3,28 +3,89 @@
\setfooter{\thepage}{}{}{}{}{\thepage}% \setfooter{\thepage}{}{}{}{}{\thepage}%
A classification of FL classes by category. A classification of FL classes by category.
\twocolwidtha{5cm}
\begin{comment} {\large {\bf Plugin classes}}
{\large {\bf Service classes}}
\overview{wxMPService class overview}{wxmpserviceoverview} Plugins can be added to frame layouts to extend behaviour.
Service classes reduce the diversity of PMF classes, by making
them comply to a common interface. A service class serves as an interface (or
mix-in class in C++ terms), which cannot itself represent an
independent object. It should be inherited as a second (or
third) base class.
Derived services classes all derive from wxEvtHandler as well as
wxPMService.
\twocolwidtha{6cm}
\begin{twocollist}\itemsep=0pt \begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxPMService}{wxpmservice}}{Base class} \twocolitem{\helpref{cbAntiflickerPlugin}{cbantiflickerplugin}}{Double-buffering class}
\twocolitem{\helpref{wxPMBootstrapService}{wxpmbootstrapservice}}{Boot strap service} \twocolitem{\helpref{cbBarDragPlugin}{cbbardragplugin}}{Implements drag behaviour.}
\twocolitem{\helpref{wxPMLAlgorithm}{wxpmlalgorithm}}{Layout algorithm service} \twocolitem{\helpref{cbBarHintsPlugin}{cbbarhintsplugin}}{Implements bar decoration and sizing behaviour.}
\twocolitem{\helpref{wxPMSashLayoutAlgorithm}{wxpmsashlayoutalgorithm}}{Sash layout algorithm service} \twocolitem{\helpref{cbHintAnimationPlugin}{cbhintanimationplugin}}{Draws animated hints when the user drags a pane.}
\twocolitem{\helpref{wxPMPane}{wxpmpane}}{Base class for panes lying outside the MDI client area} \twocolitem{\helpref{cbPaneDrawPlugin}{cbpanedrawplugin}}{Implements most of MFC-style control bar implementation.}
\twocolitem{\helpref{cbPluginBase}{cbpluginbase}}{Abstract base class for all control-bar related plugins.}
\twocolitem{\helpref{cbRowDragPlugin}{cbrowdragplugin}}{Implements row-dragging functionality.}
\twocolitem{\helpref{cbRowLayoutPlugin}{cbrowlayoutplugin}}{Implements row layout functionality.}
\twocolitem{\helpref{cbSimpleCustomizationPlugin}{cbsimplecustomizationplugin}}{Enables customization of a bar.}
\twocolitem{\helpref{cbBarSpy}{cbbarspy}}{Helper class used for spying for unhandled mouse events on control bars and forwarding them to the frame layout.}
\end{twocollist}
{\large {\bf Window classes}}
Windows classes (note that the mini-button implementations are not true windows
in that they do not derive from wxWindow).
\twocolwidtha{6cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{wxToolWindow}{wxtoolwindow}}{A small frame that paints its own titlebar.}
\twocolitem{\helpref{cbFloatedBarWindow}{cbfloatedbarwindow}}{A kind of wxToolWindow implementing floating windows.}
\twocolitem{\helpref{cbMiniButton}{cbminibutton}}{Base class for wxToolWindow titlebar buttons.}
\twocolitem{\helpref{cbCloseBox}{cbclosebox}}{Close button for wxToolWindow titlebar.}
\twocolitem{\helpref{cbCollapseBox}{cbcollapsebox}}{Collapse button for wxToolWindow titlebar.}
\twocolitem{\helpref{cbDockBox}{cbdockbox}}{Dock button for wxToolWindow titlebar.}
\twocolitem{\helpref{cbCloseBox}{cbclosebox}}{Close button for wxToolWindow titlebar.}
\twocolitem{\helpref{wxNewBitmapButton}{wxnewbitmapbutton}}{Alternative bitmap button class.}
\end{twocollist}
{\large {\bf Layout management classes}}
These classes relate to the layout management framework.
\twocolwidtha{6cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{cbDockPane}{cbdockpane}}{Manages containment and control of bars in a prent frame.}
\twocolitem{\helpref{BagLayout}{baglayout}}{BagLayout lays out items in left-to-right order from top to bottom.}
\twocolitem{\helpref{cbUpdatesManagerBase}{cbupdatesmanagerbase}}{An abstract interface for display update optimization logic.}
\twocolitem{\helpref{cbSimpleUpdatesMgr}{cbsimpleupdatesmgr}}{Implements optimized logic for refreshing areas of frame layout that need to be updated.}
\twocolitem{\helpref{cbGCUpdatesMgr}{cbgcupdatesmgr}}{Implements optimized logic for refresh, based on a garbage collection algorithm.}
\twocolitem{\helpref{GarbageCollector}{garbagecollector}}{A garbage collection algorithm for use in display refresh optimization.}
\twocolitem{\helpref{wxFrameLayout}{wxframelayout}}{Manages containment and docking of control bars, which can be docked along the top, bottom, right, or left side of the parent frame.}
\end{twocollist}
{\large {\bf Event classes}}
Events are used to decouple parts of the layout framework.
\twocolwidtha{6cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{\helpref{cbCustomizeBarEvent}{cbcustomizebarevent}}{Class for bar customization events.}
\twocolitem{\helpref{cbCustomizeLayoutEvent}{cbcustomizelayoutevent}}{Class for layout customization events.}
\twocolitem{\helpref{cbDrawBarDecorEvent}{cbdrawbardecorevent}}{Class for bar decoration drawing events.}
\twocolitem{\helpref{cbDrawBarHandlesEvent}{cbdrawbarhandlesevent}}{Class for bar handles drawing events.}
\twocolitem{\helpref{cbDrawHintRectEvent}{cbdrawhintrectevent}}{Class for hint-rectangle drawing events.}
\twocolitem{\helpref{cbDrawPaneBkGroundEvent}{cbdrawpanebkgroundevent}}{Class for pane background drawing events.}
\twocolitem{\helpref{cbDrawPaneDecorEvent}{cbdrawpanedecorevent}}{Class for pane decoration drawing events.}
\twocolitem{\helpref{cbDrawRowBkGroundEvent}{cbdrawrowbkgroundevent}}{Class for row background drawing events.}
\twocolitem{\helpref{cbDrawRowDecorEvent}{cbdrawrowdecorevent}}{Class for row decoration drawing events.}
\twocolitem{\helpref{cbDrawRowHandlesEvent}{cbdrawrowhandlesevent}}{Class for row handles drawing events.}
\twocolitem{\helpref{cbFinishDrawInAreaEvent}{cbfinishdrawinareaevent}}{Class for finish drawing in area events.}
\twocolitem{\helpref{cbInsertBarEvent}{cbinsertbarevent}}{Class for bar insertion events.}
\twocolitem{\helpref{cbLayoutRowEvent}{cblayoutrowevent}}{Class for single row layout events.}
\twocolitem{\helpref{cbLayoutRowsEvent}{cblayoutrowsevent}}{Class for multiple rows layout events.}
\twocolitem{\helpref{cbLeftDClickEvent}{cbleftdclickevent}}{Class for mouse left double click events.}
\twocolitem{\helpref{cbLeftDownEvent}{cbleftdownevent}}{Class for mouse left down events.}
\twocolitem{\helpref{cbLeftUpEvent}{cbleftupevent}}{Class for mouse left up events.}
\twocolitem{\helpref{cbMotionEvent}{cbmotionevent}}{Class for mouse motion events.}
\twocolitem{\helpref{cbPluginEvent}{cbpluginevent}}{Base class for all control-bar plugin events.}
\twocolitem{\helpref{cbRemoveBarEvent}{cbremovebarevent}}{Class for bar removal events.}
\twocolitem{\helpref{cbResizeBarEvent}{cbresizebarevent}}{Class for bar resize events.}
\twocolitem{\helpref{cbResizeRowEvent}{cbresizerowevent}}{Class for row resize events.}
\twocolitem{\helpref{cbRightDownEvent}{cbrightdownevent}}{Class for mouse right down events.}
\twocolitem{\helpref{cbRightUpEvent}{cbrightupevent}}{Class for mouse right up events.}
\twocolitem{\helpref{cbSizeBarWndEvent}{cbsizebarwndevent}}{Class for bar window resize events.}
\twocolitem{\helpref{cbStartBarDraggingEvent}{cbstartbardraggingevent}}{Class for start-bar-dragging events.}
\twocolitem{\helpref{cbStartDrawInAreaEvent}{cbstartdrawinareaevent}}{Class for start drawing in area events.}
\end{twocollist} \end{twocollist}
\end{comment}

View File

@@ -1,15 +1,26 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% antiflickpl.h at 05/Jan/02 22:50:56 % antiflickpl.h at 21/Jan/02 21:14:17
% %
\section{\class{cbAntiflickerPlugin}}\label{cbantiflickerplugin} \section{\class{cbAntiflickerPlugin}}\label{cbantiflickerplugin}
Implements double-buffering to reduce flicker.
Bitmap and memory DC buffers are shared 'resources' among all instances of
antiflicker plugins within the application.
Locking for multithreaded applications is not yet implemented.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginBase}{cbpluginbase} \helpref{cbPluginBase}{cbpluginbase}
\wxheading{Include files}
<antiflickpl.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,45 +30,59 @@
\func{}{cbAntiflickerPlugin}{\void} \func{}{cbAntiflickerPlugin}{\void}
Default constructor.
\func{}{cbAntiflickerPlugin}{\param{wxFrameLayout* }{pPanel}, \param{int }{paneMask = wxALL\_PANES}} \func{}{cbAntiflickerPlugin}{\param{wxFrameLayout* }{pPanel}, \param{int }{paneMask = wxALL\_PANES}}
Constructor taking frame layout panel, and pane mask.
\membersection{cbAntiflickerPlugin::\destruct{cbAntiflickerPlugin}}\label{cbantiflickerplugindtor} \membersection{cbAntiflickerPlugin::\destruct{cbAntiflickerPlugin}}\label{cbantiflickerplugindtor}
\func{}{\destruct{cbAntiflickerPlugin}}{\void} \func{}{\destruct{cbAntiflickerPlugin}}{\void}
Destructor.
\membersection{cbAntiflickerPlugin::AllocNewBuffer}\label{cbantiflickerpluginallocnewbuffer} \membersection{cbAntiflickerPlugin::AllocNewBuffer}\label{cbantiflickerpluginallocnewbuffer}
\func{wxDC*}{AllocNewBuffer}{\param{const wxRect\& }{forArea}} \func{wxDC*}{AllocNewBuffer}{\param{const wxRect\& }{forArea}}
Allocates a suitable buffer.
\membersection{cbAntiflickerPlugin::FindSuitableBuffer}\label{cbantiflickerpluginfindsuitablebuffer} \membersection{cbAntiflickerPlugin::FindSuitableBuffer}\label{cbantiflickerpluginfindsuitablebuffer}
\func{wxDC*}{FindSuitableBuffer}{\param{const wxRect\& }{forArea}} \func{wxDC*}{FindSuitableBuffer}{\param{const wxRect\& }{forArea}}
returns NULL, if sutable buffer is not present Finds a suitable buffer. Returns NULL if a suitable buffer is not present.
\membersection{cbAntiflickerPlugin::GetClientDC}\label{cbantiflickerplugingetclientdc} \membersection{cbAntiflickerPlugin::GetClientDC}\label{cbantiflickerplugingetclientdc}
\func{wxDC\&}{GetClientDC}{\void} \func{wxDC\&}{GetClientDC}{\void}
Gets the client device context.
\membersection{cbAntiflickerPlugin::GetWindowDC}\label{cbantiflickerplugingetwindowdc} \membersection{cbAntiflickerPlugin::GetWindowDC}\label{cbantiflickerplugingetwindowdc}
\func{wxDC\&}{GetWindowDC}{\void} \func{wxDC\&}{GetWindowDC}{\void}
Gets the window device context.
\membersection{cbAntiflickerPlugin::OnFinishDrawInArea}\label{cbantiflickerpluginonfinishdrawinarea} \membersection{cbAntiflickerPlugin::OnFinishDrawInArea}\label{cbantiflickerpluginonfinishdrawinarea}
\func{void}{OnFinishDrawInArea}{\param{cbFinishDrawInAreaEvent\& }{event}} \func{void}{OnFinishDrawInArea}{\param{cbFinishDrawInAreaEvent\& }{event}}
Handler for plugin event.
\membersection{cbAntiflickerPlugin::OnStartDrawInArea}\label{cbantiflickerpluginonstartdrawinarea} \membersection{cbAntiflickerPlugin::OnStartDrawInArea}\label{cbantiflickerpluginonstartdrawinarea}
\func{void}{OnStartDrawInArea}{\param{cbStartDrawInAreaEvent\& }{event}} \func{void}{OnStartDrawInArea}{\param{cbStartDrawInAreaEvent\& }{event}}
handlers for plugin events Handler for plugin event.

View File

@@ -1,6 +1,6 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:50:58 % controlbar.h at 21/Jan/02 21:14:13
% %
@@ -8,15 +8,19 @@
Abstract interface for bar-size handler classes. Abstract interface for bar-size handler classes.
These objects receive notifications, whenever the docking These objects receive notifications whenever the docking
state of the bar is changed, thus they have a possibility state of the bar is changed, thus they provide the possibility
to adjust the values in cbDimInfo::mSizes accordingly. to adjust the values in cbDimInfo::mSizes accordingly.
Specific handlers can be hooked to specific types of bars. Specific handlers can be hooked up to specific types of bar.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{wxObject}{wxobject} \helpref{wxObject}{wxobject}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -28,28 +32,35 @@ Abstract interface for bar-size handler classes.
to multiple bars, it's instance is to multiple bars, it's instance is
reference-counted reference-counted
initial reference count is 0, since handler is not used, until the Default constructor. The initial reference count is 0, since
first invocation of AddRef() the handler is not used until the first invocation of AddRef().
\membersection{cbBarDimHandlerBase::AddRef}\label{cbbardimhandlerbaseaddref} \membersection{cbBarDimHandlerBase::AddRef}\label{cbbardimhandlerbaseaddref}
\func{void}{AddRef}{\void} \func{void}{AddRef}{\void}
Increments the reference count.
\membersection{cbBarDimHandlerBase::OnChangeBarState}\label{cbbardimhandlerbaseonchangebarstate} \membersection{cbBarDimHandlerBase::OnChangeBarState}\label{cbbardimhandlerbaseonchangebarstate}
\func{void}{OnChangeBarState}{\param{cbBarInfo* }{pBar}, \param{int }{newState}} \func{void}{OnChangeBarState}{\param{cbBarInfo* }{pBar}, \param{int }{newState}}
"bar-state-changes" notification Responds to "bar-state-changes" notifications.
\membersection{cbBarDimHandlerBase::OnResizeBar}\label{cbbardimhandlerbaseonresizebar} \membersection{cbBarDimHandlerBase::OnResizeBar}\label{cbbardimhandlerbaseonresizebar}
\func{void}{OnResizeBar}{\param{cbBarInfo* }{pBar}, \param{const wxSize\& }{given}, \param{wxSize\& }{preferred}} \func{void}{OnResizeBar}{\param{cbBarInfo* }{pBar}, \param{const wxSize\& }{given}, \param{wxSize\& }{preferred}}
Responds to bar resize notifications.
\membersection{cbBarDimHandlerBase::RemoveRef}\label{cbbardimhandlerbaseremoveref} \membersection{cbBarDimHandlerBase::RemoveRef}\label{cbbardimhandlerbaseremoveref}
\func{void}{RemoveRef}{\void} \func{void}{RemoveRef}{\void}
Decrements the reference count, and if the count is at zero,
delete 'this'.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% bardragpl.h at 05/Jan/02 22:50:56 % bardragpl.h at 21/Jan/02 21:14:17
% %
\section{\class{cbBarDragPlugin}}\label{cbbardragplugin} \section{\class{cbBarDragPlugin}}\label{cbbardragplugin}
Plugin class implementing bar dragging.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginBase}{cbpluginbase} \helpref{cbPluginBase}{cbpluginbase}
\wxheading{Include files}
<bardragpl.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,14 +26,20 @@
\func{}{cbBarDragPlugin}{\void} \func{}{cbBarDragPlugin}{\void}
Default constructor.
\func{}{cbBarDragPlugin}{\param{wxFrameLayout* }{pPanel}, \param{int }{paneMask = wxALL\_PANES}} \func{}{cbBarDragPlugin}{\param{wxFrameLayout* }{pPanel}, \param{int }{paneMask = wxALL\_PANES}}
Constructor taking a parent frame, and flag. See cbPluginBase.
\membersection{cbBarDragPlugin::\destruct{cbBarDragPlugin}}\label{cbbardragplugindtor} \membersection{cbBarDragPlugin::\destruct{cbBarDragPlugin}}\label{cbbardragplugindtor}
\func{}{\destruct{cbBarDragPlugin}}{\void} \func{}{\destruct{cbBarDragPlugin}}{\void}
Destructor.
\membersection{cbBarDragPlugin::AdjustHintRect}\label{cbbardragpluginadjusthintrect} \membersection{cbBarDragPlugin::AdjustHintRect}\label{cbbardragpluginadjusthintrect}
@@ -34,141 +47,200 @@
the thicker rectangle is drawn using hatched brush, the thicker rectangle is drawn using hatched brush,
the default border width for this rectangle is 8 pix. the default border width for this rectangle is 8 pix.
Internal implementation function.
\membersection{cbBarDragPlugin::CalcOnScreenDims}\label{cbbardragplugincalconscreendims} \membersection{cbBarDragPlugin::CalcOnScreenDims}\label{cbbardragplugincalconscreendims}
\func{void}{CalcOnScreenDims}{\param{wxRect\& }{rect}} \func{void}{CalcOnScreenDims}{\param{wxRect\& }{rect}}
Internal implementation function.
\membersection{cbBarDragPlugin::ClipPosInFrame}\label{cbbardragpluginclipposinframe} \membersection{cbBarDragPlugin::ClipPosInFrame}\label{cbbardragpluginclipposinframe}
\func{void}{ClipPosInFrame}{\param{wxPoint\& }{pos}} \func{void}{ClipPosInFrame}{\param{wxPoint\& }{pos}}
Internal implementation function.
\membersection{cbBarDragPlugin::ClipRectInFrame}\label{cbbardragplugincliprectinframe} \membersection{cbBarDragPlugin::ClipRectInFrame}\label{cbbardragplugincliprectinframe}
\func{void}{ClipRectInFrame}{\param{wxRect\& }{rect}} \func{void}{ClipRectInFrame}{\param{wxRect\& }{rect}}
Internal implementation function.
\membersection{cbBarDragPlugin::DoDrawHintRect}\label{cbbardragplugindodrawhintrect} \membersection{cbBarDragPlugin::DoDrawHintRect}\label{cbbardragplugindodrawhintrect}
\func{void}{DoDrawHintRect}{\param{wxRect\& }{rect}, \param{bool }{isInClientRect}} \func{void}{DoDrawHintRect}{\param{wxRect\& }{rect}, \param{bool }{isInClientRect}}
Internal implementation function.
Draw the hint rectangle.
\membersection{cbBarDragPlugin::DrawHintRect}\label{cbbardragplugindrawhintrect} \membersection{cbBarDragPlugin::DrawHintRect}\label{cbbardragplugindrawhintrect}
\func{void}{DrawHintRect}{\param{wxRect\& }{rect}, \param{bool }{isInClientRect}} \func{void}{DrawHintRect}{\param{wxRect\& }{rect}, \param{bool }{isInClientRect}}
Internal implementation function.
Draw the visual hint while dragging.
\membersection{cbBarDragPlugin::EraseHintRect}\label{cbbardragpluginerasehintrect} \membersection{cbBarDragPlugin::EraseHintRect}\label{cbbardragpluginerasehintrect}
\func{void}{EraseHintRect}{\param{wxRect\& }{rect}, \param{bool }{isInClientRect}} \func{void}{EraseHintRect}{\param{wxRect\& }{rect}, \param{bool }{isInClientRect}}
Internal implementation function.
Erase the visual hint while dragging.
\membersection{cbBarDragPlugin::FinishTracking}\label{cbbardragpluginfinishtracking} \membersection{cbBarDragPlugin::FinishTracking}\label{cbbardragpluginfinishtracking}
\func{void}{FinishTracking}{\void} \func{void}{FinishTracking}{\void}
Internal implementation function.
Stop showing the visual hint while dragging.
\membersection{cbBarDragPlugin::GetBarHeightInPane}\label{cbbardragplugingetbarheightinpane} \membersection{cbBarDragPlugin::GetBarHeightInPane}\label{cbbardragplugingetbarheightinpane}
\func{int}{GetBarHeightInPane}{\param{cbDockPane* }{pPane}} \func{int}{GetBarHeightInPane}{\param{cbDockPane* }{pPane}}
Internal implementation function.
\membersection{cbBarDragPlugin::GetBarWidthInPane}\label{cbbardragplugingetbarwidthinpane} \membersection{cbBarDragPlugin::GetBarWidthInPane}\label{cbbardragplugingetbarwidthinpane}
\func{int}{GetBarWidthInPane}{\param{cbDockPane* }{pPane}} \func{int}{GetBarWidthInPane}{\param{cbDockPane* }{pPane}}
Internal implementation function.
\membersection{cbBarDragPlugin::GetDistanceToPane}\label{cbbardragplugingetdistancetopane} \membersection{cbBarDragPlugin::GetDistanceToPane}\label{cbbardragplugingetdistancetopane}
\func{int}{GetDistanceToPane}{\param{cbDockPane* }{pPane}, \param{wxPoint\& }{mousePos}} \func{int}{GetDistanceToPane}{\param{cbDockPane* }{pPane}, \param{wxPoint\& }{mousePos}}
Internal implementation function.
\membersection{cbBarDragPlugin::HitTestPanes}\label{cbbardragpluginhittestpanes} \membersection{cbBarDragPlugin::HitTestPanes}\label{cbbardragpluginhittestpanes}
\func{cbDockPane*}{HitTestPanes}{\param{wxRect\& }{rect}} \func{cbDockPane*}{HitTestPanes}{\param{wxRect\& }{rect}}
Internal implementation function. Finds the pane
under the specified rectangle.
\func{cbDockPane*}{HitTestPanes}{\param{wxPoint\& }{pos}} \func{cbDockPane*}{HitTestPanes}{\param{wxPoint\& }{pos}}
Internal implementation function. Finds the pane
under the specified point.
\membersection{cbBarDragPlugin::HitsPane}\label{cbbardragpluginhitspane} \membersection{cbBarDragPlugin::HitsPane}\label{cbbardragpluginhitspane}
\func{bool}{HitsPane}{\param{cbDockPane* }{pPane}, \param{wxRect\& }{rect}} \func{bool}{HitsPane}{\param{cbDockPane* }{pPane}, \param{wxRect\& }{rect}}
Internal implementation function.
\membersection{cbBarDragPlugin::IsInClientArea}\label{cbbardragpluginisinclientarea} \membersection{cbBarDragPlugin::IsInClientArea}\label{cbbardragpluginisinclientarea}
\func{bool}{IsInClientArea}{\param{wxPoint\& }{mousePos}} \func{bool}{IsInClientArea}{\param{wxPoint\& }{mousePos}}
Internal implementation function.
\func{bool}{IsInClientArea}{\param{wxRect\& }{rect}} \func{bool}{IsInClientArea}{\param{wxRect\& }{rect}}
Internal implementation function.
\membersection{cbBarDragPlugin::IsInOtherPane}\label{cbbardragpluginisinotherpane} \membersection{cbBarDragPlugin::IsInOtherPane}\label{cbbardragpluginisinotherpane}
\func{bool}{IsInOtherPane}{\param{wxPoint\& }{mousePos}} \func{bool}{IsInOtherPane}{\param{wxPoint\& }{mousePos}}
Internal implementation function.
\membersection{cbBarDragPlugin::OnDrawHintRect}\label{cbbardragpluginondrawhintrect} \membersection{cbBarDragPlugin::OnDrawHintRect}\label{cbbardragpluginondrawhintrect}
\func{void}{OnDrawHintRect}{\param{cbDrawHintRectEvent\& }{event}} \func{void}{OnDrawHintRect}{\param{cbDrawHintRectEvent\& }{event}}
handles event, which oriniates from itself Handles event, which originates from itself.
\membersection{cbBarDragPlugin::OnLButtonDown}\label{cbbardragpluginonlbuttondown} \membersection{cbBarDragPlugin::OnLButtonDown}\label{cbbardragpluginonlbuttondown}
\func{void}{OnLButtonDown}{\param{cbLeftDownEvent\& }{event}} \func{void}{OnLButtonDown}{\param{cbLeftDownEvent\& }{event}}
Handler for plugin event.
\membersection{cbBarDragPlugin::OnLButtonUp}\label{cbbardragpluginonlbuttonup} \membersection{cbBarDragPlugin::OnLButtonUp}\label{cbbardragpluginonlbuttonup}
\func{void}{OnLButtonUp}{\param{cbLeftUpEvent\& }{event}} \func{void}{OnLButtonUp}{\param{cbLeftUpEvent\& }{event}}
Handler for plugin event.
\membersection{cbBarDragPlugin::OnLDblClick}\label{cbbardragpluginonldblclick} \membersection{cbBarDragPlugin::OnLDblClick}\label{cbbardragpluginonldblclick}
\func{void}{OnLDblClick}{\param{cbLeftDClickEvent\& }{event}} \func{void}{OnLDblClick}{\param{cbLeftDClickEvent\& }{event}}
Handler for plugin event.
\membersection{cbBarDragPlugin::OnMouseMove}\label{cbbardragpluginonmousemove} \membersection{cbBarDragPlugin::OnMouseMove}\label{cbbardragpluginonmousemove}
\func{void}{OnMouseMove}{\param{cbMotionEvent\& }{event}} \func{void}{OnMouseMove}{\param{cbMotionEvent\& }{event}}
handlers for plugin events Handler for plugin event.
\membersection{cbBarDragPlugin::OnStartBarDragging}\label{cbbardragpluginonstartbardragging} \membersection{cbBarDragPlugin::OnStartBarDragging}\label{cbbardragpluginonstartbardragging}
\func{void}{OnStartBarDragging}{\param{cbStartBarDraggingEvent\& }{event}} \func{void}{OnStartBarDragging}{\param{cbStartBarDraggingEvent\& }{event}}
Handler for plugin event.
\membersection{cbBarDragPlugin::RectToScr}\label{cbbardragpluginrecttoscr} \membersection{cbBarDragPlugin::RectToScr}\label{cbbardragpluginrecttoscr}
\func{void}{RectToScr}{\param{wxRect\& }{frameRect}, \param{wxRect\& }{scrRect}} \func{void}{RectToScr}{\param{wxRect\& }{frameRect}, \param{wxRect\& }{scrRect}}
Internal implementation function.
Converts the given rectangle from window to screen coordinates.
\membersection{cbBarDragPlugin::ShowHint}\label{cbbardragpluginshowhint} \membersection{cbBarDragPlugin::ShowHint}\label{cbbardragpluginshowhint}
\func{void}{ShowHint}{\param{bool }{prevWasInClient}} \func{void}{ShowHint}{\param{bool }{prevWasInClient}}
Internal implementation function.
Show the hint; called within OnMouseMove.
\membersection{cbBarDragPlugin::StartTracking}\label{cbbardragpluginstarttracking} \membersection{cbBarDragPlugin::StartTracking}\label{cbbardragpluginstarttracking}
\func{void}{StartTracking}{\void} \func{void}{StartTracking}{\void}
on-screen hint-tracking related methods on-screen hint-tracking related methods
Internal implementation function.
Start showing a visual hint while dragging.
\membersection{cbBarDragPlugin::StickToPane}\label{cbbardragpluginsticktopane} \membersection{cbBarDragPlugin::StickToPane}\label{cbbardragpluginsticktopane}
\func{void}{StickToPane}{\param{cbDockPane* }{pPane}, \param{wxPoint\& }{mousePos}} \func{void}{StickToPane}{\param{cbDockPane* }{pPane}, \param{wxPoint\& }{mousePos}}
Internal implementation function.
\membersection{cbBarDragPlugin::UnstickFromPane}\label{cbbardragpluginunstickfrompane} \membersection{cbBarDragPlugin::UnstickFromPane}\label{cbbardragpluginunstickfrompane}
\func{void}{UnstickFromPane}{\param{cbDockPane* }{pPane}, \param{wxPoint\& }{mousePos}} \func{void}{UnstickFromPane}{\param{cbDockPane* }{pPane}, \param{wxPoint\& }{mousePos}}
Internal implementation function.

View File

@@ -1,19 +1,23 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% barhintspl.h at 05/Jan/02 22:50:56 % barhintspl.h at 21/Jan/02 21:14:18
% %
\section{\class{cbBarHintsPlugin}}\label{cbbarhintsplugin} \section{\class{cbBarHintsPlugin}}\label{cbbarhintsplugin}
Intercepts bar-decoration and sizing events, draws 3d-hints This class intercepts bar-decoration and sizing events, and draws 3D hints
around fixed and flexible bars, similar to those in Microsoft DevStudio 6.x around fixed and flexible bars, similar to those in Microsoft DevStudio 6.x
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginBase}{cbpluginbase} \helpref{cbPluginBase}{cbpluginbase}
\wxheading{Include files}
<barhintspl.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -23,95 +27,129 @@ Intercepts bar-decoration and sizing events, draws 3d-hints
\func{}{cbBarHintsPlugin}{\void} \func{}{cbBarHintsPlugin}{\void}
Default constructor.
\func{}{cbBarHintsPlugin}{\param{wxFrameLayout* }{pLayout}, \param{int }{paneMask = wxALL\_PANES}} \func{}{cbBarHintsPlugin}{\param{wxFrameLayout* }{pLayout}, \param{int }{paneMask = wxALL\_PANES}}
Constructor, taking parent frame and pane mask flag.
\membersection{cbBarHintsPlugin::\destruct{cbBarHintsPlugin}}\label{cbbarhintsplugindtor} \membersection{cbBarHintsPlugin::\destruct{cbBarHintsPlugin}}\label{cbbarhintsplugindtor}
\func{}{\destruct{cbBarHintsPlugin}}{\void} \func{}{\destruct{cbBarHintsPlugin}}{\void}
Destructor.
\membersection{cbBarHintsPlugin::CreateBoxes}\label{cbbarhintsplugincreateboxes} \membersection{cbBarHintsPlugin::CreateBoxes}\label{cbbarhintsplugincreateboxes}
\func{void}{CreateBoxes}{\void} \func{void}{CreateBoxes}{\void}
Helper function: creates close and collapse boxes.
\membersection{cbBarHintsPlugin::DoDrawHint}\label{cbbarhintsplugindodrawhint} \membersection{cbBarHintsPlugin::DoDrawHint}\label{cbbarhintsplugindodrawhint}
\func{void}{DoDrawHint}{\param{wxDC\& }{dc}, \param{wxRect\& }{rect}, \param{int }{pos}, \param{int }{boxOfs}, \param{int }{grooveOfs}, \param{bool }{isFixed}} \func{void}{DoDrawHint}{\param{wxDC\& }{dc}, \param{wxRect\& }{rect}, \param{int }{pos}, \param{int }{boxOfs}, \param{int }{grooveOfs}, \param{bool }{isFixed}}
Helper function: draws a hint.
\membersection{cbBarHintsPlugin::Draw3DBox}\label{cbbarhintsplugindraw3dbox} \membersection{cbBarHintsPlugin::Draw3DBox}\label{cbbarhintsplugindraw3dbox}
\func{void}{Draw3DBox}{\param{wxDC\& }{dc}, \param{const wxPoint\& }{pos}, \param{bool }{pressed}} \func{void}{Draw3DBox}{\param{wxDC\& }{dc}, \param{const wxPoint\& }{pos}, \param{bool }{pressed}}
drawing helpers Helper function: draws a 3D box.
\membersection{cbBarHintsPlugin::DrawCloseBox}\label{cbbarhintsplugindrawclosebox} \membersection{cbBarHintsPlugin::DrawCloseBox}\label{cbbarhintsplugindrawclosebox}
\func{void}{DrawCloseBox}{\param{wxDC\& }{dc}, \param{const wxPoint\& }{pos}, \param{bool }{pressed}} \func{void}{DrawCloseBox}{\param{wxDC\& }{dc}, \param{const wxPoint\& }{pos}, \param{bool }{pressed}}
Helper function: draws a close box.
\membersection{cbBarHintsPlugin::DrawCollapseBox}\label{cbbarhintsplugindrawcollapsebox} \membersection{cbBarHintsPlugin::DrawCollapseBox}\label{cbbarhintsplugindrawcollapsebox}
\func{void}{DrawCollapseBox}{\param{wxDC\& }{dc}, \param{const wxPoint\& }{pos}, \param{bool }{atLeft}, \param{bool }{disabled}, \param{bool }{pressed}} \func{void}{DrawCollapseBox}{\param{wxDC\& }{dc}, \param{const wxPoint\& }{pos}, \param{bool }{atLeft}, \param{bool }{disabled}, \param{bool }{pressed}}
Helper function: draws a collapse box.
\membersection{cbBarHintsPlugin::DrawGrooves}\label{cbbarhintsplugindrawgrooves} \membersection{cbBarHintsPlugin::DrawGrooves}\label{cbbarhintsplugindrawgrooves}
\func{void}{DrawGrooves}{\param{wxDC\& }{dc}, \param{const wxPoint\& }{pos}, \param{int }{length}} \func{void}{DrawGrooves}{\param{wxDC\& }{dc}, \param{const wxPoint\& }{pos}, \param{int }{length}}
Helper function: draws grooves.
\membersection{cbBarHintsPlugin::ExcludeHints}\label{cbbarhintspluginexcludehints} \membersection{cbBarHintsPlugin::ExcludeHints}\label{cbbarhintspluginexcludehints}
\func{void}{ExcludeHints}{\param{wxRect\& }{rect}, \param{cbBarInfo\& }{info}} \func{void}{ExcludeHints}{\param{wxRect\& }{rect}, \param{cbBarInfo\& }{info}}
Helper function.
\membersection{cbBarHintsPlugin::GetHintsLayout}\label{cbbarhintsplugingethintslayout} \membersection{cbBarHintsPlugin::GetHintsLayout}\label{cbbarhintsplugingethintslayout}
\func{void}{GetHintsLayout}{\param{wxRect\& }{rect}, \param{cbBarInfo\& }{info}, \param{int\& }{boxOfs}, \param{int\& }{grooveOfs}, \param{int\& }{pos}} \func{void}{GetHintsLayout}{\param{wxRect\& }{rect}, \param{cbBarInfo\& }{info}, \param{int\& }{boxOfs}, \param{int\& }{grooveOfs}, \param{int\& }{pos}}
Helper function: gets the layout of a hint.
\membersection{cbBarHintsPlugin::HitTestHints}\label{cbbarhintspluginhittesthints} \membersection{cbBarHintsPlugin::HitTestHints}\label{cbbarhintspluginhittesthints}
\func{int}{HitTestHints}{\param{cbBarInfo\& }{info}, \param{const wxPoint\& }{pos}} \func{int}{HitTestHints}{\param{cbBarInfo\& }{info}, \param{const wxPoint\& }{pos}}
Helper function: returns information about the hint under the given position.
\membersection{cbBarHintsPlugin::OnDrawBarDecorations}\label{cbbarhintspluginondrawbardecorations} \membersection{cbBarHintsPlugin::OnDrawBarDecorations}\label{cbbarhintspluginondrawbardecorations}
\func{void}{OnDrawBarDecorations}{\param{cbDrawBarDecorEvent\& }{event}} \func{void}{OnDrawBarDecorations}{\param{cbDrawBarDecorEvent\& }{event}}
Handles a plugin event.
\membersection{cbBarHintsPlugin::OnInitPlugin}\label{cbbarhintspluginoninitplugin} \membersection{cbBarHintsPlugin::OnInitPlugin}\label{cbbarhintspluginoninitplugin}
\func{void}{OnInitPlugin}{\void} \func{void}{OnInitPlugin}{\void}
Called to initialize this plugin.
\membersection{cbBarHintsPlugin::OnLeftDown}\label{cbbarhintspluginonleftdown} \membersection{cbBarHintsPlugin::OnLeftDown}\label{cbbarhintspluginonleftdown}
\func{void}{OnLeftDown}{\param{cbLeftDownEvent\& }{event}} \func{void}{OnLeftDown}{\param{cbLeftDownEvent\& }{event}}
Handles a plugin event.
\membersection{cbBarHintsPlugin::OnLeftUp}\label{cbbarhintspluginonleftup} \membersection{cbBarHintsPlugin::OnLeftUp}\label{cbbarhintspluginonleftup}
\func{void}{OnLeftUp}{\param{cbLeftUpEvent\& }{event}} \func{void}{OnLeftUp}{\param{cbLeftUpEvent\& }{event}}
Handles a plugin event.
\membersection{cbBarHintsPlugin::OnMotion}\label{cbbarhintspluginonmotion} \membersection{cbBarHintsPlugin::OnMotion}\label{cbbarhintspluginonmotion}
\func{void}{OnMotion}{\param{cbMotionEvent\& }{event}} \func{void}{OnMotion}{\param{cbMotionEvent\& }{event}}
Handles a plugin event.
\membersection{cbBarHintsPlugin::OnSizeBarWindow}\label{cbbarhintspluginonsizebarwindow} \membersection{cbBarHintsPlugin::OnSizeBarWindow}\label{cbbarhintspluginonsizebarwindow}
\func{void}{OnSizeBarWindow}{\param{cbSizeBarWndEvent\& }{event}} \func{void}{OnSizeBarWindow}{\param{cbSizeBarWndEvent\& }{event}}
handlers of plugin-events Handles a plugin event.
\membersection{cbBarHintsPlugin::SetGrooveCount}\label{cbbarhintspluginsetgroovecount} \membersection{cbBarHintsPlugin::SetGrooveCount}\label{cbbarhintspluginsetgroovecount}
\func{void}{SetGrooveCount}{\param{int }{nGrooves}} \func{void}{SetGrooveCount}{\param{int }{nGrooves}}
Set the number of grooves to be shown in the pane.

View File

@@ -1,15 +1,23 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:50:59 % controlbar.h at 21/Jan/02 21:14:14
% %
\section{\class{cbBarInfo}}\label{cbbarinfo} \section{\class{cbBarInfo}}\label{cbbarinfo}
Helper class used internally by the wxFrameLayout class.
Holds and manages bar information.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{wxObject}{wxobject} \helpref{wxObject}{wxobject}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,18 +27,26 @@
\func{}{cbBarInfo}{\void} \func{}{cbBarInfo}{\void}
Constructor.
\membersection{cbBarInfo::\destruct{cbBarInfo}}\label{cbbarinfodtor} \membersection{cbBarInfo::\destruct{cbBarInfo}}\label{cbbarinfodtor}
\func{}{\destruct{cbBarInfo}}{\void} \func{}{\destruct{cbBarInfo}}{\void}
Destructor.
\membersection{cbBarInfo::IsExpanded}\label{cbbarinfoisexpanded} \membersection{cbBarInfo::IsExpanded}\label{cbbarinfoisexpanded}
\constfunc{bool}{IsExpanded}{\void} \constfunc{bool}{IsExpanded}{\void}
Returns TRUE if this bar is expanded.
\membersection{cbBarInfo::IsFixed}\label{cbbarinfoisfixed} \membersection{cbBarInfo::IsFixed}\label{cbbarinfoisfixed}
\constfunc{bool}{IsFixed}{\void} \constfunc{bool}{IsFixed}{\void}
Returns TRUE if this bar is fixed.

View File

@@ -1,18 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:50:59 % controlbar.h at 21/Jan/02 21:14:14
% %
\section{\class{cbBarShapeData}}\label{cbbarshapedata} \section{\class{cbBarShapeData}}\label{cbbarshapedata}
used for storing original bar's postions in the row, when the "non-destructive-friction" Used for storing the original bar's positions in the row, when the 'non-destructive-friction'
option is turned ON option is turned on.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{wxObject}{wxobject} \helpref{wxObject}{wxobject}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}

View File

@@ -1,24 +1,47 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:50:58 % controlbar.h at 21/Jan/02 21:14:13
% %
\section{\class{cbBarSpy}}\label{cbbarspy} \section{\class{cbBarSpy}}\label{cbbarspy}
FIXME:: somehow in debug v. originall wxASSERT's are not compiled in... Helper class, used for spying for unhandled mouse events on control bars
\#undef wxASSERT and forwarding them to the frame layout.
\#define wxASSERT(x) if ( !(x) ) throw;
helper class, used for spying for not-handled mouse events on control-bars
and forwarding them to the frame layout
\wxheading{Derived from} \wxheading{Derived from}
\helpref{wxEvtHandler}{wxevthandler} \helpref{wxEvtHandler}{wxevthandler}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
{\small \begin{verbatim}
typedef cbBarInfo* BarInfoPtrT
\end{verbatim}}
forward declarations
{\small \begin{verbatim}
typedef cbRowInfo* RowInfoPtrT
\end{verbatim}}
enumeration of hittest results, see cbDockPane::HitTestPaneItems(..)
\begin{verbatim}
enum CB_HITTEST_RESULT
{
CB_NO_ITEMS_HITTED,
CB_UPPER_ROW_HANDLE_HITTED,
CB_LOWER_ROW_HANDLE_HITTED,
CB_LEFT_BAR_HANDLE_HITTED,
CB_RIGHT_BAR_HANDLE_HITTED,
CB_BAR_CONTENT_HITTED
}
\end{verbatim}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -26,18 +49,24 @@ and forwarding them to the frame layout
\func{}{cbBarSpy}{\param{wxFrameLayout* }{pPanel}} \func{}{cbBarSpy}{\param{wxFrameLayout* }{pPanel}}
Constructor, taking a parent pane.
\func{}{cbBarSpy}{\void} \func{}{cbBarSpy}{\void}
Default constructor.
\membersection{cbBarSpy::ProcessEvent}\label{cbbarspyprocessevent} \membersection{cbBarSpy::ProcessEvent}\label{cbbarspyprocessevent}
\func{bool}{ProcessEvent}{\param{wxEvent\& }{event}} \func{bool}{ProcessEvent}{\param{wxEvent\& }{event}}
overriden Performs special event processing.
\membersection{cbBarSpy::SetBarWindow}\label{cbbarspysetbarwindow} \membersection{cbBarSpy::SetBarWindow}\label{cbbarspysetbarwindow}
\func{void}{SetBarWindow}{\param{wxWindow* }{pWnd}} \func{void}{SetBarWindow}{\param{wxWindow* }{pWnd}}
Sets the bar window.

View File

@@ -1,18 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% toolwnd.h at 05/Jan/02 22:50:58 % toolwnd.h at 21/Jan/02 21:14:17
% %
\section{\class{cbCloseBox}}\label{cbclosebox} \section{\class{cbCloseBox}}\label{cbclosebox}
classes specific to wxFrameLayout engine (FOR NOW in here...) cbCloseBox is a window close button, used in a wxToolWindow titlebar.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbMiniButton}{cbminibutton} \helpref{cbMiniButton}{cbminibutton}
\wxheading{Include files}
<toolwnd.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -22,3 +26,5 @@ classes specific to wxFrameLayout engine (FOR NOW in here...)
\func{void}{Draw}{\param{wxDC\& }{dc}} \func{void}{Draw}{\param{wxDC\& }{dc}}
Draws the close button appearance.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% toolwnd.h at 05/Jan/02 22:50:58 % toolwnd.h at 21/Jan/02 21:14:17
% %
\section{\class{cbCollapseBox}}\label{cbcollapsebox} \section{\class{cbCollapseBox}}\label{cbcollapsebox}
cbCollapseBox is a window collapse button, used in a wxToolWindow titlebar.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbMiniButton}{cbminibutton} \helpref{cbMiniButton}{cbminibutton}
\wxheading{Include files}
<toolwnd.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{void}{Draw}{\param{wxDC\& }{dc}} \func{void}{Draw}{\param{wxDC\& }{dc}}
Draws the collapse button appearance.

View File

@@ -1,19 +1,23 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:50:59 % controlbar.h at 21/Jan/02 21:14:14
% %
\section{\class{cbCommonPaneProperties}}\label{cbcommonpaneproperties} \section{\class{cbCommonPaneProperties}}\label{cbcommonpaneproperties}
structure holds configuration options, A structure holding configuration options,
which are usually the same for all panes in which are usually the same for all panes in
frame layout a frame layout.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{wxObject}{wxobject} \helpref{wxObject}{wxobject}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:01 % controlbar.h at 21/Jan/02 21:14:17
% %
\section{\class{cbCustomizeBarEvent}}\label{cbcustomizebarevent} \section{\class{cbCustomizeBarEvent}}\label{cbcustomizebarevent}
Class for bar customization events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{}{cbCustomizeBarEvent}{\param{cbBarInfo* }{pBar}, \param{const wxPoint\& }{clickPos}, \param{cbDockPane* }{pPane}} \func{}{cbCustomizeBarEvent}{\param{cbBarInfo* }{pBar}, \param{const wxPoint\& }{clickPos}, \param{cbDockPane* }{pPane}}
Constructor, taking bar information, mouse position, and pane.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:01 % controlbar.h at 21/Jan/02 21:14:17
% %
\section{\class{cbCustomizeLayoutEvent}}\label{cbcustomizelayoutevent} \section{\class{cbCustomizeLayoutEvent}}\label{cbcustomizelayoutevent}
Class for layout customization events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{}{cbCustomizeLayoutEvent}{\param{const wxPoint\& }{clickPos}} \func{}{cbCustomizeLayoutEvent}{\param{const wxPoint\& }{clickPos}}
Constructor, taking mouse position.

View File

@@ -1,18 +1,23 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:50:59 % controlbar.h at 21/Jan/02 21:14:13
% %
\section{\class{cbDimInfo}}\label{cbdiminfo} \section{\class{cbDimInfo}}\label{cbdiminfo}
helper classes (used internally by wxFrameLayout class) holds and manages information about bar dimensions Helper class used internally by the wxFrameLayout class.
Holds and manages information about bar dimensions.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{wxObject}{wxobject} \helpref{wxObject}{wxobject}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -22,31 +27,54 @@ helper classes (used internally by wxFrameLayout class) holds and manages inform
\func{}{cbDimInfo}{\param{cbBarDimHandlerBase* }{pDimHandler}, \param{bool }{isFixed}} \func{}{cbDimInfo}{\param{cbBarDimHandlerBase* }{pDimHandler}, \param{bool }{isFixed}}
Constructor.
isFixed is TRUE if vertical/horizontal dimensions cannot be manually adjusted
by the user using resizing handles. If FALSE, the frame-layout
automatically places resizing handles among bars that do are not fixed.
\func{}{cbDimInfo}{\param{int }{dh\_x}, \param{int }{dh\_y}, \param{int }{dv\_x}, \param{int }{dv\_y}, \param{int }{f\_x}, \param{int }{f\_y}, \param{bool }{isFixed = TRUE}, \param{int }{horizGap = 6}, \param{int }{vertGap = 6}, \param{cbBarDimHandlerBase* }{pDimHandler = NULL}} \func{}{cbDimInfo}{\param{int }{dh\_x}, \param{int }{dh\_y}, \param{int }{dv\_x}, \param{int }{dv\_y}, \param{int }{f\_x}, \param{int }{f\_y}, \param{bool }{isFixed = TRUE}, \param{int }{horizGap = 6}, \param{int }{vertGap = 6}, \param{cbBarDimHandlerBase* }{pDimHandler = NULL}}
dims when docked horizontally Constructor taking dimenstion information.
dh\_x, dh\_y are the dimensions when docked horizontally.
dv\_x, dv\_y are the dimensions when docked vertically.
f\_x, f\_y are the dimensions when floating.
For information on isFixed, see comments above.
horizGap is the left/right gap, separating decorations
from the bar's actual wndow, filled with the frame's background colour.
The dimension is given in the frame's coordinates.
vertGap is the top/bottom gap, separating decorations
from the bar's actual wndow, filled with the frame's background colour.
The dimension is given in the frame's coordinates.
\func{}{cbDimInfo}{\param{int }{x}, \param{int }{y}, \param{bool }{isFixed = TRUE}, \param{int }{gap = 6}, \param{cbBarDimHandlerBase* }{pDimHandler = NULL}} \func{}{cbDimInfo}{\param{int }{x}, \param{int }{y}, \param{bool }{isFixed = TRUE}, \param{int }{gap = 6}, \param{cbBarDimHandlerBase* }{pDimHandler = NULL}}
Constructor.
\func{}{cbDimInfo}{\void} \func{}{cbDimInfo}{\void}
Default constructor.
\membersection{cbDimInfo::\destruct{cbDimInfo}}\label{cbdiminfodtor} \membersection{cbDimInfo::\destruct{cbDimInfo}}\label{cbdiminfodtor}
\func{}{\destruct{cbDimInfo}}{\void} \func{}{\destruct{cbDimInfo}}{\void}
destroys handler automatically, if present Destructor. Destroys handler automatically, if present.
\membersection{cbDimInfo::GetDimHandler}\label{cbdiminfogetdimhandler} \membersection{cbDimInfo::GetDimHandler}\label{cbdiminfogetdimhandler}
\func{cbBarDimHandlerBase*}{GetDimHandler}{\void} \func{cbBarDimHandlerBase*}{GetDimHandler}{\void}
Returns the handler, if any.
\membersection{cbDimInfo::operator=}\label{cbdiminfooperatorassign} \membersection{cbDimInfo::operator=}\label{cbdiminfooperatorassign}
\func{const cbDimInfo\& operator}{operator=}{\param{const cbDimInfo\& }{other}} \func{const cbDimInfo\& operator}{operator=}{\param{const cbDimInfo\& }{other}}
Assignment operator.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% toolwnd.h at 05/Jan/02 22:50:58 % toolwnd.h at 21/Jan/02 21:14:17
% %
\section{\class{cbDockBox}}\label{cbdockbox} \section{\class{cbDockBox}}\label{cbdockbox}
cbDockBox is a window dock button, used in a wxToolWindow titlebar.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbMiniButton}{cbminibutton} \helpref{cbMiniButton}{cbminibutton}
\wxheading{Include files}
<toolwnd.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{void}{Draw}{\param{wxDC\& }{dc}} \func{void}{Draw}{\param{wxDC\& }{dc}}
Draws the dock button appearance.

View File

@@ -1,19 +1,23 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:50:59 % controlbar.h at 21/Jan/02 21:14:14
% %
\section{\class{cbDockPane}}\label{cbdockpane} \section{\class{cbDockPane}}\label{cbdockpane}
class manages containment and control of control-bars This class manages containment and control of control bars
along one of the four edges of the parent frame along one of the four edges of the parent frame.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{wxObject}{wxobject} \helpref{wxObject}{wxobject}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -23,413 +27,552 @@ class manages containment and control of control-bars
\func{}{cbDockPane}{\param{int }{alignment}, \param{wxFrameLayout* }{pPanel}} \func{}{cbDockPane}{\param{int }{alignment}, \param{wxFrameLayout* }{pPanel}}
Constructor, taking alignment and layout panel.
\func{}{cbDockPane}{\void} \func{}{cbDockPane}{\void}
public members public members Default constructor.
\membersection{cbDockPane::\destruct{cbDockPane}}\label{cbdockpanedtor} \membersection{cbDockPane::\destruct{cbDockPane}}\label{cbdockpanedtor}
\func{}{\destruct{cbDockPane}}{\void} \func{}{\destruct{cbDockPane}}{\void}
Destructor.
\membersection{cbDockPane::BarPresent}\label{cbdockpanebarpresent} \membersection{cbDockPane::BarPresent}\label{cbdockpanebarpresent}
\func{bool}{BarPresent}{\param{cbBarInfo* }{pBar}} \func{bool}{BarPresent}{\param{cbBarInfo* }{pBar}}
TRUE, if the given bar node presents in this pane Returns TRUE if the given bar is present in this pane.
\membersection{cbDockPane::CalcLengthRatios}\label{cbdockpanecalclengthratios} \membersection{cbDockPane::CalcLengthRatios}\label{cbdockpanecalclengthratios}
\func{void}{CalcLengthRatios}{\param{cbRowInfo* }{pInRow}} \func{void}{CalcLengthRatios}{\param{cbRowInfo* }{pInRow}}
Calculate lengths.
Internal function called by plugins.
\membersection{cbDockPane::ContractBar}\label{cbdockpanecontractbar} \membersection{cbDockPane::ContractBar}\label{cbdockpanecontractbar}
\func{void}{ContractBar}{\param{cbBarInfo* }{pBar}} \func{void}{ContractBar}{\param{cbBarInfo* }{pBar}}
Contracts the bar.
Internal function called by plugins.
\membersection{cbDockPane::DoInsertBar}\label{cbdockpanedoinsertbar} \membersection{cbDockPane::DoInsertBar}\label{cbdockpanedoinsertbar}
\func{void}{DoInsertBar}{\param{cbBarInfo* }{pBar}, \param{int }{rowNo}} \func{void}{DoInsertBar}{\param{cbBarInfo* }{pBar}, \param{int }{rowNo}}
Inserts the bar at the given row number.
Internal function called by plugins.
\membersection{cbDockPane::DrawHorizHandle}\label{cbdockpanedrawhorizhandle} \membersection{cbDockPane::DrawHorizHandle}\label{cbdockpanedrawhorizhandle}
\func{void}{DrawHorizHandle}{\param{wxDC\& }{dc}, \param{int }{x}, \param{int }{y}, \param{int }{width}} \func{void}{DrawHorizHandle}{\param{wxDC\& }{dc}, \param{int }{x}, \param{int }{y}, \param{int }{width}}
Row/bar resizing related helper-method.
\membersection{cbDockPane::DrawVertHandle}\label{cbdockpanedrawverthandle} \membersection{cbDockPane::DrawVertHandle}\label{cbdockpanedrawverthandle}
\func{void}{DrawVertHandle}{\param{wxDC\& }{dc}, \param{int }{x}, \param{int }{y}, \param{int }{height}} \func{void}{DrawVertHandle}{\param{wxDC\& }{dc}, \param{int }{x}, \param{int }{y}, \param{int }{height}}
protected really (accessed only by plugins) row/bar resizing related helper-methods protected really (accessed only by plugins) Row/bar resizing related helper-method.
\membersection{cbDockPane::ExpandBar}\label{cbdockpaneexpandbar} \membersection{cbDockPane::ExpandBar}\label{cbdockpaneexpandbar}
\func{void}{ExpandBar}{\param{cbBarInfo* }{pBar}} \func{void}{ExpandBar}{\param{cbBarInfo* }{pBar}}
Expands the bar.
Internal function called by plugins.
\membersection{cbDockPane::FinishDrawInArea}\label{cbdockpanefinishdrawinarea} \membersection{cbDockPane::FinishDrawInArea}\label{cbdockpanefinishdrawinarea}
\func{void}{FinishDrawInArea}{\param{const wxRect\& }{area}} \func{void}{FinishDrawInArea}{\param{const wxRect\& }{area}}
Generates cbFinishDrawInAreaEvent and sends it to the layout.
Internal function called by plugins.
\membersection{cbDockPane::FrameToPane}\label{cbdockpaneframetopane} \membersection{cbDockPane::FrameToPane}\label{cbdockpaneframetopane}
\func{void}{FrameToPane}{\param{wxRect* }{pRect}}
\func{void}{FrameToPane}{\param{int* }{x}, \param{int* }{y}} \func{void}{FrameToPane}{\param{int* }{x}, \param{int* }{y}}
coordinate translation between parent's frame and this pane Coordinate translation between parent's frame and this pane.
Internal function called by plugins.
\func{void}{FrameToPane}{\param{wxRect* }{pRect}}
Coordinate translation between parent's frame and this pane.
Internal function called by plugins.
\membersection{cbDockPane::GetAlignment}\label{cbdockpanegetalignment} \membersection{cbDockPane::GetAlignment}\label{cbdockpanegetalignment}
\func{int}{GetAlignment}{\void} \func{int}{GetAlignment}{\void}
Returns the alignment for this pane. The value is one of
FL\_ALIGN\_TOP, FL\_ALIGN\_BOTTOM, FL\_ALIGN\_LEFT, FL\_ALIGN\_RIGHT.
\membersection{cbDockPane::GetBarInfoByWindow}\label{cbdockpanegetbarinfobywindow} \membersection{cbDockPane::GetBarInfoByWindow}\label{cbdockpanegetbarinfobywindow}
\func{cbBarInfo*}{GetBarInfoByWindow}{\param{wxWindow* }{pBarWnd}} \func{cbBarInfo*}{GetBarInfoByWindow}{\param{wxWindow* }{pBarWnd}}
Finds the bar information by corresponding window.
\membersection{cbDockPane::GetBarResizeRange}\label{cbdockpanegetbarresizerange} \membersection{cbDockPane::GetBarResizeRange}\label{cbdockpanegetbarresizerange}
\func{void}{GetBarResizeRange}{\param{cbBarInfo* }{pBar}, \param{int* }{from}, \param{int* }{till}, \param{bool }{forLeftHandle}} \func{void}{GetBarResizeRange}{\param{cbBarInfo* }{pBar}, \param{int* }{from}, \param{int* }{till}, \param{bool }{forLeftHandle}}
Returns the bar's resize range.
\membersection{cbDockPane::GetDockingState}\label{cbdockpanegetdockingstate} \membersection{cbDockPane::GetDockingState}\label{cbdockpanegetdockingstate}
\func{int}{GetDockingState}{\void} \func{int}{GetDockingState}{\void}
Returns wxCBAR\_DOCKED\_HORIZONTALLY if the alignment is top or bottom,
or wxCBAR\_DOCKED\_VERTICALLY otherwise.
\membersection{cbDockPane::GetFirstRow}\label{cbdockpanegetfirstrow} \membersection{cbDockPane::GetFirstRow}\label{cbdockpanegetfirstrow}
\func{cbRowInfo*}{GetFirstRow}{\void} \func{cbRowInfo*}{GetFirstRow}{\void}
convenience method Returns the first row.
\membersection{cbDockPane::GetMinimalRowHeight}\label{cbdockpanegetminimalrowheight} \membersection{cbDockPane::GetMinimalRowHeight}\label{cbdockpanegetminimalrowheight}
\func{int}{GetMinimalRowHeight}{\param{cbRowInfo* }{pRow}} \func{int}{GetMinimalRowHeight}{\param{cbRowInfo* }{pRow}}
Returns the minimal row height for the given row.
Internal function called by plugins.
\membersection{cbDockPane::GetNotFixedBarsCount}\label{cbdockpanegetnotfixedbarscount} \membersection{cbDockPane::GetNotFixedBarsCount}\label{cbdockpanegetnotfixedbarscount}
\func{int}{GetNotFixedBarsCount}{\param{cbRowInfo* }{pRow}} \func{int}{GetNotFixedBarsCount}{\param{cbRowInfo* }{pRow}}
Returns the number of bars whose size is not fixed.
Internal function called by plugins.
\membersection{cbDockPane::GetPaneHeight}\label{cbdockpanegetpaneheight} \membersection{cbDockPane::GetPaneHeight}\label{cbdockpanegetpaneheight}
\func{int}{GetPaneHeight}{\void} \func{int}{GetPaneHeight}{\void}
retuns height, in pane's coordinates Returns the height in the pane's coordinates.
\membersection{cbDockPane::GetRealRect}\label{cbdockpanegetrealrect} \membersection{cbDockPane::GetRealRect}\label{cbdockpanegetrealrect}
\func{wxRect\&}{GetRealRect}{\void} \func{wxRect\&}{GetRealRect}{\void}
Returns the bounds of the pane, in parent coordinates.
\membersection{cbDockPane::GetRow}\label{cbdockpanegetrow} \membersection{cbDockPane::GetRow}\label{cbdockpanegetrow}
\func{cbRowInfo*}{GetRow}{\param{int }{row}} \func{cbRowInfo*}{GetRow}{\param{int }{row}}
protected really (accessed only by plugins) protected really (accessed only by plugins) Returns the row info for a row index. Internal function called by plugins.
\membersection{cbDockPane::GetRowAt}\label{cbdockpanegetrowat} \membersection{cbDockPane::GetRowAt}\label{cbdockpanegetrowat}
\func{int}{GetRowAt}{\param{int }{upperY}, \param{int }{lowerY}}
\func{int}{GetRowAt}{\param{int }{paneY}} \func{int}{GetRowAt}{\param{int }{paneY}}
return -1, if row is not present at given vertical position Returns the row at the given vertical position.
Returns -1 if the row is not present at given vertical position.
Internal function called by plugins.
\func{int}{GetRowAt}{\param{int }{upperY}, \param{int }{lowerY}}
Returns the row between the given vertical positions.
Returns -1 if the row is not present.
Internal function called by plugins.
\membersection{cbDockPane::GetRowIndex}\label{cbdockpanegetrowindex} \membersection{cbDockPane::GetRowIndex}\label{cbdockpanegetrowindex}
\func{int}{GetRowIndex}{\param{cbRowInfo* }{pRow}} \func{int}{GetRowIndex}{\param{cbRowInfo* }{pRow}}
Returns the row index for the given row info. Internal function called by plugins.
\membersection{cbDockPane::GetRowList}\label{cbdockpanegetrowlist} \membersection{cbDockPane::GetRowList}\label{cbdockpanegetrowlist}
\func{RowArrayT\&}{GetRowList}{\void} \func{RowArrayT\&}{GetRowList}{\void}
used by updates-managers Returns an array of rows. Used by updates-managers.
\membersection{cbDockPane::GetRowResizeRange}\label{cbdockpanegetrowresizerange} \membersection{cbDockPane::GetRowResizeRange}\label{cbdockpanegetrowresizerange}
\func{void}{GetRowResizeRange}{\param{cbRowInfo* }{pRow}, \param{int* }{from}, \param{int* }{till}, \param{bool }{forUpperHandle}} \func{void}{GetRowResizeRange}{\param{cbRowInfo* }{pRow}, \param{int* }{from}, \param{int* }{till}, \param{bool }{forUpperHandle}}
Returns the row's resize range.
\membersection{cbDockPane::GetRowShapeData}\label{cbdockpanegetrowshapedata} \membersection{cbDockPane::GetRowShapeData}\label{cbdockpanegetrowshapedata}
\func{void}{GetRowShapeData}{\param{cbRowInfo* }{pRow}, \param{wxList* }{pLst}} \func{void}{GetRowShapeData}{\param{cbRowInfo* }{pRow}, \param{wxList* }{pLst}}
cbBarShapeData objects will be placed to given pLst (see comments on cbBarShapeData) Returns row shape data.
cbBarShapeData objects will be added to the given pLst.
cbBarShapeData is used for storing the original bar's positions in the row,
\membersection{cbDockPane::GetRowWidth}\label{cbdockpanegetrowwidth} when the 'non-destructive-friction' option is turned on.
\func{int}{GetRowWidth}{\param{wxList* }{pRow}}
\membersection{cbDockPane::GetRowY}\label{cbdockpanegetrowy} \membersection{cbDockPane::GetRowY}\label{cbdockpanegetrowy}
\func{int}{GetRowY}{\param{cbRowInfo* }{pRow}} \func{int}{GetRowY}{\param{cbRowInfo* }{pRow}}
Gets the vertical position at the given row.
Internal function called by plugins.
\membersection{cbDockPane::HasNotFixedBarsLeft}\label{cbdockpanehasnotfixedbarsleft} \membersection{cbDockPane::HasNotFixedBarsLeft}\label{cbdockpanehasnotfixedbarsleft}
\func{bool}{HasNotFixedBarsLeft}{\param{cbBarInfo* }{pBar}} \func{bool}{HasNotFixedBarsLeft}{\param{cbBarInfo* }{pBar}}
Returns TRUE if there are any variable-sized rows to the left of this one.
Internal function called by plugins.
\membersection{cbDockPane::HasNotFixedBarsRight}\label{cbdockpanehasnotfixedbarsright} \membersection{cbDockPane::HasNotFixedBarsRight}\label{cbdockpanehasnotfixedbarsright}
\func{bool}{HasNotFixedBarsRight}{\param{cbBarInfo* }{pBar}} \func{bool}{HasNotFixedBarsRight}{\param{cbBarInfo* }{pBar}}
Returns TRUE if there are any variable-sized rows to the right of this one.
Internal function called by plugins.
\membersection{cbDockPane::HasNotFixedRowsAbove}\label{cbdockpanehasnotfixedrowsabove} \membersection{cbDockPane::HasNotFixedRowsAbove}\label{cbdockpanehasnotfixedrowsabove}
\func{bool}{HasNotFixedRowsAbove}{\param{cbRowInfo* }{pRow}} \func{bool}{HasNotFixedRowsAbove}{\param{cbRowInfo* }{pRow}}
Returns TRUE if there are any variable-sized rows above this one.
Internal function called by plugins.
\membersection{cbDockPane::HasNotFixedRowsBelow}\label{cbdockpanehasnotfixedrowsbelow} \membersection{cbDockPane::HasNotFixedRowsBelow}\label{cbdockpanehasnotfixedrowsbelow}
\func{bool}{HasNotFixedRowsBelow}{\param{cbRowInfo* }{pRow}} \func{bool}{HasNotFixedRowsBelow}{\param{cbRowInfo* }{pRow}}
Returns TRUE if there are any variable-sized rows below this one.
Internal function called by plugins.
\membersection{cbDockPane::HasPoint}\label{cbdockpanehaspoint} \membersection{cbDockPane::HasPoint}\label{cbdockpanehaspoint}
\func{bool}{HasPoint}{\param{const wxPoint\& }{pos}, \param{int }{x}, \param{int }{y}, \param{int }{width}, \param{int }{height}} \func{bool}{HasPoint}{\param{const wxPoint\& }{pos}, \param{int }{x}, \param{int }{y}, \param{int }{width}, \param{int }{height}}
Returns TRUE if pos is within the given rectangle.
Internal function called by plugins.
\membersection{cbDockPane::HitTestPaneItems}\label{cbdockpanehittestpaneitems} \membersection{cbDockPane::HitTestPaneItems}\label{cbdockpanehittestpaneitems}
\func{int}{HitTestPaneItems}{\param{const wxPoint\& }{pos}, \param{cbRowInfo** }{ppRow}, \param{cbBarInfo** }{ppBar}} \func{int}{HitTestPaneItems}{\param{const wxPoint\& }{pos}, \param{cbRowInfo** }{ppRow}, \param{cbBarInfo** }{ppBar}}
returns result of hit-testing items in the pane, Returns the result of hit-testing items in the pane.
see CB\_HITTEST\_RESULTS enumeration See CB\_HITTEST\_RESULT enumerated type.
position in pane's coordinates pos is the position in this pane's coordinates.
\membersection{cbDockPane::InitLinksForRow}\label{cbdockpaneinitlinksforrow} \membersection{cbDockPane::InitLinksForRow}\label{cbdockpaneinitlinksforrow}
\func{void}{InitLinksForRow}{\param{cbRowInfo* }{pRow}} \func{void}{InitLinksForRow}{\param{cbRowInfo* }{pRow}}
Sets up links between bars.
Internal function called by plugins.
\membersection{cbDockPane::InitLinksForRows}\label{cbdockpaneinitlinksforrows} \membersection{cbDockPane::InitLinksForRows}\label{cbdockpaneinitlinksforrows}
\func{void}{InitLinksForRows}{\void} \func{void}{InitLinksForRows}{\void}
Sets up links between bars.
Internal function called by plugins.
\membersection{cbDockPane::InsertBar}\label{cbdockpaneinsertbar} \membersection{cbDockPane::InsertBar}\label{cbdockpaneinsertbar}
\func{void}{InsertBar}{\param{cbBarInfo* }{pBar}, \param{const wxRect\& }{atRect}} \func{void}{InsertBar}{\param{cbBarInfo* }{pBarInfo}}
rect given in the parent frame's coordinates Inserts bar and sets its position according to the preferred settings
given in pBarInfo.
\func{void}{InsertBar}{\param{cbBarInfo* }{pBar}, \param{const wxRect\& }{rect}}
Inserts the bar into this pane. rect is given in the parent frame's coordinates.
\func{void}{InsertBar}{\param{cbBarInfo* }{pBar}, \param{cbRowInfo* }{pIntoRow}} \func{void}{InsertBar}{\param{cbBarInfo* }{pBar}, \param{cbRowInfo* }{pIntoRow}}
inserts bar into the given row, with dimensions and position Inserts the bar into the given row, with dimensions and position
stored in pBarInfo->mBounds. Returns the node of inserted bar stored in pBarInfo->mBounds. Returns the node of inserted bar.
\func{void}{InsertBar}{\param{cbBarInfo* }{pBarInfo}}
inserts bar, sets its position according to the preferred settings
given in (*pBarInfo) structure
\membersection{cbDockPane::InsertRow}\label{cbdockpaneinsertrow} \membersection{cbDockPane::InsertRow}\label{cbdockpaneinsertrow}
\func{void}{InsertRow}{\param{cbRowInfo* }{pRow}, \param{cbRowInfo* }{pBeforeRow}} \func{void}{InsertRow}{\param{cbRowInfo* }{pRow}, \param{cbRowInfo* }{pBeforeRow}}
does not refresh the inserted row immediately, Inserts a row. Does not refresh the inserted row immediately.
if pBeforeRowNode arg. is NULL, row is appended to the end of pane's row list If pBeforeRowNode is NULL, the row is appended to the end of pane's row list.
\membersection{cbDockPane::IsFixedSize}\label{cbdockpaneisfixedsize} \membersection{cbDockPane::IsFixedSize}\label{cbdockpaneisfixedsize}
\func{bool}{IsFixedSize}{\param{cbBarInfo* }{pInfo}} \func{bool}{IsFixedSize}{\param{cbBarInfo* }{pInfo}}
layout "AI" helpers: Returns TRUE if the bar's dimension information indicates a fixed size.
Internal function called by plugins.
\membersection{cbDockPane::IsHorizontal}\label{cbdockpaneishorizontal} \membersection{cbDockPane::IsHorizontal}\label{cbdockpaneishorizontal}
\func{bool}{IsHorizontal}{\void} \func{bool}{IsHorizontal}{\void}
Returns TRUE if the pane is aligned to the top or bottom.
\membersection{cbDockPane::MatchesMask}\label{cbdockpanematchesmask} \membersection{cbDockPane::MatchesMask}\label{cbdockpanematchesmask}
\func{bool}{MatchesMask}{\param{int }{paneMask}} \func{bool}{MatchesMask}{\param{int }{paneMask}}
Returns TRUE if the given mask matches the pane's mask.
\membersection{cbDockPane::PaintBar}\label{cbdockpanepaintbar} \membersection{cbDockPane::PaintBar}\label{cbdockpanepaintbar}
\func{void}{PaintBar}{\param{cbBarInfo* }{pBar}, \param{wxDC\& }{dc}} \func{void}{PaintBar}{\param{cbBarInfo* }{pBar}, \param{wxDC\& }{dc}}
Calls PaintBarDecorations and PaintBarHandles.
Internal function called by plugins.
\membersection{cbDockPane::PaintBarDecorations}\label{cbdockpanepaintbardecorations} \membersection{cbDockPane::PaintBarDecorations}\label{cbdockpanepaintbardecorations}
\func{void}{PaintBarDecorations}{\param{cbBarInfo* }{pBar}, \param{wxDC\& }{dc}} \func{void}{PaintBarDecorations}{\param{cbBarInfo* }{pBar}, \param{wxDC\& }{dc}}
protected really (accessed only by plugins) methods for incramental on-screen refreshing of the pane protected really (accessed only by plugins) Generates a cbDrawBarDecorEvent and sends it to the layout to paint the bar decorations.
(simply, they are wrappers around corresponding plugin-events) Internal function called by plugins.
\membersection{cbDockPane::PaintBarHandles}\label{cbdockpanepaintbarhandles} \membersection{cbDockPane::PaintBarHandles}\label{cbdockpanepaintbarhandles}
\func{void}{PaintBarHandles}{\param{cbBarInfo* }{pBar}, \param{wxDC\& }{dc}} \func{void}{PaintBarHandles}{\param{cbBarInfo* }{pBar}, \param{wxDC\& }{dc}}
Generates a cbDrawBarHandlesEvent and sends it to the layout to paint the bar handles.
Internal function called by plugins.
\membersection{cbDockPane::PaintPane}\label{cbdockpanepaintpane} \membersection{cbDockPane::PaintPane}\label{cbdockpanepaintpane}
\func{void}{PaintPane}{\param{wxDC\& }{dc}} \func{void}{PaintPane}{\param{wxDC\& }{dc}}
Paints the pane background, the row background and decorations,
and finally the pane decorations.
Internal function called by plugins.
\membersection{cbDockPane::PaintPaneBackground}\label{cbdockpanepaintpanebackground} \membersection{cbDockPane::PaintPaneBackground}\label{cbdockpanepaintpanebackground}
\func{void}{PaintPaneBackground}{\param{wxDC\& }{dc}} \func{void}{PaintPaneBackground}{\param{wxDC\& }{dc}}
Generates cbDrawPaneBkGroundEvent and sends it to the layout.
Internal function called by plugins.
\membersection{cbDockPane::PaintPaneDecorations}\label{cbdockpanepaintpanedecorations} \membersection{cbDockPane::PaintPaneDecorations}\label{cbdockpanepaintpanedecorations}
\func{void}{PaintPaneDecorations}{\param{wxDC\& }{dc}} \func{void}{PaintPaneDecorations}{\param{wxDC\& }{dc}}
Generates cbDrawPaneDecorEvent and sends it to the layout.
Internal function called by plugins.
\membersection{cbDockPane::PaintRow}\label{cbdockpanepaintrow} \membersection{cbDockPane::PaintRow}\label{cbdockpanepaintrow}
\func{void}{PaintRow}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}} \func{void}{PaintRow}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}}
Calls PaintRowBackground, PaintRowDecorations, PaintRowHandles.
Internal function called by plugins.
\membersection{cbDockPane::PaintRowBackground}\label{cbdockpanepaintrowbackground} \membersection{cbDockPane::PaintRowBackground}\label{cbdockpanepaintrowbackground}
\func{void}{PaintRowBackground}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}} \func{void}{PaintRowBackground}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}}
Generates cbDrawRowBkGroundEvent and sends it to the layout.
Internal function called by plugins.
\membersection{cbDockPane::PaintRowDecorations}\label{cbdockpanepaintrowdecorations} \membersection{cbDockPane::PaintRowDecorations}\label{cbdockpanepaintrowdecorations}
\func{void}{PaintRowDecorations}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}} \func{void}{PaintRowDecorations}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}}
Calls PaintBarDecorations for each row.
Internal function called by plugins.
\membersection{cbDockPane::PaintRowHandles}\label{cbdockpanepaintrowhandles} \membersection{cbDockPane::PaintRowHandles}\label{cbdockpanepaintrowhandles}
\func{void}{PaintRowHandles}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}} \func{void}{PaintRowHandles}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}}
Generates cbDrawRowHandlesEvent and cbDrawRowDecorEvent and sends them to the layout.
Internal function called by plugins.
\membersection{cbDockPane::PaneToFrame}\label{cbdockpanepanetoframe} \membersection{cbDockPane::PaneToFrame}\label{cbdockpanepanetoframe}
\func{void}{PaneToFrame}{\param{wxRect* }{pRect}} \func{void}{PaneToFrame}{\param{wxRect* }{pRect}}
Coordinate translation between parent's frame and this pane.
Internal function called by plugins.
\func{void}{PaneToFrame}{\param{int* }{x}, \param{int* }{y}} \func{void}{PaneToFrame}{\param{int* }{x}, \param{int* }{y}}
Coordinate translation between parent's frame and this pane.
Internal function called by plugins.
\membersection{cbDockPane::RecalcLayout}\label{cbdockpanerecalclayout} \membersection{cbDockPane::RecalcLayout}\label{cbdockpanerecalclayout}
\func{void}{RecalcLayout}{\void} \func{void}{RecalcLayout}{\void}
Generates events to perform layout calculations.
\membersection{cbDockPane::RecalcRowLayout}\label{cbdockpanerecalcrowlayout} \membersection{cbDockPane::RecalcRowLayout}\label{cbdockpanerecalcrowlayout}
\func{void}{RecalcRowLayout}{\param{cbRowInfo* }{pRow}} \func{void}{RecalcRowLayout}{\param{cbRowInfo* }{pRow}}
Generates a cbLayoutRowEvent event to recalculate row layouts.
Internal function called by plugins.
\membersection{cbDockPane::RemoveBar}\label{cbdockpaneremovebar} \membersection{cbDockPane::RemoveBar}\label{cbdockpaneremovebar}
\func{void}{RemoveBar}{\param{cbBarInfo* }{pBar}} \func{void}{RemoveBar}{\param{cbBarInfo* }{pBar}}
does not destroys the info bar , only removes it's reference Removes the bar from this pane. Does not destroy the bar.
from this pane
\membersection{cbDockPane::RemoveRow}\label{cbdockpaneremoverow} \membersection{cbDockPane::RemoveRow}\label{cbdockpaneremoverow}
\func{void}{RemoveRow}{\param{cbRowInfo* }{pRow}} \func{void}{RemoveRow}{\param{cbRowInfo* }{pRow}}
does not destroy the row object, only removes the corresponding Removes the row from this pane. Does not destroy the row object.
node from this pane
\membersection{cbDockPane::ResizeBar}\label{cbdockpaneresizebar} \membersection{cbDockPane::ResizeBar}\label{cbdockpaneresizebar}
\func{void}{ResizeBar}{\param{cbBarInfo* }{pBar}, \param{int }{ofs}, \param{bool }{forLeftHandle}} \func{void}{ResizeBar}{\param{cbBarInfo* }{pBar}, \param{int }{ofs}, \param{bool }{forLeftHandle}}
Row/bar resizing related helper-method.
\membersection{cbDockPane::ResizeRow}\label{cbdockpaneresizerow} \membersection{cbDockPane::ResizeRow}\label{cbdockpaneresizerow}
\func{void}{ResizeRow}{\param{cbRowInfo* }{pRow}, \param{int }{ofs}, \param{bool }{forUpperHandle}} \func{void}{ResizeRow}{\param{cbRowInfo* }{pRow}, \param{int }{ofs}, \param{bool }{forUpperHandle}}
Row/bar resizing related helper-method.
\membersection{cbDockPane::SetBoundsInParent}\label{cbdockpanesetboundsinparent} \membersection{cbDockPane::SetBoundsInParent}\label{cbdockpanesetboundsinparent}
\func{void}{SetBoundsInParent}{\param{const wxRect\& }{rect}} \func{void}{SetBoundsInParent}{\param{const wxRect\& }{rect}}
set the position and dims. of the pane in parent frame's coordinates Set the position and dimensions of the pane in the parent frame's coordinates.
\membersection{cbDockPane::SetMargins}\label{cbdockpanesetmargins} \membersection{cbDockPane::SetMargins}\label{cbdockpanesetmargins}
\func{void}{SetMargins}{\param{int }{top}, \param{int }{bottom}, \param{int }{left}, \param{int }{right}} \func{void}{SetMargins}{\param{int }{top}, \param{int }{bottom}, \param{int }{left}, \param{int }{right}}
sets pane's margins in frame's coordinate orientations Sets pane's margins in frame's coordinate orientations.
\membersection{cbDockPane::SetPaneWidth}\label{cbdockpanesetpanewidth} \membersection{cbDockPane::SetPaneWidth}\label{cbdockpanesetpanewidth}
\func{void}{SetPaneWidth}{\param{int }{width}} \func{void}{SetPaneWidth}{\param{int }{width}}
sets pane's width in pane's coordinates (including margins) Sets pane's width in the pane's coordinates (including margins).
\membersection{cbDockPane::SetRowHeight}\label{cbdockpanesetrowheight} \membersection{cbDockPane::SetRowHeight}\label{cbdockpanesetrowheight}
\func{void}{SetRowHeight}{\param{cbRowInfo* }{pRow}, \param{int }{newHeight}} \func{void}{SetRowHeight}{\param{cbRowInfo* }{pRow}, \param{int }{newHeight}}
given row height includes height of row handles, if present Sets the row height for the given height. newHeight includes the height of row handles, if present.
Internal function called by plugins.
\membersection{cbDockPane::SetRowShapeData}\label{cbdockpanesetrowshapedata} \membersection{cbDockPane::SetRowShapeData}\label{cbdockpanesetrowshapedata}
\func{void}{SetRowShapeData}{\param{cbRowInfo* }{pRowNode}, \param{wxList* }{pLst}} \func{void}{SetRowShapeData}{\param{cbRowInfo* }{pRowNode}, \param{wxList* }{pLst}}
sets the shape to the given row, using the data provided in pLst Sets the shape data for the given row, using the data provided in pLst.
cbBarShapeData is used for storing the original bar's positions in the row,
when the 'non-destructive-friction' option is turned on.
\membersection{cbDockPane::SizeBar}\label{cbdockpanesizebar} \membersection{cbDockPane::SizeBar}\label{cbdockpanesizebar}
\func{void}{SizeBar}{\param{cbBarInfo* }{pBar}} \func{void}{SizeBar}{\param{cbBarInfo* }{pBar}}
Generates a cbSizeBarWndEvent and sends it to the layout.
Internal function called by plugins.
\membersection{cbDockPane::SizePaneObjects}\label{cbdockpanesizepaneobjects} \membersection{cbDockPane::SizePaneObjects}\label{cbdockpanesizepaneobjects}
\func{void}{SizePaneObjects}{\void} \func{void}{SizePaneObjects}{\void}
Calls SizeRowObjects for each row.
Internal function called by plugins.
\membersection{cbDockPane::SizeRowObjects}\label{cbdockpanesizerowobjects} \membersection{cbDockPane::SizeRowObjects}\label{cbdockpanesizerowobjects}
\func{void}{SizeRowObjects}{\param{cbRowInfo* }{pRow}} \func{void}{SizeRowObjects}{\param{cbRowInfo* }{pRow}}
Calls SizeBar for each bar in the row.
Internal function called by plugins.
\membersection{cbDockPane::StartDrawInArea}\label{cbdockpanestartdrawinarea} \membersection{cbDockPane::StartDrawInArea}\label{cbdockpanestartdrawinarea}
\func{wxDC*}{StartDrawInArea}{\param{const wxRect\& }{area}} \func{wxDC*}{StartDrawInArea}{\param{const wxRect\& }{area}}
Generates cbStartDrawInAreaEvent and sends it to the layout.
Internal function called by plugins.
\membersection{cbDockPane::SyncRowFlags}\label{cbdockpanesyncrowflags} \membersection{cbDockPane::SyncRowFlags}\label{cbdockpanesyncrowflags}
\func{void}{SyncRowFlags}{\param{cbRowInfo* }{pRow}} \func{void}{SyncRowFlags}{\param{cbRowInfo* }{pRow}}
re-setups flags in the row-information structure, so that Sets up flags in the row information structure, so that
the would match the changed state of row-items correctly they match the changed state of row items correctly.
Internal function called by plugins.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:00 % controlbar.h at 21/Jan/02 21:14:16
% %
\section{\class{cbDrawBarDecorEvent}}\label{cbdrawbardecorevent} \section{\class{cbDrawBarDecorEvent}}\label{cbdrawbardecorevent}
Class for bar decoration drawing events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{}{cbDrawBarDecorEvent}{\param{cbBarInfo* }{pBar}, \param{wxDC\& }{dc}, \param{cbDockPane* }{pPane}} \func{}{cbDrawBarDecorEvent}{\param{cbBarInfo* }{pBar}, \param{wxDC\& }{dc}, \param{cbDockPane* }{pPane}}
Constructor, taking bar information, device context, and pane.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:01 % controlbar.h at 21/Jan/02 21:14:16
% %
\section{\class{cbDrawBarHandlesEvent}}\label{cbdrawbarhandlesevent} \section{\class{cbDrawBarHandlesEvent}}\label{cbdrawbarhandlesevent}
Class for bar handles drawing events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{}{cbDrawBarHandlesEvent}{\param{cbBarInfo* }{pBar}, \param{wxDC\& }{dc}, \param{cbDockPane* }{pPane}} \func{}{cbDrawBarHandlesEvent}{\param{cbBarInfo* }{pBar}, \param{wxDC\& }{dc}, \param{cbDockPane* }{pPane}}
Constructor, taking bar information, device context, and pane.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:01 % controlbar.h at 21/Jan/02 21:14:16
% %
\section{\class{cbDrawHintRectEvent}}\label{cbdrawhintrectevent} \section{\class{cbDrawHintRectEvent}}\label{cbdrawhintrectevent}
Class for hint-rectangle drawing events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -20,4 +27,5 @@
\func{}{cbDrawHintRectEvent}{\param{const wxRect\& }{rect}, \param{bool }{isInClient}, \param{bool }{eraseRect}, \param{bool }{lastTime}} \func{}{cbDrawHintRectEvent}{\param{const wxRect\& }{rect}, \param{bool }{isInClient}, \param{bool }{eraseRect}, \param{bool }{lastTime}}
e.g. with fat/hatched border e.g. with fat/hatched border
Constructor, taking hint rectangle and three flags.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:01 % controlbar.h at 21/Jan/02 21:14:16
% %
\section{\class{cbDrawPaneBkGroundEvent}}\label{cbdrawpanebkgroundevent} \section{\class{cbDrawPaneBkGroundEvent}}\label{cbdrawpanebkgroundevent}
Class for pane background drawing events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{}{cbDrawPaneBkGroundEvent}{\param{wxDC\& }{dc}, \param{cbDockPane* }{pPane}} \func{}{cbDrawPaneBkGroundEvent}{\param{wxDC\& }{dc}, \param{cbDockPane* }{pPane}}
Constructor, taking device context and pane.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:01 % controlbar.h at 21/Jan/02 21:14:16
% %
\section{\class{cbDrawPaneDecorEvent}}\label{cbdrawpanedecorevent} \section{\class{cbDrawPaneDecorEvent}}\label{cbdrawpanedecorevent}
Class for pane decoration drawing events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{}{cbDrawPaneDecorEvent}{\param{wxDC\& }{dc}, \param{cbDockPane* }{pPane}} \func{}{cbDrawPaneDecorEvent}{\param{wxDC\& }{dc}, \param{cbDockPane* }{pPane}}
Constructor, taking device context and pane.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:01 % controlbar.h at 21/Jan/02 21:14:16
% %
\section{\class{cbDrawRowBkGroundEvent}}\label{cbdrawrowbkgroundevent} \section{\class{cbDrawRowBkGroundEvent}}\label{cbdrawrowbkgroundevent}
Class for row background drawing events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{}{cbDrawRowBkGroundEvent}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}, \param{cbDockPane* }{pPane}} \func{}{cbDrawRowBkGroundEvent}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}, \param{cbDockPane* }{pPane}}
Constructor, taking row information, device context, and pane.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:00 % controlbar.h at 21/Jan/02 21:14:16
% %
\section{\class{cbDrawRowDecorEvent}}\label{cbdrawrowdecorevent} \section{\class{cbDrawRowDecorEvent}}\label{cbdrawrowdecorevent}
Class for row decoration drawing events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{}{cbDrawRowDecorEvent}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}, \param{cbDockPane* }{pPane}} \func{}{cbDrawRowDecorEvent}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}, \param{cbDockPane* }{pPane}}
Constructor, taking row information, device context, and pane.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:01 % controlbar.h at 21/Jan/02 21:14:16
% %
\section{\class{cbDrawRowHandlesEvent}}\label{cbdrawrowhandlesevent} \section{\class{cbDrawRowHandlesEvent}}\label{cbdrawrowhandlesevent}
Class for row handles drawing events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{}{cbDrawRowHandlesEvent}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}, \param{cbDockPane* }{pPane}} \func{}{cbDrawRowHandlesEvent}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}, \param{cbDockPane* }{pPane}}
Constructor, taking row information, device context, and pane.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% dyntbarhnd.h at 05/Jan/02 22:50:56 % dyntbarhnd.h at 21/Jan/02 21:14:19
% %
\section{\class{cbDynToolBarDimHandler}}\label{cbdyntoolbardimhandler} \section{\class{cbDynToolBarDimHandler}}\label{cbdyntoolbardimhandler}
Dynamic toolbar dimension handler.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbBarDimHandlerBase}{cbbardimhandlerbase} \helpref{cbBarDimHandlerBase}{cbbardimhandlerbase}
\wxheading{Include files}
<dyntbarhnd.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,8 +26,12 @@
\func{void}{OnChangeBarState}{\param{cbBarInfo* }{pBar}, \param{int }{newState}} \func{void}{OnChangeBarState}{\param{cbBarInfo* }{pBar}, \param{int }{newState}}
Called when the bar changes state.
\membersection{cbDynToolBarDimHandler::OnResizeBar}\label{cbdyntoolbardimhandleronresizebar} \membersection{cbDynToolBarDimHandler::OnResizeBar}\label{cbdyntoolbardimhandleronresizebar}
\func{void}{OnResizeBar}{\param{cbBarInfo* }{pBar}, \param{const wxSize\& }{given}, \param{wxSize\& }{preferred}} \func{void}{OnResizeBar}{\param{cbBarInfo* }{pBar}, \param{const wxSize\& }{given}, \param{wxSize\& }{preferred}}
Called when a bar is resized.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:01 % controlbar.h at 21/Jan/02 21:14:16
% %
\section{\class{cbFinishDrawInAreaEvent}}\label{cbfinishdrawinareaevent} \section{\class{cbFinishDrawInAreaEvent}}\label{cbfinishdrawinareaevent}
Class for finish drawing in area events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{}{cbFinishDrawInAreaEvent}{\param{const wxRect\& }{area}, \param{cbDockPane* }{pPane}} \func{}{cbFinishDrawInAreaEvent}{\param{const wxRect\& }{area}, \param{cbDockPane* }{pPane}}
Constructor, taking rectangular area and pane.

View File

@@ -1,15 +1,23 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% toolwnd.h at 05/Jan/02 22:50:58 % toolwnd.h at 21/Jan/02 21:14:17
% %
\section{\class{cbFloatedBarWindow}}\label{cbfloatedbarwindow} \section{\class{cbFloatedBarWindow}}\label{cbfloatedbarwindow}
cbFloatedBarWindow is a kind of wxToolWindow,
implementing floating toolbars.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{wxToolWindow}{wxtoolwindow} \helpref{wxToolWindow}{wxtoolwindow}
\wxheading{Include files}
<toolwnd.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,49 +27,63 @@
\func{}{cbFloatedBarWindow}{\void} \func{}{cbFloatedBarWindow}{\void}
Default constructor.
\membersection{cbFloatedBarWindow::GetBar}\label{cbfloatedbarwindowgetbar} \membersection{cbFloatedBarWindow::GetBar}\label{cbfloatedbarwindowgetbar}
\func{cbBarInfo*}{GetBar}{\void} \func{cbBarInfo*}{GetBar}{\void}
Returns the bar information for this window.
\membersection{cbFloatedBarWindow::GetPreferredSize}\label{cbfloatedbarwindowgetpreferredsize} \membersection{cbFloatedBarWindow::GetPreferredSize}\label{cbfloatedbarwindowgetpreferredsize}
\func{wxSize}{GetPreferredSize}{\param{const wxSize\& }{given}} \func{wxSize}{GetPreferredSize}{\param{const wxSize\& }{given}}
overriden methods of wxToolWindow Overridden function returning the preferred size.
\membersection{cbFloatedBarWindow::HandleTitleClick}\label{cbfloatedbarwindowhandletitleclick} \membersection{cbFloatedBarWindow::HandleTitleClick}\label{cbfloatedbarwindowhandletitleclick}
\func{bool}{HandleTitleClick}{\param{wxMouseEvent\& }{event}} \func{bool}{HandleTitleClick}{\param{wxMouseEvent\& }{event}}
Overridden function responding to mouse button clicks on the titlebar.
\membersection{cbFloatedBarWindow::OnDblClick}\label{cbfloatedbarwindowondblclick} \membersection{cbFloatedBarWindow::OnDblClick}\label{cbfloatedbarwindowondblclick}
\func{void}{OnDblClick}{\param{wxMouseEvent\& }{event}} \func{void}{OnDblClick}{\param{wxMouseEvent\& }{event}}
Responds to double-click mouse events.
\membersection{cbFloatedBarWindow::OnMiniButtonClicked}\label{cbfloatedbarwindowonminibuttonclicked} \membersection{cbFloatedBarWindow::OnMiniButtonClicked}\label{cbfloatedbarwindowonminibuttonclicked}
\func{void}{OnMiniButtonClicked}{\param{int }{btnIdx}} \func{void}{OnMiniButtonClicked}{\param{int }{btnIdx}}
Overridden function responding to mouse clicks on mini-buttons.
\membersection{cbFloatedBarWindow::PositionFloatedWnd}\label{cbfloatedbarwindowpositionfloatedwnd} \membersection{cbFloatedBarWindow::PositionFloatedWnd}\label{cbfloatedbarwindowpositionfloatedwnd}
\func{void}{PositionFloatedWnd}{\param{int }{scrX}, \param{int }{scrY}, \param{int }{width}, \param{int }{height}} \func{void}{PositionFloatedWnd}{\param{int }{scrX}, \param{int }{scrY}, \param{int }{width}, \param{int }{height}}
given coordinates are those of the bar itself Position the floating window. The given coordinates
floated container window's position and size are those of the bar itself; the floated container window's
are ajusted accordingly position and size are ajusted accordingly.
\membersection{cbFloatedBarWindow::SetBar}\label{cbfloatedbarwindowsetbar} \membersection{cbFloatedBarWindow::SetBar}\label{cbfloatedbarwindowsetbar}
\func{void}{SetBar}{\param{cbBarInfo* }{pBar}} \func{void}{SetBar}{\param{cbBarInfo* }{pBar}}
Sets the bar information for this window.
\membersection{cbFloatedBarWindow::SetLayout}\label{cbfloatedbarwindowsetlayout} \membersection{cbFloatedBarWindow::SetLayout}\label{cbfloatedbarwindowsetlayout}
\func{void}{SetLayout}{\param{wxFrameLayout* }{pLayout}} \func{void}{SetLayout}{\param{wxFrameLayout* }{pLayout}}
Sets the layout for this window.

View File

@@ -1,83 +1,90 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% gcupdatesmgr.h at 05/Jan/02 22:50:57 % gcupdatesmgr.h at 21/Jan/02 21:14:19
% %
\section{\class{cbGCUpdatesMgr}}\label{cbgcupdatesmgr} \section{\class{cbGCUpdatesMgr}}\label{cbgcupdatesmgr}
class implements optimized logic for refreshing This class implements optimized logic for refreshing
areas of frame layout - which actually need to be updated. the areas of frame layout that actually need to be updated.
Is used as default updates-manager by wxFrameLayout. It is used as the default updates manager by wxFrameLayout.
it is called "Garbage Collecting" u.mgr for it's implementation It is called 'Garbage Collecting' updates manager because
tries to find out dependencies between bars, and to order its implementation tries to find out dependencies between bars,
them ito "hierarchy", this hierarchical sorting resembles and to order them into a 'hierarchy'. This hierarchical sorting resembles
implemenation of heap-garbage collectors, which resolve the implementation of heap-garbage collectors, which resolve
dependencies between references. dependencies between references.
Example: there are situations where the order of moving Example: there are situations where the order in which the user
the windows does matter: moves windows does matter.
case 1) \begin{verbatim}
------ --- case 1)
| A | |B| ------ ---
------ ---> | | | A | |B|
--- --- ------ ------ ---> | |
|B| | A | --- --- ------
| | ------ |B| | A |
--- | | ------
(future) ---
(past) (future)
(past)
past/future positions of A and B windows completely overlapp, i.e. \end{verbatim}
depend on each other, and there is not solution for
moving the windows witout refreshing both of them, Past/future positions of A and B windows completely overlap, i.e.
-- we have cyclic dependency here. The gc. alg will depend on each other, and there is no solution for
find this cyclic dependecy and will force "refresh" moving the windows without refreshing both of them
after movement. -- we have a cyclic dependency here. The garbage collection algorithm will
find this cyclic dependecy and will force refresh after movement.
case 2)
\begin{verbatim}
------ case 2)
| A |
------ ---> ------
--- | A |
|B| ------ ------ --->
| | | A | ---
--- ------ |B| ------
--- | | | A |
|B| --- ------
| | ---
--- |B|
| |
(future) ---
(past)
(future)
in this case past/future positions do not overlapp, thus (past)
it's enough only to move windows, without refreshing them. \end{verbatim}
GC will "notice" it.
In this case past/future positions do not overlap, so
there is also third case, when overlapping is partial it is enough only to move windows without refreshing them.
in this case the refershing can be also avoided by Garbage collection will 'notice' this.
moving windows in the order of "most-dependant" towards the
"least-dependent". GC handles this automatically, by There is also a third case, when overlapping is partial.
sorting windows by their dependency-level (or "hierarchy") In this case the refreshing can also be avoided by
moving windows in the order of 'most-dependant' towards the
See garbagec.h for more details of this method, garbagec.h/cpp 'least-dependent'. GC handles this automatically, by
implement sorting of generic-dependencies (does not deal sorting windows by their dependency-level (or 'hierarchy').
with graphical objects directly)
See garbagec.h for more details of this method; garbagec.h/cpp
Summary: improves performance when complex/large windows are implement sorting of generic dependencies and does not deal
moved around, by reducing number of repaints. Also helps with graphical objects directly.
to avoid dirty non-client areas of moved windows
in some special cases of "overlapping anomalies" Summary: garbage collection improves performance when complex or large
windows are moved around, by reducing the number of repaints. It also helps
to avoid dirty non-client areas of moved windows
in some special cases of 'overlapping anomalies'.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbSimpleUpdatesMgr}{cbsimpleupdatesmgr} \helpref{cbSimpleUpdatesMgr}{cbsimpleupdatesmgr}
\wxheading{Include files}
<gcupdatesmgr.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -87,30 +94,38 @@ class implements optimized logic for refreshing
\func{}{cbGCUpdatesMgr}{\void} \func{}{cbGCUpdatesMgr}{\void}
Default constructor.
\func{}{cbGCUpdatesMgr}{\param{wxFrameLayout* }{pPanel}} \func{}{cbGCUpdatesMgr}{\param{wxFrameLayout* }{pPanel}}
Constructor, taking a frame layout.
\membersection{cbGCUpdatesMgr::AddItem}\label{cbgcupdatesmgradditem} \membersection{cbGCUpdatesMgr::AddItem}\label{cbgcupdatesmgradditem}
\func{void}{AddItem}{\param{wxList\& }{itemList}, \param{cbBarInfo* }{pBar}, \param{cbDockPane* }{pPane}, \param{wxRect\& }{curBounds}, \param{wxRect\& }{prevBounds}} \func{void}{AddItem}{\param{wxList\& }{itemList}, \param{cbBarInfo* }{pBar}, \param{cbDockPane* }{pPane}, \param{wxRect\& }{curBounds}, \param{wxRect\& }{prevBounds}}
Internal function for repositioning items.
\membersection{cbGCUpdatesMgr::DoRepositionItems}\label{cbgcupdatesmgrdorepositionitems} \membersection{cbGCUpdatesMgr::DoRepositionItems}\label{cbgcupdatesmgrdorepositionitems}
\func{void}{DoRepositionItems}{\param{wxList\& }{items}} \func{void}{DoRepositionItems}{\param{wxList\& }{items}}
Internal function for repositioning items.
\membersection{cbGCUpdatesMgr::OnStartChanges}\label{cbgcupdatesmgronstartchanges} \membersection{cbGCUpdatesMgr::OnStartChanges}\label{cbgcupdatesmgronstartchanges}
\func{void}{OnStartChanges}{\void} \func{void}{OnStartChanges}{\void}
notificiactions received from Frame Layout : Receives notifications from the frame layout.
\membersection{cbGCUpdatesMgr::UpdateNow}\label{cbgcupdatesmgrupdatenow} \membersection{cbGCUpdatesMgr::UpdateNow}\label{cbgcupdatesmgrupdatenow}
\func{void}{UpdateNow}{\void} \func{void}{UpdateNow}{\void}
refreshes parts of the frame layout, which need an update Refreshes the parts of the frame layout which need an update.

View File

@@ -1,17 +1,21 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% rowdragpl.h at 05/Jan/02 22:50:57 % rowdragpl.h at 21/Jan/02 21:14:19
% %
\section{\class{cbHiddenBarInfo}}\label{cbhiddenbarinfo} \section{\class{cbHiddenBarInfo}}\label{cbhiddenbarinfo}
internal helper-class Internal helper class.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{wxObject}{wxobject} \helpref{wxObject}{wxobject}
\wxheading{Include files}
<rowdragpl.h>
\wxheading{Data structures} \wxheading{Data structures}

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% hintanimpl.h at 05/Jan/02 22:50:57 % hintanimpl.h at 21/Jan/02 21:14:18
% %
\section{\class{cbHintAnimationPlugin}}\label{cbhintanimationplugin} \section{\class{cbHintAnimationPlugin}}\label{cbhintanimationplugin}
A plugin to draw animated hints when the user drags a pane.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginBase}{cbpluginbase} \helpref{cbPluginBase}{cbpluginbase}
\wxheading{Include files}
<hintanimpl.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,44 +26,62 @@
\func{}{cbHintAnimationPlugin}{\void} \func{}{cbHintAnimationPlugin}{\void}
Default constructor.
\func{}{cbHintAnimationPlugin}{\param{wxFrameLayout* }{pPanel}, \param{int }{paneMask = wxALL\_PANES}} \func{}{cbHintAnimationPlugin}{\param{wxFrameLayout* }{pPanel}, \param{int }{paneMask = wxALL\_PANES}}
Constructor, taking a layout panel and pane mask.
\membersection{cbHintAnimationPlugin::\destruct{cbHintAnimationPlugin}}\label{cbhintanimationplugindtor} \membersection{cbHintAnimationPlugin::\destruct{cbHintAnimationPlugin}}\label{cbhintanimationplugindtor}
\func{}{\destruct{cbHintAnimationPlugin}}{\void} \func{}{\destruct{cbHintAnimationPlugin}}{\void}
Destructor.
\membersection{cbHintAnimationPlugin::DoDrawHintRect}\label{cbhintanimationplugindodrawhintrect} \membersection{cbHintAnimationPlugin::DoDrawHintRect}\label{cbhintanimationplugindodrawhintrect}
\func{void}{DoDrawHintRect}{\param{wxRect\& }{rect}, \param{bool }{isInClientRect}} \func{void}{DoDrawHintRect}{\param{wxRect\& }{rect}, \param{bool }{isInClientRect}}
Internal function for drawing a hint rectangle.
\membersection{cbHintAnimationPlugin::DrawHintRect}\label{cbhintanimationplugindrawhintrect} \membersection{cbHintAnimationPlugin::DrawHintRect}\label{cbhintanimationplugindrawhintrect}
\func{void}{DrawHintRect}{\param{wxRect\& }{rect}, \param{bool }{isInClientRect}} \func{void}{DrawHintRect}{\param{wxRect\& }{rect}, \param{bool }{isInClientRect}}
Internal function for drawing a hint rectangle.
\membersection{cbHintAnimationPlugin::EraseHintRect}\label{cbhintanimationpluginerasehintrect} \membersection{cbHintAnimationPlugin::EraseHintRect}\label{cbhintanimationpluginerasehintrect}
\func{void}{EraseHintRect}{\param{wxRect\& }{rect}, \param{bool }{isInClientRect}} \func{void}{EraseHintRect}{\param{wxRect\& }{rect}, \param{bool }{isInClientRect}}
Internal function for erasing a hint rectangle.
\membersection{cbHintAnimationPlugin::FinishTracking}\label{cbhintanimationpluginfinishtracking} \membersection{cbHintAnimationPlugin::FinishTracking}\label{cbhintanimationpluginfinishtracking}
\func{void}{FinishTracking}{\void} \func{void}{FinishTracking}{\void}
Internal function for finishing tracking.
\membersection{cbHintAnimationPlugin::OnDrawHintRect}\label{cbhintanimationpluginondrawhintrect} \membersection{cbHintAnimationPlugin::OnDrawHintRect}\label{cbhintanimationpluginondrawhintrect}
\func{void}{OnDrawHintRect}{\param{cbDrawHintRectEvent\& }{event}} \func{void}{OnDrawHintRect}{\param{cbDrawHintRectEvent\& }{event}}
Event handler respoding to hint draw events.
\membersection{cbHintAnimationPlugin::RectToScr}\label{cbhintanimationpluginrecttoscr} \membersection{cbHintAnimationPlugin::RectToScr}\label{cbhintanimationpluginrecttoscr}
\func{void}{RectToScr}{\param{wxRect\& }{frameRect}, \param{wxRect\& }{scrRect}} \func{void}{RectToScr}{\param{wxRect\& }{frameRect}, \param{wxRect\& }{scrRect}}
Internal function for translating coordinates.
\membersection{cbHintAnimationPlugin::StartTracking}\label{cbhintanimationpluginstarttracking} \membersection{cbHintAnimationPlugin::StartTracking}\label{cbhintanimationpluginstarttracking}
@@ -64,4 +89,5 @@
speed is constant. Default: TRUE speed is constant. Default: TRUE
TBD:: get/set methods for above members TBD:: get/set methods for above members
Internal function for starting tracking.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% hintanimpl.h at 05/Jan/02 22:50:57 % hintanimpl.h at 21/Jan/02 21:14:19
% %
\section{\class{cbHintAnimTimer}}\label{cbhintanimtimer} \section{\class{cbHintAnimTimer}}\label{cbhintanimtimer}
A private helper class.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{wxTimer}{wxtimer} \helpref{wxTimer}{wxtimer}
\wxheading{Include files}
<hintanimpl.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:00 % controlbar.h at 21/Jan/02 21:14:15
% %
\section{\class{cbInsertBarEvent}}\label{cbinsertbarevent} \section{\class{cbInsertBarEvent}}\label{cbinsertbarevent}
Class for bar insertion events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{}{cbInsertBarEvent}{\param{cbBarInfo* }{pBar}, \param{cbRowInfo* }{pIntoRow}, \param{cbDockPane* }{pPane}} \func{}{cbInsertBarEvent}{\param{cbBarInfo* }{pBar}, \param{cbRowInfo* }{pIntoRow}, \param{cbDockPane* }{pPane}}
Constructor, taking bar information, row information, and pane.

View File

@@ -1,18 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:00 % controlbar.h at 21/Jan/02 21:14:15
% %
\section{\class{cbLayoutRowEvent}}\label{cblayoutrowevent} \section{\class{cbLayoutRowEvent}}\label{cblayoutrowevent}
bar/row events category Class for single row layout events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -22,3 +26,5 @@ bar/row events category
\func{}{cbLayoutRowEvent}{\param{cbRowInfo* }{pRow}, \param{cbDockPane* }{pPane}} \func{}{cbLayoutRowEvent}{\param{cbRowInfo* }{pRow}, \param{cbDockPane* }{pPane}}
Constructor, taking row information and pane.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:00 % controlbar.h at 21/Jan/02 21:14:15
% %
\section{\class{cbLayoutRowsEvent}}\label{cblayoutrowsevent} \section{\class{cbLayoutRowsEvent}}\label{cblayoutrowsevent}
Class for multiple rows layout events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{}{cbLayoutRowsEvent}{\param{cbDockPane* }{pPane}} \func{}{cbLayoutRowsEvent}{\param{cbDockPane* }{pPane}}
Constructor, taking pane.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:00 % controlbar.h at 21/Jan/02 21:14:15
% %
\section{\class{cbLeftDClickEvent}}\label{cbleftdclickevent} \section{\class{cbLeftDClickEvent}}\label{cbleftdclickevent}
Class for mouse left double click events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{}{cbLeftDClickEvent}{\param{const wxPoint\& }{pos}, \param{cbDockPane* }{pPane}} \func{}{cbLeftDClickEvent}{\param{const wxPoint\& }{pos}, \param{cbDockPane* }{pPane}}
Constructor, taking mouse position and pane.

View File

@@ -1,18 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:50:59 % controlbar.h at 21/Jan/02 21:14:15
% %
\section{\class{cbLeftDownEvent}}\label{cbleftdownevent} \section{\class{cbLeftDownEvent}}\label{cbleftdownevent}
event classes, for each corresponding event type (24 currnetly...uhh) **mouse-events category Class for mouse left down events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -22,3 +26,5 @@ event classes, for each corresponding event type (24 currnetly...uhh) **mouse-ev
\func{}{cbLeftDownEvent}{\param{const wxPoint\& }{pos}, \param{cbDockPane* }{pPane}} \func{}{cbLeftDownEvent}{\param{const wxPoint\& }{pos}, \param{cbDockPane* }{pPane}}
Constructor, taking mouse position and pane.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:50:59 % controlbar.h at 21/Jan/02 21:14:15
% %
\section{\class{cbLeftUpEvent}}\label{cbleftupevent} \section{\class{cbLeftUpEvent}}\label{cbleftupevent}
Class for mouse left up events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{}{cbLeftUpEvent}{\param{const wxPoint\& }{pos}, \param{cbDockPane* }{pPane}} \func{}{cbLeftUpEvent}{\param{const wxPoint\& }{pos}, \param{cbDockPane* }{pPane}}
Constructor, taking mouse position and pane.

View File

@@ -1,15 +1,23 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% toolwnd.h at 05/Jan/02 22:50:58 % toolwnd.h at 21/Jan/02 21:14:17
% %
\section{\class{cbMiniButton}}\label{cbminibutton} \section{\class{cbMiniButton}}\label{cbminibutton}
cbMiniButton is the base class for a small button that can be placed in a wxToolWindow
titlebar.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{wxObject}{wxobject} \helpref{wxObject}{wxobject}
\wxheading{Include files}
<toolwnd.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,58 +27,83 @@
\func{}{cbMiniButton}{\void} \func{}{cbMiniButton}{\void}
Default constructor.
\membersection{cbMiniButton::Draw}\label{cbminibuttondraw} \membersection{cbMiniButton::Draw}\label{cbminibuttondraw}
\func{void}{Draw}{\param{wxDC\& }{dc}} \func{void}{Draw}{\param{wxDC\& }{dc}}
Draws the button. Override this to implement
the desired appearance.
\membersection{cbMiniButton::Enable}\label{cbminibuttonenable} \membersection{cbMiniButton::Enable}\label{cbminibuttonenable}
\func{void}{Enable}{\param{bool }{enable}} \func{void}{Enable}{\param{bool }{enable}}
Enable or disable the button.
\membersection{cbMiniButton::HitTest}\label{cbminibuttonhittest} \membersection{cbMiniButton::HitTest}\label{cbminibuttonhittest}
\func{bool}{HitTest}{\param{const wxPoint\& }{pos}} \func{bool}{HitTest}{\param{const wxPoint\& }{pos}}
Returns TRUE if the given position was over the button.
\membersection{cbMiniButton::IsPressed}\label{cbminibuttonispressed} \membersection{cbMiniButton::IsPressed}\label{cbminibuttonispressed}
\func{bool}{IsPressed}{\void} \func{bool}{IsPressed}{\void}
Returns TRUE if this button is pressed.
\membersection{cbMiniButton::OnLeftDown}\label{cbminibuttononleftdown} \membersection{cbMiniButton::OnLeftDown}\label{cbminibuttononleftdown}
\func{void}{OnLeftDown}{\param{const wxPoint\& }{pos}} \func{void}{OnLeftDown}{\param{const wxPoint\& }{pos}}
Responds to a left down event.
\membersection{cbMiniButton::OnLeftUp}\label{cbminibuttononleftup} \membersection{cbMiniButton::OnLeftUp}\label{cbminibuttononleftup}
\func{void}{OnLeftUp}{\param{const wxPoint\& }{pos}} \func{void}{OnLeftUp}{\param{const wxPoint\& }{pos}}
Responds to a left up event.
\membersection{cbMiniButton::OnMotion}\label{cbminibuttononmotion} \membersection{cbMiniButton::OnMotion}\label{cbminibuttononmotion}
\func{void}{OnMotion}{\param{const wxPoint\& }{pos}} \func{void}{OnMotion}{\param{const wxPoint\& }{pos}}
Responds to a mouse move event.
\membersection{cbMiniButton::Refresh}\label{cbminibuttonrefresh} \membersection{cbMiniButton::Refresh}\label{cbminibuttonrefresh}
\func{void}{Refresh}{\void} \func{void}{Refresh}{\void}
Refreshes the button.
\membersection{cbMiniButton::Reset}\label{cbminibuttonreset} \membersection{cbMiniButton::Reset}\label{cbminibuttonreset}
\func{void}{Reset}{\void} \func{void}{Reset}{\void}
Reset the button.
\membersection{cbMiniButton::SetPos}\label{cbminibuttonsetpos} \membersection{cbMiniButton::SetPos}\label{cbminibuttonsetpos}
\func{void}{SetPos}{\param{const wxPoint\& }{pos}} \func{void}{SetPos}{\param{const wxPoint\& }{pos}}
Set the position of the button.
\membersection{cbMiniButton::WasClicked}\label{cbminibuttonwasclicked} \membersection{cbMiniButton::WasClicked}\label{cbminibuttonwasclicked}
\func{bool}{WasClicked}{\void} \func{bool}{WasClicked}{\void}
Returns TRUE if the button was clicked.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:00 % controlbar.h at 21/Jan/02 21:14:15
% %
\section{\class{cbMotionEvent}}\label{cbmotionevent} \section{\class{cbMotionEvent}}\label{cbmotionevent}
Class for mouse motion events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{}{cbMotionEvent}{\param{const wxPoint\& }{pos}, \param{cbDockPane* }{pPane}} \func{}{cbMotionEvent}{\param{const wxPoint\& }{pos}, \param{cbDockPane* }{pPane}}
Constructor, taking mouse position and pane.

View File

@@ -1,23 +1,27 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% panedrawpl.h at 05/Jan/02 22:50:57 % panedrawpl.h at 21/Jan/02 21:14:19
% %
\section{\class{cbPaneDrawPlugin}}\label{cbpanedrawplugin} \section{\class{cbPaneDrawPlugin}}\label{cbpanedrawplugin}
Simple, but all-in-one plugin implementation. Resembles look \& feel of Simple but all-in-one plugin implementation. Resembles the look and feel of
to MFC control-bars. Handles painting of pane and items in it. to MFC control-bars. The class handles painting of the pane and the items in it;
Fires bar/layout customization event, when user right-clicks bar/pane. it generates bar/layout customization events, when the user right-clicks the bar/pane.
Hooking an instance of this and row-layouting plugins per each pane, Hooking an instance of this and row-layout plugins for each pane
would be enough for the frame layout to function properly. would be enough for the frame layout to function properly
(they are plugged in autimatically by wxFrameLayout class) (they are plugged in automatically by the wxFrameLayout class).
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginBase}{cbpluginbase} \helpref{cbPluginBase}{cbpluginbase}
\wxheading{Include files}
<panedrawpl.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -27,155 +31,213 @@ Simple, but all-in-one plugin implementation. Resembles look \& feel of
\func{}{cbPaneDrawPlugin}{\param{wxFrameLayout* }{pPanel}, \param{int }{paneMask = wxALL\_PANES}} \func{}{cbPaneDrawPlugin}{\param{wxFrameLayout* }{pPanel}, \param{int }{paneMask = wxALL\_PANES}}
Constructor taking frame layout pane and a pane mask.
\func{}{cbPaneDrawPlugin}{\void} \func{}{cbPaneDrawPlugin}{\void}
Default constructor.
\membersection{cbPaneDrawPlugin::\destruct{cbPaneDrawPlugin}}\label{cbpanedrawplugindtor} \membersection{cbPaneDrawPlugin::\destruct{cbPaneDrawPlugin}}\label{cbpanedrawplugindtor}
\func{}{\destruct{cbPaneDrawPlugin}}{\void} \func{}{\destruct{cbPaneDrawPlugin}}{\void}
Destructor.
\membersection{cbPaneDrawPlugin::Clone}\label{cbpanedrawpluginclone} \membersection{cbPaneDrawPlugin::Clone}\label{cbpanedrawpluginclone}
\func{cbPluginBase*}{Clone}{\void} \func{cbPluginBase*}{Clone}{\void}
Clone function, returning a new instance of this class.
\membersection{cbPaneDrawPlugin::DrawBarInnerShadeRect}\label{cbpanedrawplugindrawbarinnershaderect} \membersection{cbPaneDrawPlugin::DrawBarInnerShadeRect}\label{cbpanedrawplugindrawbarinnershaderect}
\func{void}{DrawBarInnerShadeRect}{\param{cbBarInfo* }{pBar}, \param{wxDC\& }{dc}} \func{void}{DrawBarInnerShadeRect}{\param{cbBarInfo* }{pBar}, \param{wxDC\& }{dc}}
Internal helper: draws the inner bar shading.
\membersection{cbPaneDrawPlugin::DrawDraggedHandle}\label{cbpanedrawplugindrawdraggedhandle} \membersection{cbPaneDrawPlugin::DrawDraggedHandle}\label{cbpanedrawplugindrawdraggedhandle}
\func{void}{DrawDraggedHandle}{\param{const wxPoint\& }{pos}, \param{cbDockPane\& }{pane}} \func{void}{DrawDraggedHandle}{\param{const wxPoint\& }{pos}, \param{cbDockPane\& }{pane}}
helpers Internal helper: draws the dragged handle.
\membersection{cbPaneDrawPlugin::DrawLowerRowHandle}\label{cbpanedrawplugindrawlowerrowhandle} \membersection{cbPaneDrawPlugin::DrawLowerRowHandle}\label{cbpanedrawplugindrawlowerrowhandle}
\func{void}{DrawLowerRowHandle}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}} \func{void}{DrawLowerRowHandle}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}}
Internal helper: draws the lower row handle.
\membersection{cbPaneDrawPlugin::DrawLowerRowShades}\label{cbpanedrawplugindrawlowerrowshades} \membersection{cbPaneDrawPlugin::DrawLowerRowShades}\label{cbpanedrawplugindrawlowerrowshades}
\func{void}{DrawLowerRowShades}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}, \param{int }{level}} \func{void}{DrawLowerRowShades}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}, \param{int }{level}}
Internal helper: draws the lower row shading.
\membersection{cbPaneDrawPlugin::DrawPaneShade}\label{cbpanedrawplugindrawpaneshade} \membersection{cbPaneDrawPlugin::DrawPaneShade}\label{cbpanedrawplugindrawpaneshade}
\func{void}{DrawPaneShade}{\param{wxDC\& }{dc}, \param{int }{alignment}} \func{void}{DrawPaneShade}{\param{wxDC\& }{dc}, \param{int }{alignment}}
Internal helper: draws the pane shading.
\membersection{cbPaneDrawPlugin::DrawPaneShadeForRow}\label{cbpanedrawplugindrawpaneshadeforrow} \membersection{cbPaneDrawPlugin::DrawPaneShadeForRow}\label{cbpanedrawplugindrawpaneshadeforrow}
\func{void}{DrawPaneShadeForRow}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}} \func{void}{DrawPaneShadeForRow}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}}
Internal helper: draws the pane shading for a row.
\membersection{cbPaneDrawPlugin::DrawShade}\label{cbpanedrawplugindrawshade} \membersection{cbPaneDrawPlugin::DrawShade}\label{cbpanedrawplugindrawshade}
\func{void}{DrawShade}{\param{int }{level}, \param{wxRect\& }{rect}, \param{int }{alignment}, \param{wxDC\& }{dc}} \func{void}{DrawShade}{\param{int }{level}, \param{wxRect\& }{rect}, \param{int }{alignment}, \param{wxDC\& }{dc}}
Internal helper: draws shading.
\membersection{cbPaneDrawPlugin::DrawShade1}\label{cbpanedrawplugindrawshade1} \membersection{cbPaneDrawPlugin::DrawShade1}\label{cbpanedrawplugindrawshade1}
\func{void}{DrawShade1}{\param{int }{level}, \param{wxRect\& }{rect}, \param{int }{alignment}, \param{wxDC\& }{dc}} \func{void}{DrawShade1}{\param{int }{level}, \param{wxRect\& }{rect}, \param{int }{alignment}, \param{wxDC\& }{dc}}
Internal helper: draws shading.
\membersection{cbPaneDrawPlugin::DrawUpperRowHandle}\label{cbpanedrawplugindrawupperrowhandle} \membersection{cbPaneDrawPlugin::DrawUpperRowHandle}\label{cbpanedrawplugindrawupperrowhandle}
\func{void}{DrawUpperRowHandle}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}} \func{void}{DrawUpperRowHandle}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}}
Internal helper: draws the upper row handle.
\membersection{cbPaneDrawPlugin::DrawUpperRowShades}\label{cbpanedrawplugindrawupperrowshades} \membersection{cbPaneDrawPlugin::DrawUpperRowShades}\label{cbpanedrawplugindrawupperrowshades}
\func{void}{DrawUpperRowShades}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}, \param{int }{level}} \func{void}{DrawUpperRowShades}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}, \param{int }{level}}
Internal helper: draws the upper row shading.
\membersection{cbPaneDrawPlugin::OnDrawBarDecorations}\label{cbpanedrawpluginondrawbardecorations} \membersection{cbPaneDrawPlugin::OnDrawBarDecorations}\label{cbpanedrawpluginondrawbardecorations}
\func{void}{OnDrawBarDecorations}{\param{cbDrawBarDecorEvent\& }{event}} \func{void}{OnDrawBarDecorations}{\param{cbDrawBarDecorEvent\& }{event}}
Handler for draw bar decorations events.
\membersection{cbPaneDrawPlugin::OnDrawBarHandles}\label{cbpanedrawpluginondrawbarhandles} \membersection{cbPaneDrawPlugin::OnDrawBarHandles}\label{cbpanedrawpluginondrawbarhandles}
\func{void}{OnDrawBarHandles}{\param{cbDrawBarHandlesEvent\& }{event}} \func{void}{OnDrawBarHandles}{\param{cbDrawBarHandlesEvent\& }{event}}
Handler for draw bar handles events.
\membersection{cbPaneDrawPlugin::OnDrawPaneBackground}\label{cbpanedrawpluginondrawpanebackground} \membersection{cbPaneDrawPlugin::OnDrawPaneBackground}\label{cbpanedrawpluginondrawpanebackground}
\func{void}{OnDrawPaneBackground}{\param{cbDrawPaneBkGroundEvent\& }{event}} \func{void}{OnDrawPaneBackground}{\param{cbDrawPaneBkGroundEvent\& }{event}}
Handler for draw pane background events.
\membersection{cbPaneDrawPlugin::OnDrawPaneDecorations}\label{cbpanedrawpluginondrawpanedecorations} \membersection{cbPaneDrawPlugin::OnDrawPaneDecorations}\label{cbpanedrawpluginondrawpanedecorations}
\func{void}{OnDrawPaneDecorations}{\param{cbDrawPaneDecorEvent\& }{event}} \func{void}{OnDrawPaneDecorations}{\param{cbDrawPaneDecorEvent\& }{event}}
Handler for draw pane decoration events.
\membersection{cbPaneDrawPlugin::OnDrawRowBackground}\label{cbpanedrawpluginondrawrowbackground} \membersection{cbPaneDrawPlugin::OnDrawRowBackground}\label{cbpanedrawpluginondrawrowbackground}
\func{void}{OnDrawRowBackground}{\param{cbDrawRowBkGroundEvent\& }{event}} \func{void}{OnDrawRowBackground}{\param{cbDrawRowBkGroundEvent\& }{event}}
Handler for draw row background events.
\membersection{cbPaneDrawPlugin::OnDrawRowDecorations}\label{cbpanedrawpluginondrawrowdecorations} \membersection{cbPaneDrawPlugin::OnDrawRowDecorations}\label{cbpanedrawpluginondrawrowdecorations}
\func{void}{OnDrawRowDecorations}{\param{cbDrawRowDecorEvent\& }{event}} \func{void}{OnDrawRowDecorations}{\param{cbDrawRowDecorEvent\& }{event}}
Handler for draw row decoration events.
\membersection{cbPaneDrawPlugin::OnDrawRowHandles}\label{cbpanedrawpluginondrawrowhandles} \membersection{cbPaneDrawPlugin::OnDrawRowHandles}\label{cbpanedrawpluginondrawrowhandles}
\func{void}{OnDrawRowHandles}{\param{cbDrawRowHandlesEvent\& }{event}} \func{void}{OnDrawRowHandles}{\param{cbDrawRowHandlesEvent\& }{event}}
Handler for draw row handles events.
\membersection{cbPaneDrawPlugin::OnFinishDrawInArea}\label{cbpanedrawpluginonfinishdrawinarea} \membersection{cbPaneDrawPlugin::OnFinishDrawInArea}\label{cbpanedrawpluginonfinishdrawinarea}
\func{void}{OnFinishDrawInArea}{\param{cbFinishDrawInAreaEvent\& }{event}} \func{void}{OnFinishDrawInArea}{\param{cbFinishDrawInAreaEvent\& }{event}}
Handler for finish draw in area events.
\membersection{cbPaneDrawPlugin::OnLButtonDown}\label{cbpanedrawpluginonlbuttondown} \membersection{cbPaneDrawPlugin::OnLButtonDown}\label{cbpanedrawpluginonlbuttondown}
\func{void}{OnLButtonDown}{\param{cbLeftDownEvent\& }{event}} \func{void}{OnLButtonDown}{\param{cbLeftDownEvent\& }{event}}
handlers for plugin-events Handler for left mouse button down events.
\membersection{cbPaneDrawPlugin::OnLButtonUp}\label{cbpanedrawpluginonlbuttonup} \membersection{cbPaneDrawPlugin::OnLButtonUp}\label{cbpanedrawpluginonlbuttonup}
\func{void}{OnLButtonUp}{\param{cbLeftUpEvent\& }{event}} \func{void}{OnLButtonUp}{\param{cbLeftUpEvent\& }{event}}
Handler for left mouse button up events.
\membersection{cbPaneDrawPlugin::OnLDblClick}\label{cbpanedrawpluginonldblclick} \membersection{cbPaneDrawPlugin::OnLDblClick}\label{cbpanedrawpluginonldblclick}
\func{void}{OnLDblClick}{\param{cbLeftDClickEvent\& }{event}} \func{void}{OnLDblClick}{\param{cbLeftDClickEvent\& }{event}}
Handler for left double-click mouse button down events.
\membersection{cbPaneDrawPlugin::OnMouseMove}\label{cbpanedrawpluginonmousemove} \membersection{cbPaneDrawPlugin::OnMouseMove}\label{cbpanedrawpluginonmousemove}
\func{void}{OnMouseMove}{\param{cbMotionEvent\& }{event}} \func{void}{OnMouseMove}{\param{cbMotionEvent\& }{event}}
Handler for mouse move events.
\membersection{cbPaneDrawPlugin::OnRButtonUp}\label{cbpanedrawpluginonrbuttonup} \membersection{cbPaneDrawPlugin::OnRButtonUp}\label{cbpanedrawpluginonrbuttonup}
\func{void}{OnRButtonUp}{\param{cbRightUpEvent\& }{event}} \func{void}{OnRButtonUp}{\param{cbRightUpEvent\& }{event}}
Handler for right mouse button up events.
\membersection{cbPaneDrawPlugin::OnSizeBarWindow}\label{cbpanedrawpluginonsizebarwindow} \membersection{cbPaneDrawPlugin::OnSizeBarWindow}\label{cbpanedrawpluginonsizebarwindow}
\func{void}{OnSizeBarWindow}{\param{cbSizeBarWndEvent\& }{event}} \func{void}{OnSizeBarWindow}{\param{cbSizeBarWndEvent\& }{event}}
Handler for bar size events.
\membersection{cbPaneDrawPlugin::OnStartDrawInArea}\label{cbpanedrawpluginonstartdrawinarea} \membersection{cbPaneDrawPlugin::OnStartDrawInArea}\label{cbpanedrawpluginonstartdrawinarea}
\func{void}{OnStartDrawInArea}{\param{cbStartDrawInAreaEvent\& }{event}} \func{void}{OnStartDrawInArea}{\param{cbStartDrawInAreaEvent\& }{event}}
Handler for start draw in area events.
\membersection{cbPaneDrawPlugin::SetDarkPixel}\label{cbpanedrawpluginsetdarkpixel} \membersection{cbPaneDrawPlugin::SetDarkPixel}\label{cbpanedrawpluginsetdarkpixel}
\func{void}{SetDarkPixel}{\param{int }{x}, \param{int }{y}, \param{wxDC\& }{dc}} \func{void}{SetDarkPixel}{\param{int }{x}, \param{int }{y}, \param{wxDC\& }{dc}}
Internal helper: sets a dark pixel at the given location.
\membersection{cbPaneDrawPlugin::SetLightPixel}\label{cbpanedrawpluginsetlightpixel} \membersection{cbPaneDrawPlugin::SetLightPixel}\label{cbpanedrawpluginsetlightpixel}
\func{void}{SetLightPixel}{\param{int }{x}, \param{int }{y}, \param{wxDC\& }{dc}} \func{void}{SetLightPixel}{\param{int }{x}, \param{int }{y}, \param{wxDC\& }{dc}}
Internal helper: sets a light pixel at the given location.

View File

@@ -1,18 +1,25 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:50:59 % controlbar.h at 21/Jan/02 21:14:14
% %
\section{\class{cbPluginBase}}\label{cbpluginbase} \section{\class{cbPluginBase}}\label{cbpluginbase}
abstract base class for all control-bar related plugins Abstract base class for all control-bar related plugins.
Note: pointer positions of mouse events sent to plugins
are always in the pane's coordinates (the pane to which
this plugin is hooked).
\wxheading{Derived from} \wxheading{Derived from}
\helpref{wxEvtHandler}{wxevthandler} \helpref{wxEvtHandler}{wxevthandler}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -22,44 +29,49 @@ abstract base class for all control-bar related plugins
\func{}{cbPluginBase}{\param{wxFrameLayout* }{pPanel}, \param{int }{paneMask = wxALL\_PANES}} \func{}{cbPluginBase}{\param{wxFrameLayout* }{pPanel}, \param{int }{paneMask = wxALL\_PANES}}
Constructor taking layout panel and a mask.
\func{}{cbPluginBase}{\void} \func{}{cbPluginBase}{\void}
Default constructor.
\membersection{cbPluginBase::\destruct{cbPluginBase}}\label{cbpluginbasedtor} \membersection{cbPluginBase::\destruct{cbPluginBase}}\label{cbpluginbasedtor}
\func{}{\destruct{cbPluginBase}}{\void} \func{}{\destruct{cbPluginBase}}{\void}
NOTE:: pointer positions of mouse-events sent to plugins Destructor. Destroys the whole plugin chain of connected plugins.
are always in pane's coordinates (pane's to which
this plugin is hooked)
destroys the whole plugin chain of connected plagins
\membersection{cbPluginBase::GetPaneMask}\label{cbpluginbasegetpanemask} \membersection{cbPluginBase::GetPaneMask}\label{cbpluginbasegetpanemask}
\func{int}{GetPaneMask}{\void} \func{int}{GetPaneMask}{\void}
Returns the pane mask.
\membersection{cbPluginBase::IsReady}\label{cbpluginbaseisready} \membersection{cbPluginBase::IsReady}\label{cbpluginbaseisready}
\func{bool}{IsReady}{\void} \func{bool}{IsReady}{\void}
Returns TRUE if the plugin is ready to receive events.
\membersection{cbPluginBase::OnInitPlugin}\label{cbpluginbaseoninitplugin} \membersection{cbPluginBase::OnInitPlugin}\label{cbpluginbaseoninitplugin}
\func{void}{OnInitPlugin}{\void} \func{void}{OnInitPlugin}{\void}
override this method to do plugin-specific initialization Override this method to do plugin-specific initialization.
(at this point plugin is already attached to the frame layout, At this point plugin is already attached to the frame layout,
and pane masks are set) and pane masks are set.
\membersection{cbPluginBase::ProcessEvent}\label{cbpluginbaseprocessevent} \membersection{cbPluginBase::ProcessEvent}\label{cbpluginbaseprocessevent}
\func{bool}{ProcessEvent}{\param{wxEvent\& }{event}} \func{bool}{ProcessEvent}{\param{wxEvent\& }{event}}
overriden, to determine whether the target pane specified in the Overridden to determine whether the target pane specified in the
event, matches the pane mask of this plugin (specific plugins event matches the pane mask of this plugin (specific plugins
do not override this method) do not override this method).

View File

@@ -1,22 +1,23 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:50:59 % controlbar.h at 21/Jan/02 21:14:14
% %
\section{\class{cbPluginEvent}}\label{cbpluginevent} \section{\class{cbPluginEvent}}\label{cbpluginevent}
------------------------------------------------------------ Base class for all control-bar plugin events.
"API" for developing custom plugins of Frame Layout Engine This is not a dynamically-creatable class.
TODO:: documentation
------------------------------------------------------------
base class for all control-bar plugin events
\wxheading{Derived from} \wxheading{Derived from}
\helpref{wxEvent}{wxevent} \helpref{wxEvent}{wxevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -26,18 +27,12 @@
\func{}{cbPluginEvent}{\param{wxEventType }{eventType}, \param{cbDockPane* }{pPane}} \func{}{cbPluginEvent}{\param{wxEventType }{eventType}, \param{cbDockPane* }{pPane}}
Constructor, taking event type and pane.
\membersection{cbPluginEvent::Clone}\label{cbplugineventclone} \membersection{cbPluginEvent::Clone}\label{cbplugineventclone}
\constfunc{wxEvent*}{Clone}{\void} \constfunc{wxEvent*}{Clone}{\void}
OLD STUFF:: Not used, but required.
// FOR NOW FOR NOW:: all-in-one plugin event structure
wxNode* mpObjNode;
wxNode* mpObjNodeAux;
wxPoint mPos;
wxSize mSize;
wxDC* mpDC;
bool mAuxBoolVal;
Not used, but required

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:00 % controlbar.h at 21/Jan/02 21:14:15
% %
\section{\class{cbRemoveBarEvent}}\label{cbremovebarevent} \section{\class{cbRemoveBarEvent}}\label{cbremovebarevent}
Class for bar removal events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{}{cbRemoveBarEvent}{\param{cbBarInfo* }{pBar}, \param{cbDockPane* }{pPane}} \func{}{cbRemoveBarEvent}{\param{cbBarInfo* }{pBar}, \param{cbDockPane* }{pPane}}
Constructor, taking bar information and pane.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:00 % controlbar.h at 21/Jan/02 21:14:15
% %
\section{\class{cbResizeBarEvent}}\label{cbresizebarevent} \section{\class{cbResizeBarEvent}}\label{cbresizebarevent}
Class for bar resize events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{}{cbResizeBarEvent}{\param{cbBarInfo* }{pBar}, \param{cbRowInfo* }{pRow}, \param{cbDockPane* }{pPane}} \func{}{cbResizeBarEvent}{\param{cbBarInfo* }{pBar}, \param{cbRowInfo* }{pRow}, \param{cbDockPane* }{pPane}}
Constructor, taking bar information, row information, and pane.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:00 % controlbar.h at 21/Jan/02 21:14:15
% %
\section{\class{cbResizeRowEvent}}\label{cbresizerowevent} \section{\class{cbResizeRowEvent}}\label{cbresizerowevent}
Class for row resize events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{}{cbResizeRowEvent}{\param{cbRowInfo* }{pRow}, \param{int }{handleOfs}, \param{bool }{forUpperHandle}, \param{cbDockPane* }{pPane}} \func{}{cbResizeRowEvent}{\param{cbRowInfo* }{pRow}, \param{int }{handleOfs}, \param{bool }{forUpperHandle}, \param{cbDockPane* }{pPane}}
Constructor, taking row information, two parameters of currently unknown use, and pane.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:00 % controlbar.h at 21/Jan/02 21:14:15
% %
\section{\class{cbRightDownEvent}}\label{cbrightdownevent} \section{\class{cbRightDownEvent}}\label{cbrightdownevent}
Class for mouse right down events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{}{cbRightDownEvent}{\param{const wxPoint\& }{pos}, \param{cbDockPane* }{pPane}} \func{}{cbRightDownEvent}{\param{const wxPoint\& }{pos}, \param{cbDockPane* }{pPane}}
Constructor, taking mouse position and pane.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:00 % controlbar.h at 21/Jan/02 21:14:15
% %
\section{\class{cbRightUpEvent}}\label{cbrightupevent} \section{\class{cbRightUpEvent}}\label{cbrightupevent}
Class for mouse right up events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{}{cbRightUpEvent}{\param{const wxPoint\& }{pos}, \param{cbDockPane* }{pPane}} \func{}{cbRightUpEvent}{\param{const wxPoint\& }{pos}, \param{cbDockPane* }{pPane}}
Constructor, taking mouse position and pane.

View File

@@ -1,21 +1,25 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% rowdragpl.h at 05/Jan/02 22:50:57 % rowdragpl.h at 21/Jan/02 21:14:19
% %
\section{\class{cbRowDragPlugin}}\label{cbrowdragplugin} \section{\class{cbRowDragPlugin}}\label{cbrowdragplugin}
Plugin adds row-dragging fuctionality to the pane. This plugin adds row-dragging functionality to the pane.
Handles mouse/movement and pane-background erasing plugin-events. It handles mouse movement and pane background-erasing plugin events.
Behaviour and appearence resembles drag \& drop posotioning The behaviour and appearance resembles drag and drop positioning
of the toolbar-rows int Netscape Comunicator 4.xx. of the toolbar rows in Netscape Communicator 4.xx.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginBase}{cbpluginbase} \helpref{cbPluginBase}{cbpluginbase}
\wxheading{Include files}
<rowdragpl.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -25,229 +29,311 @@ Plugin adds row-dragging fuctionality to the pane.
\func{}{cbRowDragPlugin}{\param{wxFrameLayout* }{pLayout}, \param{int }{paneMask = wxALL\_PANES}} \func{}{cbRowDragPlugin}{\param{wxFrameLayout* }{pLayout}, \param{int }{paneMask = wxALL\_PANES}}
Constructor, taking paren layout frame and pane mask.
\func{}{cbRowDragPlugin}{\void} \func{}{cbRowDragPlugin}{\void}
Default constructor.
\membersection{cbRowDragPlugin::\destruct{cbRowDragPlugin}}\label{cbrowdragplugindtor} \membersection{cbRowDragPlugin::\destruct{cbRowDragPlugin}}\label{cbrowdragplugindtor}
\func{}{\destruct{cbRowDragPlugin}}{\void} \func{}{\destruct{cbRowDragPlugin}}{\void}
Destructor.
\membersection{cbRowDragPlugin::CaptureDCArea}\label{cbrowdragplugincapturedcarea} \membersection{cbRowDragPlugin::CaptureDCArea}\label{cbrowdragplugincapturedcarea}
\func{wxBitmap*}{CaptureDCArea}{\param{wxDC\& }{dc}, \param{wxRect\& }{area}} \func{wxBitmap*}{CaptureDCArea}{\param{wxDC\& }{dc}, \param{wxRect\& }{area}}
Helper for drag and drop.
\membersection{cbRowDragPlugin::CheckPrevItemInFocus}\label{cbrowdragplugincheckpreviteminfocus} \membersection{cbRowDragPlugin::CheckPrevItemInFocus}\label{cbrowdragplugincheckpreviteminfocus}
\func{void}{CheckPrevItemInFocus}{\param{cbRowInfo* }{pRow}, \param{int }{iconIdx}} \func{void}{CheckPrevItemInFocus}{\param{cbRowInfo* }{pRow}, \param{int }{iconIdx}}
Helper for drag and drop.
\membersection{cbRowDragPlugin::Clone}\label{cbrowdragpluginclone} \membersection{cbRowDragPlugin::Clone}\label{cbrowdragpluginclone}
\func{cbPluginBase*}{Clone}{\void} \func{cbPluginBase*}{Clone}{\void}
Clone function, returning a new instance of this class.
\membersection{cbRowDragPlugin::CollapseRow}\label{cbrowdragplugincollapserow} \membersection{cbRowDragPlugin::CollapseRow}\label{cbrowdragplugincollapserow}
\func{void}{CollapseRow}{\param{cbRowInfo* }{pRow}} \func{void}{CollapseRow}{\param{cbRowInfo* }{pRow}}
Helper for drag and drop.
\membersection{cbRowDragPlugin::Draw3DPattern}\label{cbrowdragplugindraw3dpattern} \membersection{cbRowDragPlugin::Draw3DPattern}\label{cbrowdragplugindraw3dpattern}
\func{void}{Draw3DPattern}{\param{wxRect\& }{inRect}, \param{wxDC\& }{dc}} \func{void}{Draw3DPattern}{\param{wxRect\& }{inRect}, \param{wxDC\& }{dc}}
Implements 'hard-coded metafile' for Netscape Navigator look.
\membersection{cbRowDragPlugin::Draw3DRect}\label{cbrowdragplugindraw3drect} \membersection{cbRowDragPlugin::Draw3DRect}\label{cbrowdragplugindraw3drect}
\func{void}{Draw3DRect}{\param{wxRect\& }{inRect}, \param{wxDC\& }{dc}, \param{wxBrush\& }{bkBrush}} \func{void}{Draw3DRect}{\param{wxRect\& }{inRect}, \param{wxDC\& }{dc}, \param{wxBrush\& }{bkBrush}}
Implements 'hard-coded metafile' for Netscape Navigator look.
\membersection{cbRowDragPlugin::DrawCollapsedRowIcon}\label{cbrowdragplugindrawcollapsedrowicon} \membersection{cbRowDragPlugin::DrawCollapsedRowIcon}\label{cbrowdragplugindrawcollapsedrowicon}
\func{void}{DrawCollapsedRowIcon}{\param{int }{index}, \param{wxDC\& }{dc}, \param{bool }{isHighlighted}} \func{void}{DrawCollapsedRowIcon}{\param{int }{index}, \param{wxDC\& }{dc}, \param{bool }{isHighlighted}}
overridables (appearence-depedent) Draws collapsed row icon (appearance-dependent).
\membersection{cbRowDragPlugin::DrawCollapsedRowsBorder}\label{cbrowdragplugindrawcollapsedrowsborder} \membersection{cbRowDragPlugin::DrawCollapsedRowsBorder}\label{cbrowdragplugindrawcollapsedrowsborder}
\func{void}{DrawCollapsedRowsBorder}{\param{wxDC\& }{dc}} \func{void}{DrawCollapsedRowsBorder}{\param{wxDC\& }{dc}}
Draws collapsed rows border (appearance-dependent).
\membersection{cbRowDragPlugin::DrawEmptyRow}\label{cbrowdragplugindrawemptyrow} \membersection{cbRowDragPlugin::DrawEmptyRow}\label{cbrowdragplugindrawemptyrow}
\func{void}{DrawEmptyRow}{\param{wxDC\& }{dc}, \param{wxRect\& }{rowBounds}} \func{void}{DrawEmptyRow}{\param{wxDC\& }{dc}, \param{wxRect\& }{rowBounds}}
Draws empty row (appearance-dependent).
\membersection{cbRowDragPlugin::DrawOrtoRomb}\label{cbrowdragplugindrawortoromb} \membersection{cbRowDragPlugin::DrawOrtoRomb}\label{cbrowdragplugindrawortoromb}
\func{void}{DrawOrtoRomb}{\param{wxRect\& }{inRect}, \param{wxDC\& }{dc}, \param{wxBrush\& }{bkBrush}} \func{void}{DrawOrtoRomb}{\param{wxRect\& }{inRect}, \param{wxDC\& }{dc}, \param{wxBrush\& }{bkBrush}}
Implements 'hard-coded metafile' for Netscape Navigator look.
\membersection{cbRowDragPlugin::DrawRectShade}\label{cbrowdragplugindrawrectshade} \membersection{cbRowDragPlugin::DrawRectShade}\label{cbrowdragplugindrawrectshade}
\func{void}{DrawRectShade}{\param{wxRect\& }{inRect}, \param{wxDC\& }{dc}, \param{int }{level}, \param{wxPen\& }{upperPen}, \param{wxPen\& }{lowerPen}} \func{void}{DrawRectShade}{\param{wxRect\& }{inRect}, \param{wxDC\& }{dc}, \param{int }{level}, \param{wxPen\& }{upperPen}, \param{wxPen\& }{lowerPen}}
Implements 'hard-coded metafile' for Netscape Navigator look.
\membersection{cbRowDragPlugin::DrawRomb}\label{cbrowdragplugindrawromb} \membersection{cbRowDragPlugin::DrawRomb}\label{cbrowdragplugindrawromb}
\func{void}{DrawRomb}{\param{wxRect\& }{inRect}, \param{wxDC\& }{dc}, \param{wxBrush\& }{bkBrush}} \func{void}{DrawRomb}{\param{wxRect\& }{inRect}, \param{wxDC\& }{dc}, \param{wxBrush\& }{bkBrush}}
Implements 'hard-coded metafile' for Netscape Navigator look.
\membersection{cbRowDragPlugin::DrawRombShades}\label{cbrowdragplugindrawrombshades} \membersection{cbRowDragPlugin::DrawRombShades}\label{cbrowdragplugindrawrombshades}
\func{void}{DrawRombShades}{\param{wxPoint\& }{p1}, \param{wxPoint\& }{p2}, \param{wxPoint\& }{p3}, \param{wxPoint\& }{p4}, \param{wxDC\& }{dc}} \func{void}{DrawRombShades}{\param{wxPoint\& }{p1}, \param{wxPoint\& }{p2}, \param{wxPoint\& }{p3}, \param{wxPoint\& }{p4}, \param{wxDC\& }{dc}}
Implements 'hard-coded metafile' for Netscape Navigator look.
\membersection{cbRowDragPlugin::DrawRowDragHint}\label{cbrowdragplugindrawrowdraghint} \membersection{cbRowDragPlugin::DrawRowDragHint}\label{cbrowdragplugindrawrowdraghint}
\func{void}{DrawRowDragHint}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}, \param{bool }{isHighlighted}} \func{void}{DrawRowDragHint}{\param{cbRowInfo* }{pRow}, \param{wxDC\& }{dc}, \param{bool }{isHighlighted}}
Draws row drag hint (appearance-dependent).
\membersection{cbRowDragPlugin::DrawRowsDragHintsBorder}\label{cbrowdragplugindrawrowsdraghintsborder} \membersection{cbRowDragPlugin::DrawRowsDragHintsBorder}\label{cbrowdragplugindrawrowsdraghintsborder}
\func{void}{DrawRowsDragHintsBorder}{\param{wxDC\& }{dc}} \func{void}{DrawRowsDragHintsBorder}{\param{wxDC\& }{dc}}
Draws rows drag hints border (appearance-dependent).
\membersection{cbRowDragPlugin::DrawTrianDown}\label{cbrowdragplugindrawtriandown} \membersection{cbRowDragPlugin::DrawTrianDown}\label{cbrowdragplugindrawtriandown}
\func{void}{DrawTrianDown}{\param{wxRect\& }{inRect}, \param{wxDC\& }{dc}} \func{void}{DrawTrianDown}{\param{wxRect\& }{inRect}, \param{wxDC\& }{dc}}
Implements 'hard-coded metafile' for Netscape Navigator look.
\membersection{cbRowDragPlugin::DrawTrianRight}\label{cbrowdragplugindrawtrianright} \membersection{cbRowDragPlugin::DrawTrianRight}\label{cbrowdragplugindrawtrianright}
\func{void}{DrawTrianRight}{\param{wxRect\& }{inRect}, \param{wxDC\& }{dc}} \func{void}{DrawTrianRight}{\param{wxRect\& }{inRect}, \param{wxDC\& }{dc}}
Implements 'hard-coded metafile' for Netscape Navigator look.
\membersection{cbRowDragPlugin::DrawTrianUp}\label{cbrowdragplugindrawtrianup} \membersection{cbRowDragPlugin::DrawTrianUp}\label{cbrowdragplugindrawtrianup}
\func{void}{DrawTrianUp}{\param{wxRect\& }{inRect}, \param{wxDC\& }{dc}} \func{void}{DrawTrianUp}{\param{wxRect\& }{inRect}, \param{wxDC\& }{dc}}
"hard-coded metafile" for NN-look Implements 'hard-coded metafile' for Netscape Navigator look.
\membersection{cbRowDragPlugin::ExpandRow}\label{cbrowdragpluginexpandrow} \membersection{cbRowDragPlugin::ExpandRow}\label{cbrowdragpluginexpandrow}
\func{void}{ExpandRow}{\param{int }{collapsedIconIdx}} \func{void}{ExpandRow}{\param{int }{collapsedIconIdx}}
Helper for drag and drop.
\membersection{cbRowDragPlugin::FinishOnScreenDraw}\label{cbrowdragpluginfinishonscreendraw} \membersection{cbRowDragPlugin::FinishOnScreenDraw}\label{cbrowdragpluginfinishonscreendraw}
\func{void}{FinishOnScreenDraw}{\void} \func{void}{FinishOnScreenDraw}{\void}
Helper for drag and drop.
\membersection{cbRowDragPlugin::GetCollapsedIconsPos}\label{cbrowdragplugingetcollapsediconspos} \membersection{cbRowDragPlugin::GetCollapsedIconsPos}\label{cbrowdragplugingetcollapsediconspos}
\func{int}{GetCollapsedIconsPos}{\void} \func{int}{GetCollapsedIconsPos}{\void}
Helper for drag and drop.
\membersection{cbRowDragPlugin::GetCollapsedInconRect}\label{cbrowdragplugingetcollapsedinconrect} \membersection{cbRowDragPlugin::GetCollapsedInconRect}\label{cbrowdragplugingetcollapsedinconrect}
\func{void}{GetCollapsedInconRect}{\param{int }{iconIdx}, \param{wxRect\& }{rect}} \func{void}{GetCollapsedInconRect}{\param{int }{iconIdx}, \param{wxRect\& }{rect}}
Helper for drag and drop.
\membersection{cbRowDragPlugin::GetCollapsedRowIconHeight}\label{cbrowdragplugingetcollapsedrowiconheight} \membersection{cbRowDragPlugin::GetCollapsedRowIconHeight}\label{cbrowdragplugingetcollapsedrowiconheight}
\func{int}{GetCollapsedRowIconHeight}{\void} \func{int}{GetCollapsedRowIconHeight}{\void}
Gets the collapsed row icon height.
\membersection{cbRowDragPlugin::GetFirstRow}\label{cbrowdragplugingetfirstrow} \membersection{cbRowDragPlugin::GetFirstRow}\label{cbrowdragplugingetfirstrow}
\func{cbRowInfo*}{GetFirstRow}{\void} \func{cbRowInfo*}{GetFirstRow}{\void}
Helper for drag and drop.
\membersection{cbRowDragPlugin::GetHRowsCountForPane}\label{cbrowdragplugingethrowscountforpane} \membersection{cbRowDragPlugin::GetHRowsCountForPane}\label{cbrowdragplugingethrowscountforpane}
\func{int}{GetHRowsCountForPane}{\param{cbDockPane* }{pPane}} \func{int}{GetHRowsCountForPane}{\param{cbDockPane* }{pPane}}
helpers for drag\&drop Helper for drag and drop.
\membersection{cbRowDragPlugin::GetRowDragHintWidth}\label{cbrowdragplugingetrowdraghintwidth} \membersection{cbRowDragPlugin::GetRowDragHintWidth}\label{cbrowdragplugingetrowdraghintwidth}
\func{int}{GetRowDragHintWidth}{\void} \func{int}{GetRowDragHintWidth}{\void}
Gets the row drag hint width.
\membersection{cbRowDragPlugin::GetRowHintRect}\label{cbrowdragplugingetrowhintrect} \membersection{cbRowDragPlugin::GetRowHintRect}\label{cbrowdragplugingetrowhintrect}
\func{void}{GetRowHintRect}{\param{cbRowInfo* }{pRow}, \param{wxRect\& }{rect}} \func{void}{GetRowHintRect}{\param{cbRowInfo* }{pRow}, \param{wxRect\& }{rect}}
Helper for drag and drop.
\membersection{cbRowDragPlugin::HitTestCollapsedRowIcon}\label{cbrowdragpluginhittestcollapsedrowicon} \membersection{cbRowDragPlugin::HitTestCollapsedRowIcon}\label{cbrowdragpluginhittestcollapsedrowicon}
\func{bool}{HitTestCollapsedRowIcon}{\param{int }{iconIdx}, \param{const wxPoint\& }{pos}} \func{bool}{HitTestCollapsedRowIcon}{\param{int }{iconIdx}, \param{const wxPoint\& }{pos}}
Test for the collapsed row icon position.
\membersection{cbRowDragPlugin::HitTestRowDragHint}\label{cbrowdragpluginhittestrowdraghint} \membersection{cbRowDragPlugin::HitTestRowDragHint}\label{cbrowdragpluginhittestrowdraghint}
\func{bool}{HitTestRowDragHint}{\param{cbRowInfo* }{pRow}, \param{const wxPoint\& }{pos}} \func{bool}{HitTestRowDragHint}{\param{cbRowInfo* }{pRow}, \param{const wxPoint\& }{pos}}
Test for the row drag hint position.
\membersection{cbRowDragPlugin::InsertDraggedRowBefore}\label{cbrowdragplugininsertdraggedrowbefore} \membersection{cbRowDragPlugin::InsertDraggedRowBefore}\label{cbrowdragplugininsertdraggedrowbefore}
\func{void}{InsertDraggedRowBefore}{\param{cbRowInfo* }{pBeforeRow}} \func{void}{InsertDraggedRowBefore}{\param{cbRowInfo* }{pBeforeRow}}
Helper for drag and drop.
\membersection{cbRowDragPlugin::ItemIsInFocus}\label{cbrowdragpluginitemisinfocus} \membersection{cbRowDragPlugin::ItemIsInFocus}\label{cbrowdragpluginitemisinfocus}
\func{bool}{ItemIsInFocus}{\void} \func{bool}{ItemIsInFocus}{\void}
Helper for drag and drop.
\membersection{cbRowDragPlugin::OnDrawPaneBackground}\label{cbrowdragpluginondrawpanebackground} \membersection{cbRowDragPlugin::OnDrawPaneBackground}\label{cbrowdragpluginondrawpanebackground}
\func{void}{OnDrawPaneBackground}{\param{cbDrawPaneDecorEvent\& }{event}} \func{void}{OnDrawPaneBackground}{\param{cbDrawPaneDecorEvent\& }{event}}
Handles pane drawing plugin events (appearance-independent logic).
\membersection{cbRowDragPlugin::OnInitPlugin}\label{cbrowdragpluginoninitplugin} \membersection{cbRowDragPlugin::OnInitPlugin}\label{cbrowdragpluginoninitplugin}
\func{void}{OnInitPlugin}{\void} \func{void}{OnInitPlugin}{\void}
Called to initialize this plugin.
\membersection{cbRowDragPlugin::OnLButtonDown}\label{cbrowdragpluginonlbuttondown} \membersection{cbRowDragPlugin::OnLButtonDown}\label{cbrowdragpluginonlbuttondown}
\func{void}{OnLButtonDown}{\param{cbLeftDownEvent\& }{event}} \func{void}{OnLButtonDown}{\param{cbLeftDownEvent\& }{event}}
Handles left button down plugin events (appearance-independent logic).
\membersection{cbRowDragPlugin::OnLButtonUp}\label{cbrowdragpluginonlbuttonup} \membersection{cbRowDragPlugin::OnLButtonUp}\label{cbrowdragpluginonlbuttonup}
\func{void}{OnLButtonUp}{\param{cbLeftUpEvent\& }{event}} \func{void}{OnLButtonUp}{\param{cbLeftUpEvent\& }{event}}
Handles left button up plugin events (appearance-independent logic).
\membersection{cbRowDragPlugin::OnMouseMove}\label{cbrowdragpluginonmousemove} \membersection{cbRowDragPlugin::OnMouseMove}\label{cbrowdragpluginonmousemove}
\func{void}{OnMouseMove}{\param{cbMotionEvent\& }{event}} \func{void}{OnMouseMove}{\param{cbMotionEvent\& }{event}}
handlers for plugin events (appearence-independent logic) Handles mouse move plugin events (appearance-independent logic).
\membersection{cbRowDragPlugin::PrepareForRowDrag}\label{cbrowdragpluginprepareforrowdrag} \membersection{cbRowDragPlugin::PrepareForRowDrag}\label{cbrowdragpluginprepareforrowdrag}
\func{void}{PrepareForRowDrag}{\void} \func{void}{PrepareForRowDrag}{\void}
Helper for drag and drop.
\membersection{cbRowDragPlugin::SetMouseCapture}\label{cbrowdragpluginsetmousecapture} \membersection{cbRowDragPlugin::SetMouseCapture}\label{cbrowdragpluginsetmousecapture}
\func{void}{SetMouseCapture}{\param{bool }{captureOn}} \func{void}{SetMouseCapture}{\param{bool }{captureOn}}
Helper for drag and drop.
\membersection{cbRowDragPlugin::SetPaneMargins}\label{cbrowdragpluginsetpanemargins} \membersection{cbRowDragPlugin::SetPaneMargins}\label{cbrowdragpluginsetpanemargins}
\func{void}{SetPaneMargins}{\void} \func{void}{SetPaneMargins}{\void}
Sets the pane margins.
\membersection{cbRowDragPlugin::ShowDraggedRow}\label{cbrowdragpluginshowdraggedrow} \membersection{cbRowDragPlugin::ShowDraggedRow}\label{cbrowdragpluginshowdraggedrow}
\func{void}{ShowDraggedRow}{\param{int }{offset}} \func{void}{ShowDraggedRow}{\param{int }{offset}}
Helper for drag and drop.
\membersection{cbRowDragPlugin::ShowPaneImage}\label{cbrowdragpluginshowpaneimage} \membersection{cbRowDragPlugin::ShowPaneImage}\label{cbrowdragpluginshowpaneimage}
\func{void}{ShowPaneImage}{\void} \func{void}{ShowPaneImage}{\void}
Helper for drag and drop.
\membersection{cbRowDragPlugin::UnhiglightItemInFocus}\label{cbrowdragpluginunhiglightiteminfocus}
\func{void}{UnhiglightItemInFocus}{\void} \membersection{cbRowDragPlugin::UnhighlightItemInFocus}\label{cbrowdragpluginunhighlightiteminfocus}
\func{void}{UnhighlightItemInFocus}{\void}
Helper for drag and drop.

View File

@@ -1,15 +1,23 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:50:59 % controlbar.h at 21/Jan/02 21:14:13
% %
\section{\class{cbRowInfo}}\label{cbrowinfo} \section{\class{cbRowInfo}}\label{cbrowinfo}
Helper class used internally by the wxFrameLayout class.
Holds and manages information about bar rows.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{wxObject}{wxobject} \helpref{wxObject}{wxobject}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,15 +27,19 @@
\func{}{cbRowInfo}{\void} \func{}{cbRowInfo}{\void}
Constructor.
\membersection{cbRowInfo::\destruct{cbRowInfo}}\label{cbrowinfodtor} \membersection{cbRowInfo::\destruct{cbRowInfo}}\label{cbrowinfodtor}
\func{}{\destruct{cbRowInfo}}{\void} \func{}{\destruct{cbRowInfo}}{\void}
Destructor.
\membersection{cbRowInfo::GetFirstBar}\label{cbrowinfogetfirstbar} \membersection{cbRowInfo::GetFirstBar}\label{cbrowinfogetfirstbar}
\func{cbBarInfo*}{GetFirstBar}{\void} \func{cbBarInfo*}{GetFirstBar}{\void}
convenience method Returns the first bar.

View File

@@ -1,19 +1,23 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% rowlayoutpl.h at 05/Jan/02 22:50:58 % rowlayoutpl.h at 21/Jan/02 21:14:19
% %
\section{\class{cbRowLayoutPlugin}}\label{cbrowlayoutplugin} \section{\class{cbRowLayoutPlugin}}\label{cbrowlayoutplugin}
Simple implementation of plugin, which handles row-layouting Simple implementation of a plugin which handles row layout
requests sent from Frame Layout requests sent from a frame layout.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginBase}{cbpluginbase} \helpref{cbPluginBase}{cbpluginbase}
\wxheading{Include files}
<rowlayoutpl.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -23,132 +27,178 @@ Simple implementation of plugin, which handles row-layouting
\func{}{cbRowLayoutPlugin}{\param{wxFrameLayout* }{pPanel}, \param{int }{paneMask = wxALL\_PANES}} \func{}{cbRowLayoutPlugin}{\param{wxFrameLayout* }{pPanel}, \param{int }{paneMask = wxALL\_PANES}}
Constructor taking frame layout pane and pane mask.
\func{}{cbRowLayoutPlugin}{\void} \func{}{cbRowLayoutPlugin}{\void}
Default constructor.
\membersection{cbRowLayoutPlugin::AdjustLengthOfInserted}\label{cbrowlayoutpluginadjustlengthofinserted} \membersection{cbRowLayoutPlugin::AdjustLengthOfInserted}\label{cbrowlayoutpluginadjustlengthofinserted}
\func{void}{AdjustLengthOfInserted}{\param{cbRowInfo* }{pRow}, \param{cbBarInfo* }{pTheBar}} \func{void}{AdjustLengthOfInserted}{\param{cbRowInfo* }{pRow}, \param{cbBarInfo* }{pTheBar}}
Internal helper relating to not-fixed-bars layout.
\membersection{cbRowLayoutPlugin::ApplyLengthRatios}\label{cbrowlayoutpluginapplylengthratios} \membersection{cbRowLayoutPlugin::ApplyLengthRatios}\label{cbrowlayoutpluginapplylengthratios}
\func{void}{ApplyLengthRatios}{\param{cbRowInfo* }{pRow}} \func{void}{ApplyLengthRatios}{\param{cbRowInfo* }{pRow}}
Internal helper relating to not-fixed-bars layout.
\membersection{cbRowLayoutPlugin::CalcRowHeight}\label{cbrowlayoutplugincalcrowheight} \membersection{cbRowLayoutPlugin::CalcRowHeight}\label{cbrowlayoutplugincalcrowheight}
\func{int}{CalcRowHeight}{\param{cbRowInfo\& }{row}} \func{int}{CalcRowHeight}{\param{cbRowInfo\& }{row}}
row-layouting helpers (simulate "bar-friction") Row layout helper simulating bar 'friction'.
\membersection{cbRowLayoutPlugin::CheckIfAtTheBoundary}\label{cbrowlayoutplugincheckifattheboundary} \membersection{cbRowLayoutPlugin::CheckIfAtTheBoundary}\label{cbrowlayoutplugincheckifattheboundary}
\func{void}{CheckIfAtTheBoundary}{\param{cbBarInfo* }{pTheBar}, \param{cbRowInfo\& }{rowInfo}} \func{void}{CheckIfAtTheBoundary}{\param{cbBarInfo* }{pTheBar}, \param{cbRowInfo\& }{rowInfo}}
Internal helper relating to not-fixed-bars layout.
\membersection{cbRowLayoutPlugin::DetectBarHandles}\label{cbrowlayoutplugindetectbarhandles} \membersection{cbRowLayoutPlugin::DetectBarHandles}\label{cbrowlayoutplugindetectbarhandles}
\func{void}{DetectBarHandles}{\param{cbRowInfo* }{pRow}} \func{void}{DetectBarHandles}{\param{cbRowInfo* }{pRow}}
Internal helper relating to not-fixed-bars layout.
\membersection{cbRowLayoutPlugin::DoInsertBar}\label{cbrowlayoutplugindoinsertbar} \membersection{cbRowLayoutPlugin::DoInsertBar}\label{cbrowlayoutplugindoinsertbar}
\func{void}{DoInsertBar}{\param{cbBarInfo* }{pTheBar}, \param{cbRowInfo\& }{row}} \func{void}{DoInsertBar}{\param{cbBarInfo* }{pTheBar}, \param{cbRowInfo\& }{row}}
Insert the bar before the given row.
\membersection{cbRowLayoutPlugin::ExpandNotFixedBars}\label{cbrowlayoutpluginexpandnotfixedbars} \membersection{cbRowLayoutPlugin::ExpandNotFixedBars}\label{cbrowlayoutpluginexpandnotfixedbars}
\func{void}{ExpandNotFixedBars}{\param{cbRowInfo* }{pRow}} \func{void}{ExpandNotFixedBars}{\param{cbRowInfo* }{pRow}}
Internal helper relating to not-fixed-bars layout.
\membersection{cbRowLayoutPlugin::FitBarsToRange}\label{cbrowlayoutpluginfitbarstorange} \membersection{cbRowLayoutPlugin::FitBarsToRange}\label{cbrowlayoutpluginfitbarstorange}
\func{void}{FitBarsToRange}{\param{int }{from}, \param{int }{till}, \param{cbBarInfo* }{pTheBar}, \param{cbRowInfo* }{pRow}} \func{void}{FitBarsToRange}{\param{int }{from}, \param{int }{till}, \param{cbBarInfo* }{pTheBar}, \param{cbRowInfo* }{pRow}}
not-fixed-bars layouting related helpers Internal helper relating to not-fixed-bars layout.
\membersection{cbRowLayoutPlugin::GetRowFreeSpace}\label{cbrowlayoutplugingetrowfreespace} \membersection{cbRowLayoutPlugin::GetRowFreeSpace}\label{cbrowlayoutplugingetrowfreespace}
\func{int}{GetRowFreeSpace}{\param{cbRowInfo* }{pRow}} \func{int}{GetRowFreeSpace}{\param{cbRowInfo* }{pRow}}
Internal helper relating to not-fixed-bars layout.
\membersection{cbRowLayoutPlugin::InsertBefore}\label{cbrowlayoutplugininsertbefore} \membersection{cbRowLayoutPlugin::InsertBefore}\label{cbrowlayoutplugininsertbefore}
\func{void}{InsertBefore}{\param{cbBarInfo* }{pBeforeBar}, \param{cbBarInfo* }{pTheBar}, \param{cbRowInfo\& }{row}} \func{void}{InsertBefore}{\param{cbBarInfo* }{pBeforeBar}, \param{cbBarInfo* }{pTheBar}, \param{cbRowInfo\& }{row}}
Insert the bar before the given row.
\membersection{cbRowLayoutPlugin::LayoutItemsVertically}\label{cbrowlayoutpluginlayoutitemsvertically} \membersection{cbRowLayoutPlugin::LayoutItemsVertically}\label{cbrowlayoutpluginlayoutitemsvertically}
\func{void}{LayoutItemsVertically}{\param{cbRowInfo\& }{row}} \func{void}{LayoutItemsVertically}{\param{cbRowInfo\& }{row}}
Row layout helper simulating bar 'friction'.
\membersection{cbRowLayoutPlugin::MinimzeNotFixedBars}\label{cbrowlayoutpluginminimzenotfixedbars} \membersection{cbRowLayoutPlugin::MinimzeNotFixedBars}\label{cbrowlayoutpluginminimzenotfixedbars}
\func{void}{MinimzeNotFixedBars}{\param{cbRowInfo* }{pRow}, \param{cbBarInfo* }{pBarToPreserve}} \func{void}{MinimzeNotFixedBars}{\param{cbRowInfo* }{pRow}, \param{cbBarInfo* }{pBarToPreserve}}
Internal helper relating to not-fixed-bars layout.
\membersection{cbRowLayoutPlugin::OnInsertBar}\label{cbrowlayoutpluginoninsertbar} \membersection{cbRowLayoutPlugin::OnInsertBar}\label{cbrowlayoutpluginoninsertbar}
\func{void}{OnInsertBar}{\param{cbInsertBarEvent\& }{event}} \func{void}{OnInsertBar}{\param{cbInsertBarEvent\& }{event}}
Responds to bar insertion event.
\membersection{cbRowLayoutPlugin::OnLayoutRow}\label{cbrowlayoutpluginonlayoutrow} \membersection{cbRowLayoutPlugin::OnLayoutRow}\label{cbrowlayoutpluginonlayoutrow}
\func{void}{OnLayoutRow}{\param{cbLayoutRowEvent\& }{event}} \func{void}{OnLayoutRow}{\param{cbLayoutRowEvent\& }{event}}
Responds to row layout event.
\membersection{cbRowLayoutPlugin::OnLayoutRows}\label{cbrowlayoutpluginonlayoutrows} \membersection{cbRowLayoutPlugin::OnLayoutRows}\label{cbrowlayoutpluginonlayoutrows}
\func{void}{OnLayoutRows}{\param{cbLayoutRowsEvent\& }{event}} \func{void}{OnLayoutRows}{\param{cbLayoutRowsEvent\& }{event}}
Responds to rows layout event.
\membersection{cbRowLayoutPlugin::OnRemoveBar}\label{cbrowlayoutpluginonremovebar} \membersection{cbRowLayoutPlugin::OnRemoveBar}\label{cbrowlayoutpluginonremovebar}
\func{void}{OnRemoveBar}{\param{cbRemoveBarEvent\& }{event}} \func{void}{OnRemoveBar}{\param{cbRemoveBarEvent\& }{event}}
Responds to bar removal event.
\membersection{cbRowLayoutPlugin::OnResizeRow}\label{cbrowlayoutpluginonresizerow} \membersection{cbRowLayoutPlugin::OnResizeRow}\label{cbrowlayoutpluginonresizerow}
\func{void}{OnResizeRow}{\param{cbResizeRowEvent\& }{event}} \func{void}{OnResizeRow}{\param{cbResizeRowEvent\& }{event}}
event handlers Responds to row resize event.
\membersection{cbRowLayoutPlugin::RecalcLengthRatios}\label{cbrowlayoutpluginrecalclengthratios} \membersection{cbRowLayoutPlugin::RecalcLengthRatios}\label{cbrowlayoutpluginrecalclengthratios}
\func{void}{RecalcLengthRatios}{\param{cbRowInfo* }{pRow}} \func{void}{RecalcLengthRatios}{\param{cbRowInfo* }{pRow}}
Internal helper relating to not-fixed-bars layout.
\membersection{cbRowLayoutPlugin::RelayoutNotFixedBarsAround}\label{cbrowlayoutpluginrelayoutnotfixedbarsaround} \membersection{cbRowLayoutPlugin::RelayoutNotFixedBarsAround}\label{cbrowlayoutpluginrelayoutnotfixedbarsaround}
\func{void}{RelayoutNotFixedBarsAround}{\param{cbBarInfo* }{pTheBar}, \param{cbRowInfo* }{pRow}} \func{void}{RelayoutNotFixedBarsAround}{\param{cbBarInfo* }{pTheBar}, \param{cbRowInfo* }{pRow}}
Internal helper relating to not-fixed-bars layout.
\membersection{cbRowLayoutPlugin::ShiftLeftTrashold}\label{cbrowlayoutpluginshiftlefttrashold} \membersection{cbRowLayoutPlugin::ShiftLeftTrashold}\label{cbrowlayoutpluginshiftlefttrashold}
\func{void}{ShiftLeftTrashold}{\param{cbBarInfo* }{pTheBar}, \param{cbRowInfo\& }{row}} \func{void}{ShiftLeftTrashold}{\param{cbBarInfo* }{pTheBar}, \param{cbRowInfo\& }{row}}
Row layout helper simulating bar 'friction'.
\membersection{cbRowLayoutPlugin::ShiftRightTrashold}\label{cbrowlayoutpluginshiftrighttrashold} \membersection{cbRowLayoutPlugin::ShiftRightTrashold}\label{cbrowlayoutpluginshiftrighttrashold}
\func{void}{ShiftRightTrashold}{\param{cbBarInfo* }{pTheBar}, \param{cbRowInfo\& }{row}} \func{void}{ShiftRightTrashold}{\param{cbBarInfo* }{pTheBar}, \param{cbRowInfo\& }{row}}
Row layout helper simulating bar 'friction'.
\membersection{cbRowLayoutPlugin::SlideLeftSideBars}\label{cbrowlayoutpluginslideleftsidebars} \membersection{cbRowLayoutPlugin::SlideLeftSideBars}\label{cbrowlayoutpluginslideleftsidebars}
\func{void}{SlideLeftSideBars}{\param{cbBarInfo* }{pTheBar}} \func{void}{SlideLeftSideBars}{\param{cbBarInfo* }{pTheBar}}
Row layout helper simulating bar 'friction'.
\membersection{cbRowLayoutPlugin::SlideRightSideBars}\label{cbrowlayoutpluginsliderightsidebars} \membersection{cbRowLayoutPlugin::SlideRightSideBars}\label{cbrowlayoutpluginsliderightsidebars}
\func{void}{SlideRightSideBars}{\param{cbBarInfo* }{pTheBar}} \func{void}{SlideRightSideBars}{\param{cbBarInfo* }{pTheBar}}
Row layout helper simulating bar 'friction'.
\membersection{cbRowLayoutPlugin::StickRightSideBars}\label{cbrowlayoutpluginstickrightsidebars} \membersection{cbRowLayoutPlugin::StickRightSideBars}\label{cbrowlayoutpluginstickrightsidebars}
\func{void}{StickRightSideBars}{\param{cbBarInfo* }{pToBar}} \func{void}{StickRightSideBars}{\param{cbBarInfo* }{pToBar}}
Row layout helper simulating bar 'friction'.

View File

@@ -1,15 +1,24 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% cbcustom.h at 05/Jan/02 22:50:56 % cbcustom.h at 21/Jan/02 21:14:18
% %
\section{\class{cbSimpleCustomizationPlugin}}\label{cbsimplecustomizationplugin} \section{\class{cbSimpleCustomizationPlugin}}\label{cbsimplecustomizationplugin}
This class enables customization of a bar, popping up a
menu and handling basic customization such as floating
and horizontal/vertical alignment of the bar.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginBase}{cbpluginbase} \helpref{cbPluginBase}{cbpluginbase}
\wxheading{Include files}
<cbcustom.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,25 +28,31 @@
\func{}{cbSimpleCustomizationPlugin}{\param{wxFrameLayout* }{pPanel}, \param{int }{paneMask = wxALL\_PANES}} \func{}{cbSimpleCustomizationPlugin}{\param{wxFrameLayout* }{pPanel}, \param{int }{paneMask = wxALL\_PANES}}
Constructor, taking parent pane and a pane mask flag.
\func{}{cbSimpleCustomizationPlugin}{\void} \func{}{cbSimpleCustomizationPlugin}{\void}
Default constructor.
\membersection{cbSimpleCustomizationPlugin::OnCustomizeBar}\label{cbsimplecustomizationpluginoncustomizebar} \membersection{cbSimpleCustomizationPlugin::OnCustomizeBar}\label{cbsimplecustomizationpluginoncustomizebar}
\func{void}{OnCustomizeBar}{\param{cbCustomizeBarEvent\& }{event}} \func{void}{OnCustomizeBar}{\param{cbCustomizeBarEvent\& }{event}}
plugin-event handlers Plugin event handler for cbCustomizeBarEvent.
\membersection{cbSimpleCustomizationPlugin::OnCustomizeLayout}\label{cbsimplecustomizationpluginoncustomizelayout} \membersection{cbSimpleCustomizationPlugin::OnCustomizeLayout}\label{cbsimplecustomizationpluginoncustomizelayout}
\func{void}{OnCustomizeLayout}{\param{cbCustomizeLayoutEvent\& }{event}} \func{void}{OnCustomizeLayout}{\param{cbCustomizeLayoutEvent\& }{event}}
Plugin event handler for cbCustomizeLayoutEvent.
\membersection{cbSimpleCustomizationPlugin::OnMenuItemSelected}\label{cbsimplecustomizationpluginonmenuitemselected} \membersection{cbSimpleCustomizationPlugin::OnMenuItemSelected}\label{cbsimplecustomizationpluginonmenuitemselected}
\func{void}{OnMenuItemSelected}{\param{wxCommandEvent\& }{event}} \func{void}{OnMenuItemSelected}{\param{wxCommandEvent\& }{event}}
menu-event handler Menu event handler.

View File

@@ -1,19 +1,23 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% updatesmgr.h at 05/Jan/02 22:50:58 % updatesmgr.h at 21/Jan/02 21:14:18
% %
\section{\class{cbSimpleUpdatesMgr}}\label{cbsimpleupdatesmgr} \section{\class{cbSimpleUpdatesMgr}}\label{cbsimpleupdatesmgr}
class implements slightly optimized logic for refreshing This class implements slightly optimized logic for refreshing
areas of frame layout - which actually need to be updated. the areas of frame layout that actually need to be updated.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbUpdatesManagerBase}{cbupdatesmanagerbase} \helpref{cbUpdatesManagerBase}{cbupdatesmanagerbase}
\wxheading{Include files}
<updatesmgr.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -23,51 +27,72 @@ class implements slightly optimized logic for refreshing
\func{}{cbSimpleUpdatesMgr}{\void} \func{}{cbSimpleUpdatesMgr}{\void}
Default constructor.
\func{}{cbSimpleUpdatesMgr}{\param{wxFrameLayout* }{pPanel}} \func{}{cbSimpleUpdatesMgr}{\param{wxFrameLayout* }{pPanel}}
Constructor taking frame layout panel.
\membersection{cbSimpleUpdatesMgr::OnBarWillChange}\label{cbsimpleupdatesmgronbarwillchange} \membersection{cbSimpleUpdatesMgr::OnBarWillChange}\label{cbsimpleupdatesmgronbarwillchange}
\func{void}{OnBarWillChange}{\param{cbBarInfo* }{pBar}, \param{cbRowInfo* }{pInRow}, \param{cbDockPane* }{pInPane}} \func{void}{OnBarWillChange}{\param{cbBarInfo* }{pBar}, \param{cbRowInfo* }{pInRow}, \param{cbDockPane* }{pInPane}}
Notification received from Frame Layout in the order in which
they would usually be invoked.
\membersection{cbSimpleUpdatesMgr::OnFinishChanges}\label{cbsimpleupdatesmgronfinishchanges} \membersection{cbSimpleUpdatesMgr::OnFinishChanges}\label{cbsimpleupdatesmgronfinishchanges}
\func{void}{OnFinishChanges}{\void} \func{void}{OnFinishChanges}{\void}
Notification received from Frame Layout in the order in which
they would usually be invoked.
\membersection{cbSimpleUpdatesMgr::OnPaneMarginsWillChange}\label{cbsimpleupdatesmgronpanemarginswillchange} \membersection{cbSimpleUpdatesMgr::OnPaneMarginsWillChange}\label{cbsimpleupdatesmgronpanemarginswillchange}
\func{void}{OnPaneMarginsWillChange}{\param{cbDockPane* }{pPane}} \func{void}{OnPaneMarginsWillChange}{\param{cbDockPane* }{pPane}}
Notification received from Frame Layout in the order in which
they would usually be invoked.
\membersection{cbSimpleUpdatesMgr::OnPaneWillChange}\label{cbsimpleupdatesmgronpanewillchange} \membersection{cbSimpleUpdatesMgr::OnPaneWillChange}\label{cbsimpleupdatesmgronpanewillchange}
\func{void}{OnPaneWillChange}{\param{cbDockPane* }{pPane}} \func{void}{OnPaneWillChange}{\param{cbDockPane* }{pPane}}
Notification received from Frame Layout in the order in which
they would usually be invoked.
\membersection{cbSimpleUpdatesMgr::OnRowWillChange}\label{cbsimpleupdatesmgronrowwillchange} \membersection{cbSimpleUpdatesMgr::OnRowWillChange}\label{cbsimpleupdatesmgronrowwillchange}
\func{void}{OnRowWillChange}{\param{cbRowInfo* }{pRow}, \param{cbDockPane* }{pInPane}} \func{void}{OnRowWillChange}{\param{cbRowInfo* }{pRow}, \param{cbDockPane* }{pInPane}}
Notification received from Frame Layout in the order in which
they would usually be invoked.
\membersection{cbSimpleUpdatesMgr::OnStartChanges}\label{cbsimpleupdatesmgronstartchanges} \membersection{cbSimpleUpdatesMgr::OnStartChanges}\label{cbsimpleupdatesmgronstartchanges}
\func{void}{OnStartChanges}{\void} \func{void}{OnStartChanges}{\void}
notificiactions received from Frame Layout (in the order, in which Notification received from Frame Layout in the order in which
they usually would be invoked) they would usually be invoked.
\membersection{cbSimpleUpdatesMgr::UpdateNow}\label{cbsimpleupdatesmgrupdatenow} \membersection{cbSimpleUpdatesMgr::UpdateNow}\label{cbsimpleupdatesmgrupdatenow}
\func{void}{UpdateNow}{\void} \func{void}{UpdateNow}{\void}
refreshes parts of the frame layout, which need an update Refreshes the parts of the frame layoutthat need an update.
\membersection{cbSimpleUpdatesMgr::WasChanged}\label{cbsimpleupdatesmgrwaschanged} \membersection{cbSimpleUpdatesMgr::WasChanged}\label{cbsimpleupdatesmgrwaschanged}
\func{bool}{WasChanged}{\param{cbUpdateMgrData\& }{data}, \param{wxRect\& }{currentBounds}} \func{bool}{WasChanged}{\param{cbUpdateMgrData\& }{data}, \param{wxRect\& }{currentBounds}}
Helper function.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:00 % controlbar.h at 21/Jan/02 21:14:16
% %
\section{\class{cbSizeBarWndEvent}}\label{cbsizebarwndevent} \section{\class{cbSizeBarWndEvent}}\label{cbsizebarwndevent}
Class for bar window resize events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{}{cbSizeBarWndEvent}{\param{cbBarInfo* }{pBar}, \param{cbDockPane* }{pPane}} \func{}{cbSizeBarWndEvent}{\param{cbBarInfo* }{pBar}, \param{cbDockPane* }{pPane}}
Constructor, taking bar information and pane.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:01 % controlbar.h at 21/Jan/02 21:14:16
% %
\section{\class{cbStartBarDraggingEvent}}\label{cbstartbardraggingevent} \section{\class{cbStartBarDraggingEvent}}\label{cbstartbardraggingevent}
Class for start-bar-dragging events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,3 +26,5 @@
\func{}{cbStartBarDraggingEvent}{\param{cbBarInfo* }{pBar}, \param{const wxPoint\& }{pos}, \param{cbDockPane* }{pPane}} \func{}{cbStartBarDraggingEvent}{\param{cbBarInfo* }{pBar}, \param{const wxPoint\& }{pos}, \param{cbDockPane* }{pPane}}
Constructor, taking bar information, mouse position, and pane.

View File

@@ -1,15 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:51:01 % controlbar.h at 21/Jan/02 21:14:16
% %
\section{\class{cbStartDrawInAreaEvent}}\label{cbstartdrawinareaevent} \section{\class{cbStartDrawInAreaEvent}}\label{cbstartdrawinareaevent}
Class for start drawing in area events.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{cbPluginEvent}{cbpluginevent} \helpref{cbPluginEvent}{cbpluginevent}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -20,4 +27,5 @@
\func{}{cbStartDrawInAreaEvent}{\param{const wxRect\& }{area}, \param{wxDC** }{ppDCForArea}, \param{cbDockPane* }{pPane}} \func{}{cbStartDrawInAreaEvent}{\param{const wxRect\& }{area}, \param{wxDC** }{ppDCForArea}, \param{cbDockPane* }{pPane}}
to the obtained buffer-context should be placed to the obtained buffer-context should be placed
Constructor, taking rectangular area, device context pointer to a pointer, and pane.

View File

@@ -1,21 +1,24 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:50:58 % controlbar.h at 21/Jan/02 21:14:13
% %
\section{\class{cbUpdateMgrData}}\label{cbupdatemgrdata} \section{\class{cbUpdateMgrData}}\label{cbupdatemgrdata}
structure, which is present in each item of layout, A structure that is present in each item of layout,
it used by any specific updates-manager to store used by any particular updates-manager to store
auxilary information to be used by it's specific auxiliary information to be used by its updating algorithm.
updating algorithm
\wxheading{Derived from} \wxheading{Derived from}
\helpref{wxObject}{wxobject} \helpref{wxObject}{wxobject}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -25,25 +28,33 @@ structure, which is present in each item of layout,
\func{}{cbUpdateMgrData}{\void} \func{}{cbUpdateMgrData}{\void}
is-dirty flag is set TRUE initially Default constructor. Is-dirty flag is set TRUE initially.
\membersection{cbUpdateMgrData::IsDirty}\label{cbupdatemgrdataisdirty} \membersection{cbUpdateMgrData::IsDirty}\label{cbupdatemgrdataisdirty}
\func{bool}{IsDirty}{\void} \func{bool}{IsDirty}{\void}
Returns the is-dirty flag.
\membersection{cbUpdateMgrData::SetCustomData}\label{cbupdatemgrdatasetcustomdata} \membersection{cbUpdateMgrData::SetCustomData}\label{cbupdatemgrdatasetcustomdata}
\func{void}{SetCustomData}{\param{wxObject* }{pCustomData}} \func{void}{SetCustomData}{\param{wxObject* }{pCustomData}}
Set custom data.
\membersection{cbUpdateMgrData::SetDirty}\label{cbupdatemgrdatasetdirty} \membersection{cbUpdateMgrData::SetDirty}\label{cbupdatemgrdatasetdirty}
\func{void}{SetDirty}{\param{bool }{isDirty = TRUE}} \func{void}{SetDirty}{\param{bool }{isDirty = TRUE}}
Set the dirty flag.
\membersection{cbUpdateMgrData::StoreItemState}\label{cbupdatemgrdatastoreitemstate} \membersection{cbUpdateMgrData::StoreItemState}\label{cbupdatemgrdatastoreitemstate}
\func{void}{StoreItemState}{\param{const wxRect\& }{boundsInParent}} \func{void}{StoreItemState}{\param{const wxRect\& }{boundsInParent}}
Store the item state.

View File

@@ -1,20 +1,24 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:50:59 % controlbar.h at 21/Jan/02 21:14:14
% %
\section{\class{cbUpdatesManagerBase}}\label{cbupdatesmanagerbase} \section{\class{cbUpdatesManagerBase}}\label{cbupdatesmanagerbase}
class declares abstract interface for optimized logic, which should refresh This class declares an abstract interface for optimized logic that should refresh
areas of frame layout - that actually need to be updated. Should be extended, areas of frame layout that actually need to be updated. This should be extended in future
to implement custom updating strategy to implement a custom updating strategy.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{wxObject}{wxobject} \helpref{wxObject}{wxobject}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -24,57 +28,85 @@ class declares abstract interface for optimized logic, which should refresh
\func{}{cbUpdatesManagerBase}{\param{wxFrameLayout* }{pPanel}} \func{}{cbUpdatesManagerBase}{\param{wxFrameLayout* }{pPanel}}
Constructor taking layout panel.
\func{}{cbUpdatesManagerBase}{\void} \func{}{cbUpdatesManagerBase}{\void}
Default constructor
\membersection{cbUpdatesManagerBase::\destruct{cbUpdatesManagerBase}}\label{cbupdatesmanagerbasedtor} \membersection{cbUpdatesManagerBase::\destruct{cbUpdatesManagerBase}}\label{cbupdatesmanagerbasedtor}
\func{}{\destruct{cbUpdatesManagerBase}}{\void} \func{}{\destruct{cbUpdatesManagerBase}}{\void}
Destructor.
\membersection{cbUpdatesManagerBase::OnBarWillChange}\label{cbupdatesmanagerbaseonbarwillchange} \membersection{cbUpdatesManagerBase::OnBarWillChange}\label{cbupdatesmanagerbaseonbarwillchange}
\func{void}{OnBarWillChange}{\param{cbBarInfo* }{pBar}, \param{cbRowInfo* }{pInRow}, \param{cbDockPane* }{pInPane}} \func{void}{OnBarWillChange}{\param{cbBarInfo* }{pBar}, \param{cbRowInfo* }{pInRow}, \param{cbDockPane* }{pInPane}}
This function receives a notification from the frame layout (in the order in which
they would usually be invoked). Custom updates-managers may utilize
these notifications to implement a more fine-grained updating strategy.
\membersection{cbUpdatesManagerBase::OnFinishChanges}\label{cbupdatesmanagerbaseonfinishchanges} \membersection{cbUpdatesManagerBase::OnFinishChanges}\label{cbupdatesmanagerbaseonfinishchanges}
\func{void}{OnFinishChanges}{\void} \func{void}{OnFinishChanges}{\void}
This function receives a notification from the frame layout (in the order in which
they would usually be invoked). Custom updates-managers may utilize
these notifications to implement a more fine-grained updating strategy.
\membersection{cbUpdatesManagerBase::OnPaneMarginsWillChange}\label{cbupdatesmanagerbaseonpanemarginswillchange} \membersection{cbUpdatesManagerBase::OnPaneMarginsWillChange}\label{cbupdatesmanagerbaseonpanemarginswillchange}
\func{void}{OnPaneMarginsWillChange}{\param{cbDockPane* }{pPane}} \func{void}{OnPaneMarginsWillChange}{\param{cbDockPane* }{pPane}}
This function receives a notification from the frame layout (in the order in which
they would usually be invoked). Custom updates-managers may utilize
these notifications to implement a more fine-grained updating strategy.
\membersection{cbUpdatesManagerBase::OnPaneWillChange}\label{cbupdatesmanagerbaseonpanewillchange} \membersection{cbUpdatesManagerBase::OnPaneWillChange}\label{cbupdatesmanagerbaseonpanewillchange}
\func{void}{OnPaneWillChange}{\param{cbDockPane* }{pPane}} \func{void}{OnPaneWillChange}{\param{cbDockPane* }{pPane}}
This function receives a notification from the frame layout (in the order in which
they would usually be invoked). Custom updates-managers may utilize
these notifications to implement a more fine-grained updating strategy.
\membersection{cbUpdatesManagerBase::OnRowWillChange}\label{cbupdatesmanagerbaseonrowwillchange} \membersection{cbUpdatesManagerBase::OnRowWillChange}\label{cbupdatesmanagerbaseonrowwillchange}
\func{void}{OnRowWillChange}{\param{cbRowInfo* }{pRow}, \param{cbDockPane* }{pInPane}} \func{void}{OnRowWillChange}{\param{cbRowInfo* }{pRow}, \param{cbDockPane* }{pInPane}}
This function receives a notification from the frame layout (in the order in which
they would usually be invoked). Custom updates-managers may utilize
these notifications to implement a more fine-grained updating strategy.
\membersection{cbUpdatesManagerBase::OnStartChanges}\label{cbupdatesmanagerbaseonstartchanges} \membersection{cbUpdatesManagerBase::OnStartChanges}\label{cbupdatesmanagerbaseonstartchanges}
\func{void}{OnStartChanges}{\void} \func{void}{OnStartChanges}{\void}
notificiactions received from frame-layout (in the order, in which This function receives a notification from the frame layout (in the order in which
they usually would be invoked). Custom updates-managers may utilize they would usually be invoked). Custom updates-managers may utilize
these notifications to implement more "fine-grained" updating strategy these notifications to implement a more fine-grained updating strategy.
\membersection{cbUpdatesManagerBase::SetLayout}\label{cbupdatesmanagerbasesetlayout} \membersection{cbUpdatesManagerBase::SetLayout}\label{cbupdatesmanagerbasesetlayout}
\func{void}{SetLayout}{\param{wxFrameLayout* }{pLayout}} \func{void}{SetLayout}{\param{wxFrameLayout* }{pLayout}}
Sets the associated layout.
\membersection{cbUpdatesManagerBase::UpdateNow}\label{cbupdatesmanagerbaseupdatenow} \membersection{cbUpdatesManagerBase::UpdateNow}\label{cbupdatesmanagerbaseupdatenow}
\func{void}{UpdateNow}{\void} \func{void}{UpdateNow}{\void}
refreshes parts of the frame layout, which need an update Refreshes parts of the frame layout that need an update.

View File

@@ -34,9 +34,9 @@
\input cbfinishdrawinareaevent.tex \input cbfinishdrawinareaevent.tex
\input cbfloatedbarwindow.tex \input cbfloatedbarwindow.tex
\input cbgcupdatesmgr.tex \input cbgcupdatesmgr.tex
\input cbhiddenbarinfo.tex %\input cbhiddenbarinfo.tex
\input cbhintanimationplugin.tex \input cbhintanimationplugin.tex
\input cbhintanimtimer.tex %\input cbhintanimtimer.tex
\input cbinsertbarevent.tex \input cbinsertbarevent.tex
\input cblayoutrowevent.tex \input cblayoutrowevent.tex
\input cblayoutrowsevent.tex \input cblayoutrowsevent.tex
@@ -67,11 +67,10 @@
\input dyntoolinfo.tex \input dyntoolinfo.tex
\input framelayout.tex \input framelayout.tex
\input framemanager.tex \input framemanager.tex
\input frameview.tex %\input frameview.tex
\input garbagecollector.tex \input garbagecollector.tex
\input gcitem.tex
\input layoutmanagerbase.tex \input layoutmanagerbase.tex
\input morphinfot.tex %\input morphinfot.tex
\input newbitmapbutton.tex \input newbitmapbutton.tex
\input toollayoutitem.tex \input toollayoutitem.tex
\input toolwindow.tex \input toolwindow.tex

View File

@@ -1,18 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% dyntbar.h at 05/Jan/02 22:50:56 % dyntbar.h at 21/Jan/02 21:14:18
% %
\section{\class{wxDynamicToolBar}}\label{wxdynamictoolbar} \section{\class{wxDynamicToolBar}}\label{wxdynamictoolbar}
class manages containment and layouting of tool-windows wxDynamicToolBar manages containment and layout of tool windows.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{wxToolBarBase}{wxtoolbarbase} \helpref{wxToolBarBase}{wxtoolbarbase}
\wxheading{Include files}
<dyntbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -22,164 +26,202 @@ class manages containment and layouting of tool-windows
\func{}{wxDynamicToolBar}{\void} \func{}{wxDynamicToolBar}{\void}
Default constructor.
\func{}{wxDynamicToolBar}{\param{wxWindow* }{parent}, \param{const wxWindowID }{id}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{const long }{style = wxNO\_BORDER}, \param{const int }{orientation = wxVERTICAL}, \param{const int }{RowsOrColumns = 1}, \param{const wxString\& }{name = wxToolBarNameStr}} \func{}{wxDynamicToolBar}{\param{wxWindow* }{parent}, \param{const wxWindowID }{id}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{const long }{style = wxNO\_BORDER}, \param{const int }{orientation = wxVERTICAL}, \param{const int }{RowsOrColumns = 1}, \param{const wxString\& }{name = wxToolBarNameStr}}
Constructor: see the documentation for wxToolBar for details.
\membersection{wxDynamicToolBar::\destruct{wxDynamicToolBar}}\label{wxdynamictoolbardtor} \membersection{wxDynamicToolBar::\destruct{wxDynamicToolBar}}\label{wxdynamictoolbardtor}
\func{}{\destruct{wxDynamicToolBar}}{\void} \func{}{\destruct{wxDynamicToolBar}}{\void}
Destructor.
\membersection{wxDynamicToolBar::AddSeparator}\label{wxdynamictoolbaraddseparator} \membersection{wxDynamicToolBar::AddSeparator}\label{wxdynamictoolbaraddseparator}
\func{void}{AddSeparator}{\param{wxWindow* }{pSepartorWnd = NULL}} \func{void}{AddSeparator}{\param{wxWindow* }{pSepartorWnd = NULL}}
Adds a separator. See the documentation for wxToolBar for details.
\membersection{wxDynamicToolBar::AddTool}\label{wxdynamictoolbaraddtool} \membersection{wxDynamicToolBar::AddTool}\label{wxdynamictoolbaraddtool}
\func{void}{AddTool}{\param{int }{toolIndex}, \param{wxWindow* }{pToolWindow}, \param{const wxSize\& }{size = wxDefaultSize}} \func{void}{AddTool}{\param{int }{toolIndex}, \param{wxWindow* }{pToolWindow}, \param{const wxSize\& }{size = wxDefaultSize}}
overridables Adds a tool. See the documentation for wxToolBar for details.
\func{void}{AddTool}{\param{int }{toolIndex}, \param{const wxString\& }{imageFileName}, \param{wxBitmapType }{imageFileType = wxBITMAP\_TYPE\_BMP}, \param{const wxString\& }{labelText = ""}, \param{bool }{alignTextRight = FALSE}, \param{bool }{isFlat = TRUE}} \func{void}{AddTool}{\param{int }{toolIndex}, \param{const wxString\& }{imageFileName}, \param{wxBitmapType }{imageFileType = wxBITMAP\_TYPE\_BMP}, \param{const wxString\& }{labelText = ""}, \param{bool }{alignTextRight = FALSE}, \param{bool }{isFlat = TRUE}}
Adds a tool. See the documentation for wxToolBar for details.
\func{void}{AddTool}{\param{int }{toolIndex}, \param{wxBitmap }{labelBmp}, \param{const wxString\& }{labelText = ""}, \param{bool }{alignTextRight = FALSE}, \param{bool }{isFlat = TRUE}} \func{void}{AddTool}{\param{int }{toolIndex}, \param{wxBitmap }{labelBmp}, \param{const wxString\& }{labelText = ""}, \param{bool }{alignTextRight = FALSE}, \param{bool }{isFlat = TRUE}}
Adds a tool. See the documentation for wxToolBar for details.
\func{wxToolBarToolBase*}{AddTool}{\param{const int }{toolIndex}, \param{const wxBitmap\& }{bitmap}, \param{const wxBitmap\& }{pushedBitmap = wxNullBitmap}, \param{const bool }{toggle = FALSE}, \param{const long }{xPos = -1}, \param{const long }{yPos = -1}, \param{wxObject* }{clientData = NULL}, \param{const wxString\& }{helpString1 = ""}, \param{const wxString\& }{helpString2 = ""}} \func{wxToolBarToolBase*}{AddTool}{\param{const int }{toolIndex}, \param{const wxBitmap\& }{bitmap}, \param{const wxBitmap\& }{pushedBitmap = wxNullBitmap}, \param{const bool }{toggle = FALSE}, \param{const long }{xPos = -1}, \param{const long }{yPos = -1}, \param{wxObject* }{clientData = NULL}, \param{const wxString\& }{helpString1 = ""}, \param{const wxString\& }{helpString2 = ""}}
method from wxToolBarBase (for compatibility), only Method from wxToolBarBase (for compatibility), only
first two arguments are valid the first two arguments are valid.
See the documentation for wxToolBar for details.
\membersection{wxDynamicToolBar::Create}\label{wxdynamictoolbarcreate} \membersection{wxDynamicToolBar::Create}\label{wxdynamictoolbarcreate}
\func{bool}{Create}{\param{wxWindow* }{parent}, \param{const wxWindowID }{id}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{const long }{style = wxNO\_BORDER}, \param{const int }{orientation = wxVERTICAL}, \param{const int }{RowsOrColumns = 1}, \param{const wxString\& }{name = wxToolBarNameStr}} \func{bool}{Create}{\param{wxWindow* }{parent}, \param{const wxWindowID }{id}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize}, \param{const long }{style = wxNO\_BORDER}, \param{const int }{orientation = wxVERTICAL}, \param{const int }{RowsOrColumns = 1}, \param{const wxString\& }{name = wxToolBarNameStr}}
Creation function: see the documentation for wxToolBar for details.
\membersection{wxDynamicToolBar::CreateDefaulLayout}\label{wxdynamictoolbarcreatedefaullayout}
\func{LayoutManagerBase*}{CreateDefaulLayout}{\void} \membersection{wxDynamicToolBar::CreateDefaultLayout}\label{wxdynamictoolbarcreatedefaultlayout}
\func{LayoutManagerBase*}{CreateDefaultLayout}{\void}
Creates the default layout (BagLayout).
\membersection{wxDynamicToolBar::CreateTool}\label{wxdynamictoolbarcreatetool} \membersection{wxDynamicToolBar::CreateTool}\label{wxdynamictoolbarcreatetool}
\func{wxToolBarToolBase*}{CreateTool}{\param{wxControl* }{control}} \func{wxToolBarToolBase*}{CreateTool}{\param{wxControl* }{control}}
Creates a toolbar tool.
\func{wxToolBarToolBase*}{CreateTool}{\param{int }{id}, \param{const wxBitmap\& }{bitmap1}, \param{const wxBitmap\& }{bitmap2}, \param{bool }{toggle}, \param{wxObject* }{clientData}, \param{const wxString\& }{shortHelpString}, \param{const wxString\& }{longHelpString}} \func{wxToolBarToolBase*}{CreateTool}{\param{int }{id}, \param{const wxBitmap\& }{bitmap1}, \param{const wxBitmap\& }{bitmap2}, \param{bool }{toggle}, \param{wxObject* }{clientData}, \param{const wxString\& }{shortHelpString}, \param{const wxString\& }{longHelpString}}
the functions to create toolbar tools Creates a toolbar tool.
\membersection{wxDynamicToolBar::DoDeleteTool}\label{wxdynamictoolbardodeletetool} \membersection{wxDynamicToolBar::DoDeleteTool}\label{wxdynamictoolbardodeletetool}
\func{bool}{DoDeleteTool}{\param{size\_t }{pos}, \param{wxToolBarToolBase* }{tool}} \func{bool}{DoDeleteTool}{\param{size\_t }{pos}, \param{wxToolBarToolBase* }{tool}}
the tool is still in m\_tools list when this function is called, it will Deletes a tool. The tool is still in m\_tools list when this function is called, and it will
only be deleted from it if it succeeds only be deleted from it if it succeeds.
\membersection{wxDynamicToolBar::DoEnableTool}\label{wxdynamictoolbardoenabletool} \membersection{wxDynamicToolBar::DoEnableTool}\label{wxdynamictoolbardoenabletool}
\func{void}{DoEnableTool}{\param{wxToolBarToolBase* }{tool}, \param{bool }{enable}} \func{void}{DoEnableTool}{\param{wxToolBarToolBase* }{tool}, \param{bool }{enable}}
called when the tools enabled flag changes Called when the tools enabled flag changes.
\membersection{wxDynamicToolBar::DoInsertTool}\label{wxdynamictoolbardoinserttool} \membersection{wxDynamicToolBar::DoInsertTool}\label{wxdynamictoolbardoinserttool}
\func{bool}{DoInsertTool}{\param{size\_t }{pos}, \param{wxToolBarToolBase* }{tool}} \func{bool}{DoInsertTool}{\param{size\_t }{pos}, \param{wxToolBarToolBase* }{tool}}
Inserts a tool at the given position.
\membersection{wxDynamicToolBar::DoSetToggle}\label{wxdynamictoolbardosettoggle} \membersection{wxDynamicToolBar::DoSetToggle}\label{wxdynamictoolbardosettoggle}
\func{void}{DoSetToggle}{\param{wxToolBarToolBase* }{tool}, \param{bool }{toggle}} \func{void}{DoSetToggle}{\param{wxToolBarToolBase* }{tool}, \param{bool }{toggle}}
called when the tools "can be toggled" flag changes Called when the tools 'can be toggled' flag changes.
\membersection{wxDynamicToolBar::DoToggleTool}\label{wxdynamictoolbardotoggletool} \membersection{wxDynamicToolBar::DoToggleTool}\label{wxdynamictoolbardotoggletool}
\func{void}{DoToggleTool}{\param{wxToolBarToolBase* }{tool}, \param{bool }{toggle}} \func{void}{DoToggleTool}{\param{wxToolBarToolBase* }{tool}, \param{bool }{toggle}}
called when the tool is toggled Called when the tool is toggled.
\membersection{wxDynamicToolBar::DrawSeparator}\label{wxdynamictoolbardrawseparator} \membersection{wxDynamicToolBar::DrawSeparator}\label{wxdynamictoolbardrawseparator}
\func{void}{DrawSeparator}{\param{wxDynToolInfo\& }{info}, \param{wxDC\& }{dc}} \func{void}{DrawSeparator}{\param{wxDynToolInfo\& }{info}, \param{wxDC\& }{dc}}
the default implementation draws shaded line Draws a separator. The default implementation draws a shaded line.
\membersection{wxDynamicToolBar::EnableTool}\label{wxdynamictoolbarenabletool} \membersection{wxDynamicToolBar::EnableTool}\label{wxdynamictoolbarenabletool}
\func{void}{EnableTool}{\param{const int }{toolIndex}, \param{const bool }{enable = TRUE}} \func{void}{EnableTool}{\param{const int }{toolIndex}, \param{const bool }{enable = TRUE}}
Enables or disables the given tool.
\membersection{wxDynamicToolBar::FindToolForPosition}\label{wxdynamictoolbarfindtoolforposition} \membersection{wxDynamicToolBar::FindToolForPosition}\label{wxdynamictoolbarfindtoolforposition}
\constfunc{wxToolBarToolBase*}{FindToolForPosition}{\param{wxCoord }{x}, \param{wxCoord }{y}} \constfunc{wxToolBarToolBase*}{FindToolForPosition}{\param{wxCoord }{x}, \param{wxCoord }{y}}
stuff from the 2.1.15 Finds a tool for the given position.
\membersection{wxDynamicToolBar::GetPreferredDim}\label{wxdynamictoolbargetpreferreddim} \membersection{wxDynamicToolBar::GetPreferredDim}\label{wxdynamictoolbargetpreferreddim}
\func{void}{GetPreferredDim}{\param{const wxSize\& }{givenDim}, \param{wxSize\& }{prefDim}} \func{void}{GetPreferredDim}{\param{const wxSize\& }{givenDim}, \param{wxSize\& }{prefDim}}
Returns the preferred dimension, taking the given dimension and a reference to the result.
\membersection{wxDynamicToolBar::GetToolInfo}\label{wxdynamictoolbargettoolinfo} \membersection{wxDynamicToolBar::GetToolInfo}\label{wxdynamictoolbargettoolinfo}
\func{wxDynToolInfo*}{GetToolInfo}{\param{int }{toolIndex}} \func{wxDynToolInfo*}{GetToolInfo}{\param{int }{toolIndex}}
Returns tool information for the given tool index.
\membersection{wxDynamicToolBar::Layout}\label{wxdynamictoolbarlayout} \membersection{wxDynamicToolBar::Layout}\label{wxdynamictoolbarlayout}
\func{bool}{Layout}{\void} \func{bool}{Layout}{\void}
see definitions of orientation types Performs layout. See definitions of orientation types.
\membersection{wxDynamicToolBar::OnEraseBackground}\label{wxdynamictoolbaronerasebackground} \membersection{wxDynamicToolBar::OnEraseBackground}\label{wxdynamictoolbaronerasebackground}
\func{void}{OnEraseBackground}{\param{wxEraseEvent\& }{event}} \func{void}{OnEraseBackground}{\param{wxEraseEvent\& }{event}}
Responds to background erase events. Currently does nothing.
\membersection{wxDynamicToolBar::OnPaint}\label{wxdynamictoolbaronpaint} \membersection{wxDynamicToolBar::OnPaint}\label{wxdynamictoolbaronpaint}
\func{void}{OnPaint}{\param{wxPaintEvent\& }{event}} \func{void}{OnPaint}{\param{wxPaintEvent\& }{event}}
Responds to paint events, drawing separators.
\membersection{wxDynamicToolBar::OnSize}\label{wxdynamictoolbaronsize} \membersection{wxDynamicToolBar::OnSize}\label{wxdynamictoolbaronsize}
\func{void}{OnSize}{\param{wxSizeEvent\& }{event}} \func{void}{OnSize}{\param{wxSizeEvent\& }{event}}
event handlers Responds to size events, calling Layout.
\membersection{wxDynamicToolBar::Realize}\label{wxdynamictoolbarrealize} \membersection{wxDynamicToolBar::Realize}\label{wxdynamictoolbarrealize}
\func{bool}{Realize}{\void} \func{bool}{Realize}{\void}
overriden from wxToolBarBase Overriden from wxToolBarBase; does nothing.
\membersection{wxDynamicToolBar::RemveTool}\label{wxdynamictoolbarremvetool} \membersection{wxDynamicToolBar::RemveTool}\label{wxdynamictoolbarremvetool}
\func{void}{RemveTool}{\param{int }{toolIndex}} \func{void}{RemveTool}{\param{int }{toolIndex}}
Removes the given tool. Misspelt in order not to clash with a similar function
in the base class.
\membersection{wxDynamicToolBar::SetLayout}\label{wxdynamictoolbarsetlayout} \membersection{wxDynamicToolBar::SetLayout}\label{wxdynamictoolbarsetlayout}
\func{void}{SetLayout}{\param{LayoutManagerBase* }{pLayout}} \func{void}{SetLayout}{\param{LayoutManagerBase* }{pLayout}}
Sets the layout for this toolbar.
\membersection{wxDynamicToolBar::SizeToolWindows}\label{wxdynamictoolbarsizetoolwindows} \membersection{wxDynamicToolBar::SizeToolWindows}\label{wxdynamictoolbarsizetoolwindows}
\func{void}{SizeToolWindows}{\void} \func{void}{SizeToolWindows}{\void}
Internal function for sizing tool windows.

View File

@@ -1,14 +1,21 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% dyntbar.h at 05/Jan/02 22:50:56 % dyntbar.h at 21/Jan/02 21:14:18
% %
\section{\class{wxDynToolInfo}}\label{wxdyntoolinfo} \section{\class{wxDynToolInfo}}\label{wxdyntoolinfo}
This class holds dynamic toolbar item information.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{wxToolLayoutItem}{wxtoollayoutitem} \helpref{wxToolLayoutItem}{wxtoollayoutitem}
\wxheading{Include files}
<dyntbar.h>
\wxheading{Data structures} \wxheading{Data structures}

View File

@@ -1,20 +1,24 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% controlbar.h at 05/Jan/02 22:50:58 % controlbar.h at 21/Jan/02 21:14:13
% %
\section{\class{wxFrameLayout}}\label{wxframelayout} \section{\class{wxFrameLayout}}\label{wxframelayout}
wxFrameLayout manages containment and docking of control bars. wxFrameLayout manages containment and docking of control bars,
which can be docked along top, bottom, righ, or left side of the which can be docked along the top, bottom, right, or left side of the
parent frame parent frame.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{wxEvtHandler}{wxevthandler} \helpref{wxEvtHandler}{wxevthandler}
\wxheading{Include files}
<controlbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -24,160 +28,188 @@ wxFrameLayout manages containment and docking of control bars.
\func{}{wxFrameLayout}{\param{wxWindow* }{pParentFrame}, \param{wxWindow* }{pFrameClient = NULL}, \param{bool }{activateNow = TRUE}} \func{}{wxFrameLayout}{\param{wxWindow* }{pParentFrame}, \param{wxWindow* }{pFrameClient = NULL}, \param{bool }{activateNow = TRUE}}
Constructor, taking parent window, the (MDI) client of the parent if there
is one, and flag specifying whether to activate the layout.
\func{}{wxFrameLayout}{\void} \func{}{wxFrameLayout}{\void}
used only while serializing Default constructor, used only for serialization.
\membersection{wxFrameLayout::\destruct{wxFrameLayout}}\label{wxframelayoutdtor} \membersection{wxFrameLayout::\destruct{wxFrameLayout}}\label{wxframelayoutdtor}
\func{}{\destruct{wxFrameLayout}}{\void} \func{}{\destruct{wxFrameLayout}}{\void}
(doesn't destroy bar windows) Destructor. It does not destroy the bar windows.
\membersection{wxFrameLayout::Activate}\label{wxframelayoutactivate} \membersection{wxFrameLayout::Activate}\label{wxframelayoutactivate}
\func{void}{Activate}{\void} \func{void}{Activate}{\void}
Can be called after some other layout has been deactivated, Activate can be called after some other layout has been deactivated,
and this one must "take over" the current contents of frame window. and this one must take over the current contents of the frame window.
Effectively hooks itself to the frame window, re-displays all not-hidden Effectively hooks itself to the frame window, re-displays all non-hidden
bar-windows and repaints decorations bar windows and repaints the decorations.
\membersection{wxFrameLayout::AddBar}\label{wxframelayoutaddbar} \membersection{wxFrameLayout::AddBar}\label{wxframelayoutaddbar}
\func{void}{AddBar}{\param{wxWindow* }{pBarWnd}, \param{const cbDimInfo\& }{dimInfo}, \param{int }{alignment = FL\_ALIGN\_TOP}, \param{int }{rowNo = 0}, \param{int }{columnPos = 0}, \param{const wxString\& }{name = "bar"}, \param{bool }{spyEvents = FALSE}, \param{int }{state = wxCBAR\_DOCKED\_HORIZONTALLY}} \func{void}{AddBar}{\param{wxWindow* }{pBarWnd}, \param{const cbDimInfo\& }{dimInfo}, \param{int }{alignment = FL\_ALIGN\_TOP}, \param{int }{rowNo = 0}, \param{int }{columnPos = 0}, \param{const wxString\& }{name = "bar"}, \param{bool }{spyEvents = FALSE}, \param{int }{state = wxCBAR\_DOCKED\_HORIZONTALLY}}
Adds bar information to frame-layout, appearence of layout is not refreshed Adds bar information to the frame layout. The appearance of the layout is not refreshed
immediately, RefreshNow() can be called if necessary. immediately; RefreshNow() can be called if necessary.
NOTES:: argument pBarWnd can by NULL, resulting bar decorations to be drawn Notes: the argument pBarWnd can by NULL, resulting in bar decorations to be drawn
around the empty rectangle (filled with default background colour). around the empty rectangle (filled with default background colour).
Argument dimInfo, can be re-used for adding any number of bars, since Argument dimInfo can be reused for adding any number of bars, since
it is not used directly, instead it's members are copied. If dimensions- it is not used directly - instead its members are copied. If the dimensions
handler is present, it's instance shared (reference counted). Dimension handler is present, its instance is shared (reference counted). The dimension
handler should always be allocated on the heap!) handler should always be allocated on the heap.
pBarWnd is the window to be managed.
dimInfo contains dimension information.
alignment is a value such as FL\_ALIGN\_TOP.
rowNo is the vertical position or row in the pane (if in docked state).
columnPos is the horizontal position within the row in pixels (if in docked state).
name is a name by which the bar can be referred in layout customization dialogs.
If spyEvents is TRUE, input events for the bar should be "spyed" in order
to forward unhandled mouse clicks to the frame layout, for example to enable
easy draggablity of toolbars just by clicking on their interior regions.
For widgets like text/tree control this value should be FALSE,
since there's no certain way to detect whether the event was actually handled.
state is the initial state, such as wxCBAR\_DOCKED\_HORIZONTALLY,
wxCBAR\_FLOATING, wxCBAR\_HIDDEN.
\membersection{wxFrameLayout::AddPlugin}\label{wxframelayoutaddplugin} \membersection{wxFrameLayout::AddPlugin}\label{wxframelayoutaddplugin}
\func{void}{AddPlugin}{\param{wxClassInfo* }{pPlInfo}, \param{int }{paneMask = wxALL\_PANES}} \func{void}{AddPlugin}{\param{wxClassInfo* }{pPlInfo}, \param{int }{paneMask = wxALL\_PANES}}
"Advanced" methods for plugin-configuration using their dynamic class information (e.g. CLASSINFO(pluginClass) ) first checks if plugin of the given class is already "hooked up", An advanced methods for plugin configuration using their
if not, adds it to the top of plugins chain dynamic class information, for example CLASSINFO(pluginClass).
First checks if the plugin of the given class is already "hooked up".
If not, adds it to the top of the plugins chain.
\membersection{wxFrameLayout::AddPluginBefore}\label{wxframelayoutaddpluginbefore} \membersection{wxFrameLayout::AddPluginBefore}\label{wxframelayoutaddpluginbefore}
\func{void}{AddPluginBefore}{\param{wxClassInfo* }{pNextPlInfo}, \param{wxClassInfo* }{pPlInfo}, \param{int }{paneMask = wxALL\_PANES}} \func{void}{AddPluginBefore}{\param{wxClassInfo* }{pNextPlInfo}, \param{wxClassInfo* }{pPlInfo}, \param{int }{paneMask = wxALL\_PANES}}
first checks if plugin of the givne class already hooked, First checks if the plugin of the given class is already hooked.
if so, removes it, and then inserts it to the chain If so, removes it, and then inserts it into the chain
before plugin of the class given by "pNextPlInfo" before the plugin of the class given by pNextPlInfo.
NOTE:: this method is "handy" in some cases, where the order Note: this method is handy in some cases where the order
of plugin-chain could be important, e.g. one plugin overrides of the plugin-chain could be important, for example when one plugin overrides
some functionallity of the other already hooked plugin, some functionality of another already-hooked plugin,
thefore the former should be hooked before the one so that the former plugin should be hooked before the one
who's functionality is being overriden whose functionality is being overridden.
\membersection{wxFrameLayout::ApplyBarProperties}\label{wxframelayoutapplybarproperties} \membersection{wxFrameLayout::ApplyBarProperties}\label{wxframelayoutapplybarproperties}
\func{void}{ApplyBarProperties}{\param{cbBarInfo* }{pBar}} \func{void}{ApplyBarProperties}{\param{cbBarInfo* }{pBar}}
reflects changes in bar information structure visually Reflects changes in bar information structure visually.
(e.g. moves bar, changes it's dimension info, pane to which it is docked) For example, moves the bar, changes its dimension information,
or changes the pane to which it is docked.
\membersection{wxFrameLayout::CanReparent}\label{wxframelayoutcanreparent} \membersection{wxFrameLayout::CanReparent}\label{wxframelayoutcanreparent}
\func{bool}{CanReparent}{\void} \func{bool}{CanReparent}{\void}
NOTE:: reparenting of windows may NOT work on all platforms Returns TRUE if the platform allows reparenting. This may not return TRUE
(reparenting allows control-bars to be floated) for all platforms. Reparenting allows control bars to be floated.
\membersection{wxFrameLayout::CaptureEventsForPane}\label{wxframelayoutcaptureeventsforpane} \membersection{wxFrameLayout::CaptureEventsForPane}\label{wxframelayoutcaptureeventsforpane}
\func{void}{CaptureEventsForPane}{\param{cbDockPane* }{toPane}} \func{void}{CaptureEventsForPane}{\param{cbDockPane* }{toPane}}
called by plugins ( also captures/releases mouse in parent frame) Called by plugins; also captures the mouse in the parent frame.
\membersection{wxFrameLayout::CaptureEventsForPlugin}\label{wxframelayoutcaptureeventsforplugin} \membersection{wxFrameLayout::CaptureEventsForPlugin}\label{wxframelayoutcaptureeventsforplugin}
\func{void}{CaptureEventsForPlugin}{\param{cbPluginBase* }{pPlugin}} \func{void}{CaptureEventsForPlugin}{\param{cbPluginBase* }{pPlugin}}
captures/releases user-input event's for the given plugin Captures user input events for the given plugin.
Input events are: mouse movement, mouse clicks, keyboard input Input events are: mouse movement, mouse clicks, keyboard input.
\membersection{wxFrameLayout::CreateCursors}\label{wxframelayoutcreatecursors} \membersection{wxFrameLayout::CreateCursors}\label{wxframelayoutcreatecursors}
\func{void}{CreateCursors}{\void} \func{void}{CreateCursors}{\void}
Creates the cursors.
\membersection{wxFrameLayout::CreateUpdatesManager}\label{wxframelayoutcreateupdatesmanager} \membersection{wxFrameLayout::CreateUpdatesManager}\label{wxframelayoutcreateupdatesmanager}
\func{cbUpdatesManagerBase*}{CreateUpdatesManager}{\void} \func{cbUpdatesManagerBase*}{CreateUpdatesManager}{\void}
factory method Returns a new cbGCUpdatesMgr object.
\membersection{wxFrameLayout::Deactivate}\label{wxframelayoutdeactivate} \membersection{wxFrameLayout::Deactivate}\label{wxframelayoutdeactivate}
\func{void}{Deactivate}{\void} \func{void}{Deactivate}{\void}
unhooks itself from frame window, and hides all not-hidden windows Deactivate unhooks itself from frame window, and hides all non-hidden windows.
NOTE:: two frame-layouts should not be active at the same time in the Note: two frame layouts should not be active at the same time in the
same frame window, it would cause messy overlapping of bar windows same frame window, since it would cause messy overlapping of bar windows
from both layouts from both layouts.
\membersection{wxFrameLayout::DestroyBarWindows}\label{wxframelayoutdestroybarwindows} \membersection{wxFrameLayout::DestroyBarWindows}\label{wxframelayoutdestroybarwindows}
\func{void}{DestroyBarWindows}{\void} \func{void}{DestroyBarWindows}{\void}
Destroys the bar windows.
\membersection{wxFrameLayout::DoSetBarState}\label{wxframelayoutdosetbarstate} \membersection{wxFrameLayout::DoSetBarState}\label{wxframelayoutdosetbarstate}
\func{void}{DoSetBarState}{\param{cbBarInfo* }{pBar}} \func{void}{DoSetBarState}{\param{cbBarInfo* }{pBar}}
Applies the state to the window objects.
\membersection{wxFrameLayout::EnableFloating}\label{wxframelayoutenablefloating} \membersection{wxFrameLayout::EnableFloating}\label{wxframelayoutenablefloating}
\func{void}{EnableFloating}{\param{bool }{enable = TRUE}} \func{void}{EnableFloating}{\param{bool }{enable = TRUE}}
(by default floating of control-bars is ON) Enables floating behaviour. By default floating of control bars is on.
\membersection{wxFrameLayout::FindBarByName}\label{wxframelayoutfindbarbyname} \membersection{wxFrameLayout::FindBarByName}\label{wxframelayoutfindbarbyname}
\func{cbBarInfo*}{FindBarByName}{\param{const wxString\& }{name}} \func{cbBarInfo*}{FindBarByName}{\param{const wxString\& }{name}}
methods for access and modification of bars in frame layout Finds the bar in the framelayout, by name.
\membersection{wxFrameLayout::FindBarByWindow}\label{wxframelayoutfindbarbywindow} \membersection{wxFrameLayout::FindBarByWindow}\label{wxframelayoutfindbarbywindow}
\func{cbBarInfo*}{FindBarByWindow}{\param{const wxWindow* }{pWnd}} \func{cbBarInfo*}{FindBarByWindow}{\param{const wxWindow* }{pWnd}}
Finds the bar in the framelayout, by window.
\membersection{wxFrameLayout::FindPlugin}\label{wxframelayoutfindplugin} \membersection{wxFrameLayout::FindPlugin}\label{wxframelayoutfindplugin}
\func{cbPluginBase*}{FindPlugin}{\param{wxClassInfo* }{pPlInfo}} \func{cbPluginBase*}{FindPlugin}{\param{wxClassInfo* }{pPlInfo}}
returns NULL, if plugin of the given class is not hooked Finds a plugin with the given class, or returns NULL if a plugin of the given
class is not hooked.
\membersection{wxFrameLayout::FirePluginEvent}\label{wxframelayoutfirepluginevent} \membersection{wxFrameLayout::FirePluginEvent}\label{wxframelayoutfirepluginevent}
\func{void}{FirePluginEvent}{\param{cbPluginEvent\& }{event}} \func{void}{FirePluginEvent}{\param{cbPluginEvent\& }{event}}
plugin-related methods **should be used, instead of passing the event to ProcessEvent(..) method This function should be used instead of passing the event to the ProcessEvent method
of the top-plugin directly. This method checks if events are currently of the top-level plugin directly. This method checks if events are currently
captured and ensures that plugin-event is routed correctly. captured and ensures that plugin-event is routed correctly.
@@ -185,361 +217,439 @@ captured and ensures that plugin-event is routed correctly.
\func{void}{ForwardMouseEvent}{\param{wxMouseEvent\& }{event}, \param{cbDockPane* }{pToPane}, \param{int }{eventType}} \func{void}{ForwardMouseEvent}{\param{wxMouseEvent\& }{event}, \param{cbDockPane* }{pToPane}, \param{int }{eventType}}
delegated from "bar-spy" Delegated from "bar-spy".
\membersection{wxFrameLayout::GetBarPane}\label{wxframelayoutgetbarpane} \membersection{wxFrameLayout::GetBarPane}\label{wxframelayoutgetbarpane}
\func{cbDockPane*}{GetBarPane}{\param{cbBarInfo* }{pBar}} \func{cbDockPane*}{GetBarPane}{\param{cbBarInfo* }{pBar}}
returns panes, to which the given bar belongs Returns the pane to which the given bar belongs.
\membersection{wxFrameLayout::GetBars}\label{wxframelayoutgetbars} \membersection{wxFrameLayout::GetBars}\label{wxframelayoutgetbars}
\func{BarArrayT\&}{GetBars}{\void} \func{BarArrayT\&}{GetBars}{\void}
Gets an array of bars.
\membersection{wxFrameLayout::GetClientHeight}\label{wxframelayoutgetclientheight} \membersection{wxFrameLayout::GetClientHeight}\label{wxframelayoutgetclientheight}
\func{int}{GetClientHeight}{\void} \func{int}{GetClientHeight}{\void}
Returns the client height.
\membersection{wxFrameLayout::GetClientRect}\label{wxframelayoutgetclientrect} \membersection{wxFrameLayout::GetClientRect}\label{wxframelayoutgetclientrect}
\func{wxRect\&}{GetClientRect}{\void} \func{wxRect\&}{GetClientRect}{\void}
Returns the client's rectangle.
\membersection{wxFrameLayout::GetClientWidth}\label{wxframelayoutgetclientwidth} \membersection{wxFrameLayout::GetClientWidth}\label{wxframelayoutgetclientwidth}
\func{int}{GetClientWidth}{\void} \func{int}{GetClientWidth}{\void}
Returns the client width.
\membersection{wxFrameLayout::GetFrameClient}\label{wxframelayoutgetframeclient} \membersection{wxFrameLayout::GetFrameClient}\label{wxframelayoutgetframeclient}
\func{wxWindow*}{GetFrameClient}{\void} \func{wxWindow*}{GetFrameClient}{\void}
Returns the frame client, or NULL if not present.
\membersection{wxFrameLayout::GetPane}\label{wxframelayoutgetpane} \membersection{wxFrameLayout::GetPane}\label{wxframelayoutgetpane}
\func{cbDockPane*}{GetPane}{\param{int }{alignment}} \func{cbDockPane*}{GetPane}{\param{int }{alignment}}
see pane alignment types Returns a pane for the given alignment. See pane alignment types.
\membersection{wxFrameLayout::GetPaneProperties}\label{wxframelayoutgetpaneproperties} \membersection{wxFrameLayout::GetPaneProperties}\label{wxframelayoutgetpaneproperties}
\func{void}{GetPaneProperties}{\param{cbCommonPaneProperties\& }{props}, \param{int }{alignment = FL\_ALIGN\_TOP}} \func{void}{GetPaneProperties}{\param{cbCommonPaneProperties\& }{props}, \param{int }{alignment = FL\_ALIGN\_TOP}}
NOTE:: changing properties of panes, does not result immediate on-screen update Gets the pane properties for the given alignment.
\membersection{wxFrameLayout::GetPanesArray}\label{wxframelayoutgetpanesarray} \membersection{wxFrameLayout::GetPanesArray}\label{wxframelayoutgetpanesarray}
\func{cbDockPane**}{GetPanesArray}{\void} \func{cbDockPane**}{GetPanesArray}{\void}
used by updates-managers Returns an array of panes. Used by update managers.
\membersection{wxFrameLayout::GetParentFrame}\label{wxframelayoutgetparentframe} \membersection{wxFrameLayout::GetParentFrame}\label{wxframelayoutgetparentframe}
\func{wxWindow\&}{GetParentFrame}{\void} \func{wxWindow\&}{GetParentFrame}{\void}
Returns the parent frame.
\membersection{wxFrameLayout::GetPrevClientRect}\label{wxframelayoutgetprevclientrect} \membersection{wxFrameLayout::GetPrevClientRect}\label{wxframelayoutgetprevclientrect}
\func{wxRect\&}{GetPrevClientRect}{\void} \func{wxRect\&}{GetPrevClientRect}{\void}
Returns the previous client window rectangle.
\membersection{wxFrameLayout::GetTopPlugin}\label{wxframelayoutgettopplugin} \membersection{wxFrameLayout::GetTopPlugin}\label{wxframelayoutgettopplugin}
\func{cbPluginBase\&}{GetTopPlugin}{\void} \func{cbPluginBase\&}{GetTopPlugin}{\void}
returns current top-level plugin (the one which receives events first, Returns the current top-level plugin (the one that receives events first,
with an exception if input-events are currently captured by some other plugin) except if input events are currently captured by some other plugin).
\membersection{wxFrameLayout::GetUpdatesManager}\label{wxframelayoutgetupdatesmanager} \membersection{wxFrameLayout::GetUpdatesManager}\label{wxframelayoutgetupdatesmanager}
\func{cbUpdatesManagerBase\&}{GetUpdatesManager}{\void} \func{cbUpdatesManagerBase\&}{GetUpdatesManager}{\void}
NOTE:: in future ubdates-manager will become a normal plugin Returns a reference to the updates manager.
Note: in future, the updates manager will become a normal plugin.
\membersection{wxFrameLayout::HasTopPlugin}\label{wxframelayouthastopplugin} \membersection{wxFrameLayout::HasTopPlugin}\label{wxframelayouthastopplugin}
\func{bool}{HasTopPlugin}{\void} \func{bool}{HasTopPlugin}{\void}
Returns true if there is a top plugin.
\membersection{wxFrameLayout::HideBarWindows}\label{wxframelayouthidebarwindows} \membersection{wxFrameLayout::HideBarWindows}\label{wxframelayouthidebarwindows}
\func{void}{HideBarWindows}{\void} \func{void}{HideBarWindows}{\void}
also hides the client window if presents Hides the bar windows, and also the client window if present.
\membersection{wxFrameLayout::HitTestPane}\label{wxframelayouthittestpane} \membersection{wxFrameLayout::HitTestPane}\label{wxframelayouthittestpane}
\func{bool}{HitTestPane}{\param{cbDockPane* }{pPane}, \param{int }{x}, \param{int }{y}} \func{bool}{HitTestPane}{\param{cbDockPane* }{pPane}, \param{int }{x}, \param{int }{y}}
Returns TRUE if the position is within the given pane.
\membersection{wxFrameLayout::HitTestPanes}\label{wxframelayouthittestpanes} \membersection{wxFrameLayout::HitTestPanes}\label{wxframelayouthittestpanes}
\func{cbDockPane*}{HitTestPanes}{\param{const wxRect\& }{rect}, \param{cbDockPane* }{pCurPane}} \func{cbDockPane*}{HitTestPanes}{\param{const wxRect\& }{rect}, \param{cbDockPane* }{pCurPane}}
Returns the pane for which the rectangle hit test succeeds, giving
preference to the given pane if supplied.
\membersection{wxFrameLayout::HookUpToFrame}\label{wxframelayouthookuptoframe} \membersection{wxFrameLayout::HookUpToFrame}\label{wxframelayouthookuptoframe}
\func{void}{HookUpToFrame}{\void} \func{void}{HookUpToFrame}{\void}
Hooks the layout up to the frame (pushes the layout onto the
frame's event handler stack).
\membersection{wxFrameLayout::InverseVisibility}\label{wxframelayoutinversevisibility} \membersection{wxFrameLayout::InverseVisibility}\label{wxframelayoutinversevisibility}
\func{void}{InverseVisibility}{\param{cbBarInfo* }{pBar}} \func{void}{InverseVisibility}{\param{cbBarInfo* }{pBar}}
Toggles the bar between visible and hidden.
\membersection{wxFrameLayout::LocateBar}\label{wxframelayoutlocatebar} \membersection{wxFrameLayout::LocateBar}\label{wxframelayoutlocatebar}
\func{bool}{LocateBar}{\param{cbBarInfo* }{pBarInfo}, \param{cbRowInfo** }{ppRow}, \param{cbDockPane** }{ppPane}} \func{bool}{LocateBar}{\param{cbBarInfo* }{pBarInfo}, \param{cbRowInfo** }{ppRow}, \param{cbDockPane** }{ppPane}}
The purpose of this function is unknown.
\membersection{wxFrameLayout::OnActivate}\label{wxframelayoutonactivate} \membersection{wxFrameLayout::OnActivate}\label{wxframelayoutonactivate}
\func{void}{OnActivate}{\param{wxActivateEvent\& }{event}} \func{void}{OnActivate}{\param{wxActivateEvent\& }{event}}
Handles activation events. Currently does nothing.
\membersection{wxFrameLayout::OnEraseBackground}\label{wxframelayoutonerasebackground} \membersection{wxFrameLayout::OnEraseBackground}\label{wxframelayoutonerasebackground}
\func{void}{OnEraseBackground}{\param{wxEraseEvent\& }{event}} \func{void}{OnEraseBackground}{\param{wxEraseEvent\& }{event}}
Handles background erase events. Currently does nothing.
\membersection{wxFrameLayout::OnIdle}\label{wxframelayoutonidle} \membersection{wxFrameLayout::OnIdle}\label{wxframelayoutonidle}
\func{void}{OnIdle}{\param{wxIdleEvent\& }{event}} \func{void}{OnIdle}{\param{wxIdleEvent\& }{event}}
Handles idle events.
\membersection{wxFrameLayout::OnKillFocus}\label{wxframelayoutonkillfocus} \membersection{wxFrameLayout::OnKillFocus}\label{wxframelayoutonkillfocus}
\func{void}{OnKillFocus}{\param{wxFocusEvent\& }{event}} \func{void}{OnKillFocus}{\param{wxFocusEvent\& }{event}}
Handles focus kill events. Currently does nothing.
\membersection{wxFrameLayout::OnLButtonDown}\label{wxframelayoutonlbuttondown} \membersection{wxFrameLayout::OnLButtonDown}\label{wxframelayoutonlbuttondown}
\func{void}{OnLButtonDown}{\param{wxMouseEvent\& }{event}} \func{void}{OnLButtonDown}{\param{wxMouseEvent\& }{event}}
Event handler for a left down button event.
\membersection{wxFrameLayout::OnLButtonUp}\label{wxframelayoutonlbuttonup} \membersection{wxFrameLayout::OnLButtonUp}\label{wxframelayoutonlbuttonup}
\func{void}{OnLButtonUp}{\param{wxMouseEvent\& }{event}} \func{void}{OnLButtonUp}{\param{wxMouseEvent\& }{event}}
Event handler for a left button up event.
\membersection{wxFrameLayout::OnLDblClick}\label{wxframelayoutonldblclick} \membersection{wxFrameLayout::OnLDblClick}\label{wxframelayoutonldblclick}
\func{void}{OnLDblClick}{\param{wxMouseEvent\& }{event}} \func{void}{OnLDblClick}{\param{wxMouseEvent\& }{event}}
Event handler for a left doubleclick button event.
\membersection{wxFrameLayout::OnMouseMove}\label{wxframelayoutonmousemove} \membersection{wxFrameLayout::OnMouseMove}\label{wxframelayoutonmousemove}
\func{void}{OnMouseMove}{\param{wxMouseEvent\& }{event}} \func{void}{OnMouseMove}{\param{wxMouseEvent\& }{event}}
Event handler for a mouse move event.
\membersection{wxFrameLayout::OnPaint}\label{wxframelayoutonpaint} \membersection{wxFrameLayout::OnPaint}\label{wxframelayoutonpaint}
\func{void}{OnPaint}{\param{wxPaintEvent\& }{event}} \func{void}{OnPaint}{\param{wxPaintEvent\& }{event}}
Handles paint events, calling PaintPane for each pane.
\membersection{wxFrameLayout::OnRButtonDown}\label{wxframelayoutonrbuttondown} \membersection{wxFrameLayout::OnRButtonDown}\label{wxframelayoutonrbuttondown}
\func{void}{OnRButtonDown}{\param{wxMouseEvent\& }{event}} \func{void}{OnRButtonDown}{\param{wxMouseEvent\& }{event}}
Event handler for a right button down event.
\membersection{wxFrameLayout::OnRButtonUp}\label{wxframelayoutonrbuttonup} \membersection{wxFrameLayout::OnRButtonUp}\label{wxframelayoutonrbuttonup}
\func{void}{OnRButtonUp}{\param{wxMouseEvent\& }{event}} \func{void}{OnRButtonUp}{\param{wxMouseEvent\& }{event}}
Event handler for a right button up event.
\membersection{wxFrameLayout::OnSetFocus}\label{wxframelayoutonsetfocus} \membersection{wxFrameLayout::OnSetFocus}\label{wxframelayoutonsetfocus}
\func{void}{OnSetFocus}{\param{wxFocusEvent\& }{event}} \func{void}{OnSetFocus}{\param{wxFocusEvent\& }{event}}
Handles focus set events. Currently does nothing.
\membersection{wxFrameLayout::OnSize}\label{wxframelayoutonsize} \membersection{wxFrameLayout::OnSize}\label{wxframelayoutonsize}
\func{void}{OnSize}{\param{wxSizeEvent\& }{event}} \func{void}{OnSize}{\param{wxSizeEvent\& }{event}}
event handlers Event handler for a size event.
\membersection{wxFrameLayout::PopAllPlugins}\label{wxframelayoutpopallplugins} \membersection{wxFrameLayout::PopAllPlugins}\label{wxframelayoutpopallplugins}
\func{void}{PopAllPlugins}{\void} \func{void}{PopAllPlugins}{\void}
Pop all plugins.
\membersection{wxFrameLayout::PopPlugin}\label{wxframelayoutpopplugin} \membersection{wxFrameLayout::PopPlugin}\label{wxframelayoutpopplugin}
\func{void}{PopPlugin}{\void} \func{void}{PopPlugin}{\void}
Similar to wxWindow's "push/pop-event-handler" methods, execept
that the plugin is deleted upon "popping".
\membersection{wxFrameLayout::PositionClientWindow}\label{wxframelayoutpositionclientwindow} \membersection{wxFrameLayout::PositionClientWindow}\label{wxframelayoutpositionclientwindow}
\func{void}{PositionClientWindow}{\void} \func{void}{PositionClientWindow}{\void}
called to set calculated layout to window objects Called to apply the calculated layout to window objects.
\membersection{wxFrameLayout::PositionPanes}\label{wxframelayoutpositionpanes} \membersection{wxFrameLayout::PositionPanes}\label{wxframelayoutpositionpanes}
\func{void}{PositionPanes}{\void} \func{void}{PositionPanes}{\void}
Called to apply the calculated layout to window objects.
\membersection{wxFrameLayout::PushDefaultPlugins}\label{wxframelayoutpushdefaultplugins} \membersection{wxFrameLayout::PushDefaultPlugins}\label{wxframelayoutpushdefaultplugins}
\func{void}{PushDefaultPlugins}{\void} \func{void}{PushDefaultPlugins}{\void}
default plugins are : cbPaneDrawPlugin, cbRowLayoutPlugin, cbBarDragPlugin, Adds the default plugins. These are cbPaneDrawPlugin, cbRowLayoutPlugin, cbBarDragPlugin,
cbAntiflickerPlugin, cbSimpleCustomizePlugin cbAntiflickerPlugin, cbSimpleCustomizePlugin.
this method is automatically invoked, if no plugins were found upon This method is automatically invoked if no plugins were found upon
fireing of the first plugin-event, i.e. wxFrameLayout *CONFIGURES* itself firing of the first plugin-event, i.e. when wxFrameLayout configures itself.
\membersection{wxFrameLayout::PushPlugin}\label{wxframelayoutpushplugin} \membersection{wxFrameLayout::PushPlugin}\label{wxframelayoutpushplugin}
\func{void}{PushPlugin}{\param{cbPluginBase* }{pPugin}} \func{void}{PushPlugin}{\param{cbPluginBase* }{pPugin}}
similar to wxWindow's "push/pop-event-handler" methods, execept Similar to wxWindow's "push/pop-event-handler" methods, execept
that plugin is *deleted* upon "popping" that the plugin is deleted upon "popping".
\membersection{wxFrameLayout::RecalcLayout}\label{wxframelayoutrecalclayout} \membersection{wxFrameLayout::RecalcLayout}\label{wxframelayoutrecalclayout}
\func{void}{RecalcLayout}{\param{bool }{repositionBarsNow = FALSE}} \func{void}{RecalcLayout}{\param{bool }{repositionBarsNow = FALSE}}
recalcualtes layout of panes, and all bars/rows in each pane Recalculates the layout of panes, and all bars/rows in each pane.
\membersection{wxFrameLayout::RedockBar}\label{wxframelayoutredockbar} \membersection{wxFrameLayout::RedockBar}\label{wxframelayoutredockbar}
\func{bool}{RedockBar}{\param{cbBarInfo* }{pBar}, \param{const wxRect\& }{shapeInParent}, \param{cbDockPane* }{pToPane = NULL}, \param{bool }{updateNow = TRUE}} \func{bool}{RedockBar}{\param{cbBarInfo* }{pBar}, \param{const wxRect\& }{shapeInParent}, \param{cbDockPane* }{pToPane = NULL}, \param{bool }{updateNow = TRUE}}
can be used for repositioning already existing bars. The given bar is first removed ReddockBar can be used for repositioning existing bars. The given bar is first removed
from the pane it currently belongs to, and inserted into the pane, which "matches" from the pane it currently belongs to, and inserted into the pane, which "matches"
the given recantular area. If pToPane is not NULL, bar is docked to this given pane the given rectangular area. If pToPane is not NULL, the bar is docked to this given pane.
to dock the bar which is floated, use wxFrameLayout::DockBar(..) method To dock a bar which is floating, use the wxFrameLayout::DockBar method.
\membersection{wxFrameLayout::RefreshNow}\label{wxframelayoutrefreshnow} \membersection{wxFrameLayout::RefreshNow}\label{wxframelayoutrefreshnow}
\func{void}{RefreshNow}{\param{bool }{recalcLayout = TRUE}} \func{void}{RefreshNow}{\param{bool }{recalcLayout = TRUE}}
recalculates layoute and performs on-screen update of all panes Recalculates layout and performs on-screen update of all panes.
\membersection{wxFrameLayout::ReleaseEventsFromPane}\label{wxframelayoutreleaseeventsfrompane} \membersection{wxFrameLayout::ReleaseEventsFromPane}\label{wxframelayoutreleaseeventsfrompane}
\func{void}{ReleaseEventsFromPane}{\param{cbDockPane* }{fromPane}} \func{void}{ReleaseEventsFromPane}{\param{cbDockPane* }{fromPane}}
Called by plugins; also releases mouse in the parent frame.
\membersection{wxFrameLayout::ReleaseEventsFromPlugin}\label{wxframelayoutreleaseeventsfromplugin} \membersection{wxFrameLayout::ReleaseEventsFromPlugin}\label{wxframelayoutreleaseeventsfromplugin}
\func{void}{ReleaseEventsFromPlugin}{\param{cbPluginBase* }{pPlugin}} \func{void}{ReleaseEventsFromPlugin}{\param{cbPluginBase* }{pPlugin}}
Releases user input events for the given plugin.
Input events are: mouse movement, mouse clicks, keyboard input
\membersection{wxFrameLayout::RemoveBar}\label{wxframelayoutremovebar} \membersection{wxFrameLayout::RemoveBar}\label{wxframelayoutremovebar}
\func{void}{RemoveBar}{\param{cbBarInfo* }{pBar}} \func{void}{RemoveBar}{\param{cbBarInfo* }{pBar}}
removes bar from layout permanently, hides it's corresponding window if present Removes the bar from the layout permanently, and hides its corresponding window if present.
\membersection{wxFrameLayout::RemovePlugin}\label{wxframelayoutremoveplugin} \membersection{wxFrameLayout::RemovePlugin}\label{wxframelayoutremoveplugin}
\func{void}{RemovePlugin}{\param{wxClassInfo* }{pPlInfo}} \func{void}{RemovePlugin}{\param{wxClassInfo* }{pPlInfo}}
checks if plugin of the given class is hooked, removes Checks if the plugin of the given class is hooked, and removes
it if found it if found.
@param pPlInfo class information structure for the plugin
@note
@see wxFrameLayout::Method
\membersection{wxFrameLayout::ReparentWindow}\label{wxframelayoutreparentwindow} \membersection{wxFrameLayout::ReparentWindow}\label{wxframelayoutreparentwindow}
\func{void}{ReparentWindow}{\param{wxWindow* }{pChild}, \param{wxWindow* }{pNewParent}} \func{void}{ReparentWindow}{\param{wxWindow* }{pChild}, \param{wxWindow* }{pNewParent}}
Reparents pChild to have parent pNewParent.
\membersection{wxFrameLayout::RepositionFloatedBar}\label{wxframelayoutrepositionfloatedbar} \membersection{wxFrameLayout::RepositionFloatedBar}\label{wxframelayoutrepositionfloatedbar}
\func{void}{RepositionFloatedBar}{\param{cbBarInfo* }{pBar}} \func{void}{RepositionFloatedBar}{\param{cbBarInfo* }{pBar}}
Applies the calculated layout to a floating bar.
\membersection{wxFrameLayout::RouteMouseEvent}\label{wxframelayoutroutemouseevent} \membersection{wxFrameLayout::RouteMouseEvent}\label{wxframelayoutroutemouseevent}
\func{void}{RouteMouseEvent}{\param{wxMouseEvent\& }{event}, \param{int }{pluginEvtType}} \func{void}{RouteMouseEvent}{\param{wxMouseEvent\& }{event}, \param{int }{pluginEvtType}}
Routes the mouse event to the appropriate pane.
\membersection{wxFrameLayout::SetBarState}\label{wxframelayoutsetbarstate} \membersection{wxFrameLayout::SetBarState}\label{wxframelayoutsetbarstate}
\func{void}{SetBarState}{\param{cbBarInfo* }{pBar}, \param{int }{newStatem}, \param{bool }{updateNow}} \func{void}{SetBarState}{\param{cbBarInfo* }{pBar}, \param{int }{newStatem}, \param{bool }{updateNow}}
changes bar's docking state (see possible control bar states) Changes the bar's docking state (see possible control bar states).
\membersection{wxFrameLayout::SetFrameClient}\label{wxframelayoutsetframeclient} \membersection{wxFrameLayout::SetFrameClient}\label{wxframelayoutsetframeclient}
\func{void}{SetFrameClient}{\param{wxWindow* }{pFrameClient}} \func{void}{SetFrameClient}{\param{wxWindow* }{pFrameClient}}
passes the client window (e.g. MDI-client frame) to be controled by Passes the client window (e.g. MDI client window) to be controlled by
frame layout, the size and position of which should be adjusted to be frame layout, the size and position of which should be adjusted to be
surrounded by controlbar panes, whenever frame is resized, or dimensions surrounded by controlbar panes, whenever the frame is resized or the dimensions
of control panes change of control panes change.
\membersection{wxFrameLayout::SetMargins}\label{wxframelayoutsetmargins} \membersection{wxFrameLayout::SetMargins}\label{wxframelayoutsetmargins}
\func{void}{SetMargins}{\param{int }{top}, \param{int }{bottom}, \param{int }{left}, \param{int }{right}, \param{int }{paneMask = wxALL\_PANES}} \func{void}{SetMargins}{\param{int }{top}, \param{int }{bottom}, \param{int }{left}, \param{int }{right}, \param{int }{paneMask = wxALL\_PANES}}
TODO:: margins should go into cbCommonPaneProperties in the future Sets the margins for the given panes.
NOTE:: this method should be called before any custom plugins are attached The margins should go into cbCommonPaneProperties in the future.
Note: this method should be called before any custom plugins are attached.
\membersection{wxFrameLayout::SetPaneBackground}\label{wxframelayoutsetpanebackground} \membersection{wxFrameLayout::SetPaneBackground}\label{wxframelayoutsetpanebackground}
\func{void}{SetPaneBackground}{\param{const wxColour\& }{colour}} \func{void}{SetPaneBackground}{\param{const wxColour\& }{colour}}
Sets the pane background colour.
\membersection{wxFrameLayout::SetPaneProperties}\label{wxframelayoutsetpaneproperties} \membersection{wxFrameLayout::SetPaneProperties}\label{wxframelayoutsetpaneproperties}
\func{void}{SetPaneProperties}{\param{const cbCommonPaneProperties\& }{props}, \param{int }{paneMask = wxALL\_PANES}} \func{void}{SetPaneProperties}{\param{const cbCommonPaneProperties\& }{props}, \param{int }{paneMask = wxALL\_PANES}}
Sets the pane properties for the given alignment.
Note: changing properties of panes does not result immediate on-screen update.
\membersection{wxFrameLayout::SetTopPlugin}\label{wxframelayoutsettopplugin} \membersection{wxFrameLayout::SetTopPlugin}\label{wxframelayoutsettopplugin}
\func{void}{SetTopPlugin}{\param{cbPluginBase* }{pPlugin}} \func{void}{SetTopPlugin}{\param{cbPluginBase* }{pPlugin}}
hooking custom plugins to frame layout Hooking custom plugins to frame layout.
NOTE:: when hooking one plugin on top of the other - Note: when hooking one plugin on top of the other,
use SetNextHandler(..) or similar methods use SetNextHandler or similar methods
of wxEvtHandler class to compose the chain of plugins, of wxEvtHandler class to compose the chain of plugins,
than pass the left-most handler in this chain to than pass the left-most handler in this chain to
the above methods (assuming that events are delegated the above methods (assuming that events are delegated
from left-most towards right-most handler) from left-most towards right-most handler).
NOTE2:: this secenario is very inconvenient and "low-level", This secenario is very inconvenient and "low-level",
use Add/Push/PopPlugin methods instead so use the Add/Push/PopPlugin methods instead.
\membersection{wxFrameLayout::SetUpdatesManager}\label{wxframelayoutsetupdatesmanager} \membersection{wxFrameLayout::SetUpdatesManager}\label{wxframelayoutsetupdatesmanager}
\func{void}{SetUpdatesManager}{\param{cbUpdatesManagerBase* }{pUMgr}} \func{void}{SetUpdatesManager}{\param{cbUpdatesManagerBase* }{pUMgr}}
destroys the previous manager if any, set the new one Destroys the previous manager if any, and sets the new one.
\membersection{wxFrameLayout::ShowFloatedWindows}\label{wxframelayoutshowfloatedwindows} \membersection{wxFrameLayout::ShowFloatedWindows}\label{wxframelayoutshowfloatedwindows}
\func{void}{ShowFloatedWindows}{\param{bool }{show}} \func{void}{ShowFloatedWindows}{\param{bool }{show}}
Shows all floated windows.
\membersection{wxFrameLayout::UnhookFromFrame}\label{wxframelayoutunhookfromframe} \membersection{wxFrameLayout::UnhookFromFrame}\label{wxframelayoutunhookfromframe}
\func{void}{UnhookFromFrame}{\void} \func{void}{UnhookFromFrame}{\void}
Unhooks the layout from the frame.

View File

@@ -1,18 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% garbagec.h at 05/Jan/02 22:50:57 % garbagec.h at 21/Jan/02 21:14:19
% %
\section{\class{GarbageCollector}}\label{garbagecollector} \section{\class{GarbageCollector}}\label{garbagecollector}
class implements extremely slow, but probably one of the most simple GC algorithms This class implements an extremely slow but simple garbage collection algorithm.
\wxheading{Derived from} \wxheading{Derived from}
No base class No base class
\wxheading{Include files}
<garbagec.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -22,71 +26,89 @@ No base class
\func{}{GarbageCollector}{\void} \func{}{GarbageCollector}{\void}
Default constructor.
\membersection{GarbageCollector::\destruct{GarbageCollector}}\label{garbagecollectordtor} \membersection{GarbageCollector::\destruct{GarbageCollector}}\label{garbagecollectordtor}
\func{}{\destruct{GarbageCollector}}{\void} \func{}{\destruct{GarbageCollector}}{\void}
Destructor.
\membersection{GarbageCollector::AddDependency}\label{garbagecollectoradddependency} \membersection{GarbageCollector::AddDependency}\label{garbagecollectoradddependency}
\func{void}{AddDependency}{\param{void* }{pObj}, \param{void* }{pDependsOnObj}} \func{void}{AddDependency}{\param{void* }{pObj}, \param{void* }{pDependsOnObj}}
Prepare data for garbage collection.
\membersection{GarbageCollector::AddObject}\label{garbagecollectoraddobject} \membersection{GarbageCollector::AddObject}\label{garbagecollectoraddobject}
\func{void}{AddObject}{\param{void* }{pObj}, \param{int }{refCnt = 1}} \func{void}{AddObject}{\param{void* }{pObj}, \param{int }{refCnt = 1}}
prepare data for GC alg. Prepare data for garbage collection.
\membersection{GarbageCollector::ArrangeCollection}\label{garbagecollectorarrangecollection} \membersection{GarbageCollector::ArrangeCollection}\label{garbagecollectorarrangecollection}
\func{void}{ArrangeCollection}{\void} \func{void}{ArrangeCollection}{\void}
executes GC alg. Executes garbage collection algorithm.
\membersection{GarbageCollector::DestroyItemList}\label{garbagecollectordestroyitemlist} \membersection{GarbageCollector::DestroyItemList}\label{garbagecollectordestroyitemlist}
\func{void}{DestroyItemList}{\param{wxList\& }{lst}} \func{void}{DestroyItemList}{\param{wxList\& }{lst}}
Destroys a list of items.
\membersection{GarbageCollector::FindItemNode}\label{garbagecollectorfinditemnode} \membersection{GarbageCollector::FindItemNode}\label{garbagecollectorfinditemnode}
\func{wxNode*}{FindItemNode}{\param{void* }{pForObj}} \func{wxNode*}{FindItemNode}{\param{void* }{pForObj}}
Internal method for finding a node.
\membersection{GarbageCollector::FindReferenceFreeItemNode}\label{garbagecollectorfindreferencefreeitemnode} \membersection{GarbageCollector::FindReferenceFreeItemNode}\label{garbagecollectorfindreferencefreeitemnode}
\func{wxNode*}{FindReferenceFreeItemNode}{\void} \func{wxNode*}{FindReferenceFreeItemNode}{\void}
Internal method for findind and freeing a node.
\membersection{GarbageCollector::GetCycledObjects}\label{garbagecollectorgetcycledobjects} \membersection{GarbageCollector::GetCycledObjects}\label{garbagecollectorgetcycledobjects}
\func{wxList\&}{GetCycledObjects}{\void} \func{wxList\&}{GetCycledObjects}{\void}
Get cycled objects.
\membersection{GarbageCollector::GetRegularObjects}\label{garbagecollectorgetregularobjects} \membersection{GarbageCollector::GetRegularObjects}\label{garbagecollectorgetregularobjects}
\func{wxList\&}{GetRegularObjects}{\void} \func{wxList\&}{GetRegularObjects}{\void}
access results of the alg. Accesses the results of the algorithm.
\membersection{GarbageCollector::RemoveReferencesToNode}\label{garbagecollectorremovereferencestonode} \membersection{GarbageCollector::RemoveReferencesToNode}\label{garbagecollectorremovereferencestonode}
\func{void}{RemoveReferencesToNode}{\param{wxNode* }{pItemNode}} \func{void}{RemoveReferencesToNode}{\param{wxNode* }{pItemNode}}
Remove references to this node.
\membersection{GarbageCollector::Reset}\label{garbagecollectorreset} \membersection{GarbageCollector::Reset}\label{garbagecollectorreset}
\func{void}{Reset}{\void} \func{void}{Reset}{\void}
removes all data from GC Removes all data from the garbage collector.
\membersection{GarbageCollector::ResolveReferences}\label{garbagecollectorresolvereferences} \membersection{GarbageCollector::ResolveReferences}\label{garbagecollectorresolvereferences}
\func{void}{ResolveReferences}{\void} \func{void}{ResolveReferences}{\void}
Internal method for resolving references.

View File

@@ -1,6 +1,6 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% garbagec.h at 05/Jan/02 22:50:57 % garbagec.h at 21/Jan/02 21:14:19
% %
@@ -10,5 +10,9 @@
No base class No base class
\wxheading{Include files}
<garbagec.h>
\wxheading{Data structures} \wxheading{Data structures}

View File

@@ -1,18 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% dyntbar.h at 05/Jan/02 22:50:56 % dyntbar.h at 21/Jan/02 21:14:18
% %
\section{\class{LayoutManagerBase}}\label{layoutmanagerbase} \section{\class{LayoutManagerBase}}\label{layoutmanagerbase}
base class for layouting algorithm implementations This is a base class for layout algorithm implementations.
\wxheading{Derived from} \wxheading{Derived from}
No base class No base class
\wxheading{Include files}
<dyntbar.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -22,8 +26,12 @@ No base class
\func{}{\destruct{LayoutManagerBase}}{\void} \func{}{\destruct{LayoutManagerBase}}{\void}
Destructor.
\membersection{LayoutManagerBase::Layout}\label{layoutmanagerbaselayout} \membersection{LayoutManagerBase::Layout}\label{layoutmanagerbaselayout}
\func{void}{Layout}{\param{const wxSize\& }{parentDim}, \param{wxSize\& }{resultingDim}, \param{wxLayoutItemArrayT\& }{items}, \param{int }{horizGap}, \param{int }{vertGap}} \func{void}{Layout}{\param{const wxSize\& }{parentDim}, \param{wxSize\& }{resultingDim}, \param{wxLayoutItemArrayT\& }{items}, \param{int }{horizGap}, \param{int }{vertGap}}
Constructor.

View File

@@ -85,7 +85,7 @@ $(DOCDIR)\htb\fl.htb: $(DOCDIR)\html\fl\fl.htm
# In order to force document reprocessing # In order to force document reprocessing
touchmanual: touchmanual:
-touch $(WXDIR)\docs\latex\fl\manual.tex -touch $(WXDIR)\contrib\docs\latex\fl\manual.tex
updatedocs: touchmanual alldocs updatedocs: touchmanual alldocs

View File

@@ -1,17 +1,21 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% hintanimpl.h at 05/Jan/02 22:50:57 % hintanimpl.h at 21/Jan/02 21:14:19
% %
\section{\class{MorphInfoT}}\label{morphinfot} \section{\class{MorphInfoT}}\label{morphinfot}
helper classes A private helper class.
\wxheading{Derived from} \wxheading{Derived from}
No base class No base class
\wxheading{Include files}
<hintanimpl.h>
\wxheading{Data structures} \wxheading{Data structures}

View File

@@ -1,18 +1,23 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% newbmpbtn.h at 05/Jan/02 22:50:57 % newbmpbtn.h at 21/Jan/02 21:14:19
% %
\section{\class{wxNewBitmapButton}}\label{wxnewbitmapbutton} \section{\class{wxNewBitmapButton}}\label{wxnewbitmapbutton}
alternative class for wxBmpButton This is an alternative class to wxBitmapButton. It is used
in the implementation of dynamic toolbars.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{wxPanel}{wxpanel} \helpref{wxPanel}{wxpanel}
\wxheading{Include files}
<newbmpbtn.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -22,116 +27,151 @@ alternative class for wxBmpButton
\func{}{wxNewBitmapButton}{\param{const wxBitmap\& }{labelBitmap = wxNullBitmap}, \param{const wxString\& }{labelText = ""}, \param{int }{alignText = NB\_ALIGN\_TEXT\_BOTTOM}, \param{bool }{isFlat = TRUE}, \param{int }{firedEventType = wxEVT\_COMMAND\_MENU\_SELECTED}, \param{int }{marginX = 2}, \param{int }{marginY = 2}, \param{int }{textToLabelGap = 2}, \param{bool }{isSticky = FALSE}} \func{}{wxNewBitmapButton}{\param{const wxBitmap\& }{labelBitmap = wxNullBitmap}, \param{const wxString\& }{labelText = ""}, \param{int }{alignText = NB\_ALIGN\_TEXT\_BOTTOM}, \param{bool }{isFlat = TRUE}, \param{int }{firedEventType = wxEVT\_COMMAND\_MENU\_SELECTED}, \param{int }{marginX = 2}, \param{int }{marginY = 2}, \param{int }{textToLabelGap = 2}, \param{bool }{isSticky = FALSE}}
Constructor.
\func{}{wxNewBitmapButton}{\param{const wxString\& }{bitmapFileName}, \param{const wxBitmapType }{bitmapFileType = wxBITMAP\_TYPE\_BMP}, \param{const wxString\& }{labelText = ""}, \param{int }{alignText = NB\_ALIGN\_TEXT\_BOTTOM}, \param{bool }{isFlat = TRUE}, \param{int }{firedEventType = wxEVT\_COMMAND\_MENU\_SELECTED}, \param{int }{marginX = 2}, \param{int }{marginY = 2}, \param{int }{textToLabelGap = 2}, \param{bool }{isSticky = FALSE}} \func{}{wxNewBitmapButton}{\param{const wxString\& }{bitmapFileName}, \param{const wxBitmapType }{bitmapFileType = wxBITMAP\_TYPE\_BMP}, \param{const wxString\& }{labelText = ""}, \param{int }{alignText = NB\_ALIGN\_TEXT\_BOTTOM}, \param{bool }{isFlat = TRUE}, \param{int }{firedEventType = wxEVT\_COMMAND\_MENU\_SELECTED}, \param{int }{marginX = 2}, \param{int }{marginY = 2}, \param{int }{textToLabelGap = 2}, \param{bool }{isSticky = FALSE}}
use this constructor if buttons have to be persistant Use this constructor if buttons have to be persistant
\membersection{wxNewBitmapButton::\destruct{wxNewBitmapButton}}\label{wxnewbitmapbuttondtor} \membersection{wxNewBitmapButton::\destruct{wxNewBitmapButton}}\label{wxnewbitmapbuttondtor}
\func{}{\destruct{wxNewBitmapButton}}{\void} \func{}{\destruct{wxNewBitmapButton}}{\void}
Destructor.
\membersection{wxNewBitmapButton::DestroyLabels}\label{wxnewbitmapbuttondestroylabels} \membersection{wxNewBitmapButton::DestroyLabels}\label{wxnewbitmapbuttondestroylabels}
\func{void}{DestroyLabels}{\void} \func{void}{DestroyLabels}{\void}
Internal function for destroying labels.
\membersection{wxNewBitmapButton::DrawDecorations}\label{wxnewbitmapbuttondrawdecorations} \membersection{wxNewBitmapButton::DrawDecorations}\label{wxnewbitmapbuttondrawdecorations}
\func{void}{DrawDecorations}{\param{wxDC\& }{dc}} \func{void}{DrawDecorations}{\param{wxDC\& }{dc}}
Draws the decorations.
\membersection{wxNewBitmapButton::DrawLabel}\label{wxnewbitmapbuttondrawlabel} \membersection{wxNewBitmapButton::DrawLabel}\label{wxnewbitmapbuttondrawlabel}
\func{void}{DrawLabel}{\param{wxDC\& }{dc}} \func{void}{DrawLabel}{\param{wxDC\& }{dc}}
Draws the label.
\membersection{wxNewBitmapButton::DrawShade}\label{wxnewbitmapbuttondrawshade} \membersection{wxNewBitmapButton::DrawShade}\label{wxnewbitmapbuttondrawshade}
\func{void}{DrawShade}{\param{int }{outerLevel}, \param{wxDC\& }{dc}, \param{wxPen\& }{upperLeftSidePen}, \param{wxPen\& }{lowerRightSidePen}} \func{void}{DrawShade}{\param{int }{outerLevel}, \param{wxDC\& }{dc}, \param{wxPen\& }{upperLeftSidePen}, \param{wxPen\& }{lowerRightSidePen}}
Draws shading on the button.
\membersection{wxNewBitmapButton::GetStateLabel}\label{wxnewbitmapbuttongetstatelabel} \membersection{wxNewBitmapButton::GetStateLabel}\label{wxnewbitmapbuttongetstatelabel}
\func{wxBitmap*}{GetStateLabel}{\void} \func{wxBitmap*}{GetStateLabel}{\void}
returns the label which match the current button state Returns the label that matches the current button state.
\membersection{wxNewBitmapButton::IsInWindow}\label{wxnewbitmapbuttonisinwindow} \membersection{wxNewBitmapButton::IsInWindow}\label{wxnewbitmapbuttonisinwindow}
\func{bool}{IsInWindow}{\param{int }{x}, \param{int }{y}} \func{bool}{IsInWindow}{\param{int }{x}, \param{int }{y}}
Returns TRUE if the given point is in the window.
\membersection{wxNewBitmapButton::OnEraseBackground}\label{wxnewbitmapbuttononerasebackground} \membersection{wxNewBitmapButton::OnEraseBackground}\label{wxnewbitmapbuttononerasebackground}
\func{void}{OnEraseBackground}{\param{wxEraseEvent\& }{event}} \func{void}{OnEraseBackground}{\param{wxEraseEvent\& }{event}}
Responds to an erase background event.
\membersection{wxNewBitmapButton::OnKillFocus}\label{wxnewbitmapbuttononkillfocus} \membersection{wxNewBitmapButton::OnKillFocus}\label{wxnewbitmapbuttononkillfocus}
\func{void}{OnKillFocus}{\param{wxFocusEvent\& }{event}} \func{void}{OnKillFocus}{\param{wxFocusEvent\& }{event}}
Responds to a kill focus event.
\membersection{wxNewBitmapButton::OnLButtonDown}\label{wxnewbitmapbuttononlbuttondown} \membersection{wxNewBitmapButton::OnLButtonDown}\label{wxnewbitmapbuttononlbuttondown}
\func{void}{OnLButtonDown}{\param{wxMouseEvent\& }{event}} \func{void}{OnLButtonDown}{\param{wxMouseEvent\& }{event}}
event handlers Responds to a left mouse button down event.
\membersection{wxNewBitmapButton::OnLButtonUp}\label{wxnewbitmapbuttononlbuttonup} \membersection{wxNewBitmapButton::OnLButtonUp}\label{wxnewbitmapbuttononlbuttonup}
\func{void}{OnLButtonUp}{\param{wxMouseEvent\& }{event}} \func{void}{OnLButtonUp}{\param{wxMouseEvent\& }{event}}
Responds to a left mouse button up event.
\membersection{wxNewBitmapButton::OnMouseMove}\label{wxnewbitmapbuttononmousemove} \membersection{wxNewBitmapButton::OnMouseMove}\label{wxnewbitmapbuttononmousemove}
\func{void}{OnMouseMove}{\param{wxMouseEvent\& }{event}} \func{void}{OnMouseMove}{\param{wxMouseEvent\& }{event}}
Responds to a mouse move event.
\membersection{wxNewBitmapButton::OnPaint}\label{wxnewbitmapbuttononpaint} \membersection{wxNewBitmapButton::OnPaint}\label{wxnewbitmapbuttononpaint}
\func{void}{OnPaint}{\param{wxPaintEvent\& }{event}} \func{void}{OnPaint}{\param{wxPaintEvent\& }{event}}
Responds to a paint event.
\membersection{wxNewBitmapButton::OnSize}\label{wxnewbitmapbuttononsize} \membersection{wxNewBitmapButton::OnSize}\label{wxnewbitmapbuttononsize}
\func{void}{OnSize}{\param{wxSizeEvent\& }{event}} \func{void}{OnSize}{\param{wxSizeEvent\& }{event}}
Responds to a size event.
\membersection{wxNewBitmapButton::RenderAllLabelImages}\label{wxnewbitmapbuttonrenderalllabelimages} \membersection{wxNewBitmapButton::RenderAllLabelImages}\label{wxnewbitmapbuttonrenderalllabelimages}
\func{void}{RenderAllLabelImages}{\void} \func{void}{RenderAllLabelImages}{\void}
Renders label images.
\membersection{wxNewBitmapButton::RenderLabelImage}\label{wxnewbitmapbuttonrenderlabelimage} \membersection{wxNewBitmapButton::RenderLabelImage}\label{wxnewbitmapbuttonrenderlabelimage}
\func{void}{RenderLabelImage}{\param{wxBitmap*\& }{destBmp}, \param{wxBitmap* }{srcBmp}, \param{bool }{isEnabled = TRUE}, \param{bool }{isPressed = FALSE}} \func{void}{RenderLabelImage}{\param{wxBitmap*\& }{destBmp}, \param{wxBitmap* }{srcBmp}, \param{bool }{isEnabled = TRUE}, \param{bool }{isPressed = FALSE}}
Renders the label image.
\membersection{wxNewBitmapButton::RenderLabelImages}\label{wxnewbitmapbuttonrenderlabelimages} \membersection{wxNewBitmapButton::RenderLabelImages}\label{wxnewbitmapbuttonrenderlabelimages}
\func{void}{RenderLabelImages}{\void} \func{void}{RenderLabelImages}{\void}
Renders label images.
\membersection{wxNewBitmapButton::Reshape}\label{wxnewbitmapbuttonreshape} \membersection{wxNewBitmapButton::Reshape}\label{wxnewbitmapbuttonreshape}
\func{void}{Reshape}{\void} \func{void}{Reshape}{\void}
should be called after Create(); This function should be called after Create. It renders the labels, having
reloaded the button image if necessary.
\membersection{wxNewBitmapButton::SetAlignments}\label{wxnewbitmapbuttonsetalignments} \membersection{wxNewBitmapButton::SetAlignments}\label{wxnewbitmapbuttonsetalignments}
\func{void}{SetAlignments}{\param{int }{alignText = NB\_ALIGN\_TEXT\_BOTTOM}, \param{int }{marginX = 2}, \param{int }{marginY = 2}, \param{int }{textToLabelGap = 2}} \func{void}{SetAlignments}{\param{int }{alignText = NB\_ALIGN\_TEXT\_BOTTOM}, \param{int }{marginX = 2}, \param{int }{marginY = 2}, \param{int }{textToLabelGap = 2}}
Sets the text alignment and margins.
\membersection{wxNewBitmapButton::SetLabel}\label{wxnewbitmapbuttonsetlabel} \membersection{wxNewBitmapButton::SetLabel}\label{wxnewbitmapbuttonsetlabel}
\func{void}{SetLabel}{\param{const wxBitmap\& }{labelBitmap}, \param{const wxString\& }{labelText = ""}} \func{void}{SetLabel}{\param{const wxBitmap\& }{labelBitmap}, \param{const wxString\& }{labelText = ""}}
overridables Sets the label and optionally label text.

View File

@@ -1,18 +1,22 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% dyntbar.h at 05/Jan/02 22:50:56 % dyntbar.h at 21/Jan/02 21:14:18
% %
\section{\class{wxToolLayoutItem}}\label{wxtoollayoutitem} \section{\class{wxToolLayoutItem}}\label{wxtoollayoutitem}
layout item Tool layout item.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{wxObject}{wxobject} \helpref{wxObject}{wxobject}
\wxheading{Include files}
<dyntbar.h>
\wxheading{Data structures} \wxheading{Data structures}
{\small \begin{verbatim} {\small \begin{verbatim}

View File

@@ -1,15 +1,23 @@
% %
% automatically generated by HelpGen $Revision$ from % automatically generated by HelpGen $Revision$ from
% toolwnd.h at 05/Jan/02 22:50:58 % toolwnd.h at 21/Jan/02 21:14:17
% %
\section{\class{wxToolWindow}}\label{wxtoolwindow} \section{\class{wxToolWindow}}\label{wxtoolwindow}
A tool window is a special kind of frame that paints its own title, and
can be used to implement small floating windows.
\wxheading{Derived from} \wxheading{Derived from}
\helpref{wxFrame}{wxframe} \helpref{wxFrame}{wxframe}
\wxheading{Include files}
<toolwnd.h>
\wxheading{Data structures} \wxheading{Data structures}
\latexignore{\rtfignore{\wxheading{Members}}} \latexignore{\rtfignore{\wxheading{Members}}}
@@ -19,122 +27,167 @@
\func{}{wxToolWindow}{\void} \func{}{wxToolWindow}{\void}
Default constructor.
\membersection{wxToolWindow::\destruct{wxToolWindow}}\label{wxtoolwindowdtor} \membersection{wxToolWindow::\destruct{wxToolWindow}}\label{wxtoolwindowdtor}
\func{}{\destruct{wxToolWindow}}{\void} \func{}{\destruct{wxToolWindow}}{\void}
Destructor.
\membersection{wxToolWindow::AddMiniButton}\label{wxtoolwindowaddminibutton} \membersection{wxToolWindow::AddMiniButton}\label{wxtoolwindowaddminibutton}
\func{void}{AddMiniButton}{\param{cbMiniButton* }{pBtn}} \func{void}{AddMiniButton}{\param{cbMiniButton* }{pBtn}}
buttons are added in right-to-left order Adds a button. Buttons are added in right-to-left order.
\membersection{wxToolWindow::AdjustRectPos}\label{wxtoolwindowadjustrectpos} \membersection{wxToolWindow::AdjustRectPos}\label{wxtoolwindowadjustrectpos}
\func{void}{AdjustRectPos}{\param{const wxRect\& }{original}, \param{const wxSize\& }{newDim}, \param{wxRect\& }{newRect}} \func{void}{AdjustRectPos}{\param{const wxRect\& }{original}, \param{const wxSize\& }{newDim}, \param{wxRect\& }{newRect}}
Helper function.
\membersection{wxToolWindow::CalcResizedRect}\label{wxtoolwindowcalcresizedrect} \membersection{wxToolWindow::CalcResizedRect}\label{wxtoolwindowcalcresizedrect}
\func{void}{CalcResizedRect}{\param{wxRect\& }{rect}, \param{wxPoint\& }{delta}, \param{const wxSize\& }{minDim}} \func{void}{CalcResizedRect}{\param{wxRect\& }{rect}, \param{wxPoint\& }{delta}, \param{const wxSize\& }{minDim}}
Calculate resized rectangle.
\membersection{wxToolWindow::DrawHintRect}\label{wxtoolwindowdrawhintrect} \membersection{wxToolWindow::DrawHintRect}\label{wxtoolwindowdrawhintrect}
\func{void}{DrawHintRect}{\param{const wxRect\& }{r}} \func{void}{DrawHintRect}{\param{const wxRect\& }{r}}
Draws the hint rectangle.
\membersection{wxToolWindow::GetClient}\label{wxtoolwindowgetclient} \membersection{wxToolWindow::GetClient}\label{wxtoolwindowgetclient}
\func{wxWindow*}{GetClient}{\void} \func{wxWindow*}{GetClient}{\void}
Returns the client window.
\membersection{wxToolWindow::GetMinimalWndDim}\label{wxtoolwindowgetminimalwnddim} \membersection{wxToolWindow::GetMinimalWndDim}\label{wxtoolwindowgetminimalwnddim}
\func{wxSize}{GetMinimalWndDim}{\void} \func{wxSize}{GetMinimalWndDim}{\void}
Helper function.
\membersection{wxToolWindow::GetPreferredSize}\label{wxtoolwindowgetpreferredsize} \membersection{wxToolWindow::GetPreferredSize}\label{wxtoolwindowgetpreferredsize}
\func{wxSize}{GetPreferredSize}{\param{const wxSize\& }{given}} \func{wxSize}{GetPreferredSize}{\param{const wxSize\& }{given}}
overridables: Returns the preferred size for the window.
\membersection{wxToolWindow::GetScrMousePos}\label{wxtoolwindowgetscrmousepos} \membersection{wxToolWindow::GetScrMousePos}\label{wxtoolwindowgetscrmousepos}
\func{void}{GetScrMousePos}{\param{wxMouseEvent\& }{event}, \param{wxPoint\& }{pos}} \func{void}{GetScrMousePos}{\param{wxMouseEvent\& }{event}, \param{wxPoint\& }{pos}}
Gets the mouse position in screen coordinates.
\membersection{wxToolWindow::GetScrWindowRect}\label{wxtoolwindowgetscrwindowrect} \membersection{wxToolWindow::GetScrWindowRect}\label{wxtoolwindowgetscrwindowrect}
\func{void}{GetScrWindowRect}{\param{wxRect\& }{r}} \func{void}{GetScrWindowRect}{\param{wxRect\& }{r}}
Maps client coordinates to screen coordinates.
\membersection{wxToolWindow::HandleTitleClick}\label{wxtoolwindowhandletitleclick} \membersection{wxToolWindow::HandleTitleClick}\label{wxtoolwindowhandletitleclick}
\func{bool}{HandleTitleClick}{\param{wxMouseEvent\& }{event}} \func{bool}{HandleTitleClick}{\param{wxMouseEvent\& }{event}}
Handles clicking on the title. By default, does nothing.
\membersection{wxToolWindow::HitTestWindow}\label{wxtoolwindowhittestwindow} \membersection{wxToolWindow::HitTestWindow}\label{wxtoolwindowhittestwindow}
\func{int}{HitTestWindow}{\param{wxMouseEvent\& }{event}} \func{int}{HitTestWindow}{\param{wxMouseEvent\& }{event}}
Tests if the mouse position is in this window.
\membersection{wxToolWindow::LayoutMiniButtons}\label{wxtoolwindowlayoutminibuttons} \membersection{wxToolWindow::LayoutMiniButtons}\label{wxtoolwindowlayoutminibuttons}
\func{void}{LayoutMiniButtons}{\void} \func{void}{LayoutMiniButtons}{\void}
Lays out the buttons.
\membersection{wxToolWindow::OnEraseBackground}\label{wxtoolwindowonerasebackground} \membersection{wxToolWindow::OnEraseBackground}\label{wxtoolwindowonerasebackground}
\func{void}{OnEraseBackground}{\param{wxEraseEvent\& }{event}} \func{void}{OnEraseBackground}{\param{wxEraseEvent\& }{event}}
Responds to an erase background event.
\membersection{wxToolWindow::OnLeftDown}\label{wxtoolwindowonleftdown} \membersection{wxToolWindow::OnLeftDown}\label{wxtoolwindowonleftdown}
\func{void}{OnLeftDown}{\param{wxMouseEvent\& }{event}} \func{void}{OnLeftDown}{\param{wxMouseEvent\& }{event}}
Responds to a mouse left down event.
\membersection{wxToolWindow::OnLeftUp}\label{wxtoolwindowonleftup} \membersection{wxToolWindow::OnLeftUp}\label{wxtoolwindowonleftup}
\func{void}{OnLeftUp}{\param{wxMouseEvent\& }{event}} \func{void}{OnLeftUp}{\param{wxMouseEvent\& }{event}}
Responds to a mouse left up event.
\membersection{wxToolWindow::OnMiniButtonClicked}\label{wxtoolwindowonminibuttonclicked} \membersection{wxToolWindow::OnMiniButtonClicked}\label{wxtoolwindowonminibuttonclicked}
\func{void}{OnMiniButtonClicked}{\param{int }{btnIdx}} \func{void}{OnMiniButtonClicked}{\param{int }{btnIdx}}
Called when a mini button is clicked.
By default, does nothing.
\membersection{wxToolWindow::OnMotion}\label{wxtoolwindowonmotion} \membersection{wxToolWindow::OnMotion}\label{wxtoolwindowonmotion}
\func{void}{OnMotion}{\param{wxMouseEvent\& }{event}} \func{void}{OnMotion}{\param{wxMouseEvent\& }{event}}
Responds to a mouse move event.
\membersection{wxToolWindow::OnPaint}\label{wxtoolwindowonpaint} \membersection{wxToolWindow::OnPaint}\label{wxtoolwindowonpaint}
\func{void}{OnPaint}{\param{wxPaintEvent\& }{event}} \func{void}{OnPaint}{\param{wxPaintEvent\& }{event}}
Responds to a paint event.
\membersection{wxToolWindow::OnSize}\label{wxtoolwindowonsize} \membersection{wxToolWindow::OnSize}\label{wxtoolwindowonsize}
\func{void}{OnSize}{\param{wxSizeEvent\& }{event}} \func{void}{OnSize}{\param{wxSizeEvent\& }{event}}
Responds to a size event.
\membersection{wxToolWindow::SetClient}\label{wxtoolwindowsetclient} \membersection{wxToolWindow::SetClient}\label{wxtoolwindowsetclient}
\func{void}{SetClient}{\param{wxWindow* }{pWnd}} \func{void}{SetClient}{\param{wxWindow* }{pWnd}}
Sets the client for this tool window.
\membersection{wxToolWindow::SetHintCursor}\label{wxtoolwindowsethintcursor} \membersection{wxToolWindow::SetHintCursor}\label{wxtoolwindowsethintcursor}
\func{void}{SetHintCursor}{\param{int }{type}} \func{void}{SetHintCursor}{\param{int }{type}}
Sets the hint cursor.
\membersection{wxToolWindow::SetTitleFont}\label{wxtoolwindowsettitlefont} \membersection{wxToolWindow::SetTitleFont}\label{wxtoolwindowsettitlefont}
\func{void}{SetTitleFont}{\param{wxFont\& }{font}} \func{void}{SetTitleFont}{\param{wxFont\& }{font}}
Sets the title font.

View File

@@ -6,7 +6,7 @@
// Created: 23/10/98 // Created: 23/10/98
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifndef __ANTIFLICKPL_G__ #ifndef __ANTIFLICKPL_G__
@@ -20,50 +20,66 @@
/* /*
Implements double-buffering to reduce flicker. Implements double-buffering to reduce flicker.
Bitmap and memory DC buffers are shared "resources" among all instances of Bitmap and memory DC buffers are shared 'resources' among all instances of
antiflicker plugins within the application. antiflicker plugins within the application.
Locking for multithreaded applications is not yet implemented. Locking for multithreaded applications is not yet implemented.
*/ */
class cbAntiflickerPlugin : public cbPluginBase class cbAntiflickerPlugin : public cbPluginBase
{ {
DECLARE_DYNAMIC_CLASS( cbAntiflickerPlugin ) DECLARE_DYNAMIC_CLASS( cbAntiflickerPlugin )
protected: protected:
static wxBitmap* mpVertBuf; static wxBitmap* mpVertBuf;
static wxBitmap* mpHorizBuf; static wxBitmap* mpHorizBuf;
static wxMemoryDC* mpVertBufDc; static wxMemoryDC* mpVertBufDc;
static wxMemoryDC* mpHorizBufDc; static wxMemoryDC* mpHorizBufDc;
static int mRefCount; static int mRefCount;
wxDC* mpLRUBufDc; // last-recently-used buffer wxDC* mpLRUBufDc; // last-recently-used buffer
wxRect mLRUArea; // last-recently-used area wxRect mLRUArea; // last-recently-used area
protected: protected:
// Finds a suitable buffer. Returns NULL if a suitable buffer is not present. // Finds a suitable buffer. Returns NULL if a suitable buffer is not present.
wxDC* FindSuitableBuffer( const wxRect& forArea );
// Allocates a suitable buffer.
wxDC* AllocNewBuffer( const wxRect& forArea );
wxDC& GetWindowDC(); wxDC* FindSuitableBuffer( const wxRect& forArea );
wxDC& GetClientDC();
// Allocates a suitable buffer.
wxDC* AllocNewBuffer( const wxRect& forArea );
// Gets the window device context.
wxDC& GetWindowDC();
// Gets the client device context.
wxDC& GetClientDC();
public: public:
cbAntiflickerPlugin(void); // Default constructor.
cbAntiflickerPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES ); cbAntiflickerPlugin(void);
virtual ~cbAntiflickerPlugin(); // Constructor taking frame layout panel, and pane mask.
// Handler for plugin event. cbAntiflickerPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES );
void OnStartDrawInArea ( cbStartDrawInAreaEvent& event );
// Handler for plugin event. // Destructor.
void OnFinishDrawInArea( cbFinishDrawInAreaEvent& event );
DECLARE_EVENT_TABLE() virtual ~cbAntiflickerPlugin();
// Handler for plugin event.
void OnStartDrawInArea ( cbStartDrawInAreaEvent& event );
// Handler for plugin event.
void OnFinishDrawInArea( cbFinishDrawInAreaEvent& event );
DECLARE_EVENT_TABLE()
}; };
#endif /* __ANTIFLICKPL_G__ */ #endif /* __ANTIFLICKPL_G__ */

View File

@@ -6,7 +6,7 @@
// Created: 23/09/98 // Created: 23/09/98
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifndef __BARDRAGPL_G__ #ifndef __BARDRAGPL_G__
@@ -19,149 +19,154 @@
#include "wx/fl/controlbar.h" #include "wx/fl/controlbar.h"
#include "wx/fl/toolwnd.h" #include "wx/fl/toolwnd.h"
/*
Plugin class implementing bar dragging.
*/
class cbBarDragPlugin : public cbPluginBase class cbBarDragPlugin : public cbPluginBase
{ {
DECLARE_DYNAMIC_CLASS( cbBarDragPlugin ) DECLARE_DYNAMIC_CLASS( cbBarDragPlugin )
protected: protected:
// plugin is active only in bar-dragging state // plugin is active only in bar-dragging state
bool mBarDragStarted; bool mBarDragStarted;
bool mCanStick; // flag used to prevent "bouncing" of hint-rectangle bool mCanStick; // flag used to prevent "bouncing" of hint-rectangle
wxScreenDC* mpScrDc; // created while tracking hint-rect wxScreenDC* mpScrDc; // created while tracking hint-rect
wxCursor* mpCurCursor; wxCursor* mpCurCursor;
// rectangle shows the position/dimensions of the bar, // rectangle shows the position/dimensions of the bar,
// if it would be docked now // if it would be docked now
wxRect mPrevHintRect; wxRect mPrevHintRect;
wxRect mHintRect; wxRect mHintRect;
int mMouseInRectX; int mMouseInRectX;
int mMouseInRectY; int mMouseInRectY;
cbDockPane* mpSrcPane; // pane, from which the bar was originally taken cbDockPane* mpSrcPane; // pane, from which the bar was originally taken
int mBarWidthInSrcPane; int mBarWidthInSrcPane;
cbDockPane* mpCurPane; cbDockPane* mpCurPane;
cbBarInfo* mpDraggedBar; // bar, which is being dragged cbBarInfo* mpDraggedBar; // bar, which is being dragged
bool mBarWasFloating; bool mBarWasFloating;
wxRect mFloatedBarBounds; wxRect mFloatedBarBounds;
public: /*** public properties ***/ public: /*** public properties ***/
int mInClientHintBorder; // when hint-rect moves within client window area, int mInClientHintBorder; // when hint-rect moves within client window area,
// the thicker rectangle is drawn using hatched brush, // the thicker rectangle is drawn using hatched brush,
// the default border width for this rectangle is 8 pix. // the default border width for this rectangle is 8 pix.
protected: protected:
// Internal implementation function. // Internal implementation function.
void AdjustHintRect( wxPoint& mousePos ); void AdjustHintRect( wxPoint& mousePos );
// Internal implementation function. // Internal implementation function.
void ClipRectInFrame( wxRect& rect ); void ClipRectInFrame( wxRect& rect );
// Internal implementation function. // Internal implementation function.
void ClipPosInFrame( wxPoint& pos ); void ClipPosInFrame( wxPoint& pos );
// Internal implementation function. Finds the pane // Internal implementation function. Finds the pane
// under the specified rectangle. // under the specified rectangle.
cbDockPane* HitTestPanes( wxRect& rect ); cbDockPane* HitTestPanes( wxRect& rect );
// Internal implementation function. Finds the pane // Internal implementation function. Finds the pane
// under the specified point. // under the specified point.
cbDockPane* HitTestPanes( wxPoint& pos ); cbDockPane* HitTestPanes( wxPoint& pos );
// Internal implementation function. // Internal implementation function.
bool HitsPane( cbDockPane* pPane, wxRect& rect ); bool HitsPane( cbDockPane* pPane, wxRect& rect );
// Internal implementation function. // Internal implementation function.
void CalcOnScreenDims( wxRect& rect ); void CalcOnScreenDims( wxRect& rect );
// Internal implementation function. // Internal implementation function.
int GetDistanceToPane( cbDockPane* pPane, wxPoint& mousePos ); int GetDistanceToPane( cbDockPane* pPane, wxPoint& mousePos );
// Internal implementation function. // Internal implementation function.
bool IsInOtherPane ( wxPoint& mousePos ); bool IsInOtherPane ( wxPoint& mousePos );
// Internal implementation function. // Internal implementation function.
bool IsInClientArea( wxPoint& mousePos ); bool IsInClientArea( wxPoint& mousePos );
// Internal implementation function. // Internal implementation function.
bool IsInClientArea( wxRect& rect ); bool IsInClientArea( wxRect& rect );
// Internal implementation function. // Internal implementation function.
void StickToPane( cbDockPane* pPane, wxPoint& mousePos ); void StickToPane( cbDockPane* pPane, wxPoint& mousePos );
// Internal implementation function. // Internal implementation function.
void UnstickFromPane( cbDockPane* pPane, wxPoint& mousePos ); void UnstickFromPane( cbDockPane* pPane, wxPoint& mousePos );
// Internal implementation function. // Internal implementation function.
int GetBarWidthInPane( cbDockPane* pPane ); int GetBarWidthInPane( cbDockPane* pPane );
// Internal implementation function. // Internal implementation function.
int GetBarHeightInPane( cbDockPane* pPane ); int GetBarHeightInPane( cbDockPane* pPane );
// on-screen hint-tracking related methods // on-screen hint-tracking related methods
// Internal implementation function. // Internal implementation function.
// Start showing a visual hint while dragging. // Start showing a visual hint while dragging.
void StartTracking(); void StartTracking();
// Internal implementation function. // Internal implementation function.
// Draw the visual hint while dragging. // Draw the visual hint while dragging.
void DrawHintRect ( wxRect& rect, bool isInClientRect); void DrawHintRect ( wxRect& rect, bool isInClientRect);
// Internal implementation function.
// Erase the visual hint while dragging.
void EraseHintRect( wxRect& rect, bool isInClientRect);
// Internal implementation function. // Internal implementation function.
// Stop showing the visual hint while dragging. // Erase the visual hint while dragging.
void FinishTracking(); void EraseHintRect( wxRect& rect, bool isInClientRect);
// Internal implementation function. // Internal implementation function.
// Draw the hint rectangle. // Stop showing the visual hint while dragging.
void DoDrawHintRect( wxRect& rect, bool isInClientRect); void FinishTracking();
// Internal implementation function. // Internal implementation function.
// Converts the given rectangle from window to screen coordinates. // Draw the hint rectangle.
void RectToScr( wxRect& frameRect, wxRect& scrRect ); void DoDrawHintRect( wxRect& rect, bool isInClientRect);
// Internal implementation function. // Internal implementation function.
// Show the hint; called within OnMouseMove. // Converts the given rectangle from window to screen coordinates.
void ShowHint( bool prevWasInClient ); void RectToScr( wxRect& frameRect, wxRect& scrRect );
// Internal implementation function.
// Show the hint; called within OnMouseMove.
void ShowHint( bool prevWasInClient );
public: public:
// Default constructor. // Default constructor.
cbBarDragPlugin(void); cbBarDragPlugin(void);
// Constructor taking a parent frame, and flag. See cbPluginBase. // Constructor taking a parent frame, and flag. See cbPluginBase.
cbBarDragPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES ); cbBarDragPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES );
// Destructor. // Destructor.
virtual ~cbBarDragPlugin(); virtual ~cbBarDragPlugin();
// Handler for plugin event. // Handler for plugin event.
void OnMouseMove( cbMotionEvent& event ); void OnMouseMove( cbMotionEvent& event );
// Handler for plugin event. // Handler for plugin event.
void OnLButtonUp( cbLeftUpEvent& event ); void OnLButtonUp( cbLeftUpEvent& event );
// Handler for plugin event. // Handler for plugin event.
void OnLButtonDown( cbLeftDownEvent& event ); void OnLButtonDown( cbLeftDownEvent& event );
// Handler for plugin event. // Handler for plugin event.
void OnLDblClick( cbLeftDClickEvent& event ); void OnLDblClick( cbLeftDClickEvent& event );
// Handles event, which originates from itself. // Handles event, which originates from itself.
void OnDrawHintRect( cbDrawHintRectEvent& event ); void OnDrawHintRect( cbDrawHintRectEvent& event );
// Handler for plugin event. // Handler for plugin event.
void OnStartBarDragging( cbStartBarDraggingEvent& event ); void OnStartBarDragging( cbStartBarDraggingEvent& event );
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
}; };
#endif /* __BARDRAGPL_G__ */ #endif /* __BARDRAGPL_G__ */

View File

@@ -6,7 +6,7 @@
// Created: 30/11/98 (my 22th birthday :-) // Created: 30/11/98 (my 22th birthday :-)
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifndef __DRAGHINTSPL_G__ #ifndef __DRAGHINTSPL_G__
@@ -26,89 +26,89 @@ around fixed and flexible bars, similar to those in Microsoft DevStudio 6.x
class cbBarHintsPlugin : public cbPluginBase class cbBarHintsPlugin : public cbPluginBase
{ {
DECLARE_DYNAMIC_CLASS( cbBarHintsPlugin ) DECLARE_DYNAMIC_CLASS( cbBarHintsPlugin )
protected: protected:
cbDockPane* mpPane; // is set up temorarely, while handling event cbDockPane* mpPane; // is set up temorarely, while handling event
cbMiniButton* mBoxes[2]; cbMiniButton* mBoxes[2];
bool mBtnPressed; bool mBtnPressed;
bool mClosePressed; bool mClosePressed;
cbBarInfo* mpClickedBar; cbBarInfo* mpClickedBar;
bool mDepressed; bool mDepressed;
protected: protected:
// Helper function: draws a 3D box. // Helper function: draws a 3D box.
void Draw3DBox ( wxDC& dc, const wxPoint& pos, bool pressed ); void Draw3DBox ( wxDC& dc, const wxPoint& pos, bool pressed );
// Helper function: draws a close box. // Helper function: draws a close box.
void DrawCloseBox ( wxDC& dc, const wxPoint& pos, bool pressed ); void DrawCloseBox ( wxDC& dc, const wxPoint& pos, bool pressed );
// Helper function: draws a collapse box. // Helper function: draws a collapse box.
void DrawCollapseBox( wxDC& dc, const wxPoint& pos, void DrawCollapseBox( wxDC& dc, const wxPoint& pos,
bool atLeft, bool disabled, bool pressed ); bool atLeft, bool disabled, bool pressed );
// Helper function: draws grooves. // Helper function: draws grooves.
void DrawGrooves ( wxDC& dc, const wxPoint& pos, int length ); void DrawGrooves ( wxDC& dc, const wxPoint& pos, int length );
// Helper function: draws a hint. // Helper function: draws a hint.
void DoDrawHint( wxDC& dc, wxRect& rect, int pos, int boxOfs, int grooveOfs, bool isFixed ); void DoDrawHint( wxDC& dc, wxRect& rect, int pos, int boxOfs, int grooveOfs, bool isFixed );
// Helper function: gets the layout of a hint.
void GetHintsLayout( wxRect& rect, cbBarInfo& info,
int& boxOfs, int& grooveOfs, int& pos );
// Helper function: returns information about the hint under the given position. // Helper function: gets the layout of a hint.
int HitTestHints( cbBarInfo& info, const wxPoint& pos ); void GetHintsLayout( wxRect& rect, cbBarInfo& info,
int& boxOfs, int& grooveOfs, int& pos );
// Helper function. // Helper function: returns information about the hint under the given position.
void ExcludeHints( wxRect& rect, cbBarInfo& info ); int HitTestHints( cbBarInfo& info, const wxPoint& pos );
// Helper function: creates close and collapse boxes. // Helper function.
void CreateBoxes(); void ExcludeHints( wxRect& rect, cbBarInfo& info );
// Helper function: creates close and collapse boxes.
void CreateBoxes();
public: public:
/* public properties */ /* public properties */
bool mCloseBoxOn; // default: ON bool mCloseBoxOn; // default: ON
bool mCollapseBoxOn; // default: ON bool mCollapseBoxOn; // default: ON
int mGrooveCount; // default: 2 (two shaded bars) int mGrooveCount; // default: 2 (two shaded bars)
int mHintGap; // default: 5 (pixels from above, below, right and left) int mHintGap; // default: 5 (pixels from above, below, right and left)
int mXWeight; // default: 2 (width in pixels of lines which used for drawing cross) int mXWeight; // default: 2 (width in pixels of lines which used for drawing cross)
public: public:
// Default constructor. // Default constructor.
cbBarHintsPlugin(void); cbBarHintsPlugin(void);
// Constructor, taking parent frame and pane mask flag. // Constructor, taking parent frame and pane mask flag.
cbBarHintsPlugin( wxFrameLayout* pLayout, int paneMask = wxALL_PANES ); cbBarHintsPlugin( wxFrameLayout* pLayout, int paneMask = wxALL_PANES );
// Destructor. // Destructor.
~cbBarHintsPlugin(); ~cbBarHintsPlugin();
// Set the number of grooves to be shown in the pane. // Set the number of grooves to be shown in the pane.
void SetGrooveCount( int nGrooves ); void SetGrooveCount( int nGrooves );
// Called to initialize this plugin. // Called to initialize this plugin.
void OnInitPlugin(); void OnInitPlugin();
// Handles a plugin event. // Handles a plugin event.
void OnSizeBarWindow( cbSizeBarWndEvent& event ); void OnSizeBarWindow( cbSizeBarWndEvent& event );
// Handles a plugin event. // Handles a plugin event.
void OnDrawBarDecorations( cbDrawBarDecorEvent& event ); void OnDrawBarDecorations( cbDrawBarDecorEvent& event );
// Handles a plugin event. // Handles a plugin event.
void OnLeftDown( cbLeftDownEvent& event ); void OnLeftDown( cbLeftDownEvent& event );
// Handles a plugin event. // Handles a plugin event.
void OnLeftUp ( cbLeftUpEvent& event ); void OnLeftUp ( cbLeftUpEvent& event );
// Handles a plugin event. // Handles a plugin event.
void OnMotion ( cbMotionEvent& event ); void OnMotion ( cbMotionEvent& event );
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
}; };
#endif /* __DRAGHINTSPL_G__ */ #endif /* __DRAGHINTSPL_G__ */

View File

@@ -6,7 +6,7 @@
// Created: 28/10/98 // Created: 28/10/98
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifndef __CBCUSTOM_G__ #ifndef __CBCUSTOM_G__
@@ -27,27 +27,27 @@ and horizontal/vertical alignment of the bar.
class cbSimpleCustomizationPlugin : public cbPluginBase class cbSimpleCustomizationPlugin : public cbPluginBase
{ {
public: public:
DECLARE_DYNAMIC_CLASS( cbSimpleCustomizationPlugin ) DECLARE_DYNAMIC_CLASS( cbSimpleCustomizationPlugin )
int mCustMenuItemId; int mCustMenuItemId;
public: public:
// Default constructor. // Default constructor.
cbSimpleCustomizationPlugin(void); cbSimpleCustomizationPlugin(void);
// Constructor, taking parent pane and a pane mask flag. // Constructor, taking parent pane and a pane mask flag.
cbSimpleCustomizationPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES ); cbSimpleCustomizationPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES );
// Plugin event handler for cbCustomizeBarEvent. // Plugin event handler for cbCustomizeBarEvent.
void OnCustomizeBar( cbCustomizeBarEvent& event ); void OnCustomizeBar( cbCustomizeBarEvent& event );
// Plugin event handler for cbCustomizeLayoutEvent. // Plugin event handler for cbCustomizeLayoutEvent.
void OnCustomizeLayout( cbCustomizeLayoutEvent& event ); void OnCustomizeLayout( cbCustomizeLayoutEvent& event );
// Menu event handler. // Menu event handler.
void OnMenuItemSelected( wxCommandEvent& event ); void OnMenuItemSelected( wxCommandEvent& event );
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
}; };
#endif /* __CBCUSTOM_G__ */ #endif /* __CBCUSTOM_G__ */

File diff suppressed because it is too large Load Diff

View File

@@ -1,12 +1,12 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: No names yet. // Name: dynbarhnd.h
// Purpose: Contrib. demo // Purpose: This header simply includes controlbar.h.
// Author: Aleksandras Gluchovas // Author: Aleksandras Gluchovas
// Modified by: // Modified by:
// Created: 23/01/99 // Created: 23/01/99
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifndef __DYNBARHND_G__ #ifndef __DYNBARHND_G__

View File

@@ -1,12 +1,12 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: No names yet. // Name: dyntbar.h
// Purpose: Contrib. demo // Purpose: wxDynamicToolBar header
// Author: Aleksandras Gluchovas // Author: Aleksandras Gluchovas
// Modified by: // Modified by:
// Created: ??/10/98 // Created: ??/10/98
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifndef __DYNTBAR_G__ #ifndef __DYNTBAR_G__
@@ -19,13 +19,15 @@
#include "wx/tbarbase.h" #include "wx/tbarbase.h"
#include "wx/dynarray.h" #include "wx/dynarray.h"
// layout item /*
Tool layout item.
*/
class wxToolLayoutItem : public wxObject class wxToolLayoutItem : public wxObject
{ {
public: public:
wxRect mRect; wxRect mRect;
bool mIsSeparator; bool mIsSeparator;
}; };
class wxDynToolInfo; class wxDynToolInfo;
@@ -33,160 +35,215 @@ class wxDynToolInfo;
typedef wxToolLayoutItem* wxToolLayoutItemPtrT; typedef wxToolLayoutItem* wxToolLayoutItemPtrT;
typedef wxDynToolInfo* wxDynToolInfoPtrT; typedef wxDynToolInfo* wxDynToolInfoPtrT;
WX_DEFINE_ARRAY( wxToolLayoutItemPtrT, wxLayoutItemArrayT ); WX_DEFINE_ARRAY( wxToolLayoutItemPtrT, wxLayoutItemArrayT );
WX_DEFINE_ARRAY( wxDynToolInfoPtrT, wxDynToolInfoArrayT ); WX_DEFINE_ARRAY( wxDynToolInfoPtrT, wxDynToolInfoArrayT );
// base class for layouting algorithm implementations /*
This is a base class for layout algorithm implementations.
*/
class LayoutManagerBase class LayoutManagerBase
{ {
public: public:
virtual void Layout( const wxSize& parentDim, // Constructor.
wxSize& resultingDim, virtual void Layout( const wxSize& parentDim,
wxLayoutItemArrayT& items, wxSize& resultingDim,
int horizGap, wxLayoutItemArrayT& items,
int vertGap ) = 0; int horizGap,
int vertGap ) = 0;
virtual ~LayoutManagerBase() {} // Destructor.
virtual ~LayoutManagerBase() {}
}; };
// layouts items in left-to-right order from /*
// top towards bottom BagLayout lays out items in left-to-right order from
top to bottom.
*/
class BagLayout : public LayoutManagerBase class BagLayout : public LayoutManagerBase
{ {
public: public:
virtual void Layout( const wxSize& parentDim, // Constructor.
wxSize& resultingDim, virtual void Layout( const wxSize& parentDim,
wxLayoutItemArrayT& items, wxSize& resultingDim,
int horizGap, wxLayoutItemArrayT& items,
int vertGap ); int horizGap,
int vertGap );
}; };
/*
This class holds dynamic toolbar item information.
*/
class wxDynToolInfo : public wxToolLayoutItem class wxDynToolInfo : public wxToolLayoutItem
{ {
DECLARE_DYNAMIC_CLASS(wxDynToolInfo) DECLARE_DYNAMIC_CLASS(wxDynToolInfo)
public: public:
wxWindow* mpToolWnd; wxWindow* mpToolWnd;
int mIndex; int mIndex;
wxSize mRealSize; wxSize mRealSize;
}; };
// layouting orientations for tools // Layout orientations for tools
#define LO_HORIZONTAL 0 #define LO_HORIZONTAL 0
#define LO_VERTICAL 1 #define LO_VERTICAL 1
#define LO_FIT_TO_WINDOW 2 #define LO_FIT_TO_WINDOW 2
// class manages containment and layouting of tool-windows /*
wxDynamicToolBar manages containment and layout of tool windows.
*/
class wxDynamicToolBar : public wxToolBarBase class wxDynamicToolBar : public wxToolBarBase
{ {
DECLARE_DYNAMIC_CLASS(wxDynamicToolBar) DECLARE_DYNAMIC_CLASS(wxDynamicToolBar)
protected: protected:
friend class wxDynamicToolBarSerializer; friend class wxDynamicToolBarSerializer;
wxDynToolInfoArrayT mTools; wxDynToolInfoArrayT mTools;
LayoutManagerBase* mpLayoutMan; LayoutManagerBase* mpLayoutMan;
protected: protected:
virtual void SizeToolWindows(); // Internal function for sizing tool windows.
virtual void SizeToolWindows();
public: /* public properties */ public: /* public properties */
int mSepartorSize; // default: 8 int mSepartorSize; // default: 8
int mVertGap; // default: 0 int mVertGap; // default: 0
int mHorizGap; // default: 0 int mHorizGap; // default: 0
public: public:
wxDynamicToolBar(); // Default constructor.
wxDynamicToolBar(wxWindow *parent, const wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, wxDynamicToolBar();
const long style = wxNO_BORDER, const int orientation = wxVERTICAL,
const int RowsOrColumns = 1, const wxString& name = wxToolBarNameStr);
~wxDynamicToolBar(void); // Constructor: see the documentation for wxToolBar for details.
bool Create(wxWindow *parent, const wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, wxDynamicToolBar(wxWindow *parent, const wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
const long style = wxNO_BORDER, const int orientation = wxVERTICAL, const int RowsOrColumns = 1, const wxString& name = wxToolBarNameStr); const long style = wxNO_BORDER, const int orientation = wxVERTICAL,
const int RowsOrColumns = 1, const wxString& name = wxToolBarNameStr);
// overridables // Destructor.
virtual void AddTool( int toolIndex, ~wxDynamicToolBar(void);
wxWindow* pToolWindow,
// Creation function: see the documentation for wxToolBar for details.
bool Create(wxWindow *parent, const wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
const long style = wxNO_BORDER, const int orientation = wxVERTICAL, const int RowsOrColumns = 1, const wxString& name = wxToolBarNameStr);
// Adds a tool. See the documentation for wxToolBar for details.
virtual void AddTool( int toolIndex,
wxWindow* pToolWindow,
const wxSize& size = wxDefaultSize ); const wxSize& size = wxDefaultSize );
virtual void AddTool( int toolIndex, // Adds a tool. See the documentation for wxToolBar for details.
virtual void AddTool( int toolIndex,
const wxString& imageFileName, const wxString& imageFileName,
wxBitmapType imageFileType = wxBITMAP_TYPE_BMP, wxBitmapType imageFileType = wxBITMAP_TYPE_BMP,
const wxString& labelText = "", bool alignTextRight = FALSE, const wxString& labelText = "", bool alignTextRight = FALSE,
bool isFlat = TRUE ); bool isFlat = TRUE );
virtual void AddTool( int toolIndex, wxBitmap labelBmp, // Adds a tool. See the documentation for wxToolBar for details.
virtual void AddTool( int toolIndex, wxBitmap labelBmp,
const wxString& labelText = "", bool alignTextRight = FALSE, const wxString& labelText = "", bool alignTextRight = FALSE,
bool isFlat = TRUE ); bool isFlat = TRUE );
// method from wxToolBarBase (for compatibility), only // Method from wxToolBarBase (for compatibility), only
// first two arguments are valid // the first two arguments are valid.
// See the documentation for wxToolBar for details.
virtual wxToolBarToolBase *AddTool(const int toolIndex, const wxBitmap& bitmap, const wxBitmap& pushedBitmap = wxNullBitmap, virtual wxToolBarToolBase *AddTool(const int toolIndex, const wxBitmap& bitmap, const wxBitmap& pushedBitmap = wxNullBitmap,
const bool toggle = FALSE, const long xPos = -1, const long yPos = -1, wxObject *clientData = NULL, const bool toggle = FALSE, const long xPos = -1, const long yPos = -1, wxObject *clientData = NULL,
const wxString& helpString1 = "", const wxString& helpString2 = ""); const wxString& helpString1 = "", const wxString& helpString2 = "");
virtual void AddSeparator( wxWindow* pSepartorWnd = NULL ); // Adds a separator. See the documentation for wxToolBar for details.
wxDynToolInfo* GetToolInfo( int toolIndex ); virtual void AddSeparator( wxWindow* pSepartorWnd = NULL );
void RemveTool( int toolIndex ); // Returns tool information for the given tool index.
// the default implementation draws shaded line wxDynToolInfo* GetToolInfo( int toolIndex );
virtual void DrawSeparator( wxDynToolInfo& info, wxDC& dc );
// see definitions of orientation types // Removes the given tool. Misspelt in order not to clash with a similar function
virtual bool Layout(); // in the base class.
virtual void GetPreferredDim( const wxSize& givenDim, wxSize& prefDim ); void RemveTool( int toolIndex );
virtual LayoutManagerBase* CreateDefaulLayout() { return new BagLayout(); } // Draws a separator. The default implementation draws a shaded line.
virtual void SetLayout( LayoutManagerBase* pLayout ); virtual void DrawSeparator( wxDynToolInfo& info, wxDC& dc );
virtual void EnableTool(const int toolIndex, const bool enable = TRUE); // Performs layout. See definitions of orientation types.
// event handlers virtual bool Layout();
void OnSize( wxSizeEvent& event ); // Returns the preferred dimension, taking the given dimension and a reference to the result.
void OnPaint( wxPaintEvent& event );
void OnEraseBackground( wxEraseEvent& event );
// overriden from wxToolBarBase virtual void GetPreferredDim( const wxSize& givenDim, wxSize& prefDim );
virtual bool Realize(void); // Creates the default layout (BagLayout).
// stuff from the 2.1.15 virtual LayoutManagerBase* CreateDefaultLayout() { return new BagLayout(); }
// Sets the layout for this toolbar.
virtual void SetLayout( LayoutManagerBase* pLayout );
// Enables or disables the given tool.
virtual void EnableTool(const int toolIndex, const bool enable = TRUE);
// Responds to size events, calling Layout.
void OnSize( wxSizeEvent& event );
// Responds to paint events, drawing separators.
void OnPaint( wxPaintEvent& event );
// Responds to background erase events. Currently does nothing.
void OnEraseBackground( wxEraseEvent& event );
// Overriden from wxToolBarBase; does nothing.
virtual bool Realize(void);
// Finds a tool for the given position.
virtual wxToolBarToolBase *FindToolForPosition(wxCoord x, virtual wxToolBarToolBase *FindToolForPosition(wxCoord x,
wxCoord y) const; wxCoord y) const;
// Inserts a tool at the given position.
virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool); virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool);
// the tool is still in m_tools list when this function is called, it will // Deletes a tool. The tool is still in m_tools list when this function is called, and it will
// only be deleted from it if it succeeds // only be deleted from it if it succeeds.
virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool); virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool);
// called when the tools enabled flag changes // Called when the tools enabled flag changes.
virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable); virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable);
// called when the tool is toggled // Called when the tool is toggled.
virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle); virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle);
// called when the tools "can be toggled" flag changes // Called when the tools 'can be toggled' flag changes.
virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle); virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle);
// the functions to create toolbar tools // Creates a toolbar tool.
virtual wxToolBarToolBase *CreateTool(int id, virtual wxToolBarToolBase *CreateTool(int id,
const wxBitmap& bitmap1, const wxBitmap& bitmap1,
const wxBitmap& bitmap2, const wxBitmap& bitmap2,
@@ -194,10 +251,12 @@ public:
wxObject *clientData, wxObject *clientData,
const wxString& shortHelpString, const wxString& shortHelpString,
const wxString& longHelpString); const wxString& longHelpString);
// Creates a toolbar tool.
virtual wxToolBarToolBase *CreateTool(wxControl *control); virtual wxToolBarToolBase *CreateTool(wxControl *control);
DECLARE_EVENT_TABLE()
DECLARE_EVENT_TABLE()
}; };
#endif /* __DYNTBAR_G__ */ #endif /* __DYNTBAR_G__ */

View File

@@ -1,12 +1,12 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: No names yet. // Name: dyntbarhnd.h
// Purpose: Contrib. demo // Purpose: Contrib. demo
// Author: Aleksandras Gluchovas // Author: Aleksandras Gluchovas
// Modified by: // Modified by:
// Created: 23/01/99 // Created: 23/01/99
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifndef __DYNTBARHND_G__ #ifndef __DYNTBARHND_G__
@@ -19,12 +19,22 @@
#include "wx/fl/controlbar.h" #include "wx/fl/controlbar.h"
#include "wx/fl/dyntbar.h" #include "wx/fl/dyntbar.h"
/*
Dynamic toolbar dimension handler.
*/
class cbDynToolBarDimHandler : public cbBarDimHandlerBase class cbDynToolBarDimHandler : public cbBarDimHandlerBase
{ {
DECLARE_DYNAMIC_CLASS( cbDynToolBarDimHandler ) DECLARE_DYNAMIC_CLASS( cbDynToolBarDimHandler )
public: public:
void OnChangeBarState(cbBarInfo* pBar, int newState );
void OnResizeBar( cbBarInfo* pBar, const wxSize& given, wxSize& preferred ); // Called when the bar changes state.
void OnChangeBarState(cbBarInfo* pBar, int newState );
// Called when a bar is resized.
void OnResizeBar( cbBarInfo* pBar, const wxSize& given, wxSize& preferred );
}; };
#endif /* __DYNTBARHND_G__ */ #endif /* __DYNTBARHND_G__ */

View File

@@ -1,12 +1,12 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: No names yet. // Name: frmview.h
// Purpose: Contrib. demo // Purpose: wxFrameView and wxFrameManager classes.
// Author: Aleksandras Gluchovas // Author: Aleksandras Gluchovas
// Modified by: // Modified by:
// Created: 02/01/99 // Created: 02/01/99
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifndef __FRMVIEW_G__ #ifndef __FRMVIEW_G__
@@ -28,112 +28,120 @@ class wxObjectStorage;
class wxFrameManager; class wxFrameManager;
/*
It is not clear what this class does. It is not used elsewhere in FL.
*/
class wxFrameView : public wxEvtHandler class wxFrameView : public wxEvtHandler
{ {
protected: protected:
wxStringList mTopMenus; wxStringList mTopMenus;
wxFrameLayout* mpLayout; wxFrameLayout* mpLayout;
wxFrameManager* mpFrameMgr; wxFrameManager* mpFrameMgr;
bool mDoToolUpdates; bool mDoToolUpdates;
friend class wxFrameManager; friend class wxFrameManager;
friend class wxFrameViewSerializer; friend class wxFrameViewSerializer;
protected: protected:
void OnIdle( wxIdleEvent& event); void OnIdle( wxIdleEvent& event);
public: public:
wxFrameView(); wxFrameView();
~wxFrameView(); ~wxFrameView();
virtual void Activate(); virtual void Activate();
virtual void Deactivate(); virtual void Deactivate();
wxFrame* GetParentFrame(); wxFrame* GetParentFrame();
wxWindow* GetClientWindow(); wxWindow* GetClientWindow();
wxFrameManager& GetFrameManager(); wxFrameManager& GetFrameManager();
void RegisterMenu( const wxString& topMenuName ); void RegisterMenu( const wxString& topMenuName );
void CreateLayout(); void CreateLayout();
wxFrameLayout* GetLayout(); wxFrameLayout* GetLayout();
void SetLayout( wxFrameLayout* pLayout ); void SetLayout( wxFrameLayout* pLayout );
void SetToolUpdates( bool doToolUpdates = TRUE ); void SetToolUpdates( bool doToolUpdates = TRUE );
// hooks for specific frame-views // hooks for specific frame-views
virtual void OnInit() {} virtual void OnInit() {}
virtual void OnSerialize( wxObjectStorage& store ) {} virtual void OnSerialize( wxObjectStorage& store ) {}
virtual void OnActiveate() {} virtual void OnActiveate() {}
virtual void OnDeactivate() {} virtual void OnDeactivate() {}
// imp. is mandatory // imp. is mandatory
virtual void OnRecreate() {} virtual void OnRecreate() {}
virtual void OnInitMenus() {} virtual void OnInitMenus() {}
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
}; };
class wxFrame; class wxFrame;
/*
It is not clear what this class does. It is not used elsewhere in FL.
*/
class wxFrameManager : wxObject class wxFrameManager : wxObject
{ {
protected: protected:
wxList mViews; wxList mViews;
wxWindow* mpFrameWnd; wxWindow* mpFrameWnd;
int mActiveViewNo; int mActiveViewNo;
wxWindow* mpClientWnd; wxWindow* mpClientWnd;
#if 0 #if 0
wxObjectStorage mStore; wxObjectStorage mStore;
#endif #endif
wxString mSettingsFile; wxString mSettingsFile;
protected: protected:
void DoSerialize( wxObjectStorage& store ); void DoSerialize( wxObjectStorage& store );
void DestroyViews(); void DestroyViews();
int GetViewNo( wxFrameView* pView ); int GetViewNo( wxFrameView* pView );
void EnableMenusForView( wxFrameView* pView, bool enable ); void EnableMenusForView( wxFrameView* pView, bool enable );
void SyncAllMenus(); void SyncAllMenus();
public: public:
wxFrameManager(); wxFrameManager();
~wxFrameManager(); ~wxFrameManager();
// if file name is empty, views are are not saved/loaded // if file name is empty, views are are not saved/loaded
virtual void Init( wxWindow* pMainFrame, const wxString& settingsFile = "" ); virtual void Init( wxWindow* pMainFrame, const wxString& settingsFile = "" );
// synonyms // synonyms
wxFrame* GetParentFrame(); wxFrame* GetParentFrame();
wxWindow* GetParentWindow(); wxWindow* GetParentWindow();
int GetActiveViewNo(); int GetActiveViewNo();
wxFrameView* GetActiveView(); wxFrameView* GetActiveView();
wxNode* GetActiveViewNode(); wxNode* GetActiveViewNode();
wxFrameView* GetView( int viewNo ); wxFrameView* GetView( int viewNo );
void SetClinetWindow( wxWindow* pFrameClient ); void SetClinetWindow( wxWindow* pFrameClient );
wxWindow* GetClientWindow(); wxWindow* GetClientWindow();
void AddView( wxFrameView* pFrmView ); void AddView( wxFrameView* pFrmView );
void RemoveView( wxFrameView* pFrmView ); void RemoveView( wxFrameView* pFrmView );
void ActivateView( int viewNo ); void ActivateView( int viewNo );
void ActivateView( wxFrameView* pFrmView ); void ActivateView( wxFrameView* pFrmView );
void DeactivateCurrentView(); void DeactivateCurrentView();
wxObjectStorage& GetObjectStore(); wxObjectStorage& GetObjectStore();
void SaveViewsNow(); void SaveViewsNow();
bool ReloadViews(); bool ReloadViews();
bool ViewsAreLoaded(); bool ViewsAreLoaded();
}; };
#endif /* __FRMVIEW_G__ */ #endif /* __FRMVIEW_G__ */

View File

@@ -1,12 +1,12 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: No names yet. // Name: garbagec.h
// Purpose: Contrib. demo // Purpose: GarbageCollector class.
// Author: Aleksandras Gluchovas (@Lithuania) // Author: Aleksandras Gluchovas (@Lithuania)
// Modified by: // Modified by:
// Created: ??/10/98 // Created: ??/10/98
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifndef __GARBAGEC_G__ #ifndef __GARBAGEC_G__
@@ -20,54 +20,72 @@
struct GCItem struct GCItem
{ {
void* mpObj; void* mpObj;
wxList mRefs; // references to other nodes wxList mRefs; // references to other nodes
}; };
inline void* gc_node_to_obj( wxNode* pGCNode ) inline void* gc_node_to_obj( wxNode* pGCNode )
{ {
return ( (GCItem*) (pGCNode->Data()) )->mpObj; return ( (GCItem*) (pGCNode->Data()) )->mpObj;
} }
// class implements extremely slow, but probably one of the most simple GC algorithms /*
This class implements an extremely slow but simple garbage collection algorithm.
*/
class GarbageCollector class GarbageCollector
{ {
protected: protected:
wxList mAllNodes; wxList mAllNodes;
wxList mRegularLst; wxList mRegularLst;
wxList mCycledLst; wxList mCycledLst;
wxNode* FindItemNode( void* pForObj ); // Internal method for finding a node.
void ResolveReferences(); wxNode* FindItemNode( void* pForObj );
wxNode* FindReferenceFreeItemNode(); // Internal method for resolving references.
void RemoveReferencesToNode( wxNode* pItemNode ); void ResolveReferences();
void DestroyItemList( wxList& lst );
// Internal method for findind and freeing a node.
wxNode* FindReferenceFreeItemNode();
// Remove references to this node.
void RemoveReferencesToNode( wxNode* pItemNode );
// Destroys a list of items.
void DestroyItemList( wxList& lst );
public: public:
GarbageCollector() {} // Default constructor.
GarbageCollector() {}
virtual ~GarbageCollector(); // Destructor.
virtual ~GarbageCollector();
// prepare data for GC alg. // Prepare data for garbage collection.
virtual void AddObject( void* pObj, int refCnt = 1 ); virtual void AddObject( void* pObj, int refCnt = 1 );
virtual void AddDependency( void* pObj, void* pDependsOnObj );
// executes GC alg. // Prepare data for garbage collection.
virtual void ArrangeCollection(); virtual void AddDependency( void* pObj, void* pDependsOnObj );
// access results of the alg. // Executes garbage collection algorithm.
wxList& GetRegularObjects(); virtual void ArrangeCollection();
wxList& GetCycledObjects();
// removes all data from GC // Accesses the results of the algorithm.
void Reset(); wxList& GetRegularObjects();
// Get cycled objects.
wxList& GetCycledObjects();
// Removes all data from the garbage collector.
void Reset();
}; };
#endif /* __GARBAGEC_G__ */ #endif /* __GARBAGEC_G__ */

View File

@@ -1,12 +1,12 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: No names yet. // Name: gcupdatesmgr.h
// Purpose: Contrib. demo // Purpose: Header for cbGCUpdatesMgr class.
// Author: Aleksandras Gluchovas // Author: Aleksandras Gluchovas
// Modified by: // Modified by:
// Created: 19/10/98 // Created: 19/10/98
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifndef __GCUPDATESMGR_G__ #ifndef __GCUPDATESMGR_G__
@@ -22,101 +22,107 @@
#include "wx/fl/garbagec.h" #include "wx/fl/garbagec.h"
/* /*
* class implements optimized logic for refreshing This class implements optimized logic for refreshing
* areas of frame layout - which actually need to be updated. the areas of frame layout that actually need to be updated.
* Is used as default updates-manager by wxFrameLayout. It is used as the default updates manager by wxFrameLayout.
*
* it is called "Garbage Collecting" u.mgr for it's implementation It is called 'Garbage Collecting' updates manager because
* tries to find out dependencies between bars, and to order its implementation tries to find out dependencies between bars,
* them ito "hierarchy", this hierarchical sorting resembles and to order them into a 'hierarchy'. This hierarchical sorting resembles
* implemenation of heap-garbage collectors, which resolve the implementation of heap-garbage collectors, which resolve
* dependencies between references. dependencies between references.
*
* Example: there are situations where the order of moving Example: there are situations where the order in which the user
* the windows does matter: moves windows does matter.
*
* case 1) \begin{verbatim}
* ------ --- case 1)
* | A | |B| ------ ---
* ------ ---> | | | A | |B|
* --- --- ------ ------ ---> | |
* |B| | A | --- --- ------
* | | ------ |B| | A |
* --- | | ------
* (future) ---
* (past) (future)
* (past)
* past/future positions of A and B windows completely overlapp, i.e. \end{verbatim}
* depend on each other, and there is not solution for
* moving the windows witout refreshing both of them, Past/future positions of A and B windows completely overlap, i.e.
* -- we have cyclic dependency here. The gc. alg will depend on each other, and there is no solution for
* find this cyclic dependecy and will force "refresh" moving the windows without refreshing both of them
* after movement. -- we have a cyclic dependency here. The garbage collection algorithm will
* find this cyclic dependecy and will force refresh after movement.
* case 2)
* \begin{verbatim}
* ------ case 2)
* | A |
* ------ ---> ------
* --- | A |
* |B| ------ ------ --->
* | | | A | ---
* --- ------ |B| ------
* --- | | | A |
* |B| --- ------
* | | ---
* --- |B|
* | |
* (future) ---
* (past)
* (future)
* in this case past/future positions do not overlapp, thus (past)
* it's enough only to move windows, without refreshing them. \end{verbatim}
* GC will "notice" it.
* In this case past/future positions do not overlap, so
* there is also third case, when overlapping is partial it is enough only to move windows without refreshing them.
* in this case the refershing can be also avoided by Garbage collection will 'notice' this.
* moving windows in the order of "most-dependant" towards the
* "least-dependent". GC handles this automatically, by There is also a third case, when overlapping is partial.
* sorting windows by their dependency-level (or "hierarchy") In this case the refreshing can also be avoided by
* moving windows in the order of 'most-dependant' towards the
* See garbagec.h for more details of this method, garbagec.h/cpp 'least-dependent'. GC handles this automatically, by
* implement sorting of generic-dependencies (does not deal sorting windows by their dependency-level (or 'hierarchy').
* with graphical objects directly)
* See garbagec.h for more details of this method; garbagec.h/cpp
* Summary: improves performance when complex/large windows are implement sorting of generic dependencies and does not deal
* moved around, by reducing number of repaints. Also helps with graphical objects directly.
* to avoid dirty non-client areas of moved windows
* in some special cases of "overlapping anomalies" Summary: garbage collection improves performance when complex or large
*/ windows are moved around, by reducing the number of repaints. It also helps
to avoid dirty non-client areas of moved windows
in some special cases of 'overlapping anomalies'.
*/
class cbGCUpdatesMgr : public cbSimpleUpdatesMgr class cbGCUpdatesMgr : public cbSimpleUpdatesMgr
{ {
DECLARE_DYNAMIC_CLASS( cbGCUpdatesMgr ) DECLARE_DYNAMIC_CLASS( cbGCUpdatesMgr )
protected: protected:
GarbageCollector mGC; GarbageCollector mGC;
void DoRepositionItems( wxList& items ); // Internal function for repositioning items.
void DoRepositionItems( wxList& items );
void AddItem( wxList& itemList, // Internal function for repositioning items.
cbBarInfo* pBar, void AddItem( wxList& itemList,
cbDockPane* pPane, cbBarInfo* pBar,
wxRect& curBounds, cbDockPane* pPane,
wxRect& prevBounds ); wxRect& curBounds,
wxRect& prevBounds );
public: public:
cbGCUpdatesMgr(void) {} // Default constructor.
cbGCUpdatesMgr(void) {}
cbGCUpdatesMgr( wxFrameLayout* pPanel ); // Constructor, taking a frame layout.
cbGCUpdatesMgr( wxFrameLayout* pPanel );
// notificiactions received from Frame Layout : // Receives notifications from the frame layout.
virtual void OnStartChanges();
virtual void OnStartChanges(); // Refreshes the parts of the frame layout which need an update.
virtual void UpdateNow();
// refreshes parts of the frame layout, which need an update
virtual void UpdateNow();
}; };
#endif /* __GCUPDATESMGR_G__ */ #endif /* __GCUPDATESMGR_G__ */

View File

@@ -1,12 +1,12 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: No names yet. // Name: hintanimpl.h
// Purpose: Contrib. demo // Purpose: Header for cbHintAnimationPlugin class.
// Author: Aleksandras Gluchovas // Author: Aleksandras Gluchovas
// Modified by: // Modified by:
// Created: 9/11/98 // Created: 9/11/98
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifndef __HINTANIMPL_G__ #ifndef __HINTANIMPL_G__
@@ -22,98 +22,120 @@
class cbHintAnimTimer; class cbHintAnimTimer;
/*
A plugin to draw animated hints when the user drags a pane.
*/
class cbHintAnimationPlugin : public cbPluginBase class cbHintAnimationPlugin : public cbPluginBase
{ {
DECLARE_DYNAMIC_CLASS( cbHintAnimationPlugin ) DECLARE_DYNAMIC_CLASS( cbHintAnimationPlugin )
protected: protected:
friend class cbHintAnimTimer; friend class cbHintAnimTimer;
wxScreenDC* mpScrDc; // created while tracking hint-rect wxScreenDC* mpScrDc; // created while tracking hint-rect
cbHintAnimTimer* mpAnimTimer; cbHintAnimTimer* mpAnimTimer;
// FOR NOW:: try it without mutually exculisve locks // FOR NOW:: try it without mutually exculisve locks
volatile wxRect mCurRect; volatile wxRect mCurRect;
// state variables // state variables
bool mAnimStarted; bool mAnimStarted;
bool mStopPending; bool mStopPending;
bool mPrevInClient; bool mPrevInClient;
bool mCurInClient; bool mCurInClient;
wxRect mPrevRect; wxRect mPrevRect;
public: public:
int mMorphDelay; // delay between frames in miliseconds, default: 20 int mMorphDelay; // delay between frames in miliseconds, default: 20
int mMaxFrames; // number of iterations for hint morphing, default: 30 int mMaxFrames; // number of iterations for hint morphing, default: 30
// (morph duration = mMorphDelay * mMaxFrames msec) // (morph duration = mMorphDelay * mMaxFrames msec)
int mInClientHintBorder; // default: 4 pixels int mInClientHintBorder; // default: 4 pixels
bool mAccelerationOn; // TRUE, if morph accelerates, otherwise morph bool mAccelerationOn; // TRUE, if morph accelerates, otherwise morph
// speed is constant. Default: TRUE // speed is constant. Default: TRUE
// TBD:: get/set methods for above members // TBD:: get/set methods for above members
protected: protected:
void StartTracking();
void DrawHintRect ( wxRect& rect, bool isInClientRect); // Internal function for starting tracking.
void EraseHintRect( wxRect& rect, bool isInClientRect); void StartTracking();
void FinishTracking(); // Internal function for drawing a hint rectangle.
void DrawHintRect ( wxRect& rect, bool isInClientRect);
void DoDrawHintRect( wxRect& rect, bool isInClientRect); // Internal function for erasing a hint rectangle.
void EraseHintRect( wxRect& rect, bool isInClientRect);
void RectToScr( wxRect& frameRect, wxRect& scrRect ); // Internal function for finishing tracking.
void FinishTracking();
// Internal function for drawing a hint rectangle.
void DoDrawHintRect( wxRect& rect, bool isInClientRect);
// Internal function for translating coordinates.
void RectToScr( wxRect& frameRect, wxRect& scrRect );
public: public:
cbHintAnimationPlugin(void); // Default constructor.
cbHintAnimationPlugin();
~cbHintAnimationPlugin(); // Constructor, taking a layout panel and pane mask.
cbHintAnimationPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES );
cbHintAnimationPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES ); // Destructor.
~cbHintAnimationPlugin();
void OnDrawHintRect( cbDrawHintRectEvent& event ); // Event handler respoding to hint draw events.
void OnDrawHintRect( cbDrawHintRectEvent& event );
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
}; };
// helper classes /*
A private helper class.
*/
struct MorphInfoT struct MorphInfoT
{ {
wxPoint mFrom; wxPoint mFrom;
wxPoint mTill; wxPoint mTill;
}; };
/*
A private helper class.
*/
class cbHintAnimTimer : public wxTimer class cbHintAnimTimer : public wxTimer
{ {
protected: protected:
friend class cbHintAnimationPlugin; friend class cbHintAnimationPlugin;
wxRect mPrevMorphed; wxRect mPrevMorphed;
MorphInfoT mUpperLeft; MorphInfoT mUpperLeft;
MorphInfoT mLowerRight; MorphInfoT mLowerRight;
int mCurIter; int mCurIter;
long mLock; long mLock;
cbHintAnimationPlugin* mpPl; cbHintAnimationPlugin* mpPl;
void MorphPoint( wxPoint& origin, MorphInfoT& info, wxPoint& point ); void MorphPoint( wxPoint& origin, MorphInfoT& info, wxPoint& point );
public: public:
cbHintAnimTimer(void); cbHintAnimTimer(void);
virtual void Notify(void); virtual void Notify(void);
virtual bool Init( cbHintAnimationPlugin* pAnimPl, bool reinit ); virtual bool Init( cbHintAnimationPlugin* pAnimPl, bool reinit );
}; };
#endif /* __HINTANIMPL_G__ */ #endif /* __HINTANIMPL_G__ */

View File

@@ -1,12 +1,12 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: No names yet. // Name: newbmpbtn.h
// Purpose: Contrib. demo // Purpose: wxNewBitmapButton header.
// Author: Aleksandras Gluchovas // Author: Aleksandras Gluchovas
// Modified by: // Modified by:
// Created: ??/09/98 // Created: ??/09/98
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifndef __NEWBMPBTN_G__ #ifndef __NEWBMPBTN_G__
@@ -19,7 +19,7 @@
#include "wx/button.h" #include "wx/button.h"
#include "wx/string.h" #include "wx/string.h"
// button lable-text alignment types // button label-text alignment types
#define NB_ALIGN_TEXT_RIGHT 0 #define NB_ALIGN_TEXT_RIGHT 0
#define NB_ALIGN_TEXT_BOTTOM 1 #define NB_ALIGN_TEXT_BOTTOM 1
@@ -31,89 +31,96 @@
class wxNewBitmapButton; class wxNewBitmapButton;
class wxBorderLessBitmapButton; class wxBorderLessBitmapButton;
// alternative class for wxBmpButton /*
This is an alternative class to wxBitmapButton. It is used
in the implementation of dynamic toolbars.
*/
class wxNewBitmapButton: public wxPanel class wxNewBitmapButton: public wxPanel
{ {
DECLARE_DYNAMIC_CLASS(wxNewBitmapButton) DECLARE_DYNAMIC_CLASS(wxNewBitmapButton)
protected: protected:
friend class wxNewBitmapButtonSerializer; friend class wxNewBitmapButtonSerializer;
int mTextToLabelGap; int mTextToLabelGap;
int mMarginX; int mMarginX;
int mMarginY; int mMarginY;
int mTextAlignment; int mTextAlignment;
bool mIsSticky; bool mIsSticky;
bool mIsFlat; bool mIsFlat;
wxString mLabelText; wxString mLabelText;
wxString mImageFileName; wxString mImageFileName;
wxBitmapType mImageFileType; wxBitmapType mImageFileType;
wxBitmap mDepressedBmp; // source image for rendering wxBitmap mDepressedBmp; // source image for rendering
// labels for particular state // labels for particular state
wxBitmap mFocusedBmp; // may not be always present - wxBitmap mFocusedBmp; // may not be always present -
// only if mHasFocusedBmp is TRUE // only if mHasFocusedBmp is TRUE
wxBitmap* mpDepressedImg; wxBitmap* mpDepressedImg;
wxBitmap* mpPressedImg; wxBitmap* mpPressedImg;
wxBitmap* mpDisabledImg; wxBitmap* mpDisabledImg;
wxBitmap* mpFocusedImg; wxBitmap* mpFocusedImg;
// button state variables; // button state variables;
bool mDragStarted; bool mDragStarted;
bool mIsPressed; bool mIsPressed;
bool mIsInFocus; bool mIsInFocus;
bool mPrevPressedState; bool mPrevPressedState;
bool mPrevInFocusState; bool mPrevInFocusState;
bool mHasFocusedBmp; bool mHasFocusedBmp;
// type of event which is fired upon depression of this button // type of event which is fired upon depression of this button
int mFiredEventType; int mFiredEventType;
// pens for drawing decorations (borders) // pens for drawing decorations (borders)
wxPen mBlackPen; wxPen mBlackPen;
wxPen mDarkPen; wxPen mDarkPen;
wxPen mGrayPen; wxPen mGrayPen;
wxPen mLightPen; wxPen mLightPen;
bool mIsCreated; bool mIsCreated;
int mSizeIsSet; int mSizeIsSet;
protected: protected:
void DestroyLabels();
// returns the label which match the current button state // Internal function for destroying labels.
virtual wxBitmap* GetStateLabel(); void DestroyLabels();
virtual void DrawShade( int outerLevel, // Returns the label that matches the current button state.
wxDC& dc, virtual wxBitmap* GetStateLabel();
wxPen& upperLeftSidePen,
wxPen& lowerRightSidePen );
bool IsInWindow( int x,int y ); // Draws shading on the button.
virtual void DrawShade( int outerLevel,
wxDC& dc,
wxPen& upperLeftSidePen,
wxPen& lowerRightSidePen );
// Returns TRUE if the given point is in the window.
bool IsInWindow( int x, int y );
public: public:
wxNewBitmapButton( const wxBitmap& labelBitmap = wxNullBitmap, // Constructor.
const wxString& labelText = "", wxNewBitmapButton( const wxBitmap& labelBitmap = wxNullBitmap,
int alignText = NB_ALIGN_TEXT_BOTTOM, const wxString& labelText = "",
bool isFlat = TRUE, int alignText = NB_ALIGN_TEXT_BOTTOM,
// this is the default type of fired events bool isFlat = TRUE,
int firedEventType = wxEVT_COMMAND_MENU_SELECTED, // this is the default type of fired events
int marginX = 2, int firedEventType = wxEVT_COMMAND_MENU_SELECTED,
int marginY = 2, int marginX = 2,
int textToLabelGap = 2, int marginY = 2,
bool isSticky = FALSE int textToLabelGap = 2,
); bool isSticky = FALSE
);
// use this constructor if buttons have to be persistant // Use this constructor if buttons have to be persistant
wxNewBitmapButton( const wxString& bitmapFileName,
wxNewBitmapButton( const wxString& bitmapFileName,
const wxBitmapType bitmapFileType = wxBITMAP_TYPE_BMP, const wxBitmapType bitmapFileType = wxBITMAP_TYPE_BMP,
const wxString& labelText = "", const wxString& labelText = "",
int alignText = NB_ALIGN_TEXT_BOTTOM, int alignText = NB_ALIGN_TEXT_BOTTOM,
@@ -126,39 +133,61 @@ public:
bool isSticky = FALSE bool isSticky = FALSE
); );
~wxNewBitmapButton(); // Destructor.
~wxNewBitmapButton();
// should be called after Create(); // This function should be called after Create. It renders the labels, having
virtual void Reshape(); // reloaded the button image if necessary.
virtual void Reshape();
// overridables // Sets the label and optionally label text.
virtual void SetLabel(const wxBitmap& labelBitmap, const wxString& labelText = "" ); virtual void SetLabel(const wxBitmap& labelBitmap, const wxString& labelText = "" );
virtual void SetAlignments( int alignText = NB_ALIGN_TEXT_BOTTOM,
int marginX = 2,
int marginY = 2,
int textToLabelGap = 2);
virtual void DrawDecorations( wxDC& dc ); // Sets the text alignment and margins.
virtual void DrawLabel( wxDC& dc ); virtual void SetAlignments( int alignText = NB_ALIGN_TEXT_BOTTOM,
int marginX = 2,
int marginY = 2,
int textToLabelGap = 2);
virtual void RenderLabelImage( wxBitmap*& destBmp, wxBitmap* srcBmp, // Draws the decorations.
bool isEnabled = TRUE, virtual void DrawDecorations( wxDC& dc );
bool isPressed = FALSE);
virtual void RenderLabelImages(); // Draws the label.
virtual void RenderAllLabelImages(); virtual void DrawLabel( wxDC& dc );
// event handlers // Renders the label image.
void OnLButtonDown( wxMouseEvent& event ); virtual void RenderLabelImage( wxBitmap*& destBmp, wxBitmap* srcBmp,
void OnLButtonUp( wxMouseEvent& event ); bool isEnabled = TRUE,
void OnMouseMove( wxMouseEvent& event ); bool isPressed = FALSE);
void OnSize( wxSizeEvent& event );
void OnPaint( wxPaintEvent& event );
void OnEraseBackground( wxEraseEvent& event );
void OnKillFocus( wxFocusEvent& event );
DECLARE_EVENT_TABLE() // Renders label images.
virtual void RenderLabelImages();
// Renders label images.
virtual void RenderAllLabelImages();
// Responds to a left mouse button down event.
void OnLButtonDown( wxMouseEvent& event );
// Responds to a left mouse button up event.
void OnLButtonUp( wxMouseEvent& event );
// Responds to a mouse move event.
void OnMouseMove( wxMouseEvent& event );
// Responds to a size event.
void OnSize( wxSizeEvent& event );
// Responds to a paint event.
void OnPaint( wxPaintEvent& event );
// Responds to an erase background event.
void OnEraseBackground( wxEraseEvent& event );
// Responds to a kill focus event.
void OnKillFocus( wxFocusEvent& event );
DECLARE_EVENT_TABLE()
}; };
#endif /* __NEWBMPBTN_G__ */ #endif /* __NEWBMPBTN_G__ */

View File

@@ -1,13 +1,12 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: No names yet. // Name: panedrawpl.h
// Purpose: Central header file for control-bar related classes // Purpose: cbPaneDrawPlugin class header.
//
// Author: Aleksandras Gluchovas <mailto:alex@soften.ktu.lt> // Author: Aleksandras Gluchovas <mailto:alex@soften.ktu.lt>
// Modified by: // Modified by:
// Created: 06/09/98 // Created: 06/09/98
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifndef __PANEDRAWPL_G__ #ifndef __PANEDRAWPL_G__
@@ -20,99 +19,142 @@
#include "wx/fl/controlbar.h" #include "wx/fl/controlbar.h"
/* /*
* Simple, but all-in-one plugin implementation. Resembles look & feel of Simple but all-in-one plugin implementation. Resembles the look and feel of
* to MFC control-bars. Handles painting of pane and items in it. MFC control-bars. The class handles painting of the pane and the items in it;
* Fires bar/layout customization event, when user right-clicks bar/pane. it generates bar/layout customization events, when the user right-clicks the bar/pane.
* Hooking an instance of this and row-layouting plugins per each pane, Hooking an instance of this and row-layout plugins for each pane
* would be enough for the frame layout to function properly. would be enough for the frame layout to function properly
* (they are plugged in autimatically by wxFrameLayout class) (they are plugged in automatically by the wxFrameLayout class).
*/ */
class cbPaneDrawPlugin : public cbPluginBase class cbPaneDrawPlugin : public cbPluginBase
{ {
public: public:
DECLARE_DYNAMIC_CLASS( cbPaneDrawPlugin ) DECLARE_DYNAMIC_CLASS( cbPaneDrawPlugin )
protected: protected:
// resizing bars/rows state variables // resizing bars/rows state variables
bool mResizeStarted; bool mResizeStarted;
bool mResizeCursorOn; bool mResizeCursorOn;
wxPoint mDragOrigin; wxPoint mDragOrigin;
cbBarInfo* mpDraggedBar; // also used when in bar-drag action cbBarInfo* mpDraggedBar; // also used when in bar-drag action
cbRowInfo* mpResizedRow; cbRowInfo* mpResizedRow;
bool mRowHandleHitted; bool mRowHandleHitted;
bool mIsUpperHandle; bool mIsUpperHandle;
bool mBarHandleHitted; bool mBarHandleHitted;
bool mIsLeftHandle; bool mIsLeftHandle;
bool mBarContentHitted; bool mBarContentHitted;
// contstraints for dragging the handle // contstraints for dragging the handle
wxRect mHandleDragArea; wxRect mHandleDragArea;
bool mHandleIsVertical; bool mHandleIsVertical;
int mHandleOfs; int mHandleOfs;
int mDraggedDelta; int mDraggedDelta;
wxPoint mPrevPos; wxPoint mPrevPos;
// used for handling, start-draw-in-area events // used for handling, start-draw-in-area events
wxClientDC* mpClntDc; wxClientDC* mpClntDc;
cbDockPane* mpPane; // is set up temorary short-cut, while handling event cbDockPane* mpPane; // is set up temorary short-cut, while handling event
protected: protected:
// helpers // Internal helper: draws the dragged handle.
void DrawDraggedHandle( const wxPoint& pos, cbDockPane& pane ); void DrawDraggedHandle( const wxPoint& pos, cbDockPane& pane );
virtual void DrawPaneShade( wxDC& dc, int alignment ); // Internal helper: draws the pane shading.
virtual void DrawPaneShadeForRow( cbRowInfo* pRow, wxDC& dc ); virtual void DrawPaneShade( wxDC& dc, int alignment );
virtual void DrawUpperRowHandle( cbRowInfo* pRow, wxDC& dc ); // Internal helper: draws the pane shading for a row.
virtual void DrawLowerRowHandle( cbRowInfo* pRow, wxDC& dc ); virtual void DrawPaneShadeForRow( cbRowInfo* pRow, wxDC& dc );
virtual void DrawUpperRowShades( cbRowInfo* pRow, wxDC& dc, int level ); // Internal helper: draws the upper row handle.
virtual void DrawLowerRowShades( cbRowInfo* pRow, wxDC& dc, int level ); virtual void DrawUpperRowHandle( cbRowInfo* pRow, wxDC& dc );
virtual void DrawBarInnerShadeRect( cbBarInfo* pBar, wxDC& dc ); // Internal helper: draws the lower row handle.
virtual void DrawLowerRowHandle( cbRowInfo* pRow, wxDC& dc );
virtual void DrawShade( int level, wxRect& rect, int alignment, wxDC& dc ); // Internal helper: draws the upper row shading.
virtual void DrawShade1( int level, wxRect& rect, int alignment, wxDC& dc ); virtual void DrawUpperRowShades( cbRowInfo* pRow, wxDC& dc, int level );
inline void SetLightPixel( int x, int y, wxDC& dc ); // Internal helper: draws the lower row shading.
inline void SetDarkPixel ( int x, int y, wxDC& dc ); virtual void DrawLowerRowShades( cbRowInfo* pRow, wxDC& dc, int level );
// Internal helper: draws the inner bar shading.
virtual void DrawBarInnerShadeRect( cbBarInfo* pBar, wxDC& dc );
// Internal helper: draws shading.
virtual void DrawShade( int level, wxRect& rect, int alignment, wxDC& dc );
// Internal helper: draws shading.
virtual void DrawShade1( int level, wxRect& rect, int alignment, wxDC& dc );
// Internal helper: sets a light pixel at the given location.
inline void SetLightPixel( int x, int y, wxDC& dc );
// Internal helper: sets a dark pixel at the given location.
inline void SetDarkPixel ( int x, int y, wxDC& dc );
public: public:
cbPaneDrawPlugin(void); // Default constructor.
cbPaneDrawPlugin();
cbPaneDrawPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES ); // Constructor taking frame layout pane and a pane mask.
cbPaneDrawPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES );
virtual ~cbPaneDrawPlugin(); // Destructor.
virtual ~cbPaneDrawPlugin();
virtual cbPluginBase* Clone() { return new cbPaneDrawPlugin(0,0); } // Clone function, returning a new instance of this class.
virtual cbPluginBase* Clone() { return new cbPaneDrawPlugin(0,0); }
// handlers for plugin-events // Handler for left mouse button down events.
void OnLButtonDown( cbLeftDownEvent& event );
void OnLButtonDown( cbLeftDownEvent& event ); // Handler for left double-click mouse button down events.
void OnLDblClick ( cbLeftDClickEvent& event ); void OnLDblClick ( cbLeftDClickEvent& event );
void OnLButtonUp ( cbLeftUpEvent& event );
void OnRButtonUp ( cbRightUpEvent& event );
void OnMouseMove ( cbMotionEvent& event );
void OnDrawPaneBackground ( cbDrawPaneBkGroundEvent& event ); // Handler for left mouse button up events.
void OnDrawPaneDecorations( cbDrawPaneDecorEvent& event ); void OnLButtonUp ( cbLeftUpEvent& event );
void OnDrawRowDecorations ( cbDrawRowDecorEvent& event ); // Handler for right mouse button up events.
void OnDrawRowHandles ( cbDrawRowHandlesEvent& event ); void OnRButtonUp ( cbRightUpEvent& event );
void OnDrawRowBackground ( cbDrawRowBkGroundEvent& event );
void OnSizeBarWindow ( cbSizeBarWndEvent& event );
void OnDrawBarDecorations ( cbDrawBarDecorEvent& event );
void OnDrawBarHandles ( cbDrawBarHandlesEvent& event );
void OnStartDrawInArea ( cbStartDrawInAreaEvent& event ); // Handler for mouse move events.
void OnFinishDrawInArea ( cbFinishDrawInAreaEvent& event ); void OnMouseMove ( cbMotionEvent& event );
DECLARE_EVENT_TABLE() // Handler for draw pane background events.
void OnDrawPaneBackground ( cbDrawPaneBkGroundEvent& event );
// Handler for draw pane decoration events.
void OnDrawPaneDecorations( cbDrawPaneDecorEvent& event );
// Handler for draw row decoration events.
void OnDrawRowDecorations ( cbDrawRowDecorEvent& event );
// Handler for draw row handles events.
void OnDrawRowHandles ( cbDrawRowHandlesEvent& event );
// Handler for draw row background events.
void OnDrawRowBackground ( cbDrawRowBkGroundEvent& event );
// Handler for bar size events.
void OnSizeBarWindow ( cbSizeBarWndEvent& event );
// Handler for draw bar decorations events.
void OnDrawBarDecorations ( cbDrawBarDecorEvent& event );
// Handler for draw bar handles events.
void OnDrawBarHandles ( cbDrawBarHandlesEvent& event );
// Handler for start draw in area events.
void OnStartDrawInArea ( cbStartDrawInAreaEvent& event );
// Handler for finish draw in area events.
void OnFinishDrawInArea ( cbFinishDrawInAreaEvent& event );
DECLARE_EVENT_TABLE()
}; };
#endif /* __PANEDRAWPL_G__ */ #endif /* __PANEDRAWPL_G__ */

View File

@@ -1,12 +1,12 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: No names yet. // Name: rowdragpl.h
// Purpose: Contrib. demo // Purpose: cbRowDragPlugin class header.
// Author: Aleksandras Gluchovas // Author: Aleksandras Gluchovas
// Modified by: // Modified by:
// Created: 06/10/98 // Created: 06/10/98
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifndef __ROWDRAGPL_G__ #ifndef __ROWDRAGPL_G__
@@ -19,145 +19,212 @@
#include "wx/fl/controlbar.h" #include "wx/fl/controlbar.h"
/* /*
* Plugin adds row-dragging fuctionality to the pane. This plugin adds row-dragging functionality to the pane.
* Handles mouse/movement and pane-background erasing plugin-events. It handles mouse movement and pane background-erasing plugin events.
* Behaviour and appearence resembles drag & drop posotioning The behaviour and appearance resembles drag and drop positioning
* of the toolbar-rows int Netscape Comunicator 4.xx. of the toolbar rows in Netscape Communicator 4.xx.
*/ */
class cbRowDragPlugin : public cbPluginBase class cbRowDragPlugin : public cbPluginBase
{ {
DECLARE_DYNAMIC_CLASS( cbRowDragPlugin ) DECLARE_DYNAMIC_CLASS( cbRowDragPlugin )
public: public:
// background colours for the highlighted/unhighlighted icons // background colours for the highlighted/unhighlighted icons
wxColour mHightColor; // light-blue for NC-look wxColour mHightColor; // light-blue for NC-look
wxColour mLowColor; // light-gray -/- wxColour mLowColor; // light-gray -/-
wxColour mTrianInnerColor; // blue -/- wxColour mTrianInnerColor; // blue -/-
wxPen mTrianInnerPen; // black -/- wxPen mTrianInnerPen; // black -/-
protected: protected:
friend class cbRowDragPluginSerializer; friend class cbRowDragPluginSerializer;
// drag & drop state variables // drag & drop state variables
bool mDragStarted; bool mDragStarted;
bool mDecisionMode; bool mDecisionMode;
wxPoint mDragOrigin; wxPoint mDragOrigin;
int mCurDragOfs; int mCurDragOfs;
bool mCaptureIsOn; bool mCaptureIsOn;
// saved margins of the pane // saved margins of the pane
int mSvTopMargin; int mSvTopMargin;
int mSvBottomMargin; int mSvBottomMargin;
int mSvLeftMargin; int mSvLeftMargin;
int mSvRightMargin; int mSvRightMargin;
//on-screen drawing state variables // on-screen drawing state variables
wxBitmap* mpPaneImage; wxBitmap* mpPaneImage;
wxBitmap* mpRowImage; wxBitmap* mpRowImage;
wxBitmap* mpCombinedImage; wxBitmap* mpCombinedImage;
wxScreenDC* mpScrDc; wxScreenDC* mpScrDc;
wxRect mCombRect; wxRect mCombRect;
wxSize mRowImgDim; wxSize mRowImgDim;
int mInitialRowOfs; int mInitialRowOfs;
// NOTE:: if mpRowInFocus is not NULL, then mCollapsedIconInFocus is -1, // NOTE:: if mpRowInFocus is not NULL, then mCollapsedIconInFocus is -1,
// and v.v. (two different items cannot be in focus at the same time) // and v.v. (two different items cannot be in focus at the same time)
cbRowInfo* mpRowInFocus; cbRowInfo* mpRowInFocus;
int mCollapsedIconInFocus; int mCollapsedIconInFocus;
cbDockPane* mpPane; // is set up temorarely, while handling event cbDockPane* mpPane; // is set up temorarely, while handling event
wxList mHiddenBars; wxList mHiddenBars;
wxBitmap* CaptureDCArea( wxDC& dc, wxRect& area ); // Helper for drag and drop.
wxBitmap* CaptureDCArea( wxDC& dc, wxRect& area );
// helpers for drag&drop // Helper for drag and drop.
int GetHRowsCountForPane( cbDockPane* pPane );
int GetHRowsCountForPane( cbDockPane* pPane ); // Helper for drag and drop.
void SetMouseCapture( bool captureOn );
void SetMouseCapture( bool captureOn ); // Helper for drag and drop.
void PrepareForRowDrag(); void PrepareForRowDrag();
void ShowDraggedRow( int offset );
void ShowPaneImage();
void FinishOnScreenDraw();
void CollapseRow( cbRowInfo* pRow );
void ExpandRow( int collapsedIconIdx );
void InsertDraggedRowBefore( cbRowInfo* pBeforeRow );
bool ItemIsInFocus();
void CheckPrevItemInFocus( cbRowInfo* pRow, int iconIdx );
void UnhiglightItemInFocus();
cbRowInfo* GetFirstRow(); // Helper for drag and drop.
void ShowDraggedRow( int offset );
// "hard-coded metafile" for NN-look // Helper for drag and drop.
void ShowPaneImage();
virtual void DrawTrianUp( wxRect& inRect, wxDC& dc ); // Helper for drag and drop.
virtual void DrawTrianDown( wxRect& inRect, wxDC& dc ); void FinishOnScreenDraw();
virtual void DrawTrianRight( wxRect& inRect, wxDC& dc );
virtual void Draw3DPattern( wxRect& inRect, wxDC& dc );
virtual void DrawRombShades( wxPoint& p1, wxPoint& p2, wxPoint& p3, wxPoint& p4, wxDC& dc );
virtual void DrawOrtoRomb( wxRect& inRect, wxDC& dc, wxBrush& bkBrush );
virtual void DrawRomb( wxRect& inRect, wxDC& dc, wxBrush& bkBrush );
virtual void Draw3DRect( wxRect& inRect, wxDC& dc, wxBrush& bkBrush );
virtual void DrawRectShade( wxRect& inRect, wxDC& dc,
int level, wxPen& upperPen, wxPen& lowerPen );
virtual void GetRowHintRect( cbRowInfo* pRow, wxRect& rect ); // Helper for drag and drop.
virtual void GetCollapsedInconRect( int iconIdx, wxRect& rect ); void CollapseRow( cbRowInfo* pRow );
virtual int GetCollapsedIconsPos(); // Helper for drag and drop.
void ExpandRow( int collapsedIconIdx );
// Helper for drag and drop.
void InsertDraggedRowBefore( cbRowInfo* pBeforeRow );
// Helper for drag and drop.
bool ItemIsInFocus();
// Helper for drag and drop.
void CheckPrevItemInFocus( cbRowInfo* pRow, int iconIdx );
// Helper for drag and drop.
void UnhighlightItemInFocus();
// Helper for drag and drop.
cbRowInfo* GetFirstRow();
// Implements 'hard-coded metafile' for Netscape Navigator look.
virtual void DrawTrianUp( wxRect& inRect, wxDC& dc );
// Implements 'hard-coded metafile' for Netscape Navigator look.
virtual void DrawTrianDown( wxRect& inRect, wxDC& dc );
// Implements 'hard-coded metafile' for Netscape Navigator look.
virtual void DrawTrianRight( wxRect& inRect, wxDC& dc );
// Implements 'hard-coded metafile' for Netscape Navigator look.
virtual void Draw3DPattern( wxRect& inRect, wxDC& dc );
// Implements 'hard-coded metafile' for Netscape Navigator look.
virtual void DrawRombShades( wxPoint& p1, wxPoint& p2, wxPoint& p3, wxPoint& p4, wxDC& dc );
// Implements 'hard-coded metafile' for Netscape Navigator look.
virtual void DrawOrtoRomb( wxRect& inRect, wxDC& dc, wxBrush& bkBrush );
// Implements 'hard-coded metafile' for Netscape Navigator look.
virtual void DrawRomb( wxRect& inRect, wxDC& dc, wxBrush& bkBrush );
// Implements 'hard-coded metafile' for Netscape Navigator look.
virtual void Draw3DRect( wxRect& inRect, wxDC& dc, wxBrush& bkBrush );
// Implements 'hard-coded metafile' for Netscape Navigator look.
virtual void DrawRectShade( wxRect& inRect, wxDC& dc,
int level, wxPen& upperPen, wxPen& lowerPen );
// Helper for drag and drop.
virtual void GetRowHintRect( cbRowInfo* pRow, wxRect& rect );
// Helper for drag and drop.
virtual void GetCollapsedInconRect( int iconIdx, wxRect& rect );
// Helper for drag and drop.
virtual int GetCollapsedIconsPos();
public: public:
cbRowDragPlugin(void); // Default constructor.
cbRowDragPlugin();
cbRowDragPlugin( wxFrameLayout* pLayout, int paneMask = wxALL_PANES ); // Constructor, taking paren layout frame and pane mask.
virtual ~cbRowDragPlugin(); cbRowDragPlugin( wxFrameLayout* pLayout, int paneMask = wxALL_PANES );
virtual cbPluginBase* Clone() { return new cbRowDragPlugin(NULL,0); } // Destructor.
virtual ~cbRowDragPlugin();
virtual void OnInitPlugin(); // Clone function, returning a new instance of this class.
virtual cbPluginBase* Clone() { return new cbRowDragPlugin(NULL,0); }
// handlers for plugin events (appearence-independent logic) // Called to initialize this plugin.
virtual void OnInitPlugin();
void OnMouseMove ( cbMotionEvent& event ); // Handles mouse move plugin events (appearance-independent logic).
void OnLButtonDown( cbLeftDownEvent& event ); void OnMouseMove ( cbMotionEvent& event );
void OnLButtonUp ( cbLeftUpEvent& event );
void OnDrawPaneBackground( cbDrawPaneDecorEvent& event );
// overridables (appearence-depedent) // Handles left button down plugin events (appearance-independent logic).
void OnLButtonDown( cbLeftDownEvent& event );
virtual void DrawCollapsedRowIcon( int index, wxDC& dc, bool isHighlighted ); // Handles left button up plugin events (appearance-independent logic).
virtual void DrawCollapsedRowsBorder( wxDC& dc ); void OnLButtonUp ( cbLeftUpEvent& event );
virtual void DrawRowsDragHintsBorder( wxDC& dc );
virtual void DrawRowDragHint( cbRowInfo* pRow, wxDC& dc, bool isHighlighted );
virtual void DrawEmptyRow( wxDC& dc, wxRect& rowBounds );
virtual int GetCollapsedRowIconHeight(); // Handles pane drawing plugin events (appearance-independent logic).
virtual int GetRowDragHintWidth(); void OnDrawPaneBackground( cbDrawPaneDecorEvent& event );
virtual void SetPaneMargins(); // Draws collapsed row icon (appearance-dependent).
virtual void DrawCollapsedRowIcon( int index, wxDC& dc, bool isHighlighted );
// Draws collapsed rows border (appearance-dependent).
virtual void DrawCollapsedRowsBorder( wxDC& dc );
virtual bool HitTestCollapsedRowIcon( int iconIdx, const wxPoint& pos ); // Draws rows drag hints border (appearance-dependent).
virtual bool HitTestRowDragHint( cbRowInfo* pRow, const wxPoint& pos ); virtual void DrawRowsDragHintsBorder( wxDC& dc );
DECLARE_EVENT_TABLE() // Draws row drag hint (appearance-dependent).
virtual void DrawRowDragHint( cbRowInfo* pRow, wxDC& dc, bool isHighlighted );
// Draws empty row (appearance-dependent).
virtual void DrawEmptyRow( wxDC& dc, wxRect& rowBounds );
// Gets the collapsed row icon height.
virtual int GetCollapsedRowIconHeight();
// Gets the row drag hint width.
virtual int GetRowDragHintWidth();
// Sets the pane margins.
virtual void SetPaneMargins();
// Test for the collapsed row icon position.
virtual bool HitTestCollapsedRowIcon( int iconIdx, const wxPoint& pos );
// Test for the row drag hint position.
virtual bool HitTestRowDragHint( cbRowInfo* pRow, const wxPoint& pos );
DECLARE_EVENT_TABLE()
}; };
// internal helper-class /*
Internal helper class.
*/
class cbHiddenBarInfo : public wxObject class cbHiddenBarInfo : public wxObject
{ {
DECLARE_DYNAMIC_CLASS( cbHiddenBarInfo ) DECLARE_DYNAMIC_CLASS( cbHiddenBarInfo )
public: public:
cbBarInfo* mpBar; cbBarInfo* mpBar;
int mRowNo; int mRowNo;
int mIconNo; int mIconNo;
int mAlignment; int mAlignment;
}; };
#endif /* __ROWDRAGPL_G__ */ #endif /* __ROWDRAGPL_G__ */

View File

@@ -1,12 +1,12 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: No names yet. // Name: rowlayoutpl.h
// Purpose: Contrib. demo // Purpose: cbRowLayoutPlugin header.
// Author: Aleksandras Gluchovas // Author: Aleksandras Gluchovas
// Modified by: // Modified by:
// Created: 02/10/98 // Created: 02/10/98
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifndef __ROWLAYOUTPL_G__ #ifndef __ROWLAYOUTPL_G__
@@ -19,68 +19,107 @@
#include "wx/fl/controlbar.h" #include "wx/fl/controlbar.h"
/* /*
* Simple implementation of plugin, which handles row-layouting Simple implementation of a plugin which handles row layout
* requests sent from Frame Layout requests sent from a frame layout.
*/ */
class cbRowLayoutPlugin : public cbPluginBase class cbRowLayoutPlugin : public cbPluginBase
{ {
DECLARE_DYNAMIC_CLASS( cbRowLayoutPlugin ) DECLARE_DYNAMIC_CLASS( cbRowLayoutPlugin )
protected: protected:
cbDockPane* mpPane; // is set up temorarely, while handling event cbDockPane* mpPane; // is set up temporarily, while handling event
protected: protected:
// not-fixed-bars layouting related helpers // Internal helper relating to not-fixed-bars layout.
void FitBarsToRange( int from, int till, cbBarInfo* pTheBar, cbRowInfo* pRow );
void FitBarsToRange( int from, int till, cbBarInfo* pTheBar, cbRowInfo* pRow ); // Internal helper relating to not-fixed-bars layout.
void RelayoutNotFixedBarsAround( cbBarInfo* pTheBar, cbRowInfo* pRow ); void RelayoutNotFixedBarsAround( cbBarInfo* pTheBar, cbRowInfo* pRow );
void MinimzeNotFixedBars( cbRowInfo* pRow, cbBarInfo* pBarToPreserve );
int GetRowFreeSpace( cbRowInfo* pRow );
void RecalcLengthRatios( cbRowInfo* pRow );
void ApplyLengthRatios( cbRowInfo* pRow );
void ExpandNotFixedBars( cbRowInfo* pRow );
void AdjustLengthOfInserted( cbRowInfo* pRow, cbBarInfo* pTheBar );
void DetectBarHandles( cbRowInfo* pRow ); // Internal helper relating to not-fixed-bars layout.
void CheckIfAtTheBoundary( cbBarInfo* pTheBar, cbRowInfo& rowInfo ); void MinimzeNotFixedBars( cbRowInfo* pRow, cbBarInfo* pBarToPreserve );
// Internal helper relating to not-fixed-bars layout.
int GetRowFreeSpace( cbRowInfo* pRow );
// row-layouting helpers (simulate "bar-friction") // Internal helper relating to not-fixed-bars layout.
void RecalcLengthRatios( cbRowInfo* pRow );
int CalcRowHeight( cbRowInfo& row ); // Internal helper relating to not-fixed-bars layout.
void LayoutItemsVertically( cbRowInfo& row ); void ApplyLengthRatios( cbRowInfo* pRow );
void StickRightSideBars( cbBarInfo* pToBar ); // Internal helper relating to not-fixed-bars layout.
void ExpandNotFixedBars( cbRowInfo* pRow );
void SlideLeftSideBars ( cbBarInfo* pTheBar ); // Internal helper relating to not-fixed-bars layout.
void SlideRightSideBars( cbBarInfo* pTheBar ); void AdjustLengthOfInserted( cbRowInfo* pRow, cbBarInfo* pTheBar );
void ShiftLeftTrashold ( cbBarInfo* pTheBar, cbRowInfo& row );
void ShiftRightTrashold( cbBarInfo* pTheBar, cbRowInfo& row );
void InsertBefore( cbBarInfo* pBeforeBar, // Internal helper relating to not-fixed-bars layout.
cbBarInfo* pTheBar, void DetectBarHandles( cbRowInfo* pRow );
cbRowInfo& row
);
void DoInsertBar( cbBarInfo* pTheBar, cbRowInfo& row ); // Internal helper relating to not-fixed-bars layout.
void CheckIfAtTheBoundary( cbBarInfo* pTheBar, cbRowInfo& rowInfo );
// Row layout helper simulating bar 'friction'.
int CalcRowHeight( cbRowInfo& row );
// Row layout helper simulating bar 'friction'.
void LayoutItemsVertically( cbRowInfo& row );
// Row layout helper simulating bar 'friction'.
void StickRightSideBars( cbBarInfo* pToBar );
// Row layout helper simulating bar 'friction'.
void SlideLeftSideBars ( cbBarInfo* pTheBar );
// Row layout helper simulating bar 'friction'.
void SlideRightSideBars( cbBarInfo* pTheBar );
// Row layout helper simulating bar 'friction'.
void ShiftLeftTrashold ( cbBarInfo* pTheBar, cbRowInfo& row );
// Row layout helper simulating bar 'friction'.
void ShiftRightTrashold( cbBarInfo* pTheBar, cbRowInfo& row );
// Insert the bar before the given row.
void InsertBefore( cbBarInfo* pBeforeBar,
cbBarInfo* pTheBar,
cbRowInfo& row
);
// Insert the bar before the given row.
void DoInsertBar( cbBarInfo* pTheBar, cbRowInfo& row );
public: public:
// Default constructor.
cbRowLayoutPlugin(void);
cbRowLayoutPlugin(void); // Constructor taking frame layout pane and pane mask.
cbRowLayoutPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES );
cbRowLayoutPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES ); // Responds to row resize event.
void OnResizeRow ( cbResizeRowEvent& event );
// event handlers // Responds to bar insertion event.
void OnInsertBar ( cbInsertBarEvent& event );
void OnResizeRow ( cbResizeRowEvent& event ); // Responds to bar removal event.
void OnInsertBar ( cbInsertBarEvent& event ); void OnRemoveBar ( cbRemoveBarEvent& event );
void OnRemoveBar ( cbRemoveBarEvent& event );
void OnLayoutRow ( cbLayoutRowEvent& event );
void OnLayoutRows( cbLayoutRowsEvent& event );
DECLARE_EVENT_TABLE() // Responds to row layout event.
void OnLayoutRow ( cbLayoutRowEvent& event );
// Responds to rows layout event.
void OnLayoutRows( cbLayoutRowsEvent& event );
DECLARE_EVENT_TABLE()
}; };
#endif /* __ROWLAYOUTPL_G__ */ #endif /* __ROWLAYOUTPL_G__ */

View File

@@ -1,12 +1,13 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: No names yet. // Name: toolwnd.h
// Purpose: Contrib. demo // Purpose: wxToolWindow, cbMiniButton, cbCloseBox, cbCollapseBox,
// cbDockBox, cbFloatedBarWindow class declarations.
// Author: Aleksandras Gluchovas // Author: Aleksandras Gluchovas
// Modified by: // Modified by:
// Created: 06/09/98 // Created: 06/09/98
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifndef __TOOLWND_G__ #ifndef __TOOLWND_G__
@@ -31,184 +32,272 @@ typedef cbMiniButton* cbMinitButtonPtrT;
WX_DEFINE_ARRAY( cbMinitButtonPtrT, cbMiniButtonArrayT ); WX_DEFINE_ARRAY( cbMinitButtonPtrT, cbMiniButtonArrayT );
/*
A tool window is a special kind of frame that paints its own title, and
can be used to implement small floating windows.
*/
class wxToolWindow : public wxFrame class wxToolWindow : public wxFrame
{ {
DECLARE_DYNAMIC_CLASS( wxToolWindow ) DECLARE_DYNAMIC_CLASS( wxToolWindow )
public: /** protected really, accessed only by serializers **/ public: /** protected really, accessed only by serializers **/
cbMiniButtonArrayT mButtons; cbMiniButtonArrayT mButtons;
wxWindow* mpClientWnd; wxWindow* mpClientWnd;
wxFont mTitleFont; wxFont mTitleFont;
int mTitleHeight; int mTitleHeight;
int mClntHorizGap; int mClntHorizGap;
int mClntVertGap; int mClntVertGap;
int mWndVertGap; int mWndVertGap;
int mWndHorizGap; int mWndHorizGap;
int mButtonGap; int mButtonGap;
int mInTitleMargin; int mInTitleMargin;
int mHintBorder; int mHintBorder;
bool mResizeStarted; bool mResizeStarted;
bool mRealTimeUpdatesOn; bool mRealTimeUpdatesOn;
int mMTolerance; int mMTolerance;
int mCursorType; int mCursorType;
bool mMouseCaptured; bool mMouseCaptured;
// drag&drop state variables // drag&drop state variables
wxPoint mDragOrigin; wxPoint mDragOrigin;
wxRect mInitialRect; wxRect mInitialRect;
wxRect mPrevHintRect; wxRect mPrevHintRect;
wxScreenDC* mpScrDc; wxScreenDC* mpScrDc;
protected: protected:
void GetScrWindowRect( wxRect& r ); // Maps client coordinates to screen coordinates.
void GetScrMousePos ( wxMouseEvent& event, wxPoint& pos ); void GetScrWindowRect( wxRect& r );
void SetHintCursor ( int type );
void CalcResizedRect( wxRect& rect, wxPoint& delta, const wxSize& minDim ); // Gets the mouse position in screen coordinates.
void AdjustRectPos( const wxRect& original, const wxSize& newDim, wxRect& newRect ); void GetScrMousePos ( wxMouseEvent& event, wxPoint& pos );
wxSize GetMinimalWndDim();
void DrawHintRect( const wxRect& r ); // Sets the hint cursor.
void SetHintCursor ( int type );
int HitTestWindow( wxMouseEvent& event ); // Calculate resized rectangle.
void CalcResizedRect( wxRect& rect, wxPoint& delta, const wxSize& minDim );
void LayoutMiniButtons(); // Helper function.
void AdjustRectPos( const wxRect& original, const wxSize& newDim, wxRect& newRect );
// Helper function.
wxSize GetMinimalWndDim();
// Draws the hint rectangle.
void DrawHintRect( const wxRect& r );
// Tests if the mouse position is in this window.
int HitTestWindow( wxMouseEvent& event );
// Lays out the buttons.
void LayoutMiniButtons();
public: public:
wxToolWindow();
~wxToolWindow();
void SetClient( wxWindow* pWnd ); // Default constructor.
wxWindow* GetClient(); wxToolWindow();
void SetTitleFont( wxFont& font ); // Destructor.
~wxToolWindow();
// buttons are added in right-to-left order // Sets the client for this tool window.
void AddMiniButton( cbMiniButton* pBtn ); void SetClient( wxWindow* pWnd );
void OnPaint( wxPaintEvent& event ); // Returns the client window.
wxWindow* GetClient();
void OnMotion( wxMouseEvent& event ); // Sets the title font.
void OnLeftDown( wxMouseEvent& event ); void SetTitleFont( wxFont& font );
void OnLeftUp( wxMouseEvent& event );
void OnSize( wxSizeEvent& event );
void OnEraseBackground( wxEraseEvent& event ); // Adds a button. Buttons are added in right-to-left order.
void AddMiniButton( cbMiniButton* pBtn );
// overridables: // Responds to a paint event.
void OnPaint( wxPaintEvent& event );
virtual wxSize GetPreferredSize( const wxSize& given ); // Responds to a mouse move event.
virtual void OnMiniButtonClicked( int btnIdx ) {} void OnMotion( wxMouseEvent& event );
virtual bool HandleTitleClick( wxMouseEvent& event ) { return FALSE; }
DECLARE_EVENT_TABLE() // Responds to a mouse left down event.
void OnLeftDown( wxMouseEvent& event );
// Responds to a mouse left up event.
void OnLeftUp( wxMouseEvent& event );
// Responds to a size event.
void OnSize( wxSizeEvent& event );
// Responds to an erase background event.
void OnEraseBackground( wxEraseEvent& event );
// Returns the preferred size for the window.
virtual wxSize GetPreferredSize( const wxSize& given );
// Called when a mini button is clicked.
// By default, does nothing.
virtual void OnMiniButtonClicked( int btnIdx ) {}
// Handles clicking on the title. By default, does nothing.
virtual bool HandleTitleClick( wxMouseEvent& event ) { return FALSE; }
DECLARE_EVENT_TABLE()
}; };
// FIXME:: the code below should be moved to a separate file // FIXME:: the code below should be moved to a separate file
#include "wx/fl/controlbar.h" #include "wx/fl/controlbar.h"
/*
cbMiniButton is the base class for a small button that can be placed in a wxToolWindow
titlebar.
*/
class cbMiniButton : public wxObject class cbMiniButton : public wxObject
{ {
public: public:
wxPoint mPos; wxPoint mPos;
wxSize mDim; wxSize mDim;
bool mVisible; bool mVisible;
bool mEnabled; bool mEnabled;
wxFrameLayout* mpLayout; wxFrameLayout* mpLayout;
cbDockPane* mpPane; cbDockPane* mpPane;
cbPluginBase* mpPlugin; cbPluginBase* mpPlugin;
wxWindow* mpWnd; wxWindow* mpWnd;
bool mWasClicked; bool mWasClicked;
bool mDragStarted; bool mDragStarted;
bool mPressed; bool mPressed;
public: public:
cbMiniButton(); // Default constructor.
cbMiniButton();
void SetPos( const wxPoint& pos ); // Set the position of the button.
bool HitTest( const wxPoint& pos ); void SetPos( const wxPoint& pos );
void OnLeftDown( const wxPoint& pos ); // Returns TRUE if the given position was over the button.
void OnLeftUp( const wxPoint& pos ); bool HitTest( const wxPoint& pos );
void OnMotion( const wxPoint& pos );
void Refresh(); // Responds to a left down event.
virtual void Draw( wxDC& dc ); void OnLeftDown( const wxPoint& pos );
bool WasClicked(); // Responds to a left up event.
void Reset(); void OnLeftUp( const wxPoint& pos );
void Enable( bool enable ) { mEnabled = enable; } // Responds to a mouse move event.
void OnMotion( const wxPoint& pos );
bool IsPressed() { return mPressed; } // Refreshes the button.
void Refresh();
// Draws the button. Override this to implement
// the desired appearance.
virtual void Draw( wxDC& dc );
// Returns TRUE if the button was clicked.
bool WasClicked();
// Reset the button.
void Reset();
// Enable or disable the button.
void Enable( bool enable ) { mEnabled = enable; }
// Returns TRUE if this button is pressed.
bool IsPressed() { return mPressed; }
}; };
// classes specific to wxFrameLayout engine (FOR NOW in here...) /*
cbCloseBox is a window close button, used in a wxToolWindow titlebar.
*/
class cbCloseBox : public cbMiniButton class cbCloseBox : public cbMiniButton
{ {
public: public:
virtual void Draw( wxDC& dc ); // Draws the close button appearance.
virtual void Draw( wxDC& dc );
}; };
/*
cbCollapseBox is a window collapse button, used in a wxToolWindow titlebar.
*/
class cbCollapseBox : public cbMiniButton class cbCollapseBox : public cbMiniButton
{ {
public: public:
bool mIsAtLeft; bool mIsAtLeft;
virtual void Draw( wxDC& dc ); // Draws the collapse button appearance.
virtual void Draw( wxDC& dc );
}; };
/*
cbDockBox is a window dock button, used in a wxToolWindow titlebar.
*/
class cbDockBox : public cbMiniButton class cbDockBox : public cbMiniButton
{ {
public: public:
virtual void Draw( wxDC& dc ); // Draws the dock button appearance.
virtual void Draw( wxDC& dc );
}; };
/*
cbFloatedBarWindow is a kind of wxToolWindow,
implementing floating toolbars.
*/
class cbFloatedBarWindow : public wxToolWindow class cbFloatedBarWindow : public wxToolWindow
{ {
DECLARE_DYNAMIC_CLASS( cbFloatedBarWindow ) DECLARE_DYNAMIC_CLASS( cbFloatedBarWindow )
protected: protected:
cbBarInfo* mpBar; cbBarInfo* mpBar;
wxFrameLayout* mpLayout; wxFrameLayout* mpLayout;
friend class cbFloatedBarWindowSerializer; friend class cbFloatedBarWindowSerializer;
public: public:
cbFloatedBarWindow(); // Default constructor.
cbFloatedBarWindow();
void SetBar( cbBarInfo* pBar ); // Sets the bar information for this window.
void SetLayout( wxFrameLayout* pLayout ); void SetBar( cbBarInfo* pBar );
cbBarInfo* GetBar();
// given coordinates are those of the bar itself // Sets the layout for this window.
// floated container window's position and size void SetLayout( wxFrameLayout* pLayout );
// are ajusted accordingly
void PositionFloatedWnd( int scrX, int scrY, // Returns the bar information for this window.
int width, int height ); cbBarInfo* GetBar();
// overriden methods of wxToolWindow // Position the floating window. The given coordinates
// are those of the bar itself; the floated container window's
// position and size are ajusted accordingly.
void PositionFloatedWnd( int scrX, int scrY,
int width, int height );
virtual wxSize GetPreferredSize( const wxSize& given ); // Overridden function returning the preferred size.
virtual void OnMiniButtonClicked( int btnIdx ); virtual wxSize GetPreferredSize( const wxSize& given );
virtual bool HandleTitleClick( wxMouseEvent& event );
void OnDblClick( wxMouseEvent& event ); // Overridden function responding to mouse clicks on mini-buttons.
virtual void OnMiniButtonClicked( int btnIdx );
DECLARE_EVENT_TABLE() // Overridden function responding to mouse button clicks on the titlebar.
virtual bool HandleTitleClick( wxMouseEvent& event );
// Responds to double-click mouse events.
void OnDblClick( wxMouseEvent& event );
DECLARE_EVENT_TABLE()
}; };
#endif /* __TOOLWND_G__ */ #endif /* __TOOLWND_G__ */

View File

@@ -1,12 +1,12 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: No names yet. // Name: updatesmgr.h
// Purpose: Contrib. demo // Purpose: cbSimpleUpdatesMgr class declaration
// Author: Aleksandras Gluchovas (@Lithuania) // Author: Aleksandras Gluchovas (@Lithuania)
// Modified by: // Modified by:
// Created: 19/10/98 // Created: 19/10/98
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifndef __UPDATESMGR_G__ #ifndef __UPDATESMGR_G__
@@ -19,37 +19,51 @@
#include "wx/fl/controlbar.h" #include "wx/fl/controlbar.h"
/* /*
* class implements slightly optimized logic for refreshing This class implements slightly optimized logic for refreshing
* areas of frame layout - which actually need to be updated. the areas of frame layout that actually need to be updated.
*/ */
class cbSimpleUpdatesMgr : public cbUpdatesManagerBase class cbSimpleUpdatesMgr : public cbUpdatesManagerBase
{ {
DECLARE_DYNAMIC_CLASS( cbSimpleUpdatesMgr ) DECLARE_DYNAMIC_CLASS( cbSimpleUpdatesMgr )
protected: protected:
bool WasChanged( cbUpdateMgrData& data, wxRect& currentBounds ); // Helper function.
bool WasChanged( cbUpdateMgrData& data, wxRect& currentBounds );
public: public:
// Default constructor.
cbSimpleUpdatesMgr() {}
cbSimpleUpdatesMgr(void) {} // Constructor taking frame layout panel.
cbSimpleUpdatesMgr( wxFrameLayout* pPanel );
cbSimpleUpdatesMgr( wxFrameLayout* pPanel ); // Notification received from Frame Layout in the order in which
// they would usually be invoked.
virtual void OnStartChanges();
// notificiactions received from Frame Layout (in the order, in which // Notification received from Frame Layout in the order in which
// they usually would be invoked) // they would usually be invoked.
virtual void OnRowWillChange( cbRowInfo* pRow, cbDockPane* pInPane );
virtual void OnStartChanges(); // Notification received from Frame Layout in the order in which
// they would usually be invoked.
virtual void OnBarWillChange( cbBarInfo* pBar, cbRowInfo* pInRow, cbDockPane* pInPane );
virtual void OnRowWillChange( cbRowInfo* pRow, cbDockPane* pInPane ); // Notification received from Frame Layout in the order in which
virtual void OnBarWillChange( cbBarInfo* pBar, cbRowInfo* pInRow, cbDockPane* pInPane ); // they would usually be invoked.
virtual void OnPaneMarginsWillChange( cbDockPane* pPane ); virtual void OnPaneMarginsWillChange( cbDockPane* pPane );
virtual void OnPaneWillChange( cbDockPane* pPane );
virtual void OnFinishChanges(); // Notification received from Frame Layout in the order in which
// they would usually be invoked.
virtual void OnPaneWillChange( cbDockPane* pPane );
// refreshes parts of the frame layout, which need an update // Notification received from Frame Layout in the order in which
virtual void UpdateNow(); // they would usually be invoked.
virtual void OnFinishChanges();
// Refreshes the parts of the frame layoutthat need an update.
virtual void UpdateNow();
}; };
#endif /* __UPDATESMGR_G__ */ #endif /* __UPDATESMGR_G__ */

View File

@@ -1,12 +1,12 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: No names yet. // Name: antiflickpl.cpp
// Purpose: Contrib. demo // Purpose: Double-buffering plugin class for reducing flickering.
// Author: Aleksandras Gluchovas (@Lithuania) // Author: Aleksandras Gluchovas (@Lithuania)
// Modified by: // Modified by:
// Created: 23/10/98 // Created: 23/10/98
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__ #ifdef __GNUG__
@@ -115,7 +115,7 @@ wxDC* cbAntiflickerPlugin::AllocNewBuffer( const wxRect& forArea )
// excessive realocations later // excessive realocations later
// check whether the given area is oriented horizontally // check whether the given area is oriented horizontally
// or verticallya and choose correspoinding bitmap to create or // or vertically and choose corresponding bitmap to create or
// recreate // recreate
if ( forArea.height > forArea.width ) if ( forArea.height > forArea.width )

View File

@@ -1,12 +1,12 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: No names yet. // Name: bardragpl.cpp
// Purpose: Contrib. demo // Purpose: cbBarDragPlugin implementation
// Author: Aleksandras Gluchovas // Author: Aleksandras Gluchovas
// Modified by: // Modified by:
// Created: 23/09/98 // Created: 23/09/98
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__ #ifdef __GNUG__
@@ -293,8 +293,8 @@ void cbBarDragPlugin::StickToPane( cbDockPane* pPane, wxPoint& mousePos )
: mousePos.x > bounds.x; : mousePos.x > bounds.x;
// NOTE:: about all the below min/max things: they are meant to ensure // NOTE:: about all the below min/max things: they are meant to ensure
// that mouse pointer doesn't overrun (leave) the hint-rectangle // that the mouse pointer doesn't overrun (leave) the hint-rectangle
// when dimensions it's are recalculated upon sticking it to the pane // when its dimensions are recalculated upon sticking it to the pane
if ( pPane->IsHorizontal() && fromLowerEdge ) if ( pPane->IsHorizontal() && fromLowerEdge )
{ {
@@ -341,10 +341,9 @@ void cbBarDragPlugin::StickToPane( cbDockPane* pPane, wxPoint& mousePos )
void cbBarDragPlugin::UnstickFromPane( cbDockPane* pPane, wxPoint& mousePos ) void cbBarDragPlugin::UnstickFromPane( cbDockPane* pPane, wxPoint& mousePos )
{ {
// unsticking causes rectangle to get the shape, in which // unsticking causes rectangle to get the shape in which
// dragged control-bar would be when floated // dragged control-bar would be when floated
int newWidth = mpDraggedBar->mDimInfo.mSizes[wxCBAR_FLOATING].x; int newWidth = mpDraggedBar->mDimInfo.mSizes[wxCBAR_FLOATING].x;
int newHeight = mpDraggedBar->mDimInfo.mSizes[wxCBAR_FLOATING].y; int newHeight = mpDraggedBar->mDimInfo.mSizes[wxCBAR_FLOATING].y;
@@ -471,7 +470,7 @@ void cbBarDragPlugin::ShowHint( bool prevWasInClient )
if ( mpSrcPane->mProps.mRealTimeUpdatesOn == FALSE ) if ( mpSrcPane->mProps.mRealTimeUpdatesOn == FALSE )
{ {
// do hevy calculations first // do heavy calculations first
wxRect actualRect = mHintRect; // will be adjusted depending on drag-settings wxRect actualRect = mHintRect; // will be adjusted depending on drag-settings

View File

@@ -1,12 +1,12 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: No names yet. // Name: barhintspl.h
// Purpose: Contrib. demo // Purpose: Implementation for cbBarHintsPlugin
// Author: Aleksandras Gluchovas // Author: Aleksandras Gluchovas
// Modified by: // Modified by:
// Created: 30/11/98 (my 22th birthday :-) // Created: 30/11/98 (my 22th birthday :-)
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__ #ifdef __GNUG__

View File

@@ -1,12 +1,12 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: No names yet. // Name: cbcustom.cpp
// Purpose: Contrib. demo // Purpose: cbSimpleCustomizationPlugin class declaration
// Author: Aleksandras Gluchovas // Author: Aleksandras Gluchovas
// Modified by: // Modified by:
// Created: 06/09/98 // Created: 06/09/98
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__ #ifdef __GNUG__

View File

@@ -1,6 +1,6 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: No names yet. // Name: controlbar.cpp
// Purpose: Contrib. demo // Purpose: Implementation for main controlbar classes.
// Author: Aleksandras Gluchovas // Author: Aleksandras Gluchovas
// Modified by: // Modified by:
// Created: 06/09/98 // Created: 06/09/98
@@ -50,7 +50,6 @@
// meet the new event paradigm as of wx2.3.0. Probably we // meet the new event paradigm as of wx2.3.0. Probably we
// should find a way to make these be non-global, but this // should find a way to make these be non-global, but this
// works for right now. // works for right now.
#if wxCHECK_VERSION(2,3,0)
wxEventType cbEVT_PL_LEFT_DOWN = wxNewEventType(); wxEventType cbEVT_PL_LEFT_DOWN = wxNewEventType();
wxEventType cbEVT_PL_LEFT_UP = wxNewEventType(); wxEventType cbEVT_PL_LEFT_UP = wxNewEventType();
wxEventType cbEVT_PL_RIGHT_DOWN = wxNewEventType(); wxEventType cbEVT_PL_RIGHT_DOWN = wxNewEventType();
@@ -85,7 +84,6 @@
wxEventType cbEVT_PL_CUSTOMIZE_LAYOUT = wxNewEventType(); wxEventType cbEVT_PL_CUSTOMIZE_LAYOUT = wxNewEventType();
wxEventType wxCUSTOM_CB_PLUGIN_EVENTS_START_AT = wxNewEventType(); wxEventType wxCUSTOM_CB_PLUGIN_EVENTS_START_AT = wxNewEventType();
#endif // #if wxCHECK_VERSION(2,3,0)
// some ascii-art, still can't get these *nice* cursors working on wx... :-( // some ascii-art, still can't get these *nice* cursors working on wx... :-(
@@ -347,7 +345,7 @@ wxFrameLayout::wxFrameLayout( wxWindow* pParentFrame, wxWindow* pFrameClient, bo
mFloatingOn = CanReparent(); mFloatingOn = CanReparent();
} }
// NOTE:: below are the only plaftorm-check "ifdef"s in the docking system! // NOTE:: below are the only platform-check "ifdef"s in the docking system!
bool wxFrameLayout::CanReparent() bool wxFrameLayout::CanReparent()
{ {
@@ -627,10 +625,10 @@ bool wxFrameLayout::RedockBar( cbBarInfo* pBar,
pBarPane->RemoveBar( pBar ); pBarPane->RemoveBar( pBar );
// FIXME FIXME:: the below recalc. may be a *huge* performance // FIXME FIXME:: the recalculation below may be a *huge* performance
// hit, it could be eliminated though... // hit, it could be eliminated though...
// but first the "pane-postion-changed" problem // but first the "pane-postion-changed" problem
// have to be fixed // has to be fixed
RecalcLayout( FALSE ); RecalcLayout( FALSE );
@@ -710,8 +708,8 @@ void wxFrameLayout::SetBarState( cbBarInfo* pBar, int newState, bool updateNow )
if ( pBar->mState == wxCBAR_FLOATING && newState != wxCBAR_FLOATING ) if ( pBar->mState == wxCBAR_FLOATING && newState != wxCBAR_FLOATING )
{ {
// remove bar's window form the containing mini-frame // remove bar's window from the containing mini-frame
// and set it's parent to be layout's parent frame // and set its parent to be layout's parent frame
if ( pBar->mpBarWnd ) if ( pBar->mpBarWnd )
{ {
@@ -1176,15 +1174,15 @@ void wxFrameLayout::HideBarWindows()
void wxFrameLayout::UnhookFromFrame() void wxFrameLayout::UnhookFromFrame()
{ {
// NOTE:: the SetEvtHandlerEnabled() method is not used // NOTE:: the SetEvtHandlerEnabled() method is not used
// here, since it is assumed, that unhooking layout // here, since it is assumed that unhooking layout
// from window may result destroying of the layout itself // from window may result destroying of the layout itself
// //
// BUG BUG BUG (wx):: this would not be a problem if // BUG BUG BUG (wx):: this would not be a problem if
// wxEvtHandler's destructor would check if // wxEvtHandler's destructor checked if
// this handler is currently the top-most // this handler is currently the top-most
// handler of some window, and additionally // handler of some window, and additionally
// to the reconnecting itself from the chain // to the reconnecting itself from the chain.
// it would also re-setup current event handler // It would also re-setup current event handler
// of the window using wxWindow::SetEventHandler() // of the window using wxWindow::SetEventHandler()
// FOR NOW:: // FOR NOW::
@@ -2576,7 +2574,7 @@ void cbDockPane::CalcLengthRatios( cbRowInfo* pInRow )
size_t i = 0; size_t i = 0;
// clac current-maximal-total-length of all maximized bars // calc current-maximal-total-length of all maximized bars
for ( i = 0; i != pInRow->mBars.GetCount(); ++i ) for ( i = 0; i != pInRow->mBars.GetCount(); ++i )
{ {
@@ -2586,7 +2584,7 @@ void cbDockPane::CalcLengthRatios( cbRowInfo* pInRow )
totalWidth += bar.mBounds.width; totalWidth += bar.mBounds.width;
} }
// set up persentages of occupied space for each maximized bar // set up percentages of occupied space for each maximized bar
for ( i = 0; i != pInRow->mBars.Count(); ++i ) for ( i = 0; i != pInRow->mBars.Count(); ++i )
{ {

View File

@@ -1,12 +1,12 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: No names yet. // Name: dyntbar.cpp
// Purpose: Contrib. demo // Purpose: wxDynamicToolBar implementation
// Author: Aleksandras Gluchovas // Author: Aleksandras Gluchovas
// Modified by: // Modified by:
// Created: ??/10/98 // Created: ??/10/98
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows license
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__ #ifdef __GNUG__
@@ -16,7 +16,6 @@
// For compilers that support precompilation, includes "wx/wx.h". // For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h" #include "wx/wxprec.h"
#ifdef __BORLANDC__ #ifdef __BORLANDC__
#pragma hdrstop #pragma hdrstop
#endif #endif
@@ -34,94 +33,94 @@ IMPLEMENT_DYNAMIC_CLASS(wxDynamicToolBar, wxControl )
BEGIN_EVENT_TABLE( wxDynamicToolBar, wxControl ) BEGIN_EVENT_TABLE( wxDynamicToolBar, wxControl )
EVT_SIZE ( wxDynamicToolBar::OnSize ) EVT_SIZE ( wxDynamicToolBar::OnSize )
EVT_PAINT( wxDynamicToolBar::OnPaint ) EVT_PAINT( wxDynamicToolBar::OnPaint )
//EVT_ERASE_BACKGROUND( wxDynamicToolBar::OnEraseBackground ) //EVT_ERASE_BACKGROUND( wxDynamicToolBar::OnEraseBackground )
END_EVENT_TABLE() END_EVENT_TABLE()
/***** Implementation for class wxDynToolInfo *****/ /***** Implementation for class wxDynToolInfo *****/
IMPLEMENT_DYNAMIC_CLASS(wxDynToolInfo, wxToolLayoutItem) IMPLEMENT_DYNAMIC_CLASS(wxDynToolInfo, wxToolLayoutItem)
/***** Implementation for class wxDynamicToolBar *****/ /***** Implementation for class wxDynamicToolBar *****/
wxDynamicToolBar::wxDynamicToolBar() wxDynamicToolBar::wxDynamicToolBar()
: mpLayoutMan( NULL ), : mpLayoutMan( NULL ),
mSepartorSize( 8 ), mSepartorSize( 8 ),
mVertGap ( 0 ), mVertGap ( 0 ),
mHorizGap( 0 ) mHorizGap( 0 )
{ {
} }
wxDynamicToolBar::wxDynamicToolBar(wxWindow *parent, const wxWindowID id, wxDynamicToolBar::wxDynamicToolBar(wxWindow *parent, const wxWindowID id,
const wxPoint& pos, const wxSize& size, const wxPoint& pos, const wxSize& size,
const long style, const int orientation, const long style, const int orientation,
const int RowsOrColumns, const wxString& name ) const int RowsOrColumns, const wxString& name )
: mpLayoutMan( NULL ), : mpLayoutMan( NULL ),
mSepartorSize( 8 ), mSepartorSize( 8 ),
mVertGap ( 0 ), mVertGap ( 0 ),
mHorizGap( 0 ) mHorizGap( 0 )
{ {
Create(parent, id, pos, size, style, orientation, RowsOrColumns, name); Create(parent, id, pos, size, style, orientation, RowsOrColumns, name);
SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DFACE) ); SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DFACE) );
} }
bool wxDynamicToolBar::Create(wxWindow *parent, const wxWindowID id, bool wxDynamicToolBar::Create(wxWindow *parent, const wxWindowID id,
const wxPoint& pos, const wxPoint& pos,
const wxSize& size, const wxSize& size,
const long style, const long style,
const int orientation, const int RowsOrColumns, const int orientation, const int RowsOrColumns,
const wxString& name) const wxString& name)
{ {
// cut&pasted from wxtbatsmpl.h // cut&pasted from wxtbatsmpl.h
if ( ! wxWindow::Create(parent, id, pos, size, style, name) ) if ( ! wxWindow::Create(parent, id, pos, size, style, name) )
return FALSE; return FALSE;
SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DFACE )); SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DFACE ));
return TRUE; return TRUE;
} }
bool wxDynamicToolBar::Realize(void) bool wxDynamicToolBar::Realize(void)
{ {
// FOR NOW:: nothing // FOR NOW:: nothing
return TRUE; return TRUE;
} }
wxDynamicToolBar::~wxDynamicToolBar(void) wxDynamicToolBar::~wxDynamicToolBar(void)
{ {
if ( mpLayoutMan ) if ( mpLayoutMan )
delete mpLayoutMan; delete mpLayoutMan;
size_t i; size_t i;
for( i = 0; i != mTools.Count(); ++i ) for( i = 0; i != mTools.Count(); ++i )
{ {
delete mTools[i]; delete mTools[i];
} }
} }
void wxDynamicToolBar::AddTool( int toolIndex, void wxDynamicToolBar::AddTool( int toolIndex,
wxWindow* pToolWindow, wxWindow* pToolWindow,
const wxSize& size const wxSize& size
) )
{ {
wxDynToolInfo* pInfo = new wxDynToolInfo(); wxDynToolInfo* pInfo = new wxDynToolInfo();
pInfo->mpToolWnd = pToolWindow; pInfo->mpToolWnd = pToolWindow;
pInfo->mIndex = toolIndex; pInfo->mIndex = toolIndex;
pInfo->mIsSeparator = FALSE; pInfo->mIsSeparator = FALSE;
int x,y; int x,y;
pToolWindow->GetSize( &x, &y ); pToolWindow->GetSize( &x, &y );
pInfo->mRealSize.x = x; pInfo->mRealSize.x = x;
pInfo->mRealSize.y = y; pInfo->mRealSize.y = y;
pInfo->mRect.width = x; pInfo->mRect.width = x;
pInfo->mRect.height = y; pInfo->mRect.height = y;
mTools.Add( pInfo ); mTools.Add( pInfo );
} }
void wxDynamicToolBar::AddTool( int toolIndex, void wxDynamicToolBar::AddTool( int toolIndex,
@@ -130,191 +129,191 @@ void wxDynamicToolBar::AddTool( int toolIndex,
const wxString& labelText, bool alignTextRight, const wxString& labelText, bool alignTextRight,
bool isFlat ) bool isFlat )
{ {
wxNewBitmapButton* pBtn = wxNewBitmapButton* pBtn =
new wxNewBitmapButton( imageFileName, imageFileType, new wxNewBitmapButton( imageFileName, imageFileType,
labelText, labelText,
( alignTextRight ) ( alignTextRight )
? NB_ALIGN_TEXT_RIGHT ? NB_ALIGN_TEXT_RIGHT
: NB_ALIGN_TEXT_BOTTOM, : NB_ALIGN_TEXT_BOTTOM,
isFlat isFlat
); );
pBtn->Create( this, toolIndex ); pBtn->Create( this, toolIndex );
pBtn->Reshape(); pBtn->Reshape();
AddTool( toolIndex, pBtn ); AddTool( toolIndex, pBtn );
} }
void wxDynamicToolBar::AddTool( int toolIndex, wxBitmap labelBmp, void wxDynamicToolBar::AddTool( int toolIndex, wxBitmap labelBmp,
const wxString& labelText, bool alignTextRight, const wxString& labelText, bool alignTextRight,
bool isFlat ) bool isFlat )
{ {
wxNewBitmapButton* pBtn = wxNewBitmapButton* pBtn =
new wxNewBitmapButton( labelBmp, new wxNewBitmapButton( labelBmp,
labelText, labelText,
( alignTextRight ) ( alignTextRight )
? NB_ALIGN_TEXT_RIGHT ? NB_ALIGN_TEXT_RIGHT
: NB_ALIGN_TEXT_BOTTOM, : NB_ALIGN_TEXT_BOTTOM,
isFlat isFlat
); );
pBtn->Create( this, toolIndex ); pBtn->Create( this, toolIndex );
pBtn->Reshape(); pBtn->Reshape();
AddTool( toolIndex, pBtn ); AddTool( toolIndex, pBtn );
} }
wxToolBarToolBase* wxToolBarToolBase*
wxDynamicToolBar::AddTool(const int toolIndex, const wxBitmap& bitmap, wxDynamicToolBar::AddTool(const int toolIndex, const wxBitmap& bitmap,
const wxBitmap& pushedBitmap, const wxBitmap& pushedBitmap,
const bool toggle, const long xPos, const bool toggle, const long xPos,
const long yPos, wxObject *clientData, const long yPos, wxObject *clientData,
const wxString& helpString1, const wxString& helpString2) const wxString& helpString1, const wxString& helpString2)
{ {
wxNewBitmapButton* pBmpBtn = new wxNewBitmapButton( bitmap ); wxNewBitmapButton* pBmpBtn = new wxNewBitmapButton( bitmap );
pBmpBtn->Create( this, toolIndex ); pBmpBtn->Create( this, toolIndex );
pBmpBtn->Reshape(); pBmpBtn->Reshape();
AddTool( toolIndex, pBmpBtn ); AddTool( toolIndex, pBmpBtn );
return NULL; return NULL;
} }
wxDynToolInfo* wxDynamicToolBar::GetToolInfo( int toolIndex ) wxDynToolInfo* wxDynamicToolBar::GetToolInfo( int toolIndex )
{ {
size_t i; size_t i;
for( i = 0; i != mTools.Count(); ++i ) for( i = 0; i != mTools.Count(); ++i )
{ {
if ( mTools[i]->mIndex == toolIndex ) if ( mTools[i]->mIndex == toolIndex )
return mTools[i]; return mTools[i];
} }
return NULL; return NULL;
} }
void wxDynamicToolBar::RemveTool( int toolIndex ) void wxDynamicToolBar::RemveTool( int toolIndex )
{ {
size_t i; size_t i;
for( i = 0; i != mTools.Count(); ++i ) for( i = 0; i != mTools.Count(); ++i )
{ {
if ( mTools[i]->mIndex == toolIndex ) if ( mTools[i]->mIndex == toolIndex )
{ {
if ( mTools[i]->mpToolWnd ) if ( mTools[i]->mpToolWnd )
{ {
mTools[i]->mpToolWnd->Destroy(); mTools[i]->mpToolWnd->Destroy();
} }
delete mTools[i]; // HVL To be tested!!! delete mTools[i]; // HVL To be tested!!!
#if wxCHECK_VERSION(2,3,2) #if wxCHECK_VERSION(2,3,2)
mTools.RemoveAt(i); mTools.RemoveAt(i);
#else #else
mTools.Remove(i); mTools.Remove(i);
#endif #endif
Layout(); Layout();
return; return;
} }
} }
// TODO:: if not found, should it be an assertion? // TODO:: if not found, should it be an assertion?
} }
void wxDynamicToolBar::AddSeparator( wxWindow* pSepartorWnd ) void wxDynamicToolBar::AddSeparator( wxWindow* pSepartorWnd )
{ {
wxDynToolInfo* pInfo = new wxDynToolInfo(); wxDynToolInfo* pInfo = new wxDynToolInfo();
pInfo->mpToolWnd = pSepartorWnd; pInfo->mpToolWnd = pSepartorWnd;
pInfo->mIndex = -1; pInfo->mIndex = -1;
pInfo->mIsSeparator = TRUE; pInfo->mIsSeparator = TRUE;
if ( pSepartorWnd ) if ( pSepartorWnd )
{ {
pSepartorWnd->Create( this, -1 ); pSepartorWnd->Create( this, -1 );
int x,y; int x,y;
pSepartorWnd->GetSize( &x, &y ); pSepartorWnd->GetSize( &x, &y );
pInfo->mRealSize.x = x; pInfo->mRealSize.x = x;
pInfo->mRealSize.y = y; pInfo->mRealSize.y = y;
pInfo->mRect.width = x; pInfo->mRect.width = x;
pInfo->mRect.height = y; pInfo->mRect.height = y;
} }
else else
{ {
pInfo->mRealSize.x = mSepartorSize; pInfo->mRealSize.x = mSepartorSize;
pInfo->mRealSize.y = 0; pInfo->mRealSize.y = 0;
pInfo->mRect.width = mSepartorSize; pInfo->mRect.width = mSepartorSize;
pInfo->mRect.height = 0; pInfo->mRect.height = 0;
} }
mTools.Add( pInfo ); mTools.Add( pInfo );
} }
void wxDynamicToolBar::OnEraseBackground( wxEraseEvent& event ) void wxDynamicToolBar::OnEraseBackground( wxEraseEvent& event )
{ {
// FOR NOW:: nothing // FOR NOW:: nothing
} }
void wxDynamicToolBar::OnSize( wxSizeEvent& event ) void wxDynamicToolBar::OnSize( wxSizeEvent& event )
{ {
//SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DFACE ) ); //SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DFACE ) );
Layout(); Layout();
} }
void wxDynamicToolBar::DrawSeparator( wxDynToolInfo& info, wxDC& dc ) void wxDynamicToolBar::DrawSeparator( wxDynToolInfo& info, wxDC& dc )
{ {
// check the orientation of separator // check the orientation of separator
if ( info.mRect.width < info.mRect.height ) if ( info.mRect.width < info.mRect.height )
{ {
int midX = info.mRect.x + info.mRect.width/2 - 1; int midX = info.mRect.x + info.mRect.width/2 - 1;
dc.SetPen( *wxGREY_PEN ); dc.SetPen( *wxGREY_PEN );
dc.DrawLine( midX, info.mRect.y, dc.DrawLine( midX, info.mRect.y,
midX, info.mRect.y + info.mRect.height+1 ); midX, info.mRect.y + info.mRect.height+1 );
dc.SetPen( *wxWHITE_PEN ); dc.SetPen( *wxWHITE_PEN );
dc.DrawLine( midX+1, info.mRect.y, dc.DrawLine( midX+1, info.mRect.y,
midX+1, info.mRect.y + info.mRect.height+1 ); midX+1, info.mRect.y + info.mRect.height+1 );
} }
else else
{ {
int midY = info.mRect.y + info.mRect.height/2 - 1; int midY = info.mRect.y + info.mRect.height/2 - 1;
dc.SetPen( *wxGREY_PEN ); dc.SetPen( *wxGREY_PEN );
dc.DrawLine( info.mRect.x, midY, dc.DrawLine( info.mRect.x, midY,
info.mRect.x + info.mRect.width+1, midY ); info.mRect.x + info.mRect.width+1, midY );
dc.SetPen( *wxWHITE_PEN ); dc.SetPen( *wxWHITE_PEN );
dc.DrawLine( info.mRect.x, midY + 1, dc.DrawLine( info.mRect.x, midY + 1,
info.mRect.x + info.mRect.width+1, midY + 1 ); info.mRect.x + info.mRect.width+1, midY + 1 );
} }
} }
void wxDynamicToolBar::OnPaint( wxPaintEvent& event ) void wxDynamicToolBar::OnPaint( wxPaintEvent& event )
{ {
// draw separators if any // draw separators if any
wxPaintDC dc(this); wxPaintDC dc(this);
size_t i; size_t i;
for( i = 0; i != mTools.Count(); ++i ) for( i = 0; i != mTools.Count(); ++i )
if ( mTools[i]->mIsSeparator ) if ( mTools[i]->mIsSeparator )
{ {
// check if separator doesn't have it's own window // check if separator doesn't have it's own window
// if so, then draw it using built-in drawing method // if so, then draw it using built-in drawing method
if ( !mTools[i]->mpToolWnd ) if ( !mTools[i]->mpToolWnd )
DrawSeparator( *mTools[i], dc ); DrawSeparator( *mTools[i], dc );
} }
} }
// FOR NOW:: quick fix // FOR NOW:: quick fix
@@ -323,174 +322,174 @@ void wxDynamicToolBar::OnPaint( wxPaintEvent& event )
void wxDynamicToolBar::SizeToolWindows() void wxDynamicToolBar::SizeToolWindows()
{ {
size_t i; size_t i;
for( i = 0; i != mTools.Count(); ++i ) for( i = 0; i != mTools.Count(); ++i )
{ {
wxDynToolInfo& info = *mTools[i]; wxDynToolInfo& info = *mTools[i];
if ( !info.mIsSeparator ) if ( !info.mIsSeparator )
{ {
// center real rectangle within the rectangle // center real rectangle within the rectangle
// provided by the layout manager // provided by the layout manager
int x = info.mRect.x; int x = info.mRect.x;
int y = info.mRect.y + (info.mRect.height - info.mRealSize.y)/2; int y = info.mRect.y + (info.mRect.height - info.mRealSize.y)/2;
// FOR NOW FOR NOW:: quick & dirty fix // FOR NOW FOR NOW:: quick & dirty fix
if ( info.mpToolWnd->IsKindOf( CLASSINFO( wxChoice ) ) ) if ( info.mpToolWnd->IsKindOf( CLASSINFO( wxChoice ) ) )
{ {
info.mpToolWnd->SetSize( x,y, info.mpToolWnd->SetSize( x,y,
info.mRealSize.x - 3, info.mRealSize.x - 3,
info.mRealSize.y); info.mRealSize.y);
} }
else else
info.mpToolWnd->SetSize( x,y, info.mpToolWnd->SetSize( x,y,
info.mRealSize.x, info.mRealSize.x,
info.mRealSize.y ); info.mRealSize.y );
} }
// TBD:: size separator window if present // TBD:: size separator window if present
} }
} }
bool wxDynamicToolBar::Layout() bool wxDynamicToolBar::Layout()
{ {
if ( !mpLayoutMan ) if ( !mpLayoutMan )
mpLayoutMan = CreateDefaulLayout(); mpLayoutMan = CreateDefaultLayout();
int x,y; int x,y;
GetSize( &x, &y ); GetSize( &x, &y );
wxSize wndDim(x,y); wxSize wndDim(x,y);
wxSize result; wxSize result;
wxLayoutItemArrayT items; wxLayoutItemArrayT items;
// safe conversion // safe conversion
size_t i; size_t i;
for( i = 0; i != mTools.Count(); ++i ) for( i = 0; i != mTools.Count(); ++i )
items.Add( mTools[i] ); items.Add( mTools[i] );
mpLayoutMan->Layout( wndDim, result, items, mVertGap, mHorizGap );; mpLayoutMan->Layout( wndDim, result, items, mVertGap, mHorizGap );;
SizeToolWindows(); SizeToolWindows();
return TRUE; return TRUE;
} }
void wxDynamicToolBar::GetPreferredDim( const wxSize& givenDim, wxSize& prefDim ) void wxDynamicToolBar::GetPreferredDim( const wxSize& givenDim, wxSize& prefDim )
{ {
if ( !mpLayoutMan ) if ( !mpLayoutMan )
mpLayoutMan = CreateDefaulLayout(); mpLayoutMan = CreateDefaultLayout();
wxLayoutItemArrayT items; wxLayoutItemArrayT items;
// safe conversion // safe conversion
size_t i; size_t i;
for( i = 0; i != mTools.Count(); ++i ) for( i = 0; i != mTools.Count(); ++i )
items.Add( mTools[i] ); items.Add( mTools[i] );
mpLayoutMan->Layout( givenDim, prefDim, items, mVertGap, mHorizGap );; mpLayoutMan->Layout( givenDim, prefDim, items, mVertGap, mHorizGap );;
} }
void wxDynamicToolBar::SetLayout( LayoutManagerBase* pLayout ) void wxDynamicToolBar::SetLayout( LayoutManagerBase* pLayout )
{ {
if ( mpLayoutMan ) if ( mpLayoutMan )
delete mpLayoutMan; delete mpLayoutMan;
mpLayoutMan = pLayout; mpLayoutMan = pLayout;
Layout(); Layout();
} }
void wxDynamicToolBar::EnableTool(const int toolIndex, const bool enable ) void wxDynamicToolBar::EnableTool(const int toolIndex, const bool enable )
{ {
wxDynToolInfo* pInfo = GetToolInfo( toolIndex ); wxDynToolInfo* pInfo = GetToolInfo( toolIndex );
if ( !pInfo ) if ( !pInfo )
return; return;
if ( pInfo->mIsSeparator || !pInfo->mpToolWnd ) if ( pInfo->mIsSeparator || !pInfo->mpToolWnd )
return; return;
pInfo->mpToolWnd->Enable( enable ); pInfo->mpToolWnd->Enable( enable );
} }
/***** Implementation for class BagLayout *****/ /***** Implementation for class BagLayout *****/
void BagLayout::Layout( const wxSize& parentDim, void BagLayout::Layout( const wxSize& parentDim,
wxSize& resultingDim, wxSize& resultingDim,
wxLayoutItemArrayT& items, wxLayoutItemArrayT& items,
int horizGap, int horizGap,
int vertGap int vertGap
) )
{ {
int maxWidth = 0; int maxWidth = 0;
int curY = 0; int curY = 0;
int nRows = 0; int nRows = 0;
size_t i = 0; size_t i = 0;
while( i < items.Count() ) while( i < items.Count() )
{ {
int curX = 0; int curX = 0;
int height = 0; int height = 0;
// int nItems = 0; // int nItems = 0;
// int firstItem = i; // int firstItem = i;
int itemsInRow = 0; int itemsInRow = 0;
if ( nRows > 0 ) if ( nRows > 0 )
curY += vertGap; curY += vertGap;
// step #1 - arrange horizontal positions of items in the row // step #1 - arrange horizontal positions of items in the row
do do
{ {
if ( itemsInRow > 0 ) if ( itemsInRow > 0 )
curX += horizGap; curX += horizGap;
wxRect& r = items[i]->mRect; wxRect& r = items[i]->mRect;
if ( curX + r.width > parentDim.x ) if ( curX + r.width > parentDim.x )
{ {
if ( itemsInRow > 0 ) if ( itemsInRow > 0 )
break; break;
} }
r.x = curX; r.x = curX;
r.y = curY; r.y = curY;
curX += r.width; curX += r.width;
height = wxMax( height, r.height ); height = wxMax( height, r.height );
++itemsInRow; ++itemsInRow;
++i; ++i;
} while( i < items.Count() ); } while( i < items.Count() );
curY += height; curY += height;
maxWidth = wxMax( maxWidth, curX ); maxWidth = wxMax( maxWidth, curX );
} }
resultingDim.x = maxWidth; resultingDim.x = maxWidth;
resultingDim.y = curY; resultingDim.y = curY;
} }
//////// stuff from 2.1.15 /////////// //////// stuff from 2.1.15 ///////////
wxToolBarToolBase* wxDynamicToolBar::FindToolForPosition( wxCoord x, wxCoord y ) const wxToolBarToolBase* wxDynamicToolBar::FindToolForPosition( wxCoord x, wxCoord y ) const
{ {
return NULL; return NULL;
} }
bool wxDynamicToolBar::DoInsertTool( size_t pos, wxToolBarToolBase* tool ) bool wxDynamicToolBar::DoInsertTool( size_t pos, wxToolBarToolBase* tool )
{ {
return TRUE; return TRUE;
} }
bool wxDynamicToolBar::DoDeleteTool( size_t pos, wxToolBarToolBase* tool ) bool wxDynamicToolBar::DoDeleteTool( size_t pos, wxToolBarToolBase* tool )
{ {
return TRUE; return TRUE;
} }
void wxDynamicToolBar::DoEnableTool( wxToolBarToolBase* tool, bool enable ) void wxDynamicToolBar::DoEnableTool( wxToolBarToolBase* tool, bool enable )
@@ -507,11 +506,11 @@ void wxDynamicToolBar::DoSetToggle( wxToolBarToolBase* tool, bool toggle )
wxToolBarToolBase* wxDynamicToolBar::CreateTool( int id, const wxBitmap& bitmap1, const wxBitmap& bitmap2, bool toggle, wxObject* clientData, const wxString& shortHelpString, const wxString& longHelpString ) wxToolBarToolBase* wxDynamicToolBar::CreateTool( int id, const wxBitmap& bitmap1, const wxBitmap& bitmap2, bool toggle, wxObject* clientData, const wxString& shortHelpString, const wxString& longHelpString )
{ {
return NULL; return NULL;
} }
wxToolBarToolBase* wxDynamicToolBar::CreateTool( wxControl* control ) wxToolBarToolBase* wxDynamicToolBar::CreateTool( wxControl* control )
{ {
return NULL; return NULL;
} }

View File

@@ -1,12 +1,12 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: No names yet. // Name: dyntbarhnd.cpp
// Purpose: Contrib. demo // Purpose: cbDynToolBarDimHandler implementation.
// Author: Aleksandras Gluchovas // Author: Aleksandras Gluchovas
// Modified by: // Modified by:
// Created: 23/01/99 // Created: 23/01/99
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__ #ifdef __GNUG__
@@ -20,30 +20,28 @@
#pragma hdrstop #pragma hdrstop
#endif #endif
#ifndef WX_PRECOMP #ifndef WX_PRECOMP
#include "wx/wx.h" #include "wx/wx.h"
#endif #endif
#include "wx/fl/dyntbarhnd.h" #include "wx/fl/dyntbarhnd.h"
/***** Implementation for class cbDynToolBarDimHandler *****/ /***** Implementation for class cbDynToolBarDimHandler *****/
IMPLEMENT_DYNAMIC_CLASS( cbDynToolBarDimHandler, cbBarDimHandlerBase ) IMPLEMENT_DYNAMIC_CLASS( cbDynToolBarDimHandler, cbBarDimHandlerBase )
void cbDynToolBarDimHandler::OnChangeBarState(cbBarInfo* pBar, int newState ) void cbDynToolBarDimHandler::OnChangeBarState(cbBarInfo* pBar, int newState )
{ {
// nothing // nothing
} }
void cbDynToolBarDimHandler::OnResizeBar( cbBarInfo* pBar, void cbDynToolBarDimHandler::OnResizeBar( cbBarInfo* pBar,
const wxSize& given, const wxSize& given,
wxSize& preferred ) wxSize& preferred )
{ {
wxASSERT( pBar->mpBarWnd ); // DBG:: should be present wxASSERT( pBar->mpBarWnd ); // DBG:: should be present
wxDynamicToolBar* pTBar = (wxDynamicToolBar*)pBar->mpBarWnd; wxDynamicToolBar* pTBar = (wxDynamicToolBar*)pBar->mpBarWnd;
pTBar->GetPreferredDim( given, preferred ); pTBar->GetPreferredDim( given, preferred );
} }

View File

@@ -12,7 +12,6 @@ FL_OBJECTS = \
newbmpbtn.$(OBJ_EXT) \ newbmpbtn.$(OBJ_EXT) \
updatesmgr.$(OBJ_EXT) \ updatesmgr.$(OBJ_EXT) \
cbcustom.$(OBJ_EXT) \ cbcustom.$(OBJ_EXT) \
frmview.$(OBJ_EXT) \
panedrawpl.$(OBJ_EXT) \ panedrawpl.$(OBJ_EXT) \
controlbar.$(OBJ_EXT) \ controlbar.$(OBJ_EXT) \
garbagec.$(OBJ_EXT) \ garbagec.$(OBJ_EXT) \

View File

@@ -188,10 +188,6 @@ SOURCE=.\dyntbarhnd.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=.\frmview.cpp
# End Source File
# Begin Source File
SOURCE=.\garbagec.cpp SOURCE=.\garbagec.cpp
# End Source File # End Source File
# Begin Source File # Begin Source File

View File

@@ -1,12 +1,12 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: No names yet. // Name: frmview.cpp
// Purpose: Contrib. demo // Purpose: wxFrameView implementation. NOT USED IN FL.
// Author: Aleksandras Gluchovas // Author: Aleksandras Gluchovas
// Modified by: // Modified by:
// Created: 02/01/99 // Created: 02/01/99
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__ #ifdef __GNUG__

View File

@@ -1,12 +1,12 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: No names yet. // Name: garbagec.cpp
// Purpose: Contrib. demo // Purpose: Garbage collection algorithm for optimizing refresh.
// Author: Aleksandras Gluchovas // Author: Aleksandras Gluchovas
// Modified by: // Modified by:
// Created: 18/10/98 // Created: 18/10/98
// RCS-ID: $Id$ // RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas // Copyright: (c) Aleksandras Gluchovas
// Licence: wxWindows license // Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
@@ -32,193 +32,193 @@
inline static GCItem& node_to_item( wxNode* pNode ) inline static GCItem& node_to_item( wxNode* pNode )
{ {
return *( (GCItem*)(pNode->Data()) ); return *( (GCItem*)(pNode->Data()) );
} }
GarbageCollector::~GarbageCollector() GarbageCollector::~GarbageCollector()
{ {
Reset(); Reset();
} }
/*** GC alg. helpers ***/ /*** GC alg. helpers ***/
void GarbageCollector::DestroyItemList( wxList& lst ) void GarbageCollector::DestroyItemList( wxList& lst )
{ {
wxNode* pNode = lst.First(); wxNode* pNode = lst.First();
while( pNode ) while( pNode )
{ {
delete &node_to_item( pNode ); delete &node_to_item( pNode );
pNode = pNode->Next(); pNode = pNode->Next();
} }
lst.Clear(); lst.Clear();
} }
wxNode* GarbageCollector::FindItemNode( void* pForObj ) wxNode* GarbageCollector::FindItemNode( void* pForObj )
{ {
wxNode* pNode = mAllNodes.First(); wxNode* pNode = mAllNodes.First();
while( pNode ) while( pNode )
{ {
if ( node_to_item( pNode ).mpObj == pForObj ) if ( node_to_item( pNode ).mpObj == pForObj )
return pNode; return pNode;
pNode = pNode->Next(); pNode = pNode->Next();
} }
int avoidCompilerWarning = 0; int avoidCompilerWarning = 0;
wxASSERT(avoidCompilerWarning); // DBG:: item should be present wxASSERT(avoidCompilerWarning); // DBG:: item should be present
return 0; return 0;
} }
wxNode* GarbageCollector::FindReferenceFreeItemNode() wxNode* GarbageCollector::FindReferenceFreeItemNode()
{ {
wxNode* pNode = mAllNodes.First(); wxNode* pNode = mAllNodes.First();
while( pNode ) while( pNode )
{ {
if ( node_to_item( pNode ).mRefs.Number() == 0 ) if ( node_to_item( pNode ).mRefs.Number() == 0 )
return pNode; return pNode;
pNode = pNode->Next(); pNode = pNode->Next();
} }
return 0; return 0;
} }
void GarbageCollector::RemoveReferencesToNode( wxNode* pItemNode ) void GarbageCollector::RemoveReferencesToNode( wxNode* pItemNode )
{ {
wxNode* pNode = mAllNodes.First(); wxNode* pNode = mAllNodes.First();
while( pNode ) while( pNode )
{ {
wxList& refLst = node_to_item( pNode ).mRefs; wxList& refLst = node_to_item( pNode ).mRefs;
wxNode* pRefNode = refLst.First(); wxNode* pRefNode = refLst.First();
while( pRefNode ) while( pRefNode )
{ {
if ( pRefNode->Data() == (wxObject*)pItemNode ) if ( pRefNode->Data() == (wxObject*)pItemNode )
{ {
wxNode* pNext = pRefNode->Next(); wxNode* pNext = pRefNode->Next();
refLst.DeleteNode( pRefNode ); refLst.DeleteNode( pRefNode );
pRefNode = pNext; pRefNode = pNext;
continue; continue;
} }
else pRefNode = pRefNode->Next(); else pRefNode = pRefNode->Next();
} }
pNode = pNode->Next(); pNode = pNode->Next();
} }
} }
void GarbageCollector::ResolveReferences() void GarbageCollector::ResolveReferences()
{ {
wxNode* pNode = mAllNodes.First(); wxNode* pNode = mAllNodes.First();
while( pNode ) while( pNode )
{ {
GCItem& item = node_to_item( pNode ); GCItem& item = node_to_item( pNode );
wxNode* pRefNode = item.mRefs.First(); wxNode* pRefNode = item.mRefs.First();
while( pRefNode ) while( pRefNode )
{ {
pRefNode->SetData( (wxObject*) FindItemNode( (void*)pRefNode->Data() ) ); pRefNode->SetData( (wxObject*) FindItemNode( (void*)pRefNode->Data() ) );
pRefNode = pRefNode->Next(); pRefNode = pRefNode->Next();
} }
pNode = pNode->Next(); pNode = pNode->Next();
} }
} }
void GarbageCollector::AddObject( void* pObj, int refCnt ) void GarbageCollector::AddObject( void* pObj, int refCnt )
{ {
// FOR NOW:: initial ref-count is not used // FOR NOW:: initial ref-count is not used
GCItem* pItem = new GCItem(); GCItem* pItem = new GCItem();
pItem->mpObj = pObj; pItem->mpObj = pObj;
mAllNodes.Append( (wxObject*) pItem ); mAllNodes.Append( (wxObject*) pItem );
} }
void GarbageCollector::AddDependency( void* pObj, void* pDependsOnObj ) void GarbageCollector::AddDependency( void* pObj, void* pDependsOnObj )
{ {
node_to_item( FindItemNode( pObj ) ).mRefs.Append( (wxObject*)pDependsOnObj ); node_to_item( FindItemNode( pObj ) ).mRefs.Append( (wxObject*)pDependsOnObj );
} }
/*** GC alg. implementation ***/ /*** GC alg. implementation ***/
void GarbageCollector::ArrangeCollection() void GarbageCollector::ArrangeCollection()
{ {
ResolveReferences(); ResolveReferences();
do do
{ {
// find node, which does not depend on anything // find node, which does not depend on anything
wxNode* pItemNode = FindReferenceFreeItemNode(); wxNode* pItemNode = FindReferenceFreeItemNode();
if ( pItemNode ) if ( pItemNode )
{ {
// append it to the list, where items are contained // append it to the list, where items are contained
// in the increasing order of dependencies // in the increasing order of dependencies
mRegularLst.Append( pItemNode->Data() ); mRegularLst.Append( pItemNode->Data() );
mAllNodes.DeleteNode( pItemNode ); mAllNodes.DeleteNode( pItemNode );
// remove references to this current "least-dependent" node // remove references to this current "least-dependent" node
// from reference lists of all the other nodes // from reference lists of all the other nodes
RemoveReferencesToNode( pItemNode ); RemoveReferencesToNode( pItemNode );
} }
else else
{ {
// otherwise, what is left - all nodes, which // otherwise, what is left - all nodes, which
// are involved into cycled chains (rings) // are involved into cycled chains (rings)
wxNode* pNode = mAllNodes.First(); wxNode* pNode = mAllNodes.First();
while( pNode ) while( pNode )
{ {
mCycledLst.Append( pNode->Data() ); mCycledLst.Append( pNode->Data() );
pNode = pNode->Next(); pNode = pNode->Next();
} }
break; break;
} }
// continue search for "least-dependent" nodes // continue search for "least-dependent" nodes
} while(1); } while(1);
} }
wxList& GarbageCollector::GetRegularObjects() wxList& GarbageCollector::GetRegularObjects()
{ {
return mRegularLst; return mRegularLst;
} }
wxList& GarbageCollector::GetCycledObjects() wxList& GarbageCollector::GetCycledObjects()
{ {
return mCycledLst; return mCycledLst;
} }
void GarbageCollector::Reset() void GarbageCollector::Reset()
{ {
DestroyItemList( mAllNodes ); DestroyItemList( mAllNodes );
mRegularLst.Clear(); mRegularLst.Clear();
mCycledLst.Clear(); mCycledLst.Clear();
} }

Some files were not shown because too many files have changed in this diff Show More