/////////////////////////////////////////////////////////////////////////////
-// Name: No names yet.
-// Purpose: Contrib. demo
+// Name: cbcustom.cpp
+// Purpose: cbSimpleCustomizationPlugin class declaration
// Author: Aleksandras Gluchovas
// Modified by:
// Created: 06/09/98
// RCS-ID: $Id$
// Copyright: (c) Aleksandras Gluchovas
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
class cbContextMenuHandler : public wxEvtHandler
{
public:
- cbSimpleCustomizationPlugin* mpBackRef;
+ cbSimpleCustomizationPlugin* mpBackRef;
public:
- void OnMenuCommand( wxCommandEvent& evt );
+ void OnMenuCommand( wxCommandEvent& evt );
- void OnCommandEvents( wxCommandEvent& evt );
+ void OnCommandEvents( wxCommandEvent& evt );
- DECLARE_EVENT_TABLE()
+ DECLARE_EVENT_TABLE()
};
// FIXME:: is this "safe" ?
BEGIN_EVENT_TABLE( cbContextMenuHandler, wxEvtHandler )
- // FIXME:: what is the right range for these ids ? so that they
- // would not collide with user commands?
+ // FIXME:: what is the right range for these ids ? so that they
+ // would not collide with user commands?
- EVT_COMMAND_RANGE( CB_CUSTOMIZE_MENU_FIRST_ITEM_ID,
- CB_CUSTOMIZE_MENU_FIRST_ITEM_ID + 300,
- wxEVT_COMMAND_MENU_SELECTED,
- cbContextMenuHandler::OnCommandEvents )
+ EVT_COMMAND_RANGE( CB_CUSTOMIZE_MENU_FIRST_ITEM_ID,
+ CB_CUSTOMIZE_MENU_FIRST_ITEM_ID + 300,
+ wxEVT_COMMAND_MENU_SELECTED,
+ cbContextMenuHandler::OnCommandEvents )
END_EVENT_TABLE()
void cbContextMenuHandler::OnCommandEvents( wxCommandEvent& evt )
{
- //wxMessageBox("Wowwwww, Yeah!");
+ //wxMessageBox("Wowwwww, Yeah!");
- mpBackRef->OnMenuItemSelected( evt );
+ mpBackRef->OnMenuItemSelected( evt );
}
/***** Implementation for class cbSimpleCustomizationPlugin *****/
BEGIN_EVENT_TABLE( cbSimpleCustomizationPlugin, cbPluginBase )
- EVT_PL_CUSTOMIZE_BAR ( cbSimpleCustomizationPlugin::OnCustomizeBar )
- EVT_PL_CUSTOMIZE_LAYOUT( cbSimpleCustomizationPlugin::OnCustomizeLayout )
+ EVT_PL_CUSTOMIZE_BAR ( cbSimpleCustomizationPlugin::OnCustomizeBar )
+ EVT_PL_CUSTOMIZE_LAYOUT( cbSimpleCustomizationPlugin::OnCustomizeLayout )
END_EVENT_TABLE()
cbSimpleCustomizationPlugin::cbSimpleCustomizationPlugin( wxFrameLayout* pPanel, int paneMask )
- : cbPluginBase( pPanel, paneMask )
+ : cbPluginBase( pPanel, paneMask )
{}
void cbSimpleCustomizationPlugin::OnCustomizeBar( cbCustomizeBarEvent& event )
{
- // ingnore bar customization, treat it
- // as layout-customization...ugly, eh?
+ // ingnore bar customization, treat it
+ // as layout-customization...ugly, eh?
- cbCustomizeLayoutEvent clEvt( event.mClickPos );
+ cbCustomizeLayoutEvent clEvt( event.mClickPos );
- OnCustomizeLayout( clEvt );
+ OnCustomizeLayout( clEvt );
}
void cbSimpleCustomizationPlugin::OnCustomizeLayout( cbCustomizeLayoutEvent& event )
{
- wxString helpStr1 = "Select this item to show the corresponding control bar";
- wxString helpStr2 = "Select this itme to hide the corresponding control bar";
+ wxString helpStr1 = wxT("Select this item to show the corresponding control bar");
+ wxString helpStr2 = wxT("Select this itme to hide the corresponding control bar");
- int id = CB_CUSTOMIZE_MENU_FIRST_ITEM_ID;
+ int id = CB_CUSTOMIZE_MENU_FIRST_ITEM_ID;
- wxMenu* pMenu = new wxMenu();
+ wxMenu* pMenu = new wxMenu();
- BarArrayT& bars = mpLayout->GetBars();
+ BarArrayT& bars = mpLayout->GetBars();
- for( size_t i = 0; i != bars.GetCount(); ++i )
- {
- cbBarInfo& bar = *bars[i];
-
- bool isHidden = ( bar.mState == wxCBAR_HIDDEN );
+ for( size_t i = 0; i != bars.GetCount(); ++i )
+ {
+ cbBarInfo& bar = *bars[i];
- wxString* pHelpStr = ( isHidden ) ? &helpStr1 : &helpStr2;
+ bool isHidden = ( bar.mState == wxCBAR_HIDDEN );
- pMenu->Append( id, bar.mName, *pHelpStr, TRUE );
+ wxString* pHelpStr = ( isHidden ) ? &helpStr1 : &helpStr2;
- pMenu->Check( id, (isHidden == FALSE) );
+ pMenu->Append( id, bar.mName, *pHelpStr, true );
- ++id;
- }
+ pMenu->Check( id, (isHidden == false) );
- pMenu->AppendSeparator();
- pMenu->Append( id, "Customize...", "Show layout customization dialog", FALSE );
- mCustMenuItemId = id;
+ ++id;
+ }
- cbContextMenuHandler* pHandler = new cbContextMenuHandler();
- pHandler->mpBackRef = this;
+ // Customization dialog not implemented, so don't show the menu item
+#if 0
+ pMenu->AppendSeparator();
+ pMenu->Append( id, "Customize...", "Show layout customization dialog", false );
+#endif
+ mCustMenuItemId = id;
- wxWindow* pFrm = &mpLayout->GetParentFrame();
+ cbContextMenuHandler* pHandler = new cbContextMenuHandler();
+ pHandler->mpBackRef = this;
- // FOR NOW FOR NOW:: to work-around wxFrame's (MSW) nasty event-handling bugs!!!
+ wxWindow* pFrm = &mpLayout->GetParentFrame();
- wxWindow* pTmpWnd = new wxWindow( pFrm, -1, event.mClickPos, wxSize(0,0) );
+ // FOR NOW FOR NOW:: to work-around wxFrame's (MSW) nasty event-handling bugs!!!
- pMenu->SetEventHandler( pHandler );
+ wxWindow* pTmpWnd = new wxWindow( pFrm, wxID_ANY, event.mClickPos, wxSize(0,0) );
- pTmpWnd->PopupMenu( pMenu, 0,0 );
+ pMenu->SetEventHandler( pHandler );
- pTmpWnd->Destroy();
+ pTmpWnd->PopupMenu( pMenu, 0,0 );
- delete pMenu;
- delete pHandler;
+ pTmpWnd->Destroy();
- // event is "eaten" by this plugin
+ delete pMenu;
+ delete pHandler;
+
+ // event is "eaten" by this plugin
}
void cbSimpleCustomizationPlugin::OnMenuItemSelected( wxCommandEvent& event )
{
- if ( event.GetId() == mCustMenuItemId )
- {
- wxMessageBox("Customization dialog box is not supported by this plugin yet");
-
- return;
- }
- else
- {
- cbBarInfo* pBar = mpLayout->GetBars()[ event.GetId() -
- CB_CUSTOMIZE_MENU_FIRST_ITEM_ID
- ];
+ if ( event.GetId() == mCustMenuItemId )
+ {
+ wxMessageBox(wxT("Customization dialog box is not supported by this plugin yet"));
- wxASSERT( pBar ); // DBG::
+ return;
+ }
+ else
+ {
+ cbBarInfo* pBar = mpLayout->GetBars()[ event.GetId() - CB_CUSTOMIZE_MENU_FIRST_ITEM_ID ];
- // "inverse" bar-visibility of the selected bar
+ wxASSERT( pBar ); // DBG::
- int newState = 0;
+ // "inverse" bar-visibility of the selected bar
- if ( pBar->mState == wxCBAR_HIDDEN )
- {
- if ( pBar->mAlignment == -1 )
- {
- pBar->mAlignment = 0; // just remove "-1" marking
- newState = wxCBAR_FLOATING;
- }
- else
- if ( pBar->mAlignment == FL_ALIGN_TOP ||
- pBar->mAlignment == FL_ALIGN_BOTTOM )
+ int newState;
- newState = wxCBAR_DOCKED_HORIZONTALLY;
- else
- newState = wxCBAR_DOCKED_VERTICALLY;
- }
- else
- {
- newState = wxCBAR_HIDDEN;
+ if ( pBar->mState == wxCBAR_HIDDEN )
+ {
+ if ( pBar->mAlignment == -1 )
+ {
+ pBar->mAlignment = 0; // just remove "-1" marking
+ newState = wxCBAR_FLOATING;
+ }
+ else
+ if ( pBar->mAlignment == FL_ALIGN_TOP ||
+ pBar->mAlignment == FL_ALIGN_BOTTOM )
- if ( pBar->mState == wxCBAR_FLOATING )
+ newState = wxCBAR_DOCKED_HORIZONTALLY;
+ else
+ newState = wxCBAR_DOCKED_VERTICALLY;
+ }
+ else
+ {
+ newState = wxCBAR_HIDDEN;
- pBar->mAlignment = -1;
- }
+ if ( pBar->mState == wxCBAR_FLOATING )
- mpLayout->SetBarState( pBar, newState, TRUE );
+ pBar->mAlignment = -1;
+ }
- if ( newState == wxCBAR_FLOATING )
+ mpLayout->SetBarState( pBar, newState, true );
- mpLayout->RepositionFloatedBar( pBar );
- }
+ if ( newState == wxCBAR_FLOATING )
+ mpLayout->RepositionFloatedBar( pBar );
+ }
- // menu-item-selected event is "eaten"
+ // menu-item-selected event is "eaten"
}