836 lines
26 KiB
C++
836 lines
26 KiB
C++
/*************************************************************************
|
|
*
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
|
*
|
|
* $RCSfile: cfg.hxx,v $
|
|
*
|
|
* $Revision: 1.13 $
|
|
*
|
|
* last change: $Author: obo $ $Date: 2006-10-12 12:06:25 $
|
|
*
|
|
* The Contents of this file are made available subject to
|
|
* the terms of GNU Lesser General Public License Version 2.1.
|
|
*
|
|
*
|
|
* GNU Lesser General Public License Version 2.1
|
|
* =============================================
|
|
* Copyright 2005 by Sun Microsystems, Inc.
|
|
* 901 San Antonio Road, Palo Alto, CA 94303, USA
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License version 2.1, as published by the Free Software Foundation.
|
|
*
|
|
* This library 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 for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
|
* MA 02111-1307 USA
|
|
*
|
|
************************************************************************/
|
|
#ifndef _SVXCFG_HXX
|
|
#define _SVXCFG_HXX
|
|
|
|
#ifndef _SV_LSTBOX_HXX //autogen
|
|
#include <vcl/lstbox.hxx>
|
|
#endif
|
|
#ifndef _SV_TOOLBOX_HXX //autogen
|
|
#include <vcl/toolbox.hxx>
|
|
#endif
|
|
#ifndef _SV_FIXED_HXX //autogen
|
|
#include <vcl/fixed.hxx>
|
|
#endif
|
|
#ifndef _SV_GROUP_HXX //autogen
|
|
#include <vcl/group.hxx>
|
|
#endif
|
|
#ifndef _SV_MENUBTN_HXX //autogen
|
|
#include <vcl/menubtn.hxx>
|
|
#endif
|
|
#ifndef _SV_TOOLBOX_HXX //autogen
|
|
#include <vcl/toolbox.hxx>
|
|
#endif
|
|
|
|
#ifndef _SVTREEBOX_HXX //autogen
|
|
#include <svtools/svtreebx.hxx>
|
|
#endif
|
|
#ifndef _SVTOOLS_SVMEDIT2_HXX
|
|
#include <svtools/svmedit2.hxx>
|
|
#endif
|
|
|
|
#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
|
|
#include <com/sun/star/beans/XPropertySet.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_CONTAINER_XINDEXCONTAINER_HPP_
|
|
#include <com/sun/star/container/XIndexContainer.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_CONTAINER_XNAMEACCESS_HPP_
|
|
#include <com/sun/star/container/XNameAccess.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_FRAME_XMODULEMANAGER_HPP_
|
|
#include <com/sun/star/frame/XModuleManager.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_UI_XUICONFIGURATIONLISTENER_HPP_
|
|
#include <com/sun/star/ui/XUIConfigurationListener.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_UI_XUICONFIGURATIONMANAGER_HPP_
|
|
#include <com/sun/star/ui/XUIConfigurationManager.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_UI_XIMAGEMANAGER_HPP_
|
|
#include <com/sun/star/ui/XImageManager.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_GRAPHIC_XGRAPHICPROVIDER_HPP_
|
|
#include <com/sun/star/graphic/XGraphicProvider.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_FRAME_XFRAME_HPP_
|
|
#include <com/sun/star/frame/XFrame.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_FRAME_XSTORABLE_HPP_
|
|
#include <com/sun/star/frame/XStorable.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_UNO_XCOMPONENTCONTEXT_HPP_
|
|
#include <com/sun/star/uno/XComponentContext.hpp>
|
|
#endif
|
|
#ifndef _COM_SUN_STAR_LANG_XSINGLECOMPONENTFACTORY_HPP_
|
|
#include <com/sun/star/lang/XSingleComponentFactory.hpp>
|
|
#endif
|
|
|
|
#ifndef INCLUDED_SVXDLLAPI_H
|
|
#include "svx/svxdllapi.h"
|
|
#endif
|
|
|
|
#define _SVSTDARR_USHORTS
|
|
#define _SVSTDARR_STRINGSDTOR
|
|
#include <svtools/svstdarr.hxx> // SvUShorts
|
|
#include <sfx2/minarray.hxx>
|
|
#include <sfx2/tabdlg.hxx>
|
|
#include <vector>
|
|
|
|
#include "selector.hxx"
|
|
|
|
class SvxConfigEntry;
|
|
class SvxConfigPage;
|
|
class SvxMenuConfigPage;
|
|
class SvxToolbarConfigPage;
|
|
|
|
typedef std::vector< SvxConfigEntry* > SvxEntries;
|
|
|
|
class SVX_DLLPUBLIC 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() );
|
|
}
|
|
};
|
|
|
|
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;
|
|
|
|
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::graphic::XGraphicProvider > m_xGraphProvider;
|
|
|
|
bool ImportGraphic( const rtl::OUString& aURL );
|
|
|
|
void ImportGraphics(
|
|
const com::sun::star::uno::Sequence< rtl::OUString >& aURLs );
|
|
|
|
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 * );
|
|
};
|
|
|
|
#endif // _SVXCFG_HXX
|