// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
- #pragma implementation "controlbar.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
/*
// FIXME:: see places where _gHorizCursorImg is used
-static const char* _gHorizCursorImg[] =
+static const char* _gHorizCursorImg[] =
{
"............XX....XX............",
"............XX....XX............",
"............XX....XX............"
};
-static const char* _gVertCursorImg[] =
+static const char* _gVertCursorImg[] =
{
"................X...............",
"...............XXX..............",
if ( ( r2.y >= r1.y && r2.y <= r1.y + r1.height ) ||
( r1.y >= r2.y && r1.y <= r2.y + r2.height ) )
-
+
return 1;
return 0;
static inline void clip_rect_against_rect( wxRect& r1, const wxRect& r2 )
{
- if ( r1.x < r2.x ||
+ if ( r1.x < r2.x ||
r1.y < r2.y ||
r1.x >= r2.x + r2.width ||
- r1.y >= r2.y + r2.height
- )
+ r1.y >= r2.y + r2.height
+ )
{
hide_rect( r1 );
return;
mpBarWnd(0)
{}
-cbBarSpy::cbBarSpy( wxFrameLayout* pPanel )
+cbBarSpy::cbBarSpy( wxFrameLayout* pPanel )
: mpLayout(pPanel),
mpBarWnd(0)
mGrayPen ( wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE), 1, wxSOLID ),
mBlackPen ( wxColour( 0, 0, 0), 1, wxSOLID ),
mBorderPen( wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE), 1, wxSOLID ),
-
+
mNullPen( wxColour(0,0,0), 1, wxTRANSPARENT ),
mpPaneInFocus( NULL ),
mGrayPen ( wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE), 1, wxSOLID ),
mBlackPen ( wxColour( 0, 0, 0), 1, wxSOLID ),
mBorderPen( wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE), 1, wxSOLID ),
-
+
mNullPen( wxColour(0,0,0), 1, wxTRANSPARENT ),
mpPaneInFocus( NULL ),
mpLRUPane ( NULL ),
-
+
mFloatingOn ( true ),
-
+
mpTopPlugin ( NULL ),
mpCaputesInput( NULL ),
-
+
mClientWndRefreshPending( false ),
mRecalcPending( true ),
mCheckFocusWhenIdle( false ),
-
+
mpUpdatesMgr( NULL )
{
CreateCursors();
#ifdef __WXMSW__
return true;
#elif defined(__WXGTK20__)
- return TRUE;
+ return true;
#elif defined (__WXGTK__)
//return true;
return false;
void wxFrameLayout::ReparentWindow( wxWindow* pChild, wxWindow* pNewParent )
{
-#ifdef __WXMSW__
-#if 0
-
- if ( pChild->GetParent() )
- {
- bool success = pChild->GetParent()->GetChildren().DeleteObject( pChild );
-
- wxASSERT( success ); // DBG::
- }
-
- ::SetParent( (HWND)pChild->m_hWnd, (HWND)pNewParent->m_hWnd );
-
- pNewParent->GetChildren().Append( pChild );
-
- pChild->SetParent( pNewParent );
-#endif
- pChild->Reparent(pNewParent);
-
- return;
-#elif defined(__WXGTK20__)
+#if defined(__WXMSW__) || defined(__WXGTK20__) || defined(__WXMAC__)
pChild->Reparent(pNewParent);
return;
//return;
#else
- wxMessageBox( "Sorry, docking is not supported for ports other than MSW and wxGTK" );
+ wxUnusedVar(pChild);
+ wxUnusedVar(pNewParent);
+ wxMessageBox( _("Sorry, docking is not supported for ports other than wxMSW, wxMac and wxGTK") );
#endif
}
for ( i = 0; i != MAX_PANES; ++i )
{
- if ( mPanes[i] )
+ if ( mPanes[i] )
delete mPanes[i];
}
- if ( mpHorizCursor )
+ if ( mpHorizCursor )
delete mpHorizCursor;
- if ( mpVertCursor )
+ if ( mpVertCursor )
delete mpVertCursor;
- if ( mpNormalCursor )
+ if ( mpNormalCursor )
delete mpNormalCursor;
- if ( mpDragCursor )
+ if ( mpDragCursor )
delete mpDragCursor;
- if ( mpNECursor )
+ if ( mpNECursor )
delete mpNECursor;
wxObjectList::compatibility_iterator pSpy = mBarSpyList.GetFirst();
//return new cbSimpleUpdatesMgr( this );
}
-void wxFrameLayout::AddBar( wxWindow* pBarWnd,
+void wxFrameLayout::AddBar( wxWindow* pBarWnd,
const cbDimInfo& dimInfo,
int alignment,
int rowNo,
DoSetBarState( pInfo );
}
-bool wxFrameLayout::RedockBar( cbBarInfo* pBar,
+bool wxFrameLayout::RedockBar( cbBarInfo* pBar,
const wxRect& shapeInParent,
cbDockPane* pToPane,
bool updateNow )
{
if ( !pToPane )
-
+
pToPane = HitTestPanes( shapeInParent, NULL );
- if ( !pToPane )
-
- return false; // bar's shape does not hit any pane
+ if ( !pToPane )
+
+ return false; // bar's shape does not hit any pane
// - redocking is NOT possible
cbDockPane* pBarPane = GetBarPane( pBar );
// FIXME FIXME:: the recalculation below may be a *huge* performance
// hit, it could be eliminated though...
- // but first the "pane-postion-changed" problem
- // has to be fixed
+ // but first the "pane-postion-changed" problem
+ // has to be fixed
RecalcLayout( false );
cbRowInfo* pRow;
#ifdef __WXDEBUG__
- bool success =
+ bool success =
#endif
LocateBar( pBar, &pRow, &pPane );
if ( pFFrm->GetBar() == pBar )
{
- pFFrm->Show( false ); // reduces flicker sligthly
+ pFFrm->Show( false ); // reduces flicker sligthly
ReparentWindow( pBar->mpBarWnd, &GetParentFrame() );
if ( newState == wxCBAR_FLOATING )
- this->RepositionFloatedBar( pBar );
+ this->RepositionFloatedBar( pBar );
}
void wxFrameLayout::ApplyBarProperties( cbBarInfo* pBar )
GetParentFrame().ClientToScreen( &x, &y );
- pFFrm->PositionFloatedWnd( x,y,
+ pFFrm->PositionFloatedWnd( x,y,
bounds.width,
bounds.height );
{
if ( pBar->mState != wxCBAR_FLOATING &&
pBar->mState != wxCBAR_HIDDEN )
-
+
// dock it
mPanes[pBar->mAlignment]->InsertBar( pBar );
pBar->mpBarWnd->Show( false );
}
else
- {
+ {
if ( !(mFloatingOn && pBar->mFloatingOn) )
return;
// float it
if ( pBar->mpBarWnd == NULL || !CanReparent() )
- {
+ {
// FOR NOW:: just hide it
if ( pBar->mpBarWnd )
pMiniFrm->SetBar( pBar );
pMiniFrm->SetLayout( this );
- pMiniFrm->Create( &GetParentFrame(), wxID_ANY, pBar->mName,
+ pMiniFrm->Create( &GetParentFrame(), wxID_ANY, pBar->mName,
wxPoint( 50,50 ),
wxSize ( 0, 0 ),
wxFRAME_FLOAT_ON_PARENT |
if ( mAllBars[i] == pBarInfo )
{
#if wxCHECK_VERSION(2,3,2)
- mAllBars.RemoveAt(i);
+ mAllBars.RemoveAt(i);
#else
- mAllBars.Remove(i);
+ mAllBars.Remove(i);
#endif
if ( pBarInfo->mpBarWnd ) // hides it's window
wxFAIL_MSG(wxT("bar info should be present in the list of all bars of all panes"));
}
-bool wxFrameLayout::LocateBar( cbBarInfo* pBarInfo,
+bool wxFrameLayout::LocateBar( cbBarInfo* pBarInfo,
cbRowInfo** ppRow,
cbDockPane** ppPane )
{
wxBarIterator i( mPanes[n]->GetRowList() );
while ( i.Next() )
-
+
if ( &i.BarInfo() == pBarInfo )
{
(*ppPane) = mPanes[n];
pPane->SetBoundsInParent( rect );
- // setup LEFT pane
+ // setup LEFT pane
pPane = mPanes[ FL_ALIGN_LEFT ];
// recalc bounds of the client-window
- mClntWndBounds.x = mPanes[FL_ALIGN_LEFT]->mBoundsInParent.x +
+ mClntWndBounds.x = mPanes[FL_ALIGN_LEFT]->mBoundsInParent.x +
mPanes[FL_ALIGN_LEFT]->mBoundsInParent.width;
- mClntWndBounds.y = mPanes[FL_ALIGN_TOP ]->mBoundsInParent.y +
+ mClntWndBounds.y = mPanes[FL_ALIGN_TOP ]->mBoundsInParent.y +
mPanes[FL_ALIGN_TOP ]->mBoundsInParent.height;
mClntWndBounds.width = mPanes[FL_ALIGN_RIGHT]->mBoundsInParent.x -
{
if ( mClntWndBounds.width >= 1 && mClntWndBounds.height >= 1 )
{
- mpFrameClient->SetSize( mClntWndBounds.x, mClntWndBounds.y,
+ mpFrameClient->SetSize( mClntWndBounds.x, mClntWndBounds.y,
mClntWndBounds.width, mClntWndBounds.height, 0 );
if ( !mpFrameClient->IsShown() )
// NOTE:: the SetEvtHandlerEnabled() method is not used
// 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 checked if
- // this handler is currently the top-most
- // handler of some window, and additionally
+ //
+ // BUG BUG BUG (wx):: this would not be a problem 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
+ // It would also re-setup current event handler
// of the window using wxWindow::SetEventHandler()
// FOR NOW::
/*
// FIXME:: The below code somehow doesn't work - cursors remain unchanged
char bits[64];
-
+
set_cursor_bits( _gHorizCursorImg, bits, 32, 16 );
mpHorizCursor = new wxCursor( bits, 32, 16 );
{
// first, give the privilege to the current pane
- if ( pCurPane && rect_hits_rect( pCurPane->GetRealRect(), rect ) )
-
+ if ( pCurPane && rect_hits_rect( pCurPane->GetRealRect(), rect ) )
+
return pCurPane;
int i;
for ( i = 0; i != MAX_PANES; ++i )
{
if ( pCurPane != mPanes[i] &&
- rect_hits_rect( mPanes[i]->GetRealRect(), rect ) )
+ rect_hits_rect( mPanes[i]->GetRealRect(), rect ) )
{
return mPanes[i];
}
return 0;
}
-void wxFrameLayout::ForwardMouseEvent( wxMouseEvent& event,
+void wxFrameLayout::ForwardMouseEvent( wxMouseEvent& event,
cbDockPane* pToPane,
int eventType )
{
void wxFrameLayout::OnMouseMove( wxMouseEvent& event )
{
if ( mpPaneInFocus )
-
+
ForwardMouseEvent( event, mpPaneInFocus, cbEVT_PL_MOTION );
else
{
{
// check state of input capture, before processing the event
- if ( mpCaputesInput )
+ if ( mpCaputesInput )
{
bool isInputEvt = true;
#if wxCHECK_VERSION(2,3,0)
- if ( event.m_eventType != cbEVT_PL_LEFT_DOWN &&
- event.m_eventType != cbEVT_PL_LEFT_UP &&
- event.m_eventType != cbEVT_PL_RIGHT_DOWN &&
- event.m_eventType != cbEVT_PL_RIGHT_UP &&
- event.m_eventType != cbEVT_PL_MOTION )
+ if ( event.GetEventType() != cbEVT_PL_LEFT_DOWN &&
+ event.GetEventType() != cbEVT_PL_LEFT_UP &&
+ event.GetEventType() != cbEVT_PL_RIGHT_DOWN &&
+ event.GetEventType() != cbEVT_PL_RIGHT_UP &&
+ event.GetEventType() != cbEVT_PL_MOTION )
isInputEvt = false;
#else
switch ( event.m_eventType )
case cbEVT_PL_RIGHT_DOWN : break;
case cbEVT_PL_RIGHT_UP : break;
case cbEVT_PL_MOTION : break;
-
+
default : isInputEvt = false; break;
}
#endif // #if wxCHECK_VERSION(2,3,0)
cbPluginBase& wxFrameLayout::GetTopPlugin()
{
- if ( !mpTopPlugin )
-
+ if ( !mpTopPlugin )
+
PushDefaultPlugins(); // automatic configuration
return *mpTopPlugin;
}
-void wxFrameLayout::SetTopPlugin( cbPluginBase* pPlugin )
-{
- mpTopPlugin = pPlugin;
+void wxFrameLayout::SetTopPlugin( cbPluginBase* pPlugin )
+{
+ mpTopPlugin = pPlugin;
}
-bool wxFrameLayout::HasTopPlugin()
-{
- return ( mpTopPlugin != NULL );
+bool wxFrameLayout::HasTopPlugin()
+{
+ return ( mpTopPlugin != NULL );
}
void wxFrameLayout::PushPlugin( cbPluginBase* pPlugin )
{
- if ( !mpTopPlugin )
-
+ if ( !mpTopPlugin )
+
mpTopPlugin = pPlugin;
else
{
PushPlugin( pObj );
}
-void wxFrameLayout::AddPluginBefore( wxClassInfo* pNextPlInfo, wxClassInfo* pPlInfo,
+void wxFrameLayout::AddPluginBefore( wxClassInfo* pNextPlInfo, wxClassInfo* pPlInfo,
int paneMask )
{
wxASSERT( pNextPlInfo != pPlInfo ); // DBG:: no sense
// remove existing one if present
cbPluginBase* pExistingPl = FindPlugin( pPlInfo );
-
+
if ( pExistingPl ) RemovePlugin( pPlInfo );
- // create an instance
+ // create an instance
cbPluginBase* pNewPl = (cbPluginBase*)pPlInfo->CreateObject();
// insert it to the chain
if ( pNextPl->GetPreviousHandler() )
-
pNextPl->GetPreviousHandler()->SetNextHandler( pNewPl );
else
mpTopPlugin = pNewPl;
IMPLEMENT_DYNAMIC_CLASS( cbUpdateMgrData, wxObject )
-cbUpdateMgrData::cbUpdateMgrData()
+cbUpdateMgrData::cbUpdateMgrData()
: mPrevBounds( -1,-1,0,0 ),
mIsDirty( true ), // inidicate initial change
{}
void cbUpdateMgrData::StoreItemState( const wxRect& boundsInParent )
-{
- mPrevBounds = boundsInParent;
+{
+ mPrevBounds = boundsInParent;
}
void cbUpdateMgrData::SetDirty( bool isDirty )
}
bool wxBarIterator::Next()
-{
+{
if ( mpRow )
{
if ( mpBar )
{
if ( mpRow->mBars.GetCount() == 0 )
{
- return false;
+ return false;
}
mpBar = mpRow->mBars[0];
}
-
+
if ( !mpBar )
- {
+ {
// skip to the next row
mpRow = mpRow->mpNext;
-
+
if ( mpRow )
-
mpBar = mpRow->mBars[0];
else
return false;
}
-
+
return true;
}
else
IMPLEMENT_DYNAMIC_CLASS( cbDimInfo, wxObject )
-cbDimInfo::cbDimInfo()
+cbDimInfo::cbDimInfo()
- : mVertGap ( 0 ),
+ : mVertGap ( 0 ),
mHorizGap( 0 ),
mIsFixed(true),
// int vtad = *((int*)mpHandler);
mpHandler->AddRef();
}
-
+
size_t i;
for ( i = 0; i != MAX_BAR_STATES; ++i )
{
size_t i;
for ( i = 0; i != MAX_BAR_STATES; ++i )
mBounds[i] = wxRect( -1,-1,-1,-1 );
-}
+}
-cbDimInfo::cbDimInfo( int x, int y,
- bool isFixed, int gap,
+cbDimInfo::cbDimInfo( int x, int y,
+ bool isFixed, int gap,
cbBarDimHandlerBase* pDimHandler)
: mVertGap ( gap ),
mHorizGap ( gap ),
mSizes[wxCBAR_DOCKED_VERTICALLY ].y = y;
mSizes[wxCBAR_FLOATING ].x = x;
mSizes[wxCBAR_FLOATING ].y = y;
-
+
size_t i;
for ( i = 0; i != MAX_BAR_STATES; ++i )
mBounds[i] = wxRect( -1,-1,-1,-1 );
cbDimInfo::~cbDimInfo()
{
- if ( mpHandler )
-
+ if ( mpHandler )
+
mpHandler->RemoveRef();
}
mColProportionsOn = props.mColProportionsOn;
mBarCollapseIconsOn = props.mBarCollapseIconsOn;
mBarDragHintsOn = props.mBarDragHintsOn;
-
+
mMinCBarDim = props.mMinCBarDim;
mResizeHandleSize = props.mResizeHandleSize;
// FIXME:: how to eliminate these cut&pasted constructors?
-cbDockPane::cbDockPane(void)
+cbDockPane::cbDockPane(void)
: mLeftMargin ( 1 ),
mRightMargin ( 1 ),
mTopMargin ( 1 ),
mBottomMargin( 1 ),
mPaneWidth ( 32768 ), // fake-up very large pane dims,
- // since the real dimensions of the pane may not
+ // since the real dimensions of the pane may not
// be known, while inserting bars initially
mPaneHeight( 32768 ),
mAlignment ( -1 ),
{}
cbDockPane::cbDockPane( int alignment, wxFrameLayout* pPanel )
-
+
: mLeftMargin ( 1 ),
mRightMargin ( 1 ),
mTopMargin ( 1 ),
mBottomMargin( 1 ),
mPaneWidth ( 32768 ), // fake-up very large pane dims,
- // since the real dimensions of the pane may not
+ // since the real dimensions of the pane may not
// be known, while inserting bars initially
mPaneHeight( 32768 ),
mAlignment ( alignment ),
mpLayout ( pPanel ),
- mpStoredRow( NULL )
+ mpStoredRow( NULL )
{}
cbDockPane::~cbDockPane()
delete mRows[i];
WX_CLEAR_LIST(wxList,mRowShapeData)
-
+
// NOTE:: control bar infromation structures are cleaned-up
// in wxFrameLayout's destructor, using global control-bar list
}
// decorations first
for ( i = 0; i != pRow->mBars.Count(); ++i )
-
+
PaintBarDecorations( pRow->mBars[i], dc );
// then handles if present
void cbDockPane::RemoveBar( cbBarInfo* pBar )
{
- bool needsRestoring = mProps.mNonDestructFrictionOn &&
+ bool needsRestoring = mProps.mNonDestructFrictionOn &&
mpStoredRow == pBar->mpRow;
cbRemoveBarEvent evt( pBar, this );
*y -= mTopMargin;
if ( mAlignment == FL_ALIGN_TOP ||
- mAlignment == FL_ALIGN_BOTTOM
+ mAlignment == FL_ALIGN_BOTTOM
)
{
*x -= mBoundsInParent.x;
void cbDockPane::PaneToFrame( int* x, int* y )
{
if ( mAlignment == FL_ALIGN_TOP ||
- mAlignment == FL_ALIGN_BOTTOM
+ mAlignment == FL_ALIGN_BOTTOM
)
{
*x += mBoundsInParent.x;
int rowHeight = mRows[i]->mRowHeight;
int third = rowHeight/3;
-
- if ( paneY >= curY && paneY < curY + third )
+
+ if ( paneY >= curY && paneY < curY + third )
return i-1;
- if ( paneY >= curY + third && paneY < curY + rowHeight - third )
+ if ( paneY >= curY + third && paneY < curY + rowHeight - third )
return i;
curY += rowHeight;
if ( upperY >= curY &&
lowerY < curY ) return row;
- if ( upperY <= curY &&
+ if ( upperY <= curY &&
lowerY >= curY &&
curY - upperY >= oneThird ) return row-1;
- if ( ( upperY < curY + rowHeight &&
+ if ( ( upperY < curY + rowHeight &&
lowerY >= curY + rowHeight &&
- curY + rowHeight - lowerY >= oneThird )
+ curY + rowHeight - lowerY >= oneThird )
)
return row+1;
if ( pRow->mHasOnlyFixedBars )
return true;
- }
+ }
return false;
}
return true;
}
-
+
return false;
}
return true;
}
-
+
return false;
}
void cbDockPane::RecalcRowLayout( cbRowInfo* pRow )
{
cbLayoutRowEvent evt( pRow, this );
-
+
mpLayout->FirePluginEvent( evt );
}
if ( !pCur->IsFixed() )
{
ratios.Add( 0.0 );
- ratios[ ratios.GetCount() - 1 ] = pCur->mLenRatio;
+ ratios[ ratios.GetCount() - 1 ] = pCur->mLenRatio;
}
pCur = pCur->mpNext;
pRow = new cbRowInfo();
if ( rowNo == -1 && mRows.Count() )
-
- mRows.Insert( pRow, 0 );
+
+ mRows.Insert( pRow, 0 );
else
mRows.Add( pRow );
// store original shape of the row (before the bar is inserted)
mpStoredRow = pRow;
-
+
GetRowShapeData( mpStoredRow, &mRowShapeData );
}
}
if ( noMarginsRect.width < 0 ||
noMarginsRect.height < 0 )
-
+
hide_rect( noMarginsRect );
// calculate mBoundsInParent for each item in the pane
}
if ( bar.mHasRightHandle )
-
+
bounds.width -= mProps.mResizeHandleSize;
PaneToFrame( &bounds );
wxBarIterator iter( mRows );
while( iter.Next() )
-
+
if ( &iter.BarInfo() == pBar ) return true;
return false;
size_t i;
for ( i = 0; i != mRows.Count(); ++i )
{
- if ( mRows[i] == pRow )
+ if ( mRows[i] == pRow )
return i;
}
int height = 0;
if ( IsHorizontal() )
-
height += mTopMargin + mBottomMargin;
else
height += mLeftMargin + mRightMargin;
int count = mRows.Count();
if ( count )
-
height += mRows[count-1]->mRowY + mRows[count-1]->mRowHeight;
return height;
cbLayoutRowsEvent evt( this );
mpLayout->FirePluginEvent( evt );
- // then horizontally in each row
+ // then horizontally in each row
size_t i;
for ( i = 0; i != mRows.Count(); ++i )
int cbDockPane::GetDockingState()
{
- if ( mAlignment == FL_ALIGN_TOP ||
+ if ( mAlignment == FL_ALIGN_TOP ||
mAlignment == FL_ALIGN_BOTTOM )
{
return wxCBAR_DOCKED_HORIZONTALLY;
return wxCBAR_DOCKED_VERTICALLY;
}
-inline bool cbDockPane::HasPoint( const wxPoint& pos, int x, int y,
+inline bool cbDockPane::HasPoint( const wxPoint& pos, int x, int y,
int width, int height )
{
- return ( pos.x >= x &&
+ return ( pos.x >= x &&
pos.y >= y &&
pos.x < x + width &&
pos.y < y + height );
else
if ( row.mHasLowerHandle )
{
- if ( HasPoint( pos, 0, row.mRowY + row.mRowHeight - mProps.mResizeHandleSize,
+ if ( HasPoint( pos, 0, row.mRowY + row.mRowHeight - mProps.mResizeHandleSize,
row.mRowWidth, mProps.mResizeHandleSize ) )
return CB_LOWER_ROW_HANDLE_HITTED;
{
if ( HasPoint( pos, bounds.x + bounds.width - mProps.mResizeHandleSize, bounds.y,
mProps.mResizeHandleSize, bounds.height ) )
-
+
return CB_RIGHT_BAR_HANDLE_HITTED;
}
// treat not-fixed bars as minimized
- if ( !pBar->IsFixed() )
-
+ if ( !pBar->IsFixed() )
notFree += mProps.mMinCBarDim.x;
- else
+ else
{
if ( pBar->mBounds.x + pBar->mBounds.width >= mPaneWidth )
{
notFree += pBar->mBounds.width;
}
- }
+ }
*till = mPaneWidth - notFree;
// do not let resizing totally deform the bar itself
if ( forLeftHandle )
-
(*till) -= mProps.mMinCBarDim.x;
else
-
(*from) += mProps.mMinCBarDim.x;
}
if ( pRow->mHasLowerHandle )
height += mProps.mResizeHandleSize;
-
+
return height;
}
};
- *from = notFree;
+ *from = notFree;
// allow accupy the client window space by resizing pane rows
if ( mAlignment == FL_ALIGN_BOTTOM )
}
- *till = mPaneHeight - notFree;
+ *till = mPaneHeight - notFree;
// allow adjustinig pane space vs. client window space by resizing pane row heights
cbRowInfo& row = *pGivenRow;
if ( forUpperHandle )
- {
+ {
*till = row.mRowY + row.mRowHeight - GetMinimalRowHeight( pGivenRow );
if ( row.mHasUpperHandle )
}
}
-void cbDockPane::ResizeRow( cbRowInfo* pRow, int ofs,
+void cbDockPane::ResizeRow( cbRowInfo* pRow, int ofs,
bool forUpperHandle )
{
cbResizeRowEvent evt( pRow, ofs, forUpperHandle, this );
mpLayout->FirePluginEvent( evt );
}
-void cbDockPane::ResizeBar( cbBarInfo* pBar, int ofs,
+void cbDockPane::ResizeBar( cbBarInfo* pBar, int ofs,
bool forLeftHandle )
{
pBar->mpRow->mpExpandedBar = NULL;
}
else
{
- // move bar left if necessary
+ // move bar left if necessary
if ( bounds.width + ofs < mProps.mMinCBarDim.x )
{
bounds.x = bounds.x + bounds.width + ofs - mProps.mMinCBarDim.x;
dc.DrawLine( x,y, right, y );
}
+ ++y;
dc.SetPen( mpLayout->mDarkPen );
- dc.DrawLine( x,y, right, ++y );
+ dc.DrawLine( x,y, right, y );
+ ++y;
dc.SetPen( mpLayout->mBlackPen );
- dc.DrawLine( x,y, right, ++y );
+ dc.DrawLine( x,y, right, y );
}
cbBarInfo* cbDockPane::GetBarInfoByWindow( wxWindow* pBarWnd )
wxBarIterator i( mRows );
while( i.Next() )
-
+
if ( i.BarInfo().mpBarWnd == pBarWnd )
return &i.BarInfo();
bool cbPluginBase::ProcessEvent(wxEvent& event)
{
- if ( mPaneMask == wxALL_PANES )
+ if ( mPaneMask == wxALL_PANES )
return wxEvtHandler::ProcessEvent( event );
// if event's pane maks matches the plugin's mask
- if ( mPaneMask & mask )
+ if ( mPaneMask & mask )
return wxEvtHandler::ProcessEvent( event );
else
return false;
}
-