diff options
author | Mathias Bauer <mba@openoffice.org> | 2009-10-31 00:36:06 +0100 |
---|---|---|
committer | Mathias Bauer <mba@openoffice.org> | 2009-10-31 00:36:06 +0100 |
commit | dc6132bd4194c872193941fc067603492d021d93 (patch) | |
tree | dde55ca2a5cdf2ecc708b3eef549d9adba0bf690 /cui/source/inc/cfgutil.hxx | |
parent | 1996c1656dfce64fe3eee81325bec883d2266bce (diff) |
#i106421#: move svx/source/cui to cui
Diffstat (limited to 'cui/source/inc/cfgutil.hxx')
-rw-r--r-- | cui/source/inc/cfgutil.hxx | 220 |
1 files changed, 220 insertions, 0 deletions
diff --git a/cui/source/inc/cfgutil.hxx b/cui/source/inc/cfgutil.hxx new file mode 100644 index 000000000..789babe06 --- /dev/null +++ b/cui/source/inc/cfgutil.hxx @@ -0,0 +1,220 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: cfg.hxx,v $ + * $Revision: 1.41 $ + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _CFGUTIL_HXX +#define _CFGUTIL_HXX + +#include <vector> +#include <rtl/ustring.hxx> +#include <tools/string.hxx> + +#include <com/sun/star/frame/XModel.hpp> +#include <com/sun/star/frame/XFrame.hpp> +#include <com/sun/star/lang/XSingleComponentFactory.hpp> +#include <com/sun/star/container/XNameAccess.hpp> +#include <com/sun/star/script/browse/XBrowseNode.hpp> + +#define _SVSTDARR_STRINGSDTOR +#include <svl/svstdarr.hxx> + +#include <vcl/timer.hxx> +#include <svtools/svtabbx.hxx> +#include <svtools/svtreebx.hxx> +#include <vcl/image.hxx> + +class BasicManager; +class SfxSlotPool; +class SfxStringItem; +class SfxFontItem; +class SfxMacroInfoItem; +class SfxMacroInfo; +struct SfxStyleInfo_Impl; +struct SfxStylesInfo_Impl; + +#define css ::com::sun::star + +struct SfxStyleInfo_Impl +{ + ::rtl::OUString sFamily; + ::rtl::OUString sStyle; + ::rtl::OUString sCommand; + ::rtl::OUString sLabel; + + SfxStyleInfo_Impl() + {} + + SfxStyleInfo_Impl(const SfxStyleInfo_Impl& rCopy) + { + sFamily = rCopy.sFamily; + sStyle = rCopy.sStyle; + sCommand = rCopy.sCommand; + sLabel = rCopy.sLabel; + } +}; + +struct SfxStylesInfo_Impl +{ + private: + + ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > m_xDoc; + + public: + + SfxStylesInfo_Impl(); + void setModel(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& xModel); + + sal_Bool parseStyleCommand(SfxStyleInfo_Impl& aStyle); + void getLabel4Style(SfxStyleInfo_Impl& aStyle); + + ::std::vector< SfxStyleInfo_Impl > getStyleFamilies(); + ::std::vector< SfxStyleInfo_Impl > getStyles(const ::rtl::OUString& sFamily); + + static ::rtl::OUString generateCommand(const ::rtl::OUString& sFamily, const ::rtl::OUString& sStyle); +}; + +#define SFX_CFGGROUP_FUNCTION 1 +#define SFX_CFGGROUP_BASICMGR 2 +#define SFX_CFGGROUP_DOCBASICMGR 3 +#define SFX_CFGGROUP_BASICLIB 4 +#define SFX_CFGGROUP_BASICMOD 5 +#define SFX_CFGFUNCTION_MACRO 6 +#define SFX_CFGFUNCTION_SLOT 7 +#define SFX_CFGGROUP_SCRIPTCONTAINER 8 +#define SFX_CFGFUNCTION_SCRIPT 9 +#define SFX_CFGGROUP_STYLES 10 +#define SFX_CFGGROUP_SPECIALCHARACTERS 11 + +struct SfxGroupInfo_Impl +{ + USHORT nKind; + USHORT nOrd; + void* pObject; + BOOL bWasOpened; + String sCommand; + String sLabel; + + SfxGroupInfo_Impl( USHORT n, USHORT nr, void* pObj = 0 ) : + nKind( n ), nOrd( nr ), pObject( pObj ), bWasOpened(FALSE) {} +}; + +typedef SfxGroupInfo_Impl* SfxGroupInfoPtr; +SV_DECL_PTRARR_DEL(SfxGroupInfoArr_Impl, SfxGroupInfoPtr, 5, 5) + +class SfxConfigFunctionListBox_Impl : public SvTreeListBox +{ + friend class SfxConfigGroupListBox_Impl; + Timer aTimer; + SvLBoxEntry* pCurEntry; + SfxGroupInfoArr_Impl aArr; + SfxStylesInfo_Impl* pStylesInfo; + + DECL_LINK( TimerHdl, Timer* ); + virtual void MouseMove( const MouseEvent& rMEvt ); + +public: + SfxConfigFunctionListBox_Impl( Window*, const ResId& ); + ~SfxConfigFunctionListBox_Impl(); + + void ClearAll(); + SvLBoxEntry* GetEntry_Impl( USHORT nId ); + SvLBoxEntry* GetEntry_Impl( const String& ); + USHORT GetId( SvLBoxEntry *pEntry ); + using Window::GetHelpText; + String GetHelpText( SvLBoxEntry *pEntry ); + USHORT GetCurId() { return GetId( FirstSelected() ); } + String GetCurCommand(); + String GetCurLabel(); + SfxMacroInfo* GetMacroInfo(); + void FunctionSelected(); + void SetStylesInfo(SfxStylesInfo_Impl* pStyles); +}; + +struct SvxConfigGroupBoxResource_Impl; +class SfxConfigGroupListBox_Impl : public SvTreeListBox +{ + SvxConfigGroupBoxResource_Impl* pImp; + //SfxSlotPool* pSlotPool; + SfxConfigFunctionListBox_Impl* pFunctionListBox; + SfxGroupInfoArr_Impl aArr; + ULONG nMode; + BOOL bShowSF; // show Scripting Framework scripts + BOOL bShowBasic; // show Basic scripts + + ::rtl::OUString m_sModuleLongName; + css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR; + css::uno::Reference< css::frame::XFrame > m_xFrame; + css::uno::Reference< css::container::XNameAccess > m_xGlobalCategoryInfo; + css::uno::Reference< css::container::XNameAccess > m_xModuleCategoryInfo; + css::uno::Reference< css::container::XNameAccess > m_xUICmdDescription; + + Image GetImage( ::com::sun::star::uno::Reference< ::com::sun::star::script::browse::XBrowseNode > node, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > xCtx, bool bIsRootNode, bool bHighContrast ); + + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > getDocumentModel( ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& xCtx, ::rtl::OUString& docName ); + ::rtl::OUString parseLocationName( const ::rtl::OUString& location ); + + void InitModule(); + void InitBasic(); + void InitStyles(); + + ::rtl::OUString MapCommand2UIName(const ::rtl::OUString& sCommand); + + SfxStylesInfo_Impl* pStylesInfo; + +protected: + virtual void RequestingChilds( SvLBoxEntry *pEntry); + using SvListView::Expand; + virtual BOOL Expand( SvLBoxEntry* pParent ); + +public: + SfxConfigGroupListBox_Impl ( Window* pParent, + const ResId&, + ULONG nConfigMode = 0 ); + ~SfxConfigGroupListBox_Impl(); + void ClearAll(); + + void Init(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR , + const css::uno::Reference< css::frame::XFrame >& xFrame , + const ::rtl::OUString& sModuleLongName); + void SetFunctionListBox( SfxConfigFunctionListBox_Impl *pBox ) + { pFunctionListBox = pBox; } + void Open( SvLBoxEntry*, BOOL ); + void GroupSelected(); + void SelectMacro( const SfxMacroInfoItem* ); + void AddAndSelect( const SfxStringItem*, const SfxStringItem* ); + void SelectMacro( const String&, const String& ); + String GetGroup(); + BasicManager* GetBasicManager( const SvLBoxEntry& _rEntry ); + void SetScriptType( const String& rScriptType ); + void SetStylesInfo(SfxStylesInfo_Impl* pStyles); +}; + +#undef css + +#endif + |