void wxFrameLayout::SetBarState( cbBarInfo* pBar, int newState, bool updateNow )
{
- if ( newState == wxCBAR_FLOATING && !mFloatingOn )
+ if ( newState == wxCBAR_FLOATING && !(mFloatingOn && pBar->mFloatingOn))
return;
void wxFrameLayout::RepositionFloatedBar( cbBarInfo* pBar )
{
- if ( !mFloatingOn ) return;
+ if ( !(mFloatingOn && pBar->mFloatingOn)) return;
wxNode* pNode = mFloatedFrames.First();
}
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,
void wxFrameLayout::OnSize( wxSizeEvent& event )
{
+ mpFrame->ProcessEvent( event );
+ event.Skip( FALSE ); // stop its progpagation
+
if ( event.GetEventObject() == (wxObject*) mpFrame )
{
GetUpdatesManager().OnStartChanges();
if ( !focus && mCheckFocusWhenIdle )
{
- wxMessageBox( "Hi, no more focus in this app!" );
+ wxMessageBox(wxT("Hi, no more focus in this app!"));
mCheckFocusWhenIdle = FALSE;
//ShowFloatedWindows( FALSE );
cbBarInfo::cbBarInfo(void)
: mpRow( NULL ),
-
mpNext( NULL ),
- mpPrev( NULL )
+ mpPrev( NULL ),
+ mFloatingOn( TRUE )
{}
cbBarInfo::~cbBarInfo()
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;