diff options
Diffstat (limited to 'cui/source/inc/cfg.hxx')
-rw-r--r-- | cui/source/inc/cfg.hxx | 836 |
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 |