1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski #ifndef _SVXCFG_HXX 24*b1cdbd2cSJim Jagielski #define _SVXCFG_HXX 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski #include <vcl/lstbox.hxx> 27*b1cdbd2cSJim Jagielski #include <vcl/toolbox.hxx> 28*b1cdbd2cSJim Jagielski #include <vcl/fixed.hxx> 29*b1cdbd2cSJim Jagielski #include <vcl/group.hxx> 30*b1cdbd2cSJim Jagielski #include <vcl/menubtn.hxx> 31*b1cdbd2cSJim Jagielski #include <vcl/toolbox.hxx> 32*b1cdbd2cSJim Jagielski #include <svtools/svtreebx.hxx> 33*b1cdbd2cSJim Jagielski #include <svtools/svmedit2.hxx> 34*b1cdbd2cSJim Jagielski #include <svtools/svmedit.hxx> 35*b1cdbd2cSJim Jagielski #include <com/sun/star/beans/XPropertySet.hpp> 36*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XIndexContainer.hpp> 37*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XNameAccess.hpp> 38*b1cdbd2cSJim Jagielski #include <com/sun/star/frame/XModuleManager.hpp> 39*b1cdbd2cSJim Jagielski #include <com/sun/star/ui/XUIConfigurationListener.hpp> 40*b1cdbd2cSJim Jagielski #include <com/sun/star/ui/XUIConfigurationManager.hpp> 41*b1cdbd2cSJim Jagielski #include <com/sun/star/ui/XImageManager.hpp> 42*b1cdbd2cSJim Jagielski #include <com/sun/star/graphic/XGraphicProvider.hpp> 43*b1cdbd2cSJim Jagielski #include <com/sun/star/frame/XFrame.hpp> 44*b1cdbd2cSJim Jagielski #include <com/sun/star/frame/XStorable.hpp> 45*b1cdbd2cSJim Jagielski #include <com/sun/star/uno/XComponentContext.hpp> 46*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XSingleComponentFactory.hpp> 47*b1cdbd2cSJim Jagielski 48*b1cdbd2cSJim Jagielski #define _SVSTDARR_USHORTS 49*b1cdbd2cSJim Jagielski #define _SVSTDARR_STRINGSDTOR 50*b1cdbd2cSJim Jagielski #include <svl/svstdarr.hxx> // SvUShorts 51*b1cdbd2cSJim Jagielski #include <sfx2/minarray.hxx> 52*b1cdbd2cSJim Jagielski #include <sfx2/tabdlg.hxx> 53*b1cdbd2cSJim Jagielski #include <vector> 54*b1cdbd2cSJim Jagielski #include <vcl/msgbox.hxx> 55*b1cdbd2cSJim Jagielski 56*b1cdbd2cSJim Jagielski #include "selector.hxx" 57*b1cdbd2cSJim Jagielski 58*b1cdbd2cSJim Jagielski class SvxConfigEntry; 59*b1cdbd2cSJim Jagielski class SvxConfigPage; 60*b1cdbd2cSJim Jagielski class SvxMenuConfigPage; 61*b1cdbd2cSJim Jagielski class SvxToolbarConfigPage; 62*b1cdbd2cSJim Jagielski 63*b1cdbd2cSJim Jagielski typedef std::vector< SvxConfigEntry* > SvxEntries; 64*b1cdbd2cSJim Jagielski 65*b1cdbd2cSJim Jagielski class SvxConfigDialog : public SfxTabDialog 66*b1cdbd2cSJim Jagielski { 67*b1cdbd2cSJim Jagielski private: 68*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > m_xFrame; 69*b1cdbd2cSJim Jagielski 70*b1cdbd2cSJim Jagielski public: 71*b1cdbd2cSJim Jagielski SvxConfigDialog( Window*, const SfxItemSet* ); 72*b1cdbd2cSJim Jagielski ~SvxConfigDialog(); 73*b1cdbd2cSJim Jagielski 74*b1cdbd2cSJim Jagielski virtual void PageCreated( sal_uInt16 nId, SfxTabPage &rPage ); 75*b1cdbd2cSJim Jagielski virtual short Ok(); 76*b1cdbd2cSJim Jagielski 77*b1cdbd2cSJim Jagielski void SetFrame(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& xFrame); 78*b1cdbd2cSJim Jagielski }; 79*b1cdbd2cSJim Jagielski 80*b1cdbd2cSJim Jagielski class SaveInData : public ImageProvider 81*b1cdbd2cSJim Jagielski { 82*b1cdbd2cSJim Jagielski private: 83*b1cdbd2cSJim Jagielski 84*b1cdbd2cSJim Jagielski bool bModified; 85*b1cdbd2cSJim Jagielski 86*b1cdbd2cSJim Jagielski bool bDocConfig; 87*b1cdbd2cSJim Jagielski bool bReadOnly; 88*b1cdbd2cSJim Jagielski 89*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference 90*b1cdbd2cSJim Jagielski < com::sun::star::ui::XUIConfigurationManager > m_xCfgMgr; 91*b1cdbd2cSJim Jagielski 92*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference 93*b1cdbd2cSJim Jagielski < com::sun::star::ui::XUIConfigurationManager > m_xParentCfgMgr; 94*b1cdbd2cSJim Jagielski 95*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference 96*b1cdbd2cSJim Jagielski < com::sun::star::ui::XImageManager > m_xImgMgr; 97*b1cdbd2cSJim Jagielski 98*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference 99*b1cdbd2cSJim Jagielski < com::sun::star::ui::XImageManager > m_xParentImgMgr; 100*b1cdbd2cSJim Jagielski 101*b1cdbd2cSJim Jagielski static ::com::sun::star::uno::Reference 102*b1cdbd2cSJim Jagielski < com::sun::star::ui::XImageManager >* xDefaultImgMgr; 103*b1cdbd2cSJim Jagielski 104*b1cdbd2cSJim Jagielski public: 105*b1cdbd2cSJim Jagielski 106*b1cdbd2cSJim Jagielski SaveInData( 107*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference < 108*b1cdbd2cSJim Jagielski ::com::sun::star::ui::XUIConfigurationManager >& xCfgMgr, 109*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference < 110*b1cdbd2cSJim Jagielski ::com::sun::star::ui::XUIConfigurationManager >& xParentCfgMgr, 111*b1cdbd2cSJim Jagielski const rtl::OUString& aModuleId, 112*b1cdbd2cSJim Jagielski bool docConfig ); 113*b1cdbd2cSJim Jagielski ~SaveInData()114*b1cdbd2cSJim Jagielski ~SaveInData() {} 115*b1cdbd2cSJim Jagielski 116*b1cdbd2cSJim Jagielski bool PersistChanges( 117*b1cdbd2cSJim Jagielski const com::sun::star::uno::Reference 118*b1cdbd2cSJim Jagielski < com::sun::star::uno::XInterface >& xManager ); 119*b1cdbd2cSJim Jagielski SetModified(bool bValue=sal_True)120*b1cdbd2cSJim Jagielski void SetModified( bool bValue = sal_True ) { bModified = bValue; } IsModified()121*b1cdbd2cSJim Jagielski bool IsModified( ) { return bModified; } 122*b1cdbd2cSJim Jagielski IsReadOnly()123*b1cdbd2cSJim Jagielski bool IsReadOnly( ) { return bReadOnly; } IsDocConfig()124*b1cdbd2cSJim Jagielski bool IsDocConfig( ) { return bDocConfig; } 125*b1cdbd2cSJim Jagielski 126*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference 127*b1cdbd2cSJim Jagielski < ::com::sun::star::ui::XUIConfigurationManager > GetConfigManager()128*b1cdbd2cSJim Jagielski GetConfigManager() { return m_xCfgMgr; }; 129*b1cdbd2cSJim Jagielski 130*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference 131*b1cdbd2cSJim Jagielski < ::com::sun::star::ui::XUIConfigurationManager > GetParentConfigManager()132*b1cdbd2cSJim Jagielski GetParentConfigManager() { return m_xParentCfgMgr; }; 133*b1cdbd2cSJim Jagielski 134*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference 135*b1cdbd2cSJim Jagielski < ::com::sun::star::ui::XImageManager > GetImageManager()136*b1cdbd2cSJim Jagielski GetImageManager() { return m_xImgMgr; }; 137*b1cdbd2cSJim Jagielski 138*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference 139*b1cdbd2cSJim Jagielski < ::com::sun::star::ui::XImageManager > GetParentImageManager()140*b1cdbd2cSJim Jagielski GetParentImageManager() { return m_xParentImgMgr; }; 141*b1cdbd2cSJim Jagielski 142*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference 143*b1cdbd2cSJim Jagielski < com::sun::star::lang::XMultiServiceFactory > m_xServiceManager; 144*b1cdbd2cSJim Jagielski 145*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference 146*b1cdbd2cSJim Jagielski < com::sun::star::container::XNameAccess > m_xCommandToLabelMap; 147*b1cdbd2cSJim Jagielski 148*b1cdbd2cSJim Jagielski com::sun::star::uno::Reference 149*b1cdbd2cSJim Jagielski < com::sun::star::uno::XComponentContext > m_xComponentContext; 150*b1cdbd2cSJim Jagielski 151*b1cdbd2cSJim Jagielski com::sun::star::uno::Sequence 152*b1cdbd2cSJim Jagielski < com::sun::star::beans::PropertyValue > m_aSeparatorSeq; 153*b1cdbd2cSJim Jagielski 154*b1cdbd2cSJim Jagielski Image GetImage( const rtl::OUString& rCommandURL ); 155*b1cdbd2cSJim Jagielski 156*b1cdbd2cSJim Jagielski virtual bool HasURL( const rtl::OUString& aURL ) = 0; 157*b1cdbd2cSJim Jagielski virtual bool HasSettings() = 0; 158*b1cdbd2cSJim Jagielski virtual SvxEntries* GetEntries() = 0; 159*b1cdbd2cSJim Jagielski virtual void SetEntries( SvxEntries* ) = 0; 160*b1cdbd2cSJim Jagielski virtual void Reset() = 0; 161*b1cdbd2cSJim Jagielski virtual bool Apply() = 0; 162*b1cdbd2cSJim Jagielski }; 163*b1cdbd2cSJim Jagielski 164*b1cdbd2cSJim Jagielski class MenuSaveInData : public SaveInData 165*b1cdbd2cSJim Jagielski { 166*b1cdbd2cSJim Jagielski private: 167*b1cdbd2cSJim Jagielski 168*b1cdbd2cSJim Jagielski rtl::OUString m_aMenuResourceURL; 169*b1cdbd2cSJim Jagielski rtl::OUString m_aDescriptorContainer; 170*b1cdbd2cSJim Jagielski 171*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference 172*b1cdbd2cSJim Jagielski < com::sun::star::container::XIndexAccess > m_xMenuSettings; 173*b1cdbd2cSJim Jagielski 174*b1cdbd2cSJim Jagielski SvxConfigEntry* pRootEntry; 175*b1cdbd2cSJim Jagielski 176*b1cdbd2cSJim Jagielski // static holder of the default menu data 177*b1cdbd2cSJim Jagielski static MenuSaveInData* pDefaultData; 178*b1cdbd2cSJim Jagielski SetDefaultData(MenuSaveInData * pData)179*b1cdbd2cSJim Jagielski static void SetDefaultData( MenuSaveInData* pData ) {pDefaultData = pData;} GetDefaultData()180*b1cdbd2cSJim Jagielski static MenuSaveInData* GetDefaultData() { return pDefaultData; } 181*b1cdbd2cSJim Jagielski 182*b1cdbd2cSJim Jagielski void Apply( bool bDefault ); 183*b1cdbd2cSJim Jagielski 184*b1cdbd2cSJim Jagielski void Apply( 185*b1cdbd2cSJim Jagielski SvxConfigEntry* pRootEntry, 186*b1cdbd2cSJim Jagielski com::sun::star::uno::Reference< 187*b1cdbd2cSJim Jagielski com::sun::star::container::XIndexContainer >& rNewMenuBar, 188*b1cdbd2cSJim Jagielski com::sun::star::uno::Reference< 189*b1cdbd2cSJim Jagielski com::sun::star::lang::XSingleComponentFactory >& rFactory, 190*b1cdbd2cSJim Jagielski SvLBoxEntry *pParent = NULL ); 191*b1cdbd2cSJim Jagielski 192*b1cdbd2cSJim Jagielski void ApplyMenu( 193*b1cdbd2cSJim Jagielski com::sun::star::uno::Reference< 194*b1cdbd2cSJim Jagielski com::sun::star::container::XIndexContainer >& rNewMenuBar, 195*b1cdbd2cSJim Jagielski com::sun::star::uno::Reference< 196*b1cdbd2cSJim Jagielski com::sun::star::lang::XSingleComponentFactory >& rFactory, 197*b1cdbd2cSJim Jagielski SvxConfigEntry *pMenuData = NULL ); 198*b1cdbd2cSJim Jagielski 199*b1cdbd2cSJim Jagielski bool LoadSubMenus( 200*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 201*b1cdbd2cSJim Jagielski com::sun::star::container::XIndexAccess >& xMenuBarSettings, 202*b1cdbd2cSJim Jagielski const rtl::OUString& rBaseTitle, SvxConfigEntry* pParentData ); 203*b1cdbd2cSJim Jagielski 204*b1cdbd2cSJim Jagielski public: 205*b1cdbd2cSJim Jagielski 206*b1cdbd2cSJim Jagielski MenuSaveInData( 207*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference < 208*b1cdbd2cSJim Jagielski ::com::sun::star::ui::XUIConfigurationManager >&, 209*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference < 210*b1cdbd2cSJim Jagielski ::com::sun::star::ui::XUIConfigurationManager >&, 211*b1cdbd2cSJim Jagielski const rtl::OUString& aModuleId, 212*b1cdbd2cSJim Jagielski bool docConfig ); 213*b1cdbd2cSJim Jagielski 214*b1cdbd2cSJim Jagielski ~MenuSaveInData(); 215*b1cdbd2cSJim Jagielski 216*b1cdbd2cSJim Jagielski // methods inherited from SaveInData 217*b1cdbd2cSJim Jagielski SvxEntries* GetEntries(); 218*b1cdbd2cSJim Jagielski void SetEntries( SvxEntries* ); HasURL(const rtl::OUString & URL)219*b1cdbd2cSJim Jagielski bool HasURL( const rtl::OUString& URL ) { (void)URL; return sal_False; } HasSettings()220*b1cdbd2cSJim Jagielski bool HasSettings() { return m_xMenuSettings.is(); } 221*b1cdbd2cSJim Jagielski void Reset(); 222*b1cdbd2cSJim Jagielski bool Apply(); 223*b1cdbd2cSJim Jagielski }; 224*b1cdbd2cSJim Jagielski 225*b1cdbd2cSJim Jagielski class SvxConfigEntry 226*b1cdbd2cSJim Jagielski { 227*b1cdbd2cSJim Jagielski private: 228*b1cdbd2cSJim Jagielski 229*b1cdbd2cSJim Jagielski // common properties 230*b1cdbd2cSJim Jagielski sal_uInt16 nId; 231*b1cdbd2cSJim Jagielski ::rtl::OUString aHelpText; 232*b1cdbd2cSJim Jagielski ::rtl::OUString aLabel; 233*b1cdbd2cSJim Jagielski ::rtl::OUString aCommand; 234*b1cdbd2cSJim Jagielski ::rtl::OUString aHelpURL; 235*b1cdbd2cSJim Jagielski 236*b1cdbd2cSJim Jagielski bool bPopUp; 237*b1cdbd2cSJim Jagielski bool bStrEdited; 238*b1cdbd2cSJim Jagielski bool bIsUserDefined; 239*b1cdbd2cSJim Jagielski bool bIsMain; 240*b1cdbd2cSJim Jagielski bool bIsDeletable; 241*b1cdbd2cSJim Jagielski bool bIsMovable; 242*b1cdbd2cSJim Jagielski bool bIsParentData; 243*b1cdbd2cSJim Jagielski 244*b1cdbd2cSJim Jagielski // toolbar specific properties 245*b1cdbd2cSJim Jagielski bool bIsVisible; 246*b1cdbd2cSJim Jagielski sal_Int32 nStyle; 247*b1cdbd2cSJim Jagielski 248*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< 249*b1cdbd2cSJim Jagielski ::com::sun::star::graphic::XGraphic > xBackupGraphic; 250*b1cdbd2cSJim Jagielski 251*b1cdbd2cSJim Jagielski SvxEntries *pEntries; 252*b1cdbd2cSJim Jagielski 253*b1cdbd2cSJim Jagielski public: 254*b1cdbd2cSJim Jagielski 255*b1cdbd2cSJim Jagielski SvxConfigEntry( const ::rtl::OUString& rDisplayName, 256*b1cdbd2cSJim Jagielski const ::rtl::OUString& rCommandURL, 257*b1cdbd2cSJim Jagielski bool bPopup = sal_False, 258*b1cdbd2cSJim Jagielski bool bParentData = sal_False ); 259*b1cdbd2cSJim Jagielski SvxConfigEntry()260*b1cdbd2cSJim Jagielski SvxConfigEntry() 261*b1cdbd2cSJim Jagielski : 262*b1cdbd2cSJim Jagielski nId( 0 ), 263*b1cdbd2cSJim Jagielski bPopUp( sal_False ), 264*b1cdbd2cSJim Jagielski bStrEdited( sal_False ), 265*b1cdbd2cSJim Jagielski bIsUserDefined( sal_False ), 266*b1cdbd2cSJim Jagielski bIsMain( sal_False ), 267*b1cdbd2cSJim Jagielski bIsParentData( sal_False ), 268*b1cdbd2cSJim Jagielski bIsVisible( sal_True ), 269*b1cdbd2cSJim Jagielski nStyle( 0 ), 270*b1cdbd2cSJim Jagielski pEntries( 0 ) 271*b1cdbd2cSJim Jagielski {} 272*b1cdbd2cSJim Jagielski 273*b1cdbd2cSJim Jagielski ~SvxConfigEntry(); 274*b1cdbd2cSJim Jagielski GetCommand() const275*b1cdbd2cSJim Jagielski const ::rtl::OUString& GetCommand() const { return aCommand; } SetCommand(const String & rCmd)276*b1cdbd2cSJim Jagielski void SetCommand( const String& rCmd ) { aCommand = rCmd; } 277*b1cdbd2cSJim Jagielski GetName() const278*b1cdbd2cSJim Jagielski const ::rtl::OUString& GetName() const { return aLabel; } SetName(const String & rStr)279*b1cdbd2cSJim Jagielski void SetName( const String& rStr ) { aLabel = rStr; bStrEdited = sal_True; } HasChangedName() const280*b1cdbd2cSJim Jagielski bool HasChangedName() const { return bStrEdited; } 281*b1cdbd2cSJim Jagielski 282*b1cdbd2cSJim Jagielski const ::rtl::OUString& GetHelpText() ; SetHelpText(const String & rStr)283*b1cdbd2cSJim Jagielski void SetHelpText( const String& rStr ) { aHelpText = rStr; } 284*b1cdbd2cSJim Jagielski GetHelpURL() const285*b1cdbd2cSJim Jagielski const ::rtl::OUString& GetHelpURL() const { return aHelpURL; } SetHelpURL(const String & rStr)286*b1cdbd2cSJim Jagielski void SetHelpURL( const String& rStr ) { aHelpURL = rStr; } 287*b1cdbd2cSJim Jagielski SetPopup(bool bOn=sal_True)288*b1cdbd2cSJim Jagielski void SetPopup( bool bOn = sal_True ) { bPopUp = bOn; } IsPopup() const289*b1cdbd2cSJim Jagielski bool IsPopup() const { return bPopUp; } 290*b1cdbd2cSJim Jagielski SetUserDefined(bool bOn=sal_True)291*b1cdbd2cSJim Jagielski void SetUserDefined( bool bOn = sal_True ) { bIsUserDefined = bOn; } IsUserDefined() const292*b1cdbd2cSJim Jagielski bool IsUserDefined() const { return bIsUserDefined; } 293*b1cdbd2cSJim Jagielski IsBinding() const294*b1cdbd2cSJim Jagielski bool IsBinding() const { return !bPopUp; } IsSeparator() const295*b1cdbd2cSJim Jagielski bool IsSeparator() const { return nId == 0; } 296*b1cdbd2cSJim Jagielski GetEntries() const297*b1cdbd2cSJim Jagielski SvxEntries* GetEntries() const { return pEntries; } SetEntries(SvxEntries * entries)298*b1cdbd2cSJim Jagielski void SetEntries( SvxEntries* entries ) { pEntries = entries; } HasEntries() const299*b1cdbd2cSJim Jagielski bool HasEntries() const { return pEntries != NULL; } 300*b1cdbd2cSJim Jagielski SetMain(bool bValue=sal_True)301*b1cdbd2cSJim Jagielski void SetMain( bool bValue = sal_True ) { bIsMain = bValue; } IsMain()302*b1cdbd2cSJim Jagielski bool IsMain() { return bIsMain; } 303*b1cdbd2cSJim Jagielski SetParentData(bool bValue=sal_True)304*b1cdbd2cSJim Jagielski void SetParentData( bool bValue = sal_True ) { bIsParentData = bValue; } IsParentData()305*b1cdbd2cSJim Jagielski bool IsParentData() { return bIsParentData; } 306*b1cdbd2cSJim Jagielski 307*b1cdbd2cSJim Jagielski bool IsMovable(); 308*b1cdbd2cSJim Jagielski bool IsDeletable(); 309*b1cdbd2cSJim Jagielski bool IsRenamable(); 310*b1cdbd2cSJim Jagielski SetVisible(bool b)311*b1cdbd2cSJim Jagielski void SetVisible( bool b ) { bIsVisible = b; } IsVisible() const312*b1cdbd2cSJim Jagielski bool IsVisible() const { return bIsVisible; } 313*b1cdbd2cSJim Jagielski SetBackupGraphic(::com::sun::star::uno::Reference<::com::sun::star::graphic::XGraphic> graphic)314*b1cdbd2cSJim Jagielski void SetBackupGraphic( 315*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< 316*b1cdbd2cSJim Jagielski ::com::sun::star::graphic::XGraphic > graphic ) 317*b1cdbd2cSJim Jagielski { xBackupGraphic = graphic; } 318*b1cdbd2cSJim Jagielski 319*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< 320*b1cdbd2cSJim Jagielski ::com::sun::star::graphic::XGraphic > GetBackupGraphic()321*b1cdbd2cSJim Jagielski GetBackupGraphic() 322*b1cdbd2cSJim Jagielski { return xBackupGraphic; } 323*b1cdbd2cSJim Jagielski IsIconModified()324*b1cdbd2cSJim Jagielski bool IsIconModified() { return xBackupGraphic.is(); } 325*b1cdbd2cSJim Jagielski GetStyle()326*b1cdbd2cSJim Jagielski sal_Int32 GetStyle() { return nStyle; } SetStyle(sal_Int32 style)327*b1cdbd2cSJim Jagielski void SetStyle( sal_Int32 style ) { nStyle = style; } 328*b1cdbd2cSJim Jagielski }; 329*b1cdbd2cSJim Jagielski 330*b1cdbd2cSJim Jagielski class SvxMenuEntriesListBox : public SvTreeListBox 331*b1cdbd2cSJim Jagielski { 332*b1cdbd2cSJim Jagielski private: 333*b1cdbd2cSJim Jagielski SvxConfigPage* pPage; 334*b1cdbd2cSJim Jagielski 335*b1cdbd2cSJim Jagielski protected: 336*b1cdbd2cSJim Jagielski bool m_bIsInternalDrag; 337*b1cdbd2cSJim Jagielski 338*b1cdbd2cSJim Jagielski public: 339*b1cdbd2cSJim Jagielski SvxMenuEntriesListBox( Window*, const ResId& ); 340*b1cdbd2cSJim Jagielski ~SvxMenuEntriesListBox(); 341*b1cdbd2cSJim Jagielski 342*b1cdbd2cSJim Jagielski virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt ); 343*b1cdbd2cSJim Jagielski 344*b1cdbd2cSJim Jagielski virtual sal_Bool NotifyAcceptDrop( SvLBoxEntry* pEntry ); 345*b1cdbd2cSJim Jagielski 346*b1cdbd2cSJim Jagielski virtual sal_Bool NotifyMoving( SvLBoxEntry*, SvLBoxEntry*, 347*b1cdbd2cSJim Jagielski SvLBoxEntry*&, sal_uLong& ); 348*b1cdbd2cSJim Jagielski 349*b1cdbd2cSJim Jagielski virtual sal_Bool NotifyCopying( SvLBoxEntry*, SvLBoxEntry*, 350*b1cdbd2cSJim Jagielski SvLBoxEntry*&, sal_uLong&); 351*b1cdbd2cSJim Jagielski 352*b1cdbd2cSJim Jagielski virtual DragDropMode NotifyStartDrag( 353*b1cdbd2cSJim Jagielski TransferDataContainer&, SvLBoxEntry* ); 354*b1cdbd2cSJim Jagielski 355*b1cdbd2cSJim Jagielski virtual void DragFinished( sal_Int8 ); 356*b1cdbd2cSJim Jagielski 357*b1cdbd2cSJim Jagielski void KeyInput( const KeyEvent& rKeyEvent ); 358*b1cdbd2cSJim Jagielski }; 359*b1cdbd2cSJim Jagielski 360*b1cdbd2cSJim Jagielski class SvxDescriptionEdit : public ExtMultiLineEdit 361*b1cdbd2cSJim Jagielski { 362*b1cdbd2cSJim Jagielski private: 363*b1cdbd2cSJim Jagielski Rectangle m_aRealRect; 364*b1cdbd2cSJim Jagielski 365*b1cdbd2cSJim Jagielski public: 366*b1cdbd2cSJim Jagielski SvxDescriptionEdit( Window* pParent, const ResId& _rId ); ~SvxDescriptionEdit()367*b1cdbd2cSJim Jagielski inline ~SvxDescriptionEdit() {} 368*b1cdbd2cSJim Jagielski 369*b1cdbd2cSJim Jagielski void SetNewText( const String& _rText ); Clear()370*b1cdbd2cSJim Jagielski inline void Clear() { SetNewText( String() ); } 371*b1cdbd2cSJim Jagielski }; 372*b1cdbd2cSJim Jagielski 373*b1cdbd2cSJim Jagielski class SvxConfigPage : public SfxTabPage 374*b1cdbd2cSJim Jagielski { 375*b1cdbd2cSJim Jagielski private: 376*b1cdbd2cSJim Jagielski 377*b1cdbd2cSJim Jagielski bool bInitialised; 378*b1cdbd2cSJim Jagielski SaveInData* pCurrentSaveInData; 379*b1cdbd2cSJim Jagielski 380*b1cdbd2cSJim Jagielski DECL_LINK( SelectSaveInLocation, ListBox * ); 381*b1cdbd2cSJim Jagielski DECL_LINK( AsyncInfoMsg, String* ); 382*b1cdbd2cSJim Jagielski 383*b1cdbd2cSJim Jagielski bool SwapEntryData( SvLBoxEntry* pSourceEntry, SvLBoxEntry* pTargetEntry ); 384*b1cdbd2cSJim Jagielski void AlignControls(); 385*b1cdbd2cSJim Jagielski 386*b1cdbd2cSJim Jagielski protected: 387*b1cdbd2cSJim Jagielski 388*b1cdbd2cSJim Jagielski // the top section of the tab page where top level menus and toolbars 389*b1cdbd2cSJim Jagielski // are displayed in a listbox 390*b1cdbd2cSJim Jagielski FixedLine aTopLevelSeparator; 391*b1cdbd2cSJim Jagielski FixedText aTopLevelLabel; 392*b1cdbd2cSJim Jagielski ListBox aTopLevelListBox; 393*b1cdbd2cSJim Jagielski PushButton aNewTopLevelButton; 394*b1cdbd2cSJim Jagielski MenuButton aModifyTopLevelButton; 395*b1cdbd2cSJim Jagielski 396*b1cdbd2cSJim Jagielski // the contents section where the contents of the selected 397*b1cdbd2cSJim Jagielski // menu or toolbar are displayed 398*b1cdbd2cSJim Jagielski FixedLine aContentsSeparator; 399*b1cdbd2cSJim Jagielski FixedText aContentsLabel; 400*b1cdbd2cSJim Jagielski SvTreeListBox* aContentsListBox; 401*b1cdbd2cSJim Jagielski 402*b1cdbd2cSJim Jagielski PushButton aAddCommandsButton; 403*b1cdbd2cSJim Jagielski MenuButton aModifyCommandButton; 404*b1cdbd2cSJim Jagielski 405*b1cdbd2cSJim Jagielski ImageButton aMoveUpButton; 406*b1cdbd2cSJim Jagielski ImageButton aMoveDownButton; 407*b1cdbd2cSJim Jagielski 408*b1cdbd2cSJim Jagielski FixedText aSaveInText; 409*b1cdbd2cSJim Jagielski ListBox aSaveInListBox; 410*b1cdbd2cSJim Jagielski 411*b1cdbd2cSJim Jagielski FixedText aDescriptionLabel; 412*b1cdbd2cSJim Jagielski SvxDescriptionEdit aDescriptionField; 413*b1cdbd2cSJim Jagielski 414*b1cdbd2cSJim Jagielski SvxScriptSelectorDialog* pSelectorDlg; 415*b1cdbd2cSJim Jagielski 416*b1cdbd2cSJim Jagielski // the ResourceURL to select when opening the dialog 417*b1cdbd2cSJim Jagielski rtl::OUString m_aURLToSelect; 418*b1cdbd2cSJim Jagielski 419*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference 420*b1cdbd2cSJim Jagielski < ::com::sun::star::frame::XFrame > m_xFrame; 421*b1cdbd2cSJim Jagielski 422*b1cdbd2cSJim Jagielski SvxConfigPage( Window*, /* const ResId&, */ const SfxItemSet& ); 423*b1cdbd2cSJim Jagielski virtual ~SvxConfigPage(); 424*b1cdbd2cSJim Jagielski 425*b1cdbd2cSJim Jagielski DECL_LINK( MoveHdl, Button * ); 426*b1cdbd2cSJim Jagielski 427*b1cdbd2cSJim Jagielski virtual SaveInData* CreateSaveInData( 428*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference < 429*b1cdbd2cSJim Jagielski ::com::sun::star::ui::XUIConfigurationManager >&, 430*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference < 431*b1cdbd2cSJim Jagielski ::com::sun::star::ui::XUIConfigurationManager >&, 432*b1cdbd2cSJim Jagielski const rtl::OUString& aModuleId, 433*b1cdbd2cSJim Jagielski bool docConfig ) = 0; 434*b1cdbd2cSJim Jagielski 435*b1cdbd2cSJim Jagielski virtual void Init() = 0; 436*b1cdbd2cSJim Jagielski virtual void UpdateButtonStates() = 0; 437*b1cdbd2cSJim Jagielski virtual short QueryReset() = 0; 438*b1cdbd2cSJim Jagielski 439*b1cdbd2cSJim Jagielski void PositionContentsListBox(); 440*b1cdbd2cSJim Jagielski 441*b1cdbd2cSJim Jagielski SvLBoxEntry* InsertEntry( SvxConfigEntry* pNewEntryData, 442*b1cdbd2cSJim Jagielski SvLBoxEntry* pTarget = NULL, 443*b1cdbd2cSJim Jagielski bool bFront = sal_False ); 444*b1cdbd2cSJim Jagielski 445*b1cdbd2cSJim Jagielski void AddSubMenusToUI( const String& rBaseTitle, 446*b1cdbd2cSJim Jagielski SvxConfigEntry* pParentData ); 447*b1cdbd2cSJim Jagielski 448*b1cdbd2cSJim Jagielski SvLBoxEntry* InsertEntryIntoUI ( SvxConfigEntry* pNewEntryData, 449*b1cdbd2cSJim Jagielski sal_uLong nPos = LIST_APPEND ); 450*b1cdbd2cSJim Jagielski 451*b1cdbd2cSJim Jagielski SvxEntries* FindParentForChild( SvxEntries* pParentEntries, 452*b1cdbd2cSJim Jagielski SvxConfigEntry* pChildData ); 453*b1cdbd2cSJim Jagielski 454*b1cdbd2cSJim Jagielski void ReloadTopLevelListBox( SvxConfigEntry* pSelection = NULL ); 455*b1cdbd2cSJim Jagielski 456*b1cdbd2cSJim Jagielski public: 457*b1cdbd2cSJim Jagielski 458*b1cdbd2cSJim Jagielski static bool CanConfig( const ::rtl::OUString& rModuleId ); 459*b1cdbd2cSJim Jagielski GetSaveInData()460*b1cdbd2cSJim Jagielski SaveInData* GetSaveInData() { return pCurrentSaveInData; } 461*b1cdbd2cSJim Jagielski 462*b1cdbd2cSJim Jagielski SvLBoxEntry* AddFunction( SvLBoxEntry* pTarget = NULL, 463*b1cdbd2cSJim Jagielski bool bFront = sal_False, 464*b1cdbd2cSJim Jagielski bool bAllowDuplicates = sal_False ); 465*b1cdbd2cSJim Jagielski 466*b1cdbd2cSJim Jagielski virtual void MoveEntry( bool bMoveUp ); 467*b1cdbd2cSJim Jagielski 468*b1cdbd2cSJim Jagielski bool MoveEntryData( SvLBoxEntry* pSourceEntry, 469*b1cdbd2cSJim Jagielski SvLBoxEntry* pTargetEntry ); 470*b1cdbd2cSJim Jagielski 471*b1cdbd2cSJim Jagielski sal_Bool FillItemSet( SfxItemSet& ); 472*b1cdbd2cSJim Jagielski void Reset( const SfxItemSet& ); 473*b1cdbd2cSJim Jagielski 474*b1cdbd2cSJim Jagielski virtual bool DeleteSelectedContent() = 0; 475*b1cdbd2cSJim Jagielski virtual void DeleteSelectedTopLevel() = 0; 476*b1cdbd2cSJim Jagielski GetTopLevelSelection()477*b1cdbd2cSJim Jagielski SvxConfigEntry* GetTopLevelSelection() 478*b1cdbd2cSJim Jagielski { 479*b1cdbd2cSJim Jagielski return (SvxConfigEntry*) aTopLevelListBox.GetEntryData( 480*b1cdbd2cSJim Jagielski aTopLevelListBox.GetSelectEntryPos() ); 481*b1cdbd2cSJim Jagielski } 482*b1cdbd2cSJim Jagielski 483*b1cdbd2cSJim Jagielski /** identifies the module in the given frame. If the frame is <NULL/>, a default 484*b1cdbd2cSJim Jagielski frame will be determined beforehand. 485*b1cdbd2cSJim Jagielski 486*b1cdbd2cSJim Jagielski If the given frame is <NULL/>, a default frame will be used: The method the active 487*b1cdbd2cSJim Jagielski frame of the desktop, then the current frame. If both are <NULL/>, 488*b1cdbd2cSJim Jagielski the SfxViewFrame::Current's XFrame is used. If this is <NULL/>, too, an empty string is returned. 489*b1cdbd2cSJim Jagielski 490*b1cdbd2cSJim Jagielski If the given frame is not <NULL/>, or an default frame could be successfully determined, then 491*b1cdbd2cSJim Jagielski the ModuleManager is asked for the module ID of the component in the frame. 492*b1cdbd2cSJim Jagielski */ 493*b1cdbd2cSJim Jagielski static ::rtl::OUString 494*b1cdbd2cSJim Jagielski GetFrameWithDefaultAndIdentify( ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& _inout_rxFrame ); 495*b1cdbd2cSJim Jagielski }; 496*b1cdbd2cSJim Jagielski 497*b1cdbd2cSJim Jagielski class SvxMenuConfigPage : public SvxConfigPage 498*b1cdbd2cSJim Jagielski { 499*b1cdbd2cSJim Jagielski private: 500*b1cdbd2cSJim Jagielski 501*b1cdbd2cSJim Jagielski DECL_LINK( SelectMenu, ListBox * ); 502*b1cdbd2cSJim Jagielski DECL_LINK( SelectMenuEntry, Control * ); 503*b1cdbd2cSJim Jagielski DECL_LINK( NewMenuHdl, Button * ); 504*b1cdbd2cSJim Jagielski DECL_LINK( MenuSelectHdl, MenuButton * ); 505*b1cdbd2cSJim Jagielski DECL_LINK( EntrySelectHdl, MenuButton * ); 506*b1cdbd2cSJim Jagielski DECL_LINK( AddCommandsHdl, Button * ); 507*b1cdbd2cSJim Jagielski DECL_LINK( AddFunctionHdl, SvxScriptSelectorDialog * ); 508*b1cdbd2cSJim Jagielski 509*b1cdbd2cSJim Jagielski void Init(); 510*b1cdbd2cSJim Jagielski void UpdateButtonStates(); 511*b1cdbd2cSJim Jagielski short QueryReset(); 512*b1cdbd2cSJim Jagielski bool DeleteSelectedContent(); 513*b1cdbd2cSJim Jagielski void DeleteSelectedTopLevel(); 514*b1cdbd2cSJim Jagielski 515*b1cdbd2cSJim Jagielski public: 516*b1cdbd2cSJim Jagielski SvxMenuConfigPage( Window *pParent, const SfxItemSet& rItemSet ); 517*b1cdbd2cSJim Jagielski ~SvxMenuConfigPage(); 518*b1cdbd2cSJim Jagielski 519*b1cdbd2cSJim Jagielski SaveInData* CreateSaveInData( 520*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference < 521*b1cdbd2cSJim Jagielski ::com::sun::star::ui::XUIConfigurationManager >&, 522*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference < 523*b1cdbd2cSJim Jagielski ::com::sun::star::ui::XUIConfigurationManager >&, 524*b1cdbd2cSJim Jagielski const rtl::OUString& aModuleId, 525*b1cdbd2cSJim Jagielski bool docConfig ); 526*b1cdbd2cSJim Jagielski }; 527*b1cdbd2cSJim Jagielski 528*b1cdbd2cSJim Jagielski class SvxMainMenuOrganizerDialog : public ModalDialog 529*b1cdbd2cSJim Jagielski { 530*b1cdbd2cSJim Jagielski FixedText aMenuNameText; 531*b1cdbd2cSJim Jagielski Edit aMenuNameEdit; 532*b1cdbd2cSJim Jagielski FixedText aMenuListText; 533*b1cdbd2cSJim Jagielski SvTreeListBox aMenuListBox; 534*b1cdbd2cSJim Jagielski ImageButton aMoveUpButton; 535*b1cdbd2cSJim Jagielski ImageButton aMoveDownButton; 536*b1cdbd2cSJim Jagielski OKButton aOKButton; 537*b1cdbd2cSJim Jagielski CancelButton aCloseButton; 538*b1cdbd2cSJim Jagielski HelpButton aHelpButton; 539*b1cdbd2cSJim Jagielski 540*b1cdbd2cSJim Jagielski SvxEntries* pEntries; 541*b1cdbd2cSJim Jagielski SvLBoxEntry* pNewMenuEntry; 542*b1cdbd2cSJim Jagielski bool bModified; 543*b1cdbd2cSJim Jagielski 544*b1cdbd2cSJim Jagielski void UpdateButtonStates(); 545*b1cdbd2cSJim Jagielski 546*b1cdbd2cSJim Jagielski DECL_LINK( MoveHdl, Button * ); 547*b1cdbd2cSJim Jagielski DECL_LINK( ModifyHdl, Edit * ); 548*b1cdbd2cSJim Jagielski DECL_LINK( SelectHdl, Control* ); 549*b1cdbd2cSJim Jagielski 550*b1cdbd2cSJim Jagielski public: 551*b1cdbd2cSJim Jagielski SvxMainMenuOrganizerDialog ( 552*b1cdbd2cSJim Jagielski Window*, SvxEntries*, 553*b1cdbd2cSJim Jagielski SvxConfigEntry*, bool bCreateMenu = sal_False ); 554*b1cdbd2cSJim Jagielski 555*b1cdbd2cSJim Jagielski ~SvxMainMenuOrganizerDialog (); 556*b1cdbd2cSJim Jagielski 557*b1cdbd2cSJim Jagielski SvxEntries* GetEntries(); 558*b1cdbd2cSJim Jagielski void SetEntries( SvxEntries* ); 559*b1cdbd2cSJim Jagielski SvxConfigEntry* GetSelectedEntry(); 560*b1cdbd2cSJim Jagielski }; 561*b1cdbd2cSJim Jagielski 562*b1cdbd2cSJim Jagielski class SvxToolbarEntriesListBox : public SvxMenuEntriesListBox 563*b1cdbd2cSJim Jagielski { 564*b1cdbd2cSJim Jagielski Size m_aCheckBoxImageSizePixel; 565*b1cdbd2cSJim Jagielski Link m_aChangedListener; 566*b1cdbd2cSJim Jagielski SvLBoxButtonData* m_pButtonData; 567*b1cdbd2cSJim Jagielski sal_Bool m_bHiContrastMode; 568*b1cdbd2cSJim Jagielski SvxConfigPage* pPage; 569*b1cdbd2cSJim Jagielski 570*b1cdbd2cSJim Jagielski void ChangeVisibility( SvLBoxEntry* pEntry ); 571*b1cdbd2cSJim Jagielski 572*b1cdbd2cSJim Jagielski protected: 573*b1cdbd2cSJim Jagielski 574*b1cdbd2cSJim Jagielski virtual void CheckButtonHdl(); 575*b1cdbd2cSJim Jagielski virtual void DataChanged( const DataChangedEvent& rDCEvt ); 576*b1cdbd2cSJim Jagielski void BuildCheckBoxButtonImages( SvLBoxButtonData* ); 577*b1cdbd2cSJim Jagielski Image GetSizedImage( 578*b1cdbd2cSJim Jagielski VirtualDevice& aDev, const Size& aNewSize, const Image& aImage ); 579*b1cdbd2cSJim Jagielski 580*b1cdbd2cSJim Jagielski public: 581*b1cdbd2cSJim Jagielski 582*b1cdbd2cSJim Jagielski SvxToolbarEntriesListBox( 583*b1cdbd2cSJim Jagielski Window* pParent, const ResId& ); 584*b1cdbd2cSJim Jagielski 585*b1cdbd2cSJim Jagielski ~SvxToolbarEntriesListBox(); 586*b1cdbd2cSJim Jagielski SetChangedListener(const Link & aChangedListener)587*b1cdbd2cSJim Jagielski void SetChangedListener( const Link& aChangedListener ) 588*b1cdbd2cSJim Jagielski { m_aChangedListener = aChangedListener; } 589*b1cdbd2cSJim Jagielski GetChangedListener() const590*b1cdbd2cSJim Jagielski const Link& GetChangedListener() const { return m_aChangedListener; } 591*b1cdbd2cSJim Jagielski GetCheckBoxPixelSize() const592*b1cdbd2cSJim Jagielski Size GetCheckBoxPixelSize() const 593*b1cdbd2cSJim Jagielski { return m_aCheckBoxImageSizePixel; } 594*b1cdbd2cSJim Jagielski 595*b1cdbd2cSJim Jagielski virtual sal_Bool NotifyMoving( 596*b1cdbd2cSJim Jagielski SvLBoxEntry*, SvLBoxEntry*, SvLBoxEntry*&, sal_uLong& ); 597*b1cdbd2cSJim Jagielski 598*b1cdbd2cSJim Jagielski virtual sal_Bool NotifyCopying( 599*b1cdbd2cSJim Jagielski SvLBoxEntry*, SvLBoxEntry*, SvLBoxEntry*&, sal_uLong&); 600*b1cdbd2cSJim Jagielski 601*b1cdbd2cSJim Jagielski void KeyInput( const KeyEvent& rKeyEvent ); 602*b1cdbd2cSJim Jagielski }; 603*b1cdbd2cSJim Jagielski 604*b1cdbd2cSJim Jagielski class SvxToolbarConfigPage : public SvxConfigPage 605*b1cdbd2cSJim Jagielski { 606*b1cdbd2cSJim Jagielski private: 607*b1cdbd2cSJim Jagielski 608*b1cdbd2cSJim Jagielski DECL_LINK( SelectToolbar, ListBox * ); 609*b1cdbd2cSJim Jagielski DECL_LINK( SelectToolbarEntry, Control * ); 610*b1cdbd2cSJim Jagielski DECL_LINK( ToolbarSelectHdl, MenuButton * ); 611*b1cdbd2cSJim Jagielski DECL_LINK( EntrySelectHdl, MenuButton * ); 612*b1cdbd2cSJim Jagielski DECL_LINK( NewToolbarHdl, Button * ); 613*b1cdbd2cSJim Jagielski DECL_LINK( AddCommandsHdl, Button * ); 614*b1cdbd2cSJim Jagielski DECL_LINK( AddFunctionHdl, SvxScriptSelectorDialog * ); 615*b1cdbd2cSJim Jagielski DECL_LINK( MoveHdl, Button * ); 616*b1cdbd2cSJim Jagielski 617*b1cdbd2cSJim Jagielski void UpdateButtonStates(); 618*b1cdbd2cSJim Jagielski short QueryReset(); 619*b1cdbd2cSJim Jagielski void Init(); 620*b1cdbd2cSJim Jagielski bool DeleteSelectedContent(); 621*b1cdbd2cSJim Jagielski void DeleteSelectedTopLevel(); 622*b1cdbd2cSJim Jagielski 623*b1cdbd2cSJim Jagielski public: 624*b1cdbd2cSJim Jagielski SvxToolbarConfigPage( Window *pParent, const SfxItemSet& rItemSet ); 625*b1cdbd2cSJim Jagielski ~SvxToolbarConfigPage(); 626*b1cdbd2cSJim Jagielski 627*b1cdbd2cSJim Jagielski SvLBoxEntry* AddFunction( SvLBoxEntry* pTarget = NULL, 628*b1cdbd2cSJim Jagielski bool bFront = sal_False, 629*b1cdbd2cSJim Jagielski bool bAllowDuplicates = sal_True ); 630*b1cdbd2cSJim Jagielski 631*b1cdbd2cSJim Jagielski void MoveEntry( bool bMoveUp ); 632*b1cdbd2cSJim Jagielski 633*b1cdbd2cSJim Jagielski SaveInData* CreateSaveInData( 634*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference < 635*b1cdbd2cSJim Jagielski ::com::sun::star::ui::XUIConfigurationManager >&, 636*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference < 637*b1cdbd2cSJim Jagielski ::com::sun::star::ui::XUIConfigurationManager >&, 638*b1cdbd2cSJim Jagielski const rtl::OUString& aModuleId, 639*b1cdbd2cSJim Jagielski bool docConfig ); 640*b1cdbd2cSJim Jagielski }; 641*b1cdbd2cSJim Jagielski 642*b1cdbd2cSJim Jagielski class ToolbarSaveInData : public SaveInData 643*b1cdbd2cSJim Jagielski { 644*b1cdbd2cSJim Jagielski private: 645*b1cdbd2cSJim Jagielski 646*b1cdbd2cSJim Jagielski SvxConfigEntry* pRootEntry; 647*b1cdbd2cSJim Jagielski rtl::OUString m_aDescriptorContainer; 648*b1cdbd2cSJim Jagielski 649*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference 650*b1cdbd2cSJim Jagielski < com::sun::star::container::XNameAccess > m_xPersistentWindowState; 651*b1cdbd2cSJim Jagielski 652*b1cdbd2cSJim Jagielski bool LoadToolbar( 653*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 654*b1cdbd2cSJim Jagielski com::sun::star::container::XIndexAccess >& xToolBarSettings, 655*b1cdbd2cSJim Jagielski SvxConfigEntry* pParentData ); 656*b1cdbd2cSJim Jagielski 657*b1cdbd2cSJim Jagielski void ApplyToolbar( 658*b1cdbd2cSJim Jagielski com::sun::star::uno::Reference< 659*b1cdbd2cSJim Jagielski com::sun::star::container::XIndexContainer >& rNewToolbarBar, 660*b1cdbd2cSJim Jagielski com::sun::star::uno::Reference< 661*b1cdbd2cSJim Jagielski com::sun::star::lang::XSingleComponentFactory >& rFactory, 662*b1cdbd2cSJim Jagielski SvxConfigEntry *pToolbar = NULL ); 663*b1cdbd2cSJim Jagielski 664*b1cdbd2cSJim Jagielski public: 665*b1cdbd2cSJim Jagielski 666*b1cdbd2cSJim Jagielski ToolbarSaveInData( 667*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference < 668*b1cdbd2cSJim Jagielski ::com::sun::star::ui::XUIConfigurationManager >&, 669*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference < 670*b1cdbd2cSJim Jagielski ::com::sun::star::ui::XUIConfigurationManager >&, 671*b1cdbd2cSJim Jagielski const rtl::OUString& aModuleId, 672*b1cdbd2cSJim Jagielski bool docConfig ); 673*b1cdbd2cSJim Jagielski 674*b1cdbd2cSJim Jagielski ~ToolbarSaveInData(); 675*b1cdbd2cSJim Jagielski 676*b1cdbd2cSJim Jagielski void CreateToolbar( SvxConfigEntry* pToolbar ); 677*b1cdbd2cSJim Jagielski void RestoreToolbar( SvxConfigEntry* pToolbar ); 678*b1cdbd2cSJim Jagielski void RemoveToolbar( SvxConfigEntry* pToolbar ); 679*b1cdbd2cSJim Jagielski void ApplyToolbar( SvxConfigEntry* pToolbar ); 680*b1cdbd2cSJim Jagielski 681*b1cdbd2cSJim Jagielski rtl::OUString GetSystemUIName( const rtl::OUString& rResourceURL ); 682*b1cdbd2cSJim Jagielski 683*b1cdbd2cSJim Jagielski sal_Int32 GetSystemStyle( const rtl::OUString& rResourceURL ); 684*b1cdbd2cSJim Jagielski 685*b1cdbd2cSJim Jagielski void SetSystemStyle( 686*b1cdbd2cSJim Jagielski const rtl::OUString& rResourceURL, sal_Int32 nStyle ); 687*b1cdbd2cSJim Jagielski 688*b1cdbd2cSJim Jagielski void SetSystemStyle( 689*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference 690*b1cdbd2cSJim Jagielski < ::com::sun::star::frame::XFrame > xFrame, 691*b1cdbd2cSJim Jagielski const rtl::OUString& rResourceURL, sal_Int32 nStyle ); 692*b1cdbd2cSJim Jagielski 693*b1cdbd2cSJim Jagielski SvxEntries* GetEntries(); 694*b1cdbd2cSJim Jagielski void SetEntries( SvxEntries* ); 695*b1cdbd2cSJim Jagielski bool HasSettings(); 696*b1cdbd2cSJim Jagielski bool HasURL( const rtl::OUString& rURL ); 697*b1cdbd2cSJim Jagielski void Reset(); 698*b1cdbd2cSJim Jagielski bool Apply(); 699*b1cdbd2cSJim Jagielski }; 700*b1cdbd2cSJim Jagielski 701*b1cdbd2cSJim Jagielski class SvxNewToolbarDialog : public ModalDialog 702*b1cdbd2cSJim Jagielski { 703*b1cdbd2cSJim Jagielski private: 704*b1cdbd2cSJim Jagielski FixedText aFtDescription; 705*b1cdbd2cSJim Jagielski Edit aEdtName; 706*b1cdbd2cSJim Jagielski FixedText aSaveInText; 707*b1cdbd2cSJim Jagielski OKButton aBtnOK; 708*b1cdbd2cSJim Jagielski CancelButton aBtnCancel; 709*b1cdbd2cSJim Jagielski HelpButton aBtnHelp; 710*b1cdbd2cSJim Jagielski 711*b1cdbd2cSJim Jagielski Link aCheckNameHdl; 712*b1cdbd2cSJim Jagielski 713*b1cdbd2cSJim Jagielski DECL_LINK(ModifyHdl, Edit*); 714*b1cdbd2cSJim Jagielski 715*b1cdbd2cSJim Jagielski public: 716*b1cdbd2cSJim Jagielski SvxNewToolbarDialog( Window* pWindow, const String& rName ); 717*b1cdbd2cSJim Jagielski 718*b1cdbd2cSJim Jagielski ListBox aSaveInListBox; 719*b1cdbd2cSJim Jagielski GetName(rtl::OUString & rName)720*b1cdbd2cSJim Jagielski void GetName( rtl::OUString& rName ){rName = aEdtName.GetText();} 721*b1cdbd2cSJim Jagielski SetCheckNameHdl(const Link & rLink,bool bCheckImmediately=false)722*b1cdbd2cSJim Jagielski void SetCheckNameHdl( const Link& rLink, bool bCheckImmediately = false ) 723*b1cdbd2cSJim Jagielski { 724*b1cdbd2cSJim Jagielski aCheckNameHdl = rLink; 725*b1cdbd2cSJim Jagielski if ( bCheckImmediately ) 726*b1cdbd2cSJim Jagielski aBtnOK.Enable( rLink.Call( this ) > 0 ); 727*b1cdbd2cSJim Jagielski } 728*b1cdbd2cSJim Jagielski SetEditHelpId(const rtl::OString & aHelpId)729*b1cdbd2cSJim Jagielski void SetEditHelpId( const rtl::OString& aHelpId) {aEdtName.SetHelpId(aHelpId);} 730*b1cdbd2cSJim Jagielski }; 731*b1cdbd2cSJim Jagielski 732*b1cdbd2cSJim Jagielski class SvxIconSelectorDialog : public ModalDialog 733*b1cdbd2cSJim Jagielski { 734*b1cdbd2cSJim Jagielski private: 735*b1cdbd2cSJim Jagielski FixedText aFtDescription; 736*b1cdbd2cSJim Jagielski ToolBox aTbSymbol; 737*b1cdbd2cSJim Jagielski FixedText aFtNote; 738*b1cdbd2cSJim Jagielski OKButton aBtnOK; 739*b1cdbd2cSJim Jagielski CancelButton aBtnCancel; 740*b1cdbd2cSJim Jagielski HelpButton aBtnHelp; 741*b1cdbd2cSJim Jagielski PushButton aBtnImport; 742*b1cdbd2cSJim Jagielski PushButton aBtnDelete; 743*b1cdbd2cSJim Jagielski FixedLine aFlSeparator; 744*b1cdbd2cSJim Jagielski sal_uInt16 m_nNextId; 745*b1cdbd2cSJim Jagielski 746*b1cdbd2cSJim Jagielski sal_Int32 m_nExpectedSize; 747*b1cdbd2cSJim Jagielski 748*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< 749*b1cdbd2cSJim Jagielski ::com::sun::star::ui::XImageManager > m_xImageManager; 750*b1cdbd2cSJim Jagielski 751*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< 752*b1cdbd2cSJim Jagielski ::com::sun::star::ui::XImageManager > m_xParentImageManager; 753*b1cdbd2cSJim Jagielski 754*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< 755*b1cdbd2cSJim Jagielski ::com::sun::star::ui::XImageManager > m_xImportedImageManager; 756*b1cdbd2cSJim Jagielski 757*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< 758*b1cdbd2cSJim Jagielski ::com::sun::star::graphic::XGraphicProvider > m_xGraphProvider; 759*b1cdbd2cSJim Jagielski 760*b1cdbd2cSJim Jagielski bool ReplaceGraphicItem( const ::rtl::OUString& aURL ); 761*b1cdbd2cSJim Jagielski 762*b1cdbd2cSJim Jagielski bool ImportGraphic( const ::rtl::OUString& aURL ); 763*b1cdbd2cSJim Jagielski 764*b1cdbd2cSJim Jagielski void ImportGraphics( 765*b1cdbd2cSJim Jagielski const com::sun::star::uno::Sequence< rtl::OUString >& aURLs ); 766*b1cdbd2cSJim Jagielski 767*b1cdbd2cSJim Jagielski BitmapEx AutoScaleBitmap(BitmapEx & aBitmap, const long aStandardSize);// Added by shizhoubo 768*b1cdbd2cSJim Jagielski 769*b1cdbd2cSJim Jagielski public: 770*b1cdbd2cSJim Jagielski 771*b1cdbd2cSJim Jagielski SvxIconSelectorDialog( 772*b1cdbd2cSJim Jagielski Window *pWindow, 773*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 774*b1cdbd2cSJim Jagielski ::com::sun::star::ui::XImageManager >& rXImageManager, 775*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 776*b1cdbd2cSJim Jagielski ::com::sun::star::ui::XImageManager >& rXParentImageManager 777*b1cdbd2cSJim Jagielski ); 778*b1cdbd2cSJim Jagielski 779*b1cdbd2cSJim Jagielski ~SvxIconSelectorDialog(); 780*b1cdbd2cSJim Jagielski 781*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XGraphic > 782*b1cdbd2cSJim Jagielski GetSelectedIcon(); 783*b1cdbd2cSJim Jagielski 784*b1cdbd2cSJim Jagielski DECL_LINK( SelectHdl, ToolBox * ); 785*b1cdbd2cSJim Jagielski DECL_LINK( ImportHdl, PushButton * ); 786*b1cdbd2cSJim Jagielski DECL_LINK( DeleteHdl, PushButton * ); 787*b1cdbd2cSJim Jagielski }; 788*b1cdbd2cSJim Jagielski 789*b1cdbd2cSJim Jagielski class SvxIconReplacementDialog : public MessBox 790*b1cdbd2cSJim Jagielski { 791*b1cdbd2cSJim Jagielski public: 792*b1cdbd2cSJim Jagielski SvxIconReplacementDialog( 793*b1cdbd2cSJim Jagielski Window *pWindow, 794*b1cdbd2cSJim Jagielski const rtl::OUString& aMessage, 795*b1cdbd2cSJim Jagielski bool aYestoAll); 796*b1cdbd2cSJim Jagielski 797*b1cdbd2cSJim Jagielski SvxIconReplacementDialog( 798*b1cdbd2cSJim Jagielski Window *pWindow, 799*b1cdbd2cSJim Jagielski const rtl::OUString& aMessage ); 800*b1cdbd2cSJim Jagielski 801*b1cdbd2cSJim Jagielski rtl::OUString ReplaceIconName( const rtl::OUString& ); 802*b1cdbd2cSJim Jagielski sal_uInt16 ShowDialog(); 803*b1cdbd2cSJim Jagielski }; 804*b1cdbd2cSJim Jagielski //added for issue83555 805*b1cdbd2cSJim Jagielski class SvxIconChangeDialog : public ModalDialog 806*b1cdbd2cSJim Jagielski { 807*b1cdbd2cSJim Jagielski private: 808*b1cdbd2cSJim Jagielski FixedImage aFImageInfo; 809*b1cdbd2cSJim Jagielski OKButton aBtnOK; 810*b1cdbd2cSJim Jagielski FixedText aDescriptionLabel; 811*b1cdbd2cSJim Jagielski SvxDescriptionEdit aLineEditDescription; 812*b1cdbd2cSJim Jagielski public: 813*b1cdbd2cSJim Jagielski SvxIconChangeDialog(Window *pWindow, const rtl::OUString& aMessage); 814*b1cdbd2cSJim Jagielski }; 815*b1cdbd2cSJim Jagielski #endif // _SVXCFG_HXX 816