summaryrefslogtreecommitdiff
path: root/cui/source/inc/cfgutil.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'cui/source/inc/cfgutil.hxx')
-rw-r--r--cui/source/inc/cfgutil.hxx213
1 files changed, 213 insertions, 0 deletions
diff --git a/cui/source/inc/cfgutil.hxx b/cui/source/inc/cfgutil.hxx
new file mode 100644
index 000000000000..b8937689dee3
--- /dev/null
+++ b/cui/source/inc/cfgutil.hxx
@@ -0,0 +1,213 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * 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;
+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_CFGFUNCTION_SLOT 2
+#define SFX_CFGGROUP_SCRIPTCONTAINER 3
+#define SFX_CFGFUNCTION_SCRIPT 4
+#define SFX_CFGGROUP_STYLES 5
+
+struct SfxGroupInfo_Impl
+{
+ sal_uInt16 nKind;
+ sal_uInt16 nUniqueID;
+ void* pObject;
+ sal_Bool bWasOpened;
+ String sCommand;
+ String sLabel;
+
+ SfxGroupInfo_Impl( sal_uInt16 n, sal_uInt16 nr, void* pObj = 0 ) :
+ nKind( n ), nUniqueID( nr ), pObject( pObj ), bWasOpened(sal_False) {}
+};
+
+struct CuiMacroInfo
+{
+};
+
+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();
+ using Window::GetHelpText;
+ String GetHelpText( SvLBoxEntry *pEntry );
+ String GetCurCommand();
+ String GetCurLabel();
+ String GetSelectedScriptURI();
+ void FunctionSelected();
+ void SetStylesInfo(SfxStylesInfo_Impl* pStyles);
+};
+
+struct SvxConfigGroupBoxResource_Impl;
+class SfxConfigGroupListBox_Impl : public SvTreeListBox
+{
+ SvxConfigGroupBoxResource_Impl* pImp;
+ SfxConfigFunctionListBox_Impl* pFunctionListBox;
+ SfxGroupInfoArr_Impl aArr;
+ sal_uLong nMode;
+
+ ::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
+ );
+
+ ::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
+ );
+
+
+ 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 sal_Bool Expand( SvLBoxEntry* pParent );
+
+public:
+ SfxConfigGroupListBox_Impl ( Window* pParent,
+ const ResId&,
+ sal_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*, sal_Bool );
+ void GroupSelected();
+ void SelectMacro( const SfxMacroInfoItem* );
+ void SelectMacro( const String&, const String& );
+ String GetGroup();
+ void SetStylesInfo(SfxStylesInfo_Impl* pStyles);
+};
+
+#undef css
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */