summaryrefslogtreecommitdiff
path: root/cui/source/inc/cfg.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'cui/source/inc/cfg.hxx')
-rw-r--r--cui/source/inc/cfg.hxx836
1 files changed, 836 insertions, 0 deletions
diff --git a/cui/source/inc/cfg.hxx b/cui/source/inc/cfg.hxx
new file mode 100644
index 000000000000..57dc9692f87c
--- /dev/null
+++ b/cui/source/inc/cfg.hxx
@@ -0,0 +1,836 @@
+/*************************************************************************
+ *
+ * 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.17 $
+ *
+ * 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 _SVXCFG_HXX
+#define _SVXCFG_HXX
+
+#include <vcl/lstbox.hxx>
+#include <vcl/toolbox.hxx>
+#include <vcl/fixed.hxx>
+#include <vcl/group.hxx>
+#include <vcl/menubtn.hxx>
+#include <vcl/toolbox.hxx>
+#include <svtools/svtreebx.hxx>
+#include <svtools/svmedit2.hxx>
+#include <svtools/svmedit.hxx>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/container/XIndexContainer.hpp>
+#include <com/sun/star/container/XNameAccess.hpp>
+#include <com/sun/star/frame/XModuleManager.hpp>
+#include <com/sun/star/ui/XUIConfigurationListener.hpp>
+#include <com/sun/star/ui/XUIConfigurationManager.hpp>
+#include <com/sun/star/ui/XImageManager.hpp>
+#include <com/sun/star/graphic/XGraphicProvider.hpp>
+#include <com/sun/star/frame/XFrame.hpp>
+#include <com/sun/star/frame/XStorable.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
+#include <com/sun/star/lang/XSingleComponentFactory.hpp>
+
+#define _SVSTDARR_USHORTS
+#define _SVSTDARR_STRINGSDTOR
+#include <svl/svstdarr.hxx> // SvUShorts
+#include <sfx2/minarray.hxx>
+#include <sfx2/tabdlg.hxx>
+#include <vector>
+#include <vcl/msgbox.hxx>
+
+#include "selector.hxx"
+
+class SvxConfigEntry;
+class SvxConfigPage;
+class SvxMenuConfigPage;
+class SvxToolbarConfigPage;
+
+typedef std::vector< SvxConfigEntry* > SvxEntries;
+
+class SvxConfigDialog : public SfxTabDialog
+{
+private:
+ ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > m_xFrame;
+
+public:
+ SvxConfigDialog( Window*, const SfxItemSet* );
+ ~SvxConfigDialog();
+
+ void ActivateTabPage( USHORT );
+
+ virtual void PageCreated( USHORT nId, SfxTabPage &rPage );
+ virtual short Ok();
+
+ void SetFrame(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& xFrame);
+};
+
+class SaveInData : public ImageProvider
+{
+private:
+
+ bool bModified;
+
+ bool bDocConfig;
+ bool bReadOnly;
+
+ ::com::sun::star::uno::Reference
+ < com::sun::star::ui::XUIConfigurationManager > m_xCfgMgr;
+
+ ::com::sun::star::uno::Reference
+ < com::sun::star::ui::XUIConfigurationManager > m_xParentCfgMgr;
+
+ ::com::sun::star::uno::Reference
+ < com::sun::star::ui::XImageManager > m_xImgMgr;
+
+ ::com::sun::star::uno::Reference
+ < com::sun::star::ui::XImageManager > m_xParentImgMgr;
+
+ static ::com::sun::star::uno::Reference
+ < com::sun::star::ui::XImageManager >* xDefaultImgMgr;
+
+public:
+
+ SaveInData(
+ const ::com::sun::star::uno::Reference <
+ ::com::sun::star::ui::XUIConfigurationManager >& xCfgMgr,
+ const ::com::sun::star::uno::Reference <
+ ::com::sun::star::ui::XUIConfigurationManager >& xParentCfgMgr,
+ const rtl::OUString& aModuleId,
+ bool docConfig );
+
+ ~SaveInData() {}
+
+ bool PersistChanges(
+ const com::sun::star::uno::Reference
+ < com::sun::star::uno::XInterface >& xManager );
+
+ void SetModified( bool bValue = TRUE ) { bModified = bValue; }
+ bool IsModified( ) { return bModified; }
+
+ bool IsReadOnly( ) { return bReadOnly; }
+ bool IsDocConfig( ) { return bDocConfig; }
+
+ ::com::sun::star::uno::Reference
+ < ::com::sun::star::ui::XUIConfigurationManager >
+ GetConfigManager() { return m_xCfgMgr; };
+
+ ::com::sun::star::uno::Reference
+ < ::com::sun::star::ui::XUIConfigurationManager >
+ GetParentConfigManager() { return m_xParentCfgMgr; };
+
+ ::com::sun::star::uno::Reference
+ < ::com::sun::star::ui::XImageManager >
+ GetImageManager() { return m_xImgMgr; };
+
+ ::com::sun::star::uno::Reference
+ < ::com::sun::star::ui::XImageManager >
+ GetParentImageManager() { return m_xParentImgMgr; };
+
+ ::com::sun::star::uno::Reference
+ < com::sun::star::lang::XMultiServiceFactory > m_xServiceManager;
+
+ ::com::sun::star::uno::Reference
+ < com::sun::star::container::XNameAccess > m_xCommandToLabelMap;
+
+ com::sun::star::uno::Reference
+ < com::sun::star::uno::XComponentContext > m_xComponentContext;
+
+ com::sun::star::uno::Sequence
+ < com::sun::star::beans::PropertyValue > m_aSeparatorSeq;
+
+ Image GetImage( const rtl::OUString& rCommandURL );
+
+ virtual bool HasURL( const rtl::OUString& aURL ) = 0;
+ virtual bool HasSettings() = 0;
+ virtual SvxEntries* GetEntries() = 0;
+ virtual void SetEntries( SvxEntries* ) = 0;
+ virtual void Reset() = 0;
+ virtual bool Apply() = 0;
+};
+
+class MenuSaveInData : public SaveInData
+{
+private:
+
+ rtl::OUString m_aMenuResourceURL;
+ rtl::OUString m_aDescriptorContainer;
+
+ ::com::sun::star::uno::Reference
+ < com::sun::star::container::XIndexAccess > m_xMenuSettings;
+
+ SvxConfigEntry* pRootEntry;
+
+ // static holder of the default menu data
+ static MenuSaveInData* pDefaultData;
+
+ static void SetDefaultData( MenuSaveInData* pData ) {pDefaultData = pData;}
+ static MenuSaveInData* GetDefaultData() { return pDefaultData; }
+
+ void Apply( bool bDefault );
+
+ void Apply(
+ SvxConfigEntry* pRootEntry,
+ com::sun::star::uno::Reference<
+ com::sun::star::container::XIndexContainer >& rNewMenuBar,
+ com::sun::star::uno::Reference<
+ com::sun::star::lang::XSingleComponentFactory >& rFactory,
+ SvLBoxEntry *pParent = NULL );
+
+ void ApplyMenu(
+ com::sun::star::uno::Reference<
+ com::sun::star::container::XIndexContainer >& rNewMenuBar,
+ com::sun::star::uno::Reference<
+ com::sun::star::lang::XSingleComponentFactory >& rFactory,
+ SvxConfigEntry *pMenuData = NULL );
+
+ bool LoadSubMenus(
+ const ::com::sun::star::uno::Reference<
+ com::sun::star::container::XIndexAccess >& xMenuBarSettings,
+ const rtl::OUString& rBaseTitle, SvxConfigEntry* pParentData );
+
+public:
+
+ MenuSaveInData(
+ const ::com::sun::star::uno::Reference <
+ ::com::sun::star::ui::XUIConfigurationManager >&,
+ const ::com::sun::star::uno::Reference <
+ ::com::sun::star::ui::XUIConfigurationManager >&,
+ const rtl::OUString& aModuleId,
+ bool docConfig );
+
+ ~MenuSaveInData();
+
+ // methods inherited from SaveInData
+ SvxEntries* GetEntries();
+ void SetEntries( SvxEntries* );
+ bool HasURL( const rtl::OUString& URL ) { (void)URL; return FALSE; }
+ bool HasSettings() { return m_xMenuSettings.is(); }
+ void Reset();
+ bool Apply();
+};
+
+class SvxConfigEntry
+{
+private:
+
+ // common properties
+ USHORT nId;
+ ::rtl::OUString aHelpText;
+ ::rtl::OUString aLabel;
+ ::rtl::OUString aCommand;
+ ::rtl::OUString aHelpURL;
+
+ bool bPopUp;
+ bool bStrEdited;
+ bool bIsUserDefined;
+ bool bIsMain;
+ bool bIsDeletable;
+ bool bIsMovable;
+ bool bIsParentData;
+
+ // toolbar specific properties
+ bool bIsVisible;
+ sal_Int32 nStyle;
+
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::graphic::XGraphic > xBackupGraphic;
+
+ SvxEntries *pEntries;
+
+public:
+
+ SvxConfigEntry(
+ const ::com::sun::star::uno::Sequence<
+ ::com::sun::star::beans::PropertyValue >& rProperties,
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::container::XNameAccess >& rCommandToLabelMap );
+
+ SvxConfigEntry( const ::rtl::OUString& rDisplayName,
+ const ::rtl::OUString& rCommandURL,
+ bool bPopup = FALSE,
+ bool bParentData = FALSE );
+
+ SvxConfigEntry()
+ :
+ nId( 0 ),
+ bPopUp( FALSE ),
+ bStrEdited( FALSE ),
+ bIsUserDefined( FALSE ),
+ bIsMain( FALSE ),
+ bIsParentData( FALSE ),
+ bIsVisible( TRUE ),
+ nStyle( 0 ),
+ pEntries( 0 )
+ {}
+
+ ~SvxConfigEntry();
+
+ const ::rtl::OUString& GetCommand() const { return aCommand; }
+ void SetCommand( const String& rCmd ) { aCommand = rCmd; }
+
+ const ::rtl::OUString& GetName() const { return aLabel; }
+ void SetName( const String& rStr ) { aLabel = rStr; bStrEdited = TRUE; }
+ bool HasChangedName() const { return bStrEdited; }
+
+ const ::rtl::OUString& GetHelpText() ;
+ void SetHelpText( const String& rStr ) { aHelpText = rStr; }
+
+ const ::rtl::OUString& GetHelpURL() const { return aHelpURL; }
+ void SetHelpURL( const String& rStr ) { aHelpURL = rStr; }
+
+ void SetPopup( bool bOn = TRUE ) { bPopUp = bOn; }
+ bool IsPopup() const { return bPopUp; }
+
+ void SetUserDefined( bool bOn = TRUE ) { bIsUserDefined = bOn; }
+ bool IsUserDefined() const { return bIsUserDefined; }
+
+ bool IsBinding() const { return !bPopUp; }
+ bool IsSeparator() const { return nId == 0; }
+
+ SvxEntries* GetEntries() const { return pEntries; }
+ void SetEntries( SvxEntries* entries ) { pEntries = entries; }
+ bool HasEntries() const { return pEntries != NULL; }
+
+ void SetMain( bool bValue = TRUE ) { bIsMain = bValue; }
+ bool IsMain() { return bIsMain; }
+
+ void SetParentData( bool bValue = TRUE ) { bIsParentData = bValue; }
+ bool IsParentData() { return bIsParentData; }
+
+ bool IsMovable();
+ bool IsDeletable();
+ bool IsRenamable();
+
+ void SetVisible( bool b ) { bIsVisible = b; }
+ bool IsVisible() const { return bIsVisible; }
+
+ void SetBackupGraphic(
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::graphic::XGraphic > graphic )
+ { xBackupGraphic = graphic; }
+
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::graphic::XGraphic >
+ GetBackupGraphic()
+ { return xBackupGraphic; }
+
+ bool IsIconModified() { return xBackupGraphic.is(); }
+
+ sal_Int32 GetStyle() { return nStyle; }
+ void SetStyle( sal_Int32 style ) { nStyle = style; }
+
+ com::sun::star::uno::Sequence< com::sun::star::beans::PropertyValue >
+ GetProperties(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::container::XNameAccess >& rCommandToLabelMap );
+};
+
+class SvxMenuEntriesListBox : public SvTreeListBox
+{
+private:
+ SvxConfigPage* pPage;
+
+protected:
+ bool m_bIsInternalDrag;
+
+public:
+ SvxMenuEntriesListBox( Window*, const ResId& );
+ ~SvxMenuEntriesListBox();
+
+ virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt );
+
+ virtual BOOL NotifyAcceptDrop( SvLBoxEntry* pEntry );
+
+ virtual BOOL NotifyMoving( SvLBoxEntry*, SvLBoxEntry*,
+ SvLBoxEntry*&, ULONG& );
+
+ virtual BOOL NotifyCopying( SvLBoxEntry*, SvLBoxEntry*,
+ SvLBoxEntry*&, ULONG&);
+
+ virtual DragDropMode NotifyStartDrag(
+ TransferDataContainer&, SvLBoxEntry* );
+
+ virtual void DragFinished( sal_Int8 );
+
+ void KeyInput( const KeyEvent& rKeyEvent );
+};
+
+class SvxDescriptionEdit : public ExtMultiLineEdit
+{
+private:
+ Rectangle m_aRealRect;
+
+public:
+ SvxDescriptionEdit( Window* pParent, const ResId& _rId );
+ inline ~SvxDescriptionEdit() {}
+
+ void SetNewText( const String& _rText );
+ inline void Clear() { SetNewText( String() ); }
+};
+
+class SvxConfigPage : public SfxTabPage
+{
+private:
+
+ bool bInitialised;
+ SaveInData* pCurrentSaveInData;
+
+ DECL_LINK( SelectSaveInLocation, ListBox * );
+ DECL_LINK( AsyncInfoMsg, String* );
+
+ bool SwapEntryData( SvLBoxEntry* pSourceEntry, SvLBoxEntry* pTargetEntry );
+ void AlignControls();
+
+protected:
+
+ // the top section of the tab page where top level menus and toolbars
+ // are displayed in a listbox
+ FixedLine aTopLevelSeparator;
+ FixedText aTopLevelLabel;
+ ListBox aTopLevelListBox;
+ PushButton aNewTopLevelButton;
+ MenuButton aModifyTopLevelButton;
+
+ // the contents section where the contents of the selected
+ // menu or toolbar are displayed
+ FixedLine aContentsSeparator;
+ FixedText aContentsLabel;
+ SvTreeListBox* aContentsListBox;
+
+ PushButton aAddCommandsButton;
+ MenuButton aModifyCommandButton;
+
+ ImageButton aMoveUpButton;
+ ImageButton aMoveDownButton;
+
+ FixedText aSaveInText;
+ ListBox aSaveInListBox;
+
+ FixedText aDescriptionLabel;
+ SvxDescriptionEdit aDescriptionField;
+
+ SvxScriptSelectorDialog* pSelectorDlg;
+
+ // the ResourceURL to select when opening the dialog
+ rtl::OUString m_aURLToSelect;
+
+ ::com::sun::star::uno::Reference
+ < ::com::sun::star::frame::XFrame > m_xFrame;
+
+ SvxConfigPage( Window*, /* const ResId&, */ const SfxItemSet& );
+ virtual ~SvxConfigPage();
+
+ DECL_LINK( MoveHdl, Button * );
+
+ virtual SaveInData* CreateSaveInData(
+ const ::com::sun::star::uno::Reference <
+ ::com::sun::star::ui::XUIConfigurationManager >&,
+ const ::com::sun::star::uno::Reference <
+ ::com::sun::star::ui::XUIConfigurationManager >&,
+ const rtl::OUString& aModuleId,
+ bool docConfig ) = 0;
+
+ virtual void Init() = 0;
+ virtual void UpdateButtonStates() = 0;
+ virtual short QueryReset() = 0;
+
+ void PositionContentsListBox();
+
+ SvLBoxEntry* InsertEntry( SvxConfigEntry* pNewEntryData,
+ SvLBoxEntry* pTarget = NULL,
+ bool bFront = FALSE );
+
+ void AddSubMenusToUI( const String& rBaseTitle,
+ SvxConfigEntry* pParentData );
+
+ SvLBoxEntry* InsertEntryIntoUI ( SvxConfigEntry* pNewEntryData,
+ ULONG nPos = LIST_APPEND );
+
+ SvxEntries* FindParentForChild( SvxEntries* pParentEntries,
+ SvxConfigEntry* pChildData );
+
+ void ReloadTopLevelListBox( SvxConfigEntry* pSelection = NULL );
+
+public:
+
+ static bool CanConfig( const ::rtl::OUString& rModuleId );
+
+ SaveInData* GetSaveInData() { return pCurrentSaveInData; }
+
+ SvLBoxEntry* AddFunction( SvLBoxEntry* pTarget = NULL,
+ bool bFront = FALSE,
+ bool bAllowDuplicates = FALSE );
+
+ virtual void MoveEntry( bool bMoveUp );
+
+ bool MoveEntryData( SvLBoxEntry* pSourceEntry,
+ SvLBoxEntry* pTargetEntry );
+
+ BOOL FillItemSet( SfxItemSet& );
+ void Reset( const SfxItemSet& );
+
+ virtual bool DeleteSelectedContent() = 0;
+ virtual void DeleteSelectedTopLevel() = 0;
+
+ SvxConfigEntry* GetTopLevelSelection()
+ {
+ return (SvxConfigEntry*) aTopLevelListBox.GetEntryData(
+ aTopLevelListBox.GetSelectEntryPos() );
+ }
+
+ /** identifies the module in the given frame. If the frame is <NULL/>, a default
+ frame will be determined beforehand.
+
+ If the given frame is <NULL/>, a default frame will be used: The method the active
+ frame of the desktop, then the current frame. If both are <NULL/>,
+ the SfxViewFrame::Current's XFrame is used. If this is <NULL/>, too, an empty string is returned.
+
+ If the given frame is not <NULL/>, or an default frame could be successfully determined, then
+ the ModuleManager is asked for the module ID of the component in the frame.
+ */
+ static ::rtl::OUString
+ GetFrameWithDefaultAndIdentify( ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& _inout_rxFrame );
+};
+
+class SvxMenuConfigPage : public SvxConfigPage
+{
+private:
+
+ DECL_LINK( SelectMenu, ListBox * );
+ DECL_LINK( SelectMenuEntry, Control * );
+ DECL_LINK( NewMenuHdl, Button * );
+ DECL_LINK( MenuSelectHdl, MenuButton * );
+ DECL_LINK( EntrySelectHdl, MenuButton * );
+ DECL_LINK( AddCommandsHdl, Button * );
+ DECL_LINK( AddFunctionHdl, SvxScriptSelectorDialog * );
+
+ void Init();
+ void UpdateButtonStates();
+ short QueryReset();
+ bool DeleteSelectedContent();
+ void DeleteSelectedTopLevel();
+
+public:
+ SvxMenuConfigPage( Window *pParent, const SfxItemSet& rItemSet );
+ ~SvxMenuConfigPage();
+
+ SaveInData* CreateSaveInData(
+ const ::com::sun::star::uno::Reference <
+ ::com::sun::star::ui::XUIConfigurationManager >&,
+ const ::com::sun::star::uno::Reference <
+ ::com::sun::star::ui::XUIConfigurationManager >&,
+ const rtl::OUString& aModuleId,
+ bool docConfig );
+};
+
+class SvxMainMenuOrganizerDialog : public ModalDialog
+{
+ FixedText aMenuNameText;
+ Edit aMenuNameEdit;
+ FixedText aMenuListText;
+ SvTreeListBox aMenuListBox;
+ ImageButton aMoveUpButton;
+ ImageButton aMoveDownButton;
+ OKButton aOKButton;
+ CancelButton aCloseButton;
+ HelpButton aHelpButton;
+
+ SvxEntries* pEntries;
+ SvLBoxEntry* pNewMenuEntry;
+ bool bModified;
+
+ void UpdateButtonStates();
+
+ DECL_LINK( MoveHdl, Button * );
+ DECL_LINK( ModifyHdl, Edit * );
+ DECL_LINK( SelectHdl, Control* );
+
+public:
+ SvxMainMenuOrganizerDialog (
+ Window*, SvxEntries*,
+ SvxConfigEntry*, bool bCreateMenu = FALSE );
+
+ ~SvxMainMenuOrganizerDialog ();
+
+ SvxEntries* GetEntries();
+ void SetEntries( SvxEntries* );
+ SvxConfigEntry* GetSelectedEntry();
+};
+
+class SvxToolbarEntriesListBox : public SvxMenuEntriesListBox
+{
+ Size m_aCheckBoxImageSizePixel;
+ Link m_aChangedListener;
+ SvLBoxButtonData* m_pButtonData;
+ BOOL m_bHiContrastMode;
+ SvxConfigPage* pPage;
+
+ void ChangeVisibility( SvLBoxEntry* pEntry );
+
+protected:
+
+ virtual void CheckButtonHdl();
+ virtual void DataChanged( const DataChangedEvent& rDCEvt );
+ void BuildCheckBoxButtonImages( SvLBoxButtonData* );
+ Image GetSizedImage(
+ VirtualDevice& aDev, const Size& aNewSize, const Image& aImage );
+
+public:
+
+ SvxToolbarEntriesListBox(
+ Window* pParent, const ResId& );
+
+ ~SvxToolbarEntriesListBox();
+
+ void SetChangedListener( const Link& aChangedListener )
+ { m_aChangedListener = aChangedListener; }
+
+ const Link& GetChangedListener() const { return m_aChangedListener; }
+
+ Size GetCheckBoxPixelSize() const
+ { return m_aCheckBoxImageSizePixel; }
+
+ virtual BOOL NotifyMoving(
+ SvLBoxEntry*, SvLBoxEntry*, SvLBoxEntry*&, ULONG& );
+
+ virtual BOOL NotifyCopying(
+ SvLBoxEntry*, SvLBoxEntry*, SvLBoxEntry*&, ULONG&);
+
+ void KeyInput( const KeyEvent& rKeyEvent );
+};
+
+class SvxToolbarConfigPage : public SvxConfigPage
+{
+private:
+
+ DECL_LINK( SelectToolbar, ListBox * );
+ DECL_LINK( SelectToolbarEntry, Control * );
+ DECL_LINK( ToolbarSelectHdl, MenuButton * );
+ DECL_LINK( EntrySelectHdl, MenuButton * );
+ DECL_LINK( NewToolbarHdl, Button * );
+ DECL_LINK( AddCommandsHdl, Button * );
+ DECL_LINK( AddFunctionHdl, SvxScriptSelectorDialog * );
+ DECL_LINK( MoveHdl, Button * );
+
+ void UpdateButtonStates();
+ short QueryReset();
+ void Init();
+ bool DeleteSelectedContent();
+ void DeleteSelectedTopLevel();
+
+public:
+ SvxToolbarConfigPage( Window *pParent, const SfxItemSet& rItemSet );
+ ~SvxToolbarConfigPage();
+
+ SvLBoxEntry* AddFunction( SvLBoxEntry* pTarget = NULL,
+ bool bFront = FALSE,
+ bool bAllowDuplicates = TRUE );
+
+ void MoveEntry( bool bMoveUp );
+
+ SaveInData* CreateSaveInData(
+ const ::com::sun::star::uno::Reference <
+ ::com::sun::star::ui::XUIConfigurationManager >&,
+ const ::com::sun::star::uno::Reference <
+ ::com::sun::star::ui::XUIConfigurationManager >&,
+ const rtl::OUString& aModuleId,
+ bool docConfig );
+};
+
+class ToolbarSaveInData : public SaveInData
+{
+private:
+
+ SvxConfigEntry* pRootEntry;
+ rtl::OUString m_aDescriptorContainer;
+
+ ::com::sun::star::uno::Reference
+ < com::sun::star::container::XNameAccess > m_xPersistentWindowState;
+
+ bool LoadToolbar(
+ const ::com::sun::star::uno::Reference<
+ com::sun::star::container::XIndexAccess >& xToolBarSettings,
+ SvxConfigEntry* pParentData );
+
+ void ApplyToolbar(
+ com::sun::star::uno::Reference<
+ com::sun::star::container::XIndexContainer >& rNewToolbarBar,
+ com::sun::star::uno::Reference<
+ com::sun::star::lang::XSingleComponentFactory >& rFactory,
+ SvxConfigEntry *pToolbar = NULL );
+
+public:
+
+ ToolbarSaveInData(
+ const ::com::sun::star::uno::Reference <
+ ::com::sun::star::ui::XUIConfigurationManager >&,
+ const ::com::sun::star::uno::Reference <
+ ::com::sun::star::ui::XUIConfigurationManager >&,
+ const rtl::OUString& aModuleId,
+ bool docConfig );
+
+ ~ToolbarSaveInData();
+
+ void CreateToolbar( SvxConfigEntry* pToolbar );
+ void RestoreToolbar( SvxConfigEntry* pToolbar );
+ void RemoveToolbar( SvxConfigEntry* pToolbar );
+ void ApplyToolbar( SvxConfigEntry* pToolbar );
+ void ReloadToolbar( const rtl::OUString& rURL );
+
+ rtl::OUString GetSystemUIName( const rtl::OUString& rResourceURL );
+
+ sal_Int32 GetSystemStyle( const rtl::OUString& rResourceURL );
+
+ void SetSystemStyle(
+ const rtl::OUString& rResourceURL, sal_Int32 nStyle );
+
+ void SetSystemStyle(
+ ::com::sun::star::uno::Reference
+ < ::com::sun::star::frame::XFrame > xFrame,
+ const rtl::OUString& rResourceURL, sal_Int32 nStyle );
+
+ SvxEntries* GetEntries();
+ void SetEntries( SvxEntries* );
+ bool HasSettings();
+ bool HasURL( const rtl::OUString& rURL );
+ void Reset();
+ bool Apply();
+};
+
+class SvxNewToolbarDialog : public ModalDialog
+{
+private:
+ FixedText aFtDescription;
+ Edit aEdtName;
+ FixedText aSaveInText;
+ OKButton aBtnOK;
+ CancelButton aBtnCancel;
+ HelpButton aBtnHelp;
+
+ Link aCheckNameHdl;
+
+ DECL_LINK(ModifyHdl, Edit*);
+
+public:
+ SvxNewToolbarDialog( Window* pWindow, const String& rName );
+
+ ListBox aSaveInListBox;
+
+ void GetName( rtl::OUString& rName ){rName = aEdtName.GetText();}
+
+ void SetCheckNameHdl( const Link& rLink, bool bCheckImmediately = false )
+ {
+ aCheckNameHdl = rLink;
+ if ( bCheckImmediately )
+ aBtnOK.Enable( rLink.Call( this ) > 0 );
+ }
+
+ void SetEditHelpId(ULONG nHelpId) {aEdtName.SetHelpId(nHelpId);}
+};
+
+class SvxIconSelectorDialog : public ModalDialog
+{
+private:
+ FixedText aFtDescription;
+ ToolBox aTbSymbol;
+ FixedText aFtNote;
+ OKButton aBtnOK;
+ CancelButton aBtnCancel;
+ HelpButton aBtnHelp;
+ PushButton aBtnImport;
+ PushButton aBtnDelete;
+ FixedLine aFlSeparator;
+ sal_uInt16 m_nNextId;
+
+ sal_Int32 m_nExpectedSize;
+
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::ui::XImageManager > m_xImageManager;
+
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::ui::XImageManager > m_xParentImageManager;
+
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::ui::XImageManager > m_xImportedImageManager;
+
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::graphic::XGraphicProvider > m_xGraphProvider;
+
+ bool ReplaceGraphicItem( const ::rtl::OUString& aURL );
+
+ bool ImportGraphic( const ::rtl::OUString& aURL );
+
+ void ImportGraphics(
+ const com::sun::star::uno::Sequence< rtl::OUString >& aURLs );
+
+ BitmapEx AutoScaleBitmap(BitmapEx & aBitmap, const long aStandardSize);// Added by shizhoubo
+
+public:
+
+ SvxIconSelectorDialog(
+ Window *pWindow,
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::ui::XImageManager >& rXImageManager,
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::ui::XImageManager >& rXParentImageManager
+ );
+
+ ~SvxIconSelectorDialog();
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XGraphic >
+ GetSelectedIcon();
+
+ DECL_LINK( SelectHdl, ToolBox * );
+ DECL_LINK( ImportHdl, PushButton * );
+ DECL_LINK( DeleteHdl, PushButton * );
+};
+
+class SvxIconReplacementDialog : public MessBox
+{
+public:
+ SvxIconReplacementDialog(
+ Window *pWindow,
+ const rtl::OUString& aMessage,
+ bool aYestoAll);
+
+ SvxIconReplacementDialog(
+ Window *pWindow,
+ const rtl::OUString& aMessage );
+
+ rtl::OUString ReplaceIconName( const rtl::OUString& );
+ USHORT ShowDialog();
+};
+//added for issue83555
+class SvxIconChangeDialog : public ModalDialog
+{
+private:
+ FixedImage aFImageInfo;
+ OKButton aBtnOK;
+ FixedText aDescriptionLabel;
+ SvxDescriptionEdit aLineEditDescription;
+public:
+ SvxIconChangeDialog(Window *pWindow, const rtl::OUString& aMessage);
+};
+#endif // _SVXCFG_HXX