| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the 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(); |
| |
| virtual void PageCreated( sal_uInt16 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 = sal_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 sal_False; } |
| bool HasSettings() { return m_xMenuSettings.is(); } |
| void Reset(); |
| bool Apply(); |
| }; |
| |
| class SvxConfigEntry |
| { |
| private: |
| |
| // common properties |
| sal_uInt16 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 ::rtl::OUString& rDisplayName, |
| const ::rtl::OUString& rCommandURL, |
| bool bPopup = sal_False, |
| bool bParentData = sal_False ); |
| |
| SvxConfigEntry() |
| : |
| nId( 0 ), |
| bPopUp( sal_False ), |
| bStrEdited( sal_False ), |
| bIsUserDefined( sal_False ), |
| bIsMain( sal_False ), |
| bIsParentData( sal_False ), |
| bIsVisible( sal_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 = sal_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 = sal_True ) { bPopUp = bOn; } |
| bool IsPopup() const { return bPopUp; } |
| |
| void SetUserDefined( bool bOn = sal_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 = sal_True ) { bIsMain = bValue; } |
| bool IsMain() { return bIsMain; } |
| |
| void SetParentData( bool bValue = sal_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; } |
| }; |
| |
| 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 sal_Bool NotifyAcceptDrop( SvLBoxEntry* pEntry ); |
| |
| virtual sal_Bool NotifyMoving( SvLBoxEntry*, SvLBoxEntry*, |
| SvLBoxEntry*&, sal_uLong& ); |
| |
| virtual sal_Bool NotifyCopying( SvLBoxEntry*, SvLBoxEntry*, |
| SvLBoxEntry*&, sal_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 = sal_False ); |
| |
| void AddSubMenusToUI( const String& rBaseTitle, |
| SvxConfigEntry* pParentData ); |
| |
| SvLBoxEntry* InsertEntryIntoUI ( SvxConfigEntry* pNewEntryData, |
| sal_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 = sal_False, |
| bool bAllowDuplicates = sal_False ); |
| |
| virtual void MoveEntry( bool bMoveUp ); |
| |
| bool MoveEntryData( SvLBoxEntry* pSourceEntry, |
| SvLBoxEntry* pTargetEntry ); |
| |
| sal_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 = sal_False ); |
| |
| ~SvxMainMenuOrganizerDialog (); |
| |
| SvxEntries* GetEntries(); |
| void SetEntries( SvxEntries* ); |
| SvxConfigEntry* GetSelectedEntry(); |
| }; |
| |
| class SvxToolbarEntriesListBox : public SvxMenuEntriesListBox |
| { |
| Size m_aCheckBoxImageSizePixel; |
| Link m_aChangedListener; |
| SvLBoxButtonData* m_pButtonData; |
| sal_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 sal_Bool NotifyMoving( |
| SvLBoxEntry*, SvLBoxEntry*, SvLBoxEntry*&, sal_uLong& ); |
| |
| virtual sal_Bool NotifyCopying( |
| SvLBoxEntry*, SvLBoxEntry*, SvLBoxEntry*&, sal_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 = sal_False, |
| bool bAllowDuplicates = sal_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 ); |
| |
| 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( const rtl::OString& aHelpId) {aEdtName.SetHelpId(aHelpId);} |
| }; |
| |
| 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& ); |
| sal_uInt16 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 |