diff options
author | Uray M. János <uray.janos@gmail.com> | 2012-08-25 12:43:27 +0200 |
---|---|---|
committer | Andras Timar <atimar@suse.com> | 2012-08-29 20:48:28 +0000 |
commit | c20f15c1ebf648c3ed71de0ac4771029c9bb59bb (patch) | |
tree | da9f3dddc80492e7ea2435aa6e0bf02e8d40153e /basctl/source/basicide/iderdll.cxx | |
parent | cda156257003df673fa853a0a5ffcd1cb4848d43 (diff) |
Basic IDE: namespace basctl
Now all names in basctl are in namespace 'basctl'.
There were lots of names that included the word 'Basic' or 'BasicIDE' in
it, e.g. BasicIDEData, BasicDocumentEntry, BasicTreeListBox,
BasicIDEModule, IDEBaseWindow etc. This information is now stored in the
namespace name, so the names could be shortened: basctl::DocumentEntry,
basctl::TreeListBox, basctl::Module, basctl::BaseWindow etc.
Some other minor changes:
* LibInfos, LibInfoItem, LibInfoKey ->
LibInfos, LibInfos::Item, LibInfos::Key
* The header guards are now uniformly BASCTL_FILENAME_HXX, instead of
e.g. _FILENAME_HXX, which is undefined behaviour because of the '_'.
* namespace BasicIDE, BasicIDEGlobals, basicide -> namespace basctl
* BASICIDE_TYPE_MODULE, ... -> basctl::TYPE_MODULE, ...
Change-Id: I2a9b493562d0d8a2510d569798fbe9e1161b7c9b
Reviewed-on: https://gerrit.libreoffice.org/501
Reviewed-by: Andras Timar <atimar@suse.com>
Tested-by: Andras Timar <atimar@suse.com>
Diffstat (limited to 'basctl/source/basicide/iderdll.cxx')
-rw-r--r-- | basctl/source/basicide/iderdll.cxx | 185 |
1 files changed, 93 insertions, 92 deletions
diff --git a/basctl/source/basicide/iderdll.cxx b/basctl/source/basicide/iderdll.cxx index 357a3ddd56de..75b5c31f347c 100644 --- a/basctl/source/basicide/iderdll.cxx +++ b/basctl/source/basicide/iderdll.cxx @@ -41,127 +41,135 @@ #include <svl/srchitem.hxx> #include <com/sun/star/script/XLibraryContainerPassword.hpp> +#include <boost/scoped_ptr.hpp> + +namespace basctl +{ + using ::rtl::OUString; using namespace ::com::sun::star; using namespace ::com::sun::star::uno; -class BasicIDEDLL +namespace +{ + +class Dll { - BasicIDEShell* m_pShell; - BasicIDEData* m_pExtraData; + Shell* m_pShell; + boost::scoped_ptr<ExtraData> m_pExtraData; public: - BasicIDEDLL(); - ~BasicIDEDLL(); + Dll (); - BasicIDEShell* GetShell() const { return m_pShell; } - void SetShell(BasicIDEShell* pShell) { m_pShell = pShell; } - BasicIDEData* GetExtraData(); + Shell* GetShell() const { return m_pShell; } + void SetShell (Shell* pShell) { m_pShell = pShell; } + ExtraData* GetExtraData (); }; -namespace +// Holds a basctl::Dll and release it on exit, or dispose of the +//default XComponent, whichever comes first +class DllInstance : public comphelper::scoped_disposing_solar_mutex_reset_ptr<Dll> { - //Holds a BasicIDEDLL and release it on exit, or dispose of the - //default XComponent, whichever comes first - class BasicIDEDLLInstance : public comphelper::scoped_disposing_solar_mutex_reset_ptr<BasicIDEDLL> - { - public: - BasicIDEDLLInstance() : comphelper::scoped_disposing_solar_mutex_reset_ptr<BasicIDEDLL>(::com::sun::star::uno::Reference<com::sun::star::lang::XComponent>(comphelper::getProcessServiceFactory()->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.frame.Desktop"))), ::com::sun::star::uno::UNO_QUERY_THROW), new BasicIDEDLL) - { - } - }; - - struct theBasicIDEDLLInstance : public rtl::Static<BasicIDEDLLInstance, theBasicIDEDLLInstance> {}; -} +public: + DllInstance() : comphelper::scoped_disposing_solar_mutex_reset_ptr<Dll>(::com::sun::star::uno::Reference<com::sun::star::lang::XComponent>(comphelper::getProcessServiceFactory()->createInstance(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.frame.Desktop"))), ::com::sun::star::uno::UNO_QUERY_THROW), new Dll) + { } +}; -namespace BasicIDEGlobals -{ - void ensure() - { - theBasicIDEDLLInstance::get(); - } +struct theDllInstance : public rtl::Static<DllInstance, theDllInstance> { }; - BasicIDEShell* GetShell() - { - BasicIDEDLL *pIDEGlobals = theBasicIDEDLLInstance::get().get(); - return pIDEGlobals ? pIDEGlobals->GetShell() : NULL; - } +} // namespace - void ShellCreated(BasicIDEShell* pShell) - { - BasicIDEDLL *pIDEGlobals = theBasicIDEDLLInstance::get().get(); - if (pIDEGlobals && pIDEGlobals->GetShell() == NULL) - pIDEGlobals->SetShell(pShell); - } +void EnsureIde () +{ + theDllInstance::get(); +} - void ShellDestroyed(BasicIDEShell* pShell) - { - BasicIDEDLL *pIDEGlobals = theBasicIDEDLLInstance::get().get(); - if (pIDEGlobals && pIDEGlobals->GetShell() == pShell) - pIDEGlobals->SetShell(NULL); - } +Shell* GetShell () +{ + if (Dll* pDll = theDllInstance::get().get()) + return pDll->GetShell(); + return 0; +} - BasicIDEData* GetExtraData() - { - BasicIDEDLL *pIDEGlobals = theBasicIDEDLLInstance::get().get(); - return pIDEGlobals ? pIDEGlobals->GetExtraData() : NULL; - } +void ShellCreated (Shell* pShell) +{ + Dll* pDll = theDllInstance::get().get(); + if (pDll && !pDll->GetShell()) + pDll->SetShell(pShell); } -IDEResId::IDEResId( sal_uInt16 nId ): - ResId( nId, *(BASIC_MOD())->GetResMgr() ) +void ShellDestroyed (Shell* pShell) { + Dll* pDll = theDllInstance::get().get(); + if (pDll && pDll->GetShell() == pShell) + pDll->SetShell(0); } -BasicIDEDLL::~BasicIDEDLL() +ExtraData* GetExtraData() { - delete m_pExtraData; + if (Dll* pDll = theDllInstance::get().get()) + return pDll->GetExtraData(); + return 0; } -BasicIDEDLL::BasicIDEDLL() - : m_pShell(0) - , m_pExtraData(0) + +IDEResId::IDEResId( sal_uInt16 nId ): + ResId(nId, *Module::Get()->GetResMgr()) +{ } + +namespace { - SfxObjectFactory* pFact = &BasicDocShell::Factory(); + +Dll::Dll () : + m_pShell(0) +{ + SfxObjectFactory* pFact = &DocShell::Factory(); (void)pFact; ResMgr* pMgr = ResMgr::CreateResMgr( - "basctl", Application::GetSettings().GetUILocale() ); + "basctl", Application::GetSettings().GetUILocale() + ); - BASIC_MOD() = new BasicIDEModule( pMgr, &BasicDocShell::Factory() ); + Module::Get() = new Module( pMgr, &DocShell::Factory() ); GetExtraData(); // to cause GlobalErrorHdl to be set - SfxModule* pMod = BASIC_MOD(); + SfxModule* pMod = Module::Get(); - SfxObjectFactory& rFactory = BasicDocShell::Factory(); + SfxObjectFactory& rFactory = DocShell::Factory(); rFactory.SetDocumentServiceName( rtl::OUString("com.sun.star.script.BasicIDE") ); - BasicDocShell::RegisterInterface( pMod ); - BasicIDEShell::RegisterFactory( SVX_INTERFACE_BASIDE_VIEWSH ); - BasicIDEShell::RegisterInterface( pMod ); + DocShell::RegisterInterface( pMod ); + Shell::RegisterFactory( SVX_INTERFACE_BASIDE_VIEWSH ); + Shell::RegisterInterface( pMod ); PropBrwMgr::RegisterChildWindow(); } -BasicIDEData* BasicIDEDLL::GetExtraData() +ExtraData* Dll::GetExtraData () { if (!m_pExtraData) - m_pExtraData = new BasicIDEData; - return m_pExtraData; + m_pExtraData.reset(new ExtraData); + return m_pExtraData.get(); } -BasicIDEData::BasicIDEData() -{ - nBasicDialogCount = 0; - bChoosingMacro = false; - bShellInCriticalSection = false; - pSearchItem = new SvxSearchItem( SID_SEARCH_ITEM ); +} // namespace - StarBASIC::SetGlobalBreakHdl( LINK( this, BasicIDEData, GlobalBasicBreakHdl ) ); +// +// basctl::ExtraData +// =================== +// + +ExtraData::ExtraData () : + pSearchItem(new SvxSearchItem(SID_SEARCH_ITEM)), + nBasicDialogCount(0), + bChoosingMacro(false), + bShellInCriticalSection(false) +{ + StarBASIC::SetGlobalBreakHdl(LINK(this, ExtraData, GlobalBasicBreakHdl)); } -BasicIDEData::~BasicIDEData() +ExtraData::~ExtraData () { // Resetting ErrorHdl is cleaner indeed but this instance is destroyed // pretty late, after the last Basic, anyway. @@ -170,36 +178,26 @@ BasicIDEData::~BasicIDEData() // StarBASIC::SetGlobalErrorHdl( Link() ); // StarBASIC::SetGlobalBreakHdl( Link() ); // StarBASIC::setGlobalStarScriptListener( XEngineListenerRef() ); - - delete pSearchItem; } -SvxSearchItem& BasicIDEData::GetSearchItem() const +void ExtraData::SetSearchItem (const SvxSearchItem& rItem) { - return *pSearchItem; + pSearchItem.reset((SvxSearchItem*)rItem.Clone()); } -void BasicIDEData::SetSearchItem( const SvxSearchItem& rItem ) -{ - delete pSearchItem; - pSearchItem = (SvxSearchItem*)rItem.Clone(); -} - -IMPL_LINK( BasicIDEData, GlobalBasicBreakHdl, StarBASIC *, pBasic ) +IMPL_LINK(ExtraData, GlobalBasicBreakHdl, StarBASIC *, pBasic ) { long nRet = 0; - BasicIDEShell* pIDEShell = BasicIDEGlobals::GetShell(); - if ( pIDEShell ) + if (Shell* pShell = GetShell()) { - BasicManager* pBasMgr = BasicIDE::FindBasicManager( pBasic ); - if ( pBasMgr ) + if (BasicManager* pBasMgr = FindBasicManager(pBasic)) { // I do get here twice if Step into protected Basic // => bad, if password query twice, also you don't see // the lib in the PasswordDlg... // => start no password query at this point ScriptDocument aDocument( ScriptDocument::getDocumentForBasicManager( pBasMgr ) ); - OSL_ENSURE( aDocument.isValid(), "BasicIDEData::GlobalBasicBreakHdl: no document for the basic manager!" ); + OSL_ENSURE( aDocument.isValid(), "basctl::ExtraData::GlobalBasicBreakHdl: no document for the basic manager!" ); if ( aDocument.isValid() ) { ::rtl::OUString aOULibName( pBasic->GetName() ); @@ -214,7 +212,7 @@ IMPL_LINK( BasicIDEData, GlobalBasicBreakHdl, StarBASIC *, pBasic ) } else { - nRet = pIDEShell->CallBasicBreakHdl( pBasic ); + nRet = pShell->CallBasicBreakHdl( pBasic ); } } } @@ -224,4 +222,7 @@ IMPL_LINK( BasicIDEData, GlobalBasicBreakHdl, StarBASIC *, pBasic ) return nRet; } + +} // namespace basctl + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |