/////////////////////////////////////////////////////////////////////////////
-// Name: No names yet.
-// Purpose: Contrib. demo
+// Name: controlbar.cpp
+// Purpose: Implementation for main controlbar classes.
// Author: Aleksandras Gluchovas
// Modified by:
// Created: 06/09/98
// meet the new event paradigm as of wx2.3.0. Probably we
// should find a way to make these be non-global, but this
// works for right now.
-#if wxCHECK_VERSION(2,3,0)
wxEventType cbEVT_PL_LEFT_DOWN = wxNewEventType();
wxEventType cbEVT_PL_LEFT_UP = wxNewEventType();
wxEventType cbEVT_PL_RIGHT_DOWN = wxNewEventType();
wxEventType cbEVT_PL_CUSTOMIZE_LAYOUT = 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... :-(
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()
{
pChild->Reparent(pNewParent);
return;
-#elif defined(__WXGTK__)
+#elif defined(__WXGTK__) || defined(__WXX11__)
// FOR NOW:: floating with wxGtk still very buggy
return;
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...
// but first the "pane-postion-changed" problem
- // have to be fixed
+ // has to be fixed
RecalcLayout( FALSE );
if ( pBar->mState == wxCBAR_FLOATING && newState != wxCBAR_FLOATING )
{
- // remove bar's window form the containing mini-frame
- // and set it's parent to be layout's parent frame
+ // remove bar's window from the containing mini-frame
+ // and set its parent to be layout's parent frame
if ( pBar->mpBarWnd )
{
}
}
+ if ( pBar->mDimInfo.GetDimHandler() )
+ {
+ pBar->mDimInfo.GetDimHandler()->OnChangeBarState( pBar, newState );
+ }
+
pBar->mState = newState;
DoSetBarState( pBar );
pMiniFrm->Create( &GetParentFrame(), -1, pBar->mName,
wxPoint( 50,50 ),
wxSize ( 0, 0 ),
- wxFRAME_FLOAT_ON_PARENT | wxFRAME_TOOL_WINDOW
+ wxFRAME_FLOAT_ON_PARENT |
+ wxFRAME_TOOL_WINDOW |
+ wxFRAME_NO_TASKBAR
);
pMiniFrm->SetClient( pBar->mpBarWnd );
void wxFrameLayout::OnSize( wxSizeEvent& event )
{
if ( event.GetEventObject() == (wxObject*) mpFrame )
-
+ {
+ GetUpdatesManager().OnStartChanges();
RecalcLayout(TRUE);
+ GetUpdatesManager().OnFinishChanges();
+ GetUpdatesManager().UpdateNow();
+ }
+
}
/*** protected members ***/
void wxFrameLayout::UnhookFromFrame()
{
// 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
//
// 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
// handler of some window, and additionally
- // to the reconnecting itself from the chain
- // it would also re-setup current event handler
+ // to the reconnecting itself from the chain.
+ // It would also re-setup current event handler
// of the window using wxWindow::SetEventHandler()
// FOR NOW::
void wxFrameLayout::RefreshNow( bool recalcLayout )
{
- if ( recalcLayout ) RecalcLayout( TRUE );
+ if ( recalcLayout )
+ RecalcLayout( TRUE );
- if ( mpFrame ) mpFrame->Refresh();
+ if ( mpFrame )
+ mpFrame->Refresh();
}
/*** plugin-related methods ***/
: mRealTimeUpdatesOn ( TRUE ),
mOutOfPaneDragOn ( TRUE ),
mExactDockPredictionOn( FALSE ),
- mNonDestructFirctionOn( FALSE ),
+ mNonDestructFrictionOn( FALSE ),
mShow3DPaneBorderOn ( TRUE ),
mBarFloatingOn ( FALSE ),
mRowProportionsOn ( FALSE ),
mResizeHandleSize( 4 )
{}
+cbCommonPaneProperties::cbCommonPaneProperties(const cbCommonPaneProperties& props)
+
+ : wxObject(),
+ mRealTimeUpdatesOn (props.mRealTimeUpdatesOn),
+ mOutOfPaneDragOn (props.mOutOfPaneDragOn),
+ mExactDockPredictionOn(props.mExactDockPredictionOn),
+ mNonDestructFrictionOn(props.mNonDestructFrictionOn),
+ mShow3DPaneBorderOn (props.mShow3DPaneBorderOn),
+ mBarFloatingOn (props.mBarFloatingOn),
+ mRowProportionsOn (props.mRowProportionsOn),
+ mColProportionsOn (props.mColProportionsOn),
+ mBarCollapseIconsOn (props.mBarCollapseIconsOn),
+ mBarDragHintsOn (props.mBarDragHintsOn),
+
+ mMinCBarDim(props.mMinCBarDim),
+ mResizeHandleSize(props.mResizeHandleSize)
+{}
+
+cbCommonPaneProperties& cbCommonPaneProperties::operator=(const cbCommonPaneProperties& props)
+{
+ mRealTimeUpdatesOn = props.mRealTimeUpdatesOn;
+ mOutOfPaneDragOn = props.mOutOfPaneDragOn;
+ mExactDockPredictionOn = props.mExactDockPredictionOn;
+ mNonDestructFrictionOn = props.mNonDestructFrictionOn;
+ mShow3DPaneBorderOn = props.mShow3DPaneBorderOn;
+ mBarFloatingOn = props.mBarFloatingOn;
+ mRowProportionsOn = props.mRowProportionsOn;
+ mColProportionsOn = props.mColProportionsOn;
+ mBarCollapseIconsOn = props.mBarCollapseIconsOn;
+ mBarDragHintsOn = props.mBarDragHintsOn;
+
+ mMinCBarDim = props.mMinCBarDim;
+ mResizeHandleSize = props.mResizeHandleSize;
+
+ return *this;
+}
+
/***** Implementation for class cbRowInfo *****/
IMPLEMENT_DYNAMIC_CLASS( cbRowInfo, wxObject )
void cbDockPane::RemoveBar( cbBarInfo* pBar )
{
- bool needsRestoring = mProps.mNonDestructFirctionOn &&
+ bool needsRestoring = mProps.mNonDestructFrictionOn &&
mpStoredRow == pBar->mpRow;
cbRemoveBarEvent evt( pBar, this );
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 )
{
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 )
{
{
pRow = mRows[rowNo];
- if ( mProps.mNonDestructFirctionOn == TRUE )
+ if ( mProps.mNonDestructFrictionOn == TRUE )
{
// store original shape of the row (before the bar is inserted)