2 - removed pf_sample from library - this was test code 3 - modified newbmpbutton to create all button images once at initial creation 4 - newbmpbutton only refreses when necessary 5 - non-msw platforms may now disable (enable(FALSE)) a button - this will half-grey the image and draw text in disabled color. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1941 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			497 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			497 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        settingsdlg.cpp
 | 
						|
// Purpose:     Settings dialog for Frame Layout 
 | 
						|
// Author:      Aleksandras Gluchovas
 | 
						|
// Modified by:	
 | 
						|
// Created:     05/11/98
 | 
						|
// RCS-ID:      $Id$
 | 
						|
// Copyright:   (c) Aleksandras Gluchovas
 | 
						|
// Licence:   	wxWindows license
 | 
						|
/////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
#ifdef __GNUG__
 | 
						|
#pragma implementation "settingsdlg.cpp"
 | 
						|
#pragma interface "settingsdlg.cpp"
 | 
						|
#endif
 | 
						|
 | 
						|
// For compilers that support precompilation, includes "wx/wx.h".
 | 
						|
#include "wx/wxprec.h"
 | 
						|
 | 
						|
#ifdef __BORLANDC__
 | 
						|
#pragma hdrstop
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef WX_PRECOMP
 | 
						|
#include "wx/wx.h"
 | 
						|
#endif
 | 
						|
 | 
						|
#include <stdlib.h>
 | 
						|
#include "settingsdlg.h"
 | 
						|
 | 
						|
/***** Implementation for class SettingsDlg *****/
 | 
						|
 | 
						|
#define ID_NOTES           ( wxEVT_FIRST + 1000 )
 | 
						|
#define ID_HINTANIM_CHECK  ( ID_NOTES  + 1      )
 | 
						|
#define ID_RTUPDATES_CHECK ( ID_NOTES  + 2      )
 | 
						|
 | 
						|
BEGIN_EVENT_TABLE( SettingsDlg, wxDialog )
 | 
						|
 | 
						|
	EVT_BUTTON( wxID_APPLY, SettingsDlg::OnApply )
 | 
						|
	EVT_BUTTON( ID_NOTES, SettingsDlg::OnNotes )
 | 
						|
 | 
						|
	EVT_CHECKBOX( ID_HINTANIM_CHECK,  SettingsDlg::OnHintAnimCheck  )
 | 
						|
	EVT_CHECKBOX( ID_RTUPDATES_CHECK, SettingsDlg::OnRTUpdatesCheck )
 | 
						|
 | 
						|
END_EVENT_TABLE()
 | 
						|
 | 
						|
SettingsDlg::SettingsDlg( wxWindow* pParent )
 | 
						|
 | 
						|
	: wxDialog( pParent, -1, "Active Layout Settings...",
 | 
						|
				wxDefaultPosition,
 | 
						|
				wxSize( 325,585),
 | 
						|
				wxDIALOG_MODAL | wxCAPTION )
 | 
						|
{
 | 
						|
	int curY        = 10;
 | 
						|
	int lMargin     = 50;
 | 
						|
	int lBoxMargin  = lMargin - 20;
 | 
						|
	int checkHeight = 20;
 | 
						|
	int labelHeight = 20;
 | 
						|
	int boxWidth    = 260;
 | 
						|
	int interBoxGap = 10;
 | 
						|
	int lastItemGap = 10;
 | 
						|
 | 
						|
	int topY = curY;
 | 
						|
 | 
						|
	curY += labelHeight;
 | 
						|
 | 
						|
	mpRTU_Check = new wxCheckBox(  this, ID_RTUPDATES_CHECK, 
 | 
						|
								   "&Real-time updates", 
 | 
						|
		                           wxPoint( lMargin, curY ) );
 | 
						|
 | 
						|
	curY += checkHeight;
 | 
						|
 | 
						|
	mpOPD_Check = new wxCheckBox(  this, -1, "&Out of Pane drag", 
 | 
						|
		                           wxPoint( lMargin, curY ) );
 | 
						|
 | 
						|
	curY += checkHeight;
 | 
						|
 | 
						|
	mpEDP_Check = new wxCheckBox(  this, -1, "&Exact docking prediction", 
 | 
						|
		                           wxPoint( lMargin, curY ) );
 | 
						|
 | 
						|
	curY += checkHeight;
 | 
						|
 | 
						|
	mpNDF_Check = new wxCheckBox(  this, -1, "Non-destructive bar &friction", 
 | 
						|
		                           wxPoint( lMargin, curY ) );
 | 
						|
 | 
						|
	curY += checkHeight;
 | 
						|
 | 
						|
	mpSPB_Check = new wxCheckBox(  this, -1, "&Shaded pane borders", 
 | 
						|
		                           wxPoint( lMargin, curY ) );
 | 
						|
 | 
						|
	curY += checkHeight + lastItemGap;
 | 
						|
 | 
						|
	wxStaticBox* pDNDBox = new wxStaticBox( this, -1, "Drag && Drop settings",
 | 
						|
								            wxPoint( lBoxMargin, topY ),
 | 
						|
										    wxSize( boxWidth, curY - topY ) );
 | 
						|
 | 
						|
	curY += interBoxGap;
 | 
						|
 | 
						|
	////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
	topY = curY;
 | 
						|
 | 
						|
	curY += labelHeight;
 | 
						|
 | 
						|
	mpHAP_Check = new wxCheckBox(  this, ID_HINTANIM_CHECK, 
 | 
						|
								   "&Hint-Rect animation plugin", 
 | 
						|
		                           wxPoint( lMargin, curY ) );
 | 
						|
 | 
						|
	curY += checkHeight;
 | 
						|
 | 
						|
	mpGCU_Check = new wxCheckBox(  this, -1, "\"Garbage collecting\" &Updates-Mgr.", 
 | 
						|
		                           wxPoint( lMargin, curY ) );
 | 
						|
 | 
						|
	curY += checkHeight;
 | 
						|
 | 
						|
	mpAFP_Check = new wxCheckBox(  this, -1, "&Antiflicker plugin", 
 | 
						|
		                           wxPoint( lMargin, curY ) );
 | 
						|
 | 
						|
	curY += checkHeight;
 | 
						|
 | 
						|
	mpCSP_Check = new wxCheckBox(  this, -1, "C&ustomization plugin", 
 | 
						|
		                           wxPoint( lMargin, curY ) );
 | 
						|
 | 
						|
	curY += checkHeight + lastItemGap;
 | 
						|
 | 
						|
	wxStaticBox* pPBox =   new wxStaticBox( this, -1, "Plugins",
 | 
						|
								            wxPoint( lBoxMargin, topY ),
 | 
						|
										    wxSize( boxWidth, curY - topY ) );
 | 
						|
 | 
						|
	curY += interBoxGap;
 | 
						|
 | 
						|
	////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
	wxSize fieldSz( 30,20 );
 | 
						|
	int fieldHeight = 20;
 | 
						|
	int fieldCapMargin = lMargin + fieldSz.x + 5;
 | 
						|
	int fieldCapOfs = 4;
 | 
						|
 | 
						|
	topY = curY;
 | 
						|
 | 
						|
	curY += labelHeight;
 | 
						|
 | 
						|
	mpRWInput  = new wxTextCtrl  ( this, -1, "", 
 | 
						|
		                       	   wxPoint( lMargin, curY ),
 | 
						|
								   fieldSz );
 | 
						|
 | 
						|
	mpRWLabel = new wxStaticText ( this, -1, "Resizing sash width(height)",
 | 
						|
								   wxPoint( fieldCapMargin, curY + fieldCapOfs ) );
 | 
						|
 | 
						|
 | 
						|
	curY += fieldHeight;
 | 
						|
 | 
						|
	mpPTMInput  = new wxTextCtrl ( this, -1, "", 
 | 
						|
		                       	   wxPoint( lMargin, curY ),
 | 
						|
								   fieldSz );
 | 
						|
 | 
						|
	mpPTMLabel = new wxStaticText( this, -1, "Pene's top margin",
 | 
						|
								   wxPoint( fieldCapMargin, curY + fieldCapOfs ) );
 | 
						|
 | 
						|
 | 
						|
	curY += fieldHeight;
 | 
						|
 | 
						|
 | 
						|
	mpPBMInput  = new wxTextCtrl ( this, -1, "",
 | 
						|
		                       	   wxPoint( lMargin, curY ),
 | 
						|
								   fieldSz );
 | 
						|
 | 
						|
	mpPBMLabel = new wxStaticText( this, -1, "Pene's bottom margin", 
 | 
						|
								   wxPoint( fieldCapMargin, curY + fieldCapOfs ) );
 | 
						|
 | 
						|
 | 
						|
	curY += fieldHeight;
 | 
						|
 | 
						|
 | 
						|
	mpPLMInput  = new wxTextCtrl  ( this, -1, "", 
 | 
						|
		                       	   wxPoint( lMargin, curY ),
 | 
						|
								   fieldSz );
 | 
						|
 | 
						|
	mpPLMLabel = new wxStaticText( this, -1, "Pane's left margin",
 | 
						|
								   wxPoint( fieldCapMargin, curY + fieldCapOfs ) );
 | 
						|
 | 
						|
 | 
						|
	curY += fieldHeight;
 | 
						|
 | 
						|
 | 
						|
	mpPRMInput  = new wxTextCtrl  ( this, -1, "", 
 | 
						|
		                       	   wxPoint( lMargin, curY ),
 | 
						|
								   fieldSz );
 | 
						|
 | 
						|
	mpPRMLabel = new wxStaticText( this, -1, "Pane's right margin",
 | 
						|
								   wxPoint( fieldCapMargin, curY + fieldCapOfs ) );
 | 
						|
 | 
						|
	curY += fieldHeight + lastItemGap;
 | 
						|
 | 
						|
	wxStaticBox* pCPPBox = new wxStaticBox( this, -1, "Common Pane properties",
 | 
						|
								            wxPoint( lBoxMargin, topY ),
 | 
						|
										    wxSize( boxWidth, curY - topY ) );
 | 
						|
 | 
						|
	curY += interBoxGap;
 | 
						|
 | 
						|
	////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
	topY = curY;
 | 
						|
 | 
						|
	curY += labelHeight;
 | 
						|
 | 
						|
	fieldSz.x = 65;
 | 
						|
	fieldCapMargin = lMargin + fieldSz.x + 10;
 | 
						|
 | 
						|
	mpDCInput  = new wxTextCtrl  ( this, -1, "", 
 | 
						|
		                       	   wxPoint( lMargin, curY ),
 | 
						|
								   fieldSz );
 | 
						|
 | 
						|
	mpDCLabel = new wxStaticText ( this, -1, "Dark Color (hex-RGB)",
 | 
						|
								   wxPoint( fieldCapMargin, curY + fieldCapOfs ) );
 | 
						|
 | 
						|
	curY += fieldHeight;
 | 
						|
 | 
						|
	mpLCInput  = new wxTextCtrl  ( this, -1, "", 
 | 
						|
		                       	   wxPoint( lMargin, curY ),
 | 
						|
								   fieldSz );
 | 
						|
 | 
						|
	mpLCLabel = new wxStaticText ( this, -1, "Light Color (hex-RGB)",
 | 
						|
								   wxPoint( fieldCapMargin, curY + fieldCapOfs ) );
 | 
						|
 | 
						|
	curY += fieldHeight;
 | 
						|
 | 
						|
	mpGCInput  = new wxTextCtrl  ( this, -1, "", 
 | 
						|
		                       	   wxPoint( lMargin, curY ),
 | 
						|
								   fieldSz );
 | 
						|
 | 
						|
	mpGCLabel = new wxStaticText ( this, -1, "Gray Color (hex-RGB)",
 | 
						|
								   wxPoint( fieldCapMargin, curY + fieldCapOfs ) );
 | 
						|
 | 
						|
	curY += fieldHeight;
 | 
						|
 | 
						|
	mpBCInput  = new wxTextCtrl  ( this, -1, "", 
 | 
						|
		                       	   wxPoint( lMargin, curY ),
 | 
						|
								   fieldSz );
 | 
						|
 | 
						|
	mpBCLabel = new wxStaticText ( this, -1, "Pane border Color (hex-RGB)",
 | 
						|
								   wxPoint( fieldCapMargin, curY + fieldCapOfs ) );
 | 
						|
 | 
						|
	curY += fieldHeight + lastItemGap;
 | 
						|
 | 
						|
	wxStaticBox* pCSPBox = new wxStaticBox( this, -1, "Coluor sheme properties",
 | 
						|
								            wxPoint( lBoxMargin, topY ),
 | 
						|
										    wxSize( boxWidth, curY - topY ) );
 | 
						|
 | 
						|
	curY += interBoxGap; /*button ofs*/;
 | 
						|
 | 
						|
	////////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
	int lBtnMargin = 35;
 | 
						|
	int btnGap     = 20;
 | 
						|
	int btnHeight  = 22;
 | 
						|
	int btnWidth   = 70;
 | 
						|
 | 
						|
	wxButton* mpApplyBtn  = new wxButton( this, wxID_APPLY, "A&pply", 
 | 
						|
										  wxPoint( lBtnMargin, curY ),
 | 
						|
										  wxSize( btnWidth, btnHeight ) );
 | 
						|
 | 
						|
	wxButton* mpCancelBtn = new wxButton( this, wxID_CANCEL, "&Cancel", 
 | 
						|
										  wxPoint( lBtnMargin + btnWidth + btnGap, curY ),
 | 
						|
										  wxSize( btnWidth, btnHeight ) );
 | 
						|
 | 
						|
	wxButton* mpNotesBtn  = new wxButton( this, ID_NOTES, "&Notes...", 
 | 
						|
										  wxPoint( lBtnMargin + 2*btnWidth + 2*btnGap, curY ),
 | 
						|
								          wxSize( btnWidth, btnHeight ) );
 | 
						|
 | 
						|
	mpApplyBtn->SetDefault();
 | 
						|
	mpApplyBtn->SetFocus();
 | 
						|
 | 
						|
	Center( wxBOTH );
 | 
						|
}
 | 
						|
 | 
						|
void SettingsDlg::ExchangeFields( bool toDialog )
 | 
						|
{
 | 
						|
	mToDlg = toDialog;
 | 
						|
 | 
						|
	ExchgCheck( mpRTU_Check, mRealTimeUpdatesOn        );
 | 
						|
	ExchgCheck( mpOPD_Check, mOutOfPaneDragOn          );
 | 
						|
	ExchgCheck( mpEDP_Check, mExactDockingPredictionOn );
 | 
						|
	ExchgCheck( mpNDF_Check, mNonDestructFrictionOn    );
 | 
						|
	ExchgCheck( mpSPB_Check, m3DShadesOn               );
 | 
						|
	           
 | 
						|
	ExchgCheck( mpHAP_Check, mHintRectAnimationOn   );
 | 
						|
	ExchgCheck( mpGCU_Check, mGCUpdatesMgrOn        );
 | 
						|
	ExchgCheck( mpAFP_Check, mAntiflickerPluginOn   );
 | 
						|
	ExchgCheck( mpCSP_Check, mCustomizationPluginOn );
 | 
						|
 | 
						|
	ExchgIntField( mpRWInput,  mSashWidth    ); 
 | 
						|
	ExchgIntField( mpPTMInput, mTopMargin    ); 
 | 
						|
	ExchgIntField( mpPBMInput, mBottomMargin ); 
 | 
						|
	ExchgIntField( mpPLMInput, mLeftMargin   ); 
 | 
						|
	ExchgIntField( mpPRMInput, mRightMargin  ); 
 | 
						|
 | 
						|
	ExchgColourField( mpDCInput, mDarkCol   );
 | 
						|
	ExchgColourField( mpLCInput, mLightCol  );
 | 
						|
	ExchgColourField( mpGCInput, mGrayCol   );
 | 
						|
	ExchgColourField( mpBCInput, mBorderCol );
 | 
						|
}
 | 
						|
 | 
						|
void SettingsDlg::OnApply( wxCommandEvent& event )
 | 
						|
{
 | 
						|
	ExchangeFields( FALSE );
 | 
						|
	EndModal( wxID_APPLY );
 | 
						|
}
 | 
						|
 | 
						|
void SettingsDlg::OnNotes( wxCommandEvent& event )
 | 
						|
{
 | 
						|
	wxMessageBox("Notes go here...(TBD)");
 | 
						|
}
 | 
						|
 | 
						|
void SettingsDlg::OnRTUpdatesCheck( wxCommandEvent& event )
 | 
						|
{
 | 
						|
	if ( mpRTU_Check->GetValue() == TRUE )
 | 
						|
	{
 | 
						|
		// user probably wants to see how the real-time drag & drop
 | 
						|
		// works -- so we "let 'im know" that animation is N/A when
 | 
						|
		// real-time option is on
 | 
						|
 | 
						|
		mpHAP_Check->SetValue(FALSE);
 | 
						|
		mpHAP_Check->Refresh();
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
void SettingsDlg::OnHintAnimCheck( wxCommandEvent& event )
 | 
						|
{
 | 
						|
	if ( mpHAP_Check->GetValue() == TRUE )
 | 
						|
	{
 | 
						|
		// user probably wants to see some animation effects,
 | 
						|
		// but he/she forgot to turn off "real-time updates"
 | 
						|
		// setting -- so we do it for you :-)
 | 
						|
 | 
						|
		mpRTU_Check->SetValue(FALSE);
 | 
						|
		mpRTU_Check->Refresh();
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
void SettingsDlg::ExchgCheck( wxCheckBox* pChk, bool& value )
 | 
						|
{
 | 
						|
	if ( mToDlg ) pChk->SetValue( value );
 | 
						|
 | 
						|
			 else value = pChk->GetValue();
 | 
						|
}
 | 
						|
 | 
						|
void SettingsDlg::ExchgIntField( wxTextCtrl* pFld, int& value )
 | 
						|
{
 | 
						|
	if ( mToDlg )
 | 
						|
	{
 | 
						|
		char buf[32];
 | 
						|
 | 
						|
		sprintf( buf, "%d", value );
 | 
						|
		pFld->SetValue( buf );
 | 
						|
	}
 | 
						|
	else
 | 
						|
	{
 | 
						|
		wxString txt = pFld->GetLineText( 0 );
 | 
						|
		value = atoi( txt );
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
void SettingsDlg::ExchgColourField( wxTextCtrl* pFld, wxColour& value )
 | 
						|
{
 | 
						|
	int rgbVal;
 | 
						|
 | 
						|
	if ( mToDlg )
 | 
						|
	{
 | 
						|
		rgbVal = (  value.Red()           & 0x0000FF ) |
 | 
						|
			     ( (value.Green() << 8  ) & 0x00FF00 ) | 
 | 
						|
				 ( (value.Blue()  << 16 ) & 0xFF0000 );
 | 
						|
 | 
						|
		char buf[32];
 | 
						|
 | 
						|
		sprintf( buf, "0x%06X", rgbVal );
 | 
						|
 | 
						|
		pFld->SetValue( buf );
 | 
						|
	}
 | 
						|
	else
 | 
						|
	{
 | 
						|
		wxString txt = pFld->GetLineText( 0 );
 | 
						|
 | 
						|
		sscanf( txt, "0x%06X", &rgbVal );
 | 
						|
 | 
						|
		value.Set(   rgbVal         & 0xFF,
 | 
						|
			       ( rgbVal >> 8  ) & 0xFF,
 | 
						|
				   ( rgbVal >> 16 ) & 0xFF );
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
bool SettingsDlg::TransferDataToWindow()
 | 
						|
{
 | 
						|
	ExchangeFields( TRUE );
 | 
						|
 | 
						|
	return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
bool SettingsDlg::TransferDataFromWindow()
 | 
						|
{
 | 
						|
	ExchangeFields( FALSE );
 | 
						|
 | 
						|
	return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
#include "controlbar.h"
 | 
						|
#include "rowlayoutpl.h"
 | 
						|
#include "antiflickpl.h"
 | 
						|
#include "bardragpl.h"
 | 
						|
#include "cbcustom.h"
 | 
						|
 | 
						|
#include "gcupdatesmgr.h"
 | 
						|
#include "hintanimpl.h"
 | 
						|
 | 
						|
void SettingsDlg::ReadLayoutSettings( wxFrameLayout& fl )
 | 
						|
{
 | 
						|
	cbDockPane& pane = *fl.GetPane( wxTOP );
 | 
						|
	cbCommonPaneProperties& props = pane.mProps;
 | 
						|
 | 
						|
	mRealTimeUpdatesOn        = props.mRealTimeUpdatesOn;
 | 
						|
	mOutOfPaneDragOn          = props.mOutOfPaneDragOn;
 | 
						|
	mExactDockingPredictionOn = props.mExactDockPredictionOn;
 | 
						|
	mNonDestructFrictionOn	  = props.mNonDestructFirctionOn;
 | 
						|
	m3DShadesOn	              = props.mShow3DPaneBorderOn;
 | 
						|
 | 
						|
	mHintRectAnimationOn   = fl.FindPlugin( CLASSINFO( cbHintAnimationPlugin       ) ) != NULL;
 | 
						|
	mAntiflickerPluginOn   = fl.FindPlugin( CLASSINFO( cbAntiflickerPlugin         ) ) != NULL;
 | 
						|
	mCustomizationPluginOn = fl.FindPlugin( CLASSINFO( cbSimpleCustomizationPlugin ) ) != NULL;
 | 
						|
	mGCUpdatesMgrOn        = fl.GetUpdatesManager().GetClassInfo() 
 | 
						|
							 == CLASSINFO( cbGCUpdatesMgr );
 | 
						|
 | 
						|
	mSashWidth = props.mResizeHandleSize;
 | 
						|
 | 
						|
	mTopMargin    = pane.mTopMargin;
 | 
						|
	mBottomMargin = pane.mBottomMargin;
 | 
						|
	mLeftMargin	  = pane.mLeftMargin;
 | 
						|
	mRightMargin  = pane.mRightMargin;
 | 
						|
 | 
						|
	mDarkCol   = fl.mDarkPen.GetColour();
 | 
						|
	mLightCol  = fl.mLightPen.GetColour();
 | 
						|
	mGrayCol   = fl.mGrayPen.GetColour();
 | 
						|
	mBorderCol = fl.mBorderPen.GetColour();
 | 
						|
}
 | 
						|
 | 
						|
void SettingsDlg::ApplyLayoutSettings( wxFrameLayout& fl )
 | 
						|
{
 | 
						|
	cbCommonPaneProperties props;
 | 
						|
 | 
						|
	props.mRealTimeUpdatesOn     = mRealTimeUpdatesOn;
 | 
						|
	props.mOutOfPaneDragOn 	     = mOutOfPaneDragOn;
 | 
						|
	props.mExactDockPredictionOn = mExactDockingPredictionOn;
 | 
						|
	props.mNonDestructFirctionOn = mNonDestructFrictionOn;
 | 
						|
	props.mShow3DPaneBorderOn    = m3DShadesOn;
 | 
						|
 | 
						|
	props.mResizeHandleSize = mSashWidth;
 | 
						|
 | 
						|
	fl.SetPaneProperties( props, wxALL_PANES );
 | 
						|
 | 
						|
	if ( mHintRectAnimationOn   ) fl.AddPlugin   ( CLASSINFO( cbHintAnimationPlugin ) );
 | 
						|
							 else fl.RemovePlugin( CLASSINFO( cbHintAnimationPlugin ) );
 | 
						|
 | 
						|
	if ( mAntiflickerPluginOn   ) fl.AddPlugin   ( CLASSINFO( cbAntiflickerPlugin ) );
 | 
						|
						     else fl.RemovePlugin( CLASSINFO( cbAntiflickerPlugin ) );
 | 
						|
 | 
						|
	if ( mCustomizationPluginOn ) fl.AddPlugin   ( CLASSINFO( cbSimpleCustomizationPlugin ) );
 | 
						|
							 else fl.RemovePlugin( CLASSINFO( cbSimpleCustomizationPlugin ) );
 | 
						|
 | 
						|
	// FOR NOW:: unfortunatelly, currently pane marin-information is currently
 | 
						|
	//           placed into cbDockPane, instead of cbCommonPaneProperties
 | 
						|
 | 
						|
	fl.SetMargins( mTopMargin,  mBottomMargin, 
 | 
						|
				   mLeftMargin,	mRightMargin,  wxALL_PANES );
 | 
						|
 | 
						|
	fl.mDarkPen.SetColour( mDarkCol );
 | 
						|
	fl.mLightPen.SetColour( mLightCol );
 | 
						|
	fl.mGrayPen.SetColour( mGrayCol );
 | 
						|
	fl.mBorderPen.SetColour( mBorderCol );
 | 
						|
 | 
						|
	fl.RecalcLayout( TRUE );
 | 
						|
 | 
						|
	// NOTE:: currently it's bit tricky changing updates-manager
 | 
						|
	//        in future, updates-manager will become a normal plugin
 | 
						|
	//        and more convenient methods (Add/FindPlugin) will be used
 | 
						|
 | 
						|
	if ( mGCUpdatesMgrOn &&  
 | 
						|
		 fl.GetUpdatesManager().GetClassInfo() != CLASSINFO( cbGCUpdatesMgr ) 
 | 
						|
	   )
 | 
						|
 | 
						|
		 fl.SetUpdatesManager( new cbGCUpdatesMgr( &fl ) );
 | 
						|
	else
 | 
						|
	if ( !mGCUpdatesMgrOn && 
 | 
						|
		 fl.GetUpdatesManager().GetClassInfo() == CLASSINFO( cbGCUpdatesMgr ) 
 | 
						|
	   )
 | 
						|
 | 
						|
		 fl.SetUpdatesManager( new cbSimpleUpdatesMgr( &fl ) );
 | 
						|
}
 |