// some ascii-art, still can't get these *nice* cursors working on wx... :-(
+/*
+// FIXME:: see places where _gHorizCursorImg is used
+
static const char* _gHorizCursorImg[] =
{
"............XX....XX............",
"...............XXX..............",
"................X..............."
};
+*/
// helper inline functions
pChild->Reparent(pNewParent);
return;
-#elif defined(__WXGTK__)
+#elif defined(__WXGTK__) || defined(__WXX11__)
// FOR NOW:: floating with wxGtk still very buggy
return;
void wxFrameLayout::DestroyBarWindows()
{
- wxNode* pSpy = mBarSpyList.First();
+ wxNode* pSpy = mBarSpyList.GetFirst();
while( pSpy )
{
- cbBarSpy& spy = *((cbBarSpy*)pSpy->Data());
+ cbBarSpy& spy = *((cbBarSpy*)pSpy->GetData());
if ( spy.mpBarWnd->GetEventHandler() == &spy )
delete &spy;
- pSpy = pSpy->Next();
+ pSpy = pSpy->GetNext();
}
mBarSpyList.Clear();
void wxFrameLayout::ShowFloatedWindows( bool show )
{
- wxNode* pNode = mFloatedFrames.First();
+ wxNode* pNode = mFloatedFrames.GetFirst();
while( pNode )
{
- cbFloatedBarWindow* pFFrm = ((cbFloatedBarWindow*)pNode->Data());
+ cbFloatedBarWindow* pFFrm = ((cbFloatedBarWindow*)pNode->GetData());
pFFrm->Show( show );
- pNode = pNode->Next();
+ pNode = pNode->GetNext();
}
}
wxFrameLayout::~wxFrameLayout()
{
+ size_t i;
+
UnhookFromFrame();
if ( mpUpdatesMgr )
// destroy contents of arrays and lists
- size_t i = 0;
for ( i = 0; i != MAX_PANES; ++i )
{
if ( mPanes[i] )
if ( mpNECursor )
delete mpNECursor;
- wxNode* pSpy = mBarSpyList.First();
+ wxNode* pSpy = mBarSpyList.GetFirst();
while( pSpy )
{
- cbBarSpy& spy = *((cbBarSpy*)pSpy->Data());
+ cbBarSpy& spy = *((cbBarSpy*)pSpy->GetData());
if ( spy.mpBarWnd->GetEventHandler() == &spy )
delete &spy;
- pSpy = pSpy->Next();
+ pSpy = pSpy->GetNext();
}
for ( i = 0; i != mAllBars.Count(); ++i )
void wxFrameLayout::SetBarState( cbBarInfo* pBar, int newState, bool updateNow )
{
- if ( newState == wxCBAR_FLOATING && !mFloatingOn )
+ if ( newState == wxCBAR_FLOATING && !(mFloatingOn && pBar->mFloatingOn))
return;
cbDockPane* pPane;
cbRowInfo* pRow;
- bool success = LocateBar( pBar, &pRow, &pPane );
+ #ifdef __WXDEBUG__
+ bool success =
+ #endif
+ LocateBar( pBar, &pRow, &pPane );
wxASSERT( success ); // DBG::
{
pBar->mpBarWnd->Show(FALSE); // to avoid flicker upon reparenting
- wxNode* pNode = mFloatedFrames.First();
+ wxNode* pNode = mFloatedFrames.GetFirst();
while( pNode )
{
- cbFloatedBarWindow* pFFrm = ((cbFloatedBarWindow*)pNode->Data());
+ cbFloatedBarWindow* pFFrm = ((cbFloatedBarWindow*)pNode->GetData());
if ( pFFrm->GetBar() == pBar )
{
pFFrm->Destroy(); break;
}
- pNode = pNode->Next();
+ pNode = pNode->GetNext();
}
// FOR NOW:: excessive!
}
}
+ if ( pBar->mDimInfo.GetDimHandler() )
+ {
+ pBar->mDimInfo.GetDimHandler()->OnChangeBarState( pBar, newState );
+ }
+
pBar->mState = newState;
DoSetBarState( pBar );
// "inverse" bar-visibility of the selected bar
- int newState = 0;
+ int newState;
if ( pBar->mState == wxCBAR_HIDDEN )
{
void wxFrameLayout::RepositionFloatedBar( cbBarInfo* pBar )
{
- if ( !mFloatingOn ) return;
+ if ( !(mFloatingOn && pBar->mFloatingOn)) return;
- wxNode* pNode = mFloatedFrames.First();
+ wxNode* pNode = mFloatedFrames.GetFirst();
while( pNode )
{
- cbFloatedBarWindow* pFFrm = ((cbFloatedBarWindow*)pNode->Data());
+ cbFloatedBarWindow* pFFrm = ((cbFloatedBarWindow*)pNode->GetData());
if ( pFFrm->GetBar() == pBar )
{
break;
}
- pNode = pNode->Next();
+ pNode = pNode->GetNext();
}
}
}
else
{
- if ( !mFloatingOn ) return;
+ if ( !(mFloatingOn && pBar->mFloatingOn) )
+ return;
// float it
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 );
return;
}
}
- wxFAIL_MSG("bar info should be present in the list of all bars of all panes");
+ wxFAIL_MSG(wxT("bar info should be present in the list of all bars of all panes"));
}
bool wxFrameLayout::LocateBar( cbBarInfo* pBarInfo,
int frmWidth, frmHeight;
mpFrame->GetClientSize( &frmWidth, &frmHeight );
- int paneHeight = 0;
int curY = 0;
int curX = 0;
pPane->SetPaneWidth( frmWidth );
pPane->RecalcLayout();
- paneHeight = pPane->GetPaneHeight();
+ int paneHeight = pPane->GetPaneHeight();
rect.x = curX;
rect.y = curY;
void wxFrameLayout::OnSize( wxSizeEvent& event )
{
+ mpFrame->ProcessEvent( event );
+ event.Skip( FALSE ); // stop its progpagation
+
if ( event.GetEventObject() == (wxObject*) mpFrame )
{
GetUpdatesManager().OnStartChanges();
cbMotionEvent evt( pos, pToPane );
FirePluginEvent( evt );
}
- else
- {
- int avoidCompilerWarning = 0;
- wxASSERT(avoidCompilerWarning); // DBG::
- }
} // wxFrameLayout::ForwardMouseEvent()
event.Skip();
}
-void wxFrameLayout::OnEraseBackground( wxEraseEvent& event )
+void wxFrameLayout::OnEraseBackground( wxEraseEvent& WXUNUSED(event) )
{
// do nothing
}
if ( !focus && mCheckFocusWhenIdle )
{
- wxMessageBox( "Hi, no more focus in this app!" );
+ wxMessageBox(wxT("Hi, no more focus in this app!"));
mCheckFocusWhenIdle = FALSE;
//ShowFloatedWindows( FALSE );
}
-void wxFrameLayout::OnKillFocus( wxFocusEvent& event )
+void wxFrameLayout::OnKillFocus( wxFocusEvent& WXUNUSED(event) )
{
//wxMessageBox( "wxFrameLayoutGot Kill Focus!" );
//ShowFloatedWindows( FALSE );
}
-void wxFrameLayout::OnSetFocus( wxFocusEvent& event )
+void wxFrameLayout::OnSetFocus( wxFocusEvent& WXUNUSED(event) )
{
//ShowFloatedWindows( TRUE );
}
-void wxFrameLayout::OnActivate( wxActivateEvent& event )
+void wxFrameLayout::OnActivate( wxActivateEvent& WXUNUSED(event) )
{
#if 0
if ( event.GetActive() == FALSE )
}
-void wxFrameLayout::ReleaseEventsFromPlugin( cbPluginBase* pPlugin )
+void wxFrameLayout::ReleaseEventsFromPlugin( cbPluginBase* WXUNUSED(pPlugin) )
{
// events should be captured first
wxASSERT( mpCaputesInput != NULL );
mpPaneInFocus = toPane;
}
-void wxFrameLayout::ReleaseEventsFromPane( cbDockPane* fromPane )
+void wxFrameLayout::ReleaseEventsFromPane( cbDockPane* WXUNUSED(fromPane) )
{
// cannot release events without capturing them
wxASSERT( mpPaneInFocus != NULL );
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 )
cbBarInfo::cbBarInfo(void)
: mpRow( NULL ),
-
+ mFloatingOn( TRUE ),
mpNext( NULL ),
mpPrev( NULL )
{}
void cbDockPane::PaintRowDecorations( cbRowInfo* pRow, wxDC& dc )
{
- size_t i = 0;
+ size_t i;
// decorations first
for ( i = 0; i != pRow->mBars.Count(); ++i )
void cbDockPane::PaintPane( wxDC& dc )
{
- PaintPaneBackground( dc );
+ size_t i;
- size_t i = 0;
+ PaintPaneBackground( dc );
// first decorations
for ( i = 0; i != mRows.Count(); ++i )
int range = lowerY - upperY;
int oneThird = range / 3;
- wxNode* pRow = mRows.First();
+ wxNode* pRow = mRows.GetFirst();
int row = 0;
int curY = 0;
while( pRow )
{
- int rowHeight = GetRowHeight( (wxList*)pRow->Data() );
+ int rowHeight = GetRowHeight( (wxList*)pRow->GetData() );
if ( upperY >= curY &&
lowerY < curY ) return row;
++row;
curY += rowHeight;
- pRow = pRow->Next();
+ pRow = pRow->GetNext();
}
*/
void cbDockPane::CalcLengthRatios( cbRowInfo* pInRow )
{
- int totalWidth = 0;
+ size_t i;
- size_t i = 0;
+ int totalWidth = 0;
// calc current-maximal-total-length of all maximized bars
void cbDockPane::DoInsertBar( cbBarInfo* pBar, int rowNo )
{
- cbRowInfo* pRow = NULL;
+ cbRowInfo* pRow;
if ( rowNo == -1 || rowNo >= (int)mRows.Count() )
{
return i;
}
- wxFAIL_MSG("Row must be present to call cbDockPane::GetRowIndex()");
+ wxFAIL_MSG(wxT("Row must be present to call cbDockPane::GetRowIndex()"));
return 0;
}
case FL_ALIGN_RIGHT : thisMask = FL_ALIGN_RIGHT_PANE; break;
default:
- wxFAIL_MSG("Bad FL alignment type detected in cbDockPane::MatchesMask()");
+ wxFAIL_MSG(wxT("Bad FL alignment type detected in cbDockPane::MatchesMask()"));
}
return ( thisMask & paneMask ) != 0;
void cbDockPane::SetRowShapeData( cbRowInfo* pRow, wxList* pLst )
{
- if ( pLst->First() == NULL )
+ if ( pLst->GetFirst() == NULL )
return;
- wxNode* pData = pLst->First();
+ wxNode* pData = pLst->GetFirst();
size_t i;
for ( i = 0; i != pRow->mBars.Count(); ++i )
cbBarInfo& bar = *pRow->mBars[i];;
- cbBarShapeData& data = *((cbBarShapeData*)pData->Data());
+ cbBarShapeData& data = *((cbBarShapeData*)pData->GetData());
bar.mBounds = data.mBounds;
bar.mLenRatio = data.mLenRatio;
- pData = pData->Next();
+ pData = pData->GetNext();
}
}