diff options
Diffstat (limited to 'svtools/inc/svtools')
64 files changed, 13082 insertions, 6 deletions
diff --git a/svtools/inc/svtools/DocumentInfoPreview.hxx b/svtools/inc/svtools/DocumentInfoPreview.hxx new file mode 100644 index 000000000000..ae57b1a68b32 --- /dev/null +++ b/svtools/inc/svtools/DocumentInfoPreview.hxx @@ -0,0 +1,61 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef SVTOOLS_DOCUMENTINFOPREVIEW_HXX +#define SVTOOLS_DOCUMENTINFOPREVIEW_HXX + +#include "svtools/svtdllapi.h" +#include <vcl/window.hxx> +#include <com/sun/star/document/XDocumentProperties.hpp> +#include <com/sun/star/lang/Locale.hpp> + +class SvtExtendedMultiLineEdit_Impl; +class SvtDocInfoTable_Impl; + +namespace svtools +{ + class SVT_DLLPUBLIC ODocumentInfoPreview : public Window + { + SvtExtendedMultiLineEdit_Impl* m_pEditWin; + SvtDocInfoTable_Impl* m_pInfoTable; + com::sun::star::lang::Locale m_aLocale; + + public: + ODocumentInfoPreview( Window* pParent ,WinBits _nBits); + virtual ~ODocumentInfoPreview(); + + virtual void Resize(); + void Clear(); + void fill(const ::com::sun::star::uno::Reference< + ::com::sun::star::document::XDocumentProperties>& i_xDocProps + ,const String& i_rURL); + void InsertEntry( const String& rTitle, const String& rValue ); + void SetAutoScroll(BOOL _bAutoScroll); + }; +} + +#endif // SVTOOLS_DOCUMENTINFOPREVIEW_HXX + diff --git a/svtools/inc/svtools/QueryFolderName.hxx b/svtools/inc/svtools/QueryFolderName.hxx new file mode 100644 index 000000000000..971b4b26e13e --- /dev/null +++ b/svtools/inc/svtools/QueryFolderName.hxx @@ -0,0 +1,66 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef SVT_QUERYFOLDER_HXX +#define SVT_QUERYFOLDER_HXX + +#include <vcl/fixed.hxx> +#ifndef _SV_BUTTON_HXX +#include <vcl/button.hxx> +#endif +#include <vcl/edit.hxx> +#include <vcl/dialog.hxx> + +//------------------------------------------------------------------------- +namespace svtools { + +//------------------------------------------------------------------------- +// QueryFolderNameDialog +//------------------------------------------------------------------------- + +class QueryFolderNameDialog : public ModalDialog +{ +private: + FixedText aNameText; + Edit aNameEdit; + FixedLine aNameLine; + OKButton aOKBtn; + CancelButton aCancelBtn; + + DECL_LINK( OKHdl, Button * ); + DECL_LINK( NameHdl, Edit * ); + +public: + QueryFolderNameDialog( Window* _pParent, + const String& rTitle, + const String& rDefaultText, + String* pGroupName = NULL ); + String GetName() const { return aNameEdit.GetText(); } +}; + +} +#endif // SVT_QUERYFOLDER_HXX + diff --git a/svtools/inc/svtools/acceleratorexecute.hxx b/svtools/inc/svtools/acceleratorexecute.hxx new file mode 100644 index 000000000000..3ee79e1fca0c --- /dev/null +++ b/svtools/inc/svtools/acceleratorexecute.hxx @@ -0,0 +1,287 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef INCLUDED_SVTOOLS_ACCELERATOREXECUTE_HXX +#define INCLUDED_SVTOOLS_ACCELERATOREXECUTE_HXX + +//=============================================== +// includes + +#include "svtools/svtdllapi.h" + +#ifndef INCLUDED_VECTOR +#include <vector> +#define INCLUDED_VECTOR +#endif + +#ifndef __COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#endif + +#ifndef __COM_SUN_STAR_FRAME_XFRAME_HPP_ +#include <com/sun/star/frame/XFrame.hpp> +#endif + +#ifndef __COM_SUN_STAR_FRAME_XDISPATCHPROVIDER_HPP_ +#include <com/sun/star/frame/XDispatchProvider.hpp> +#endif + +#ifndef __com_SUN_STAR_UI_XACCELERATORCONFIGURATION_HPP_ +#include <com/sun/star/ui/XAcceleratorConfiguration.hpp> +#endif + +#ifndef __COM_SUN_STAR_UTIL_XURLTRANSFORMER_HPP_ +#include <com/sun/star/util/XURLTransformer.hpp> +#endif +#include <com/sun/star/util/URL.hpp> + +#ifndef __COM_SUN_STAR_AWT_KEYEVENT_HPP_ +#include <com/sun/star/awt/KeyEvent.hpp> +#endif +#include <vcl/keycod.hxx> +#include <vcl/evntpost.hxx> +#include <osl/mutex.h> + +//=============================================== +// namespace + +#ifdef css + #error "Conflict on using css as namespace alias!" +#else + #define css ::com::sun::star +#endif + +namespace svt +{ + +//=============================================== +// definitions + +struct TMutexInit +{ + ::osl::Mutex m_aLock; +}; + +//=============================================== +/** + @descr implements a helper, which can be used to + convert vcl key codes into awt key codes ... + and reverse. + + Further such key code can be triggered. + Doing so different accelerator + configurations are merged together; a suitable + command registered for the given key code is searched + and will be dispatched. + + @attention + + Because exceution of an accelerator command can be dangerous + (in case it force an office shutdown for key "ALT+F4"!) + all internal dispatches are done asynchronous. + Menas that the trigger call doesnt wait till the dispatch + is finished. You can call very often. All requests will be + queued internal and dispatched ASAP. + + Of course this queue will be stopped if the environment + will be destructed ... + */ +class SVT_DLLPUBLIC AcceleratorExecute : private TMutexInit +{ + //------------------------------------------- + // const, types + private: + + /** @deprecated + replaced by internal class AsyncAccelExec ... + remove this resource here if we go forwards to next major */ + typedef ::std::vector< ::std::pair< css::util::URL, css::uno::Reference< css::frame::XDispatch > > > TCommandQueue; + + //------------------------------------------- + // member + private: + + /** TODO document me */ + css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR; + + /** TODO document me */ + css::uno::Reference< css::util::XURLTransformer > m_xURLParser; + + /** TODO document me */ + css::uno::Reference< css::frame::XDispatchProvider > m_xDispatcher; + + /** TODO document me */ + css::uno::Reference< css::ui::XAcceleratorConfiguration > m_xGlobalCfg; + css::uno::Reference< css::ui::XAcceleratorConfiguration > m_xModuleCfg; + css::uno::Reference< css::ui::XAcceleratorConfiguration > m_xDocCfg; + + /** @deprecated + replaced by internal class AsyncAccelExec ... + remove this resource here if we go forwards to next major */ + TCommandQueue m_lCommandQueue; + + /** @deprecated + replaced by internal class AsyncAccelExec ... + remove this resource here if we go forwards to next major */ + ::vcl::EventPoster m_aAsyncCallback; + + //------------------------------------------- + // interface + public: + + //--------------------------------------- + /** @short factory method to create new accelerator + helper instance. + + @descr Such helper instance must be initialized at first. + So it can know its environment (global/module or + document specific). + + Afterwards it can be used to execute incoming + accelerator requests. + + The "end of life" of such helper can be reached as follow: + + - delete the object + => If it stands currently in its execute method, they will + be finished. All further queued requests will be removed + and further not executed! + + - "let it stay alone" + => All currently queued events will be finished. The + helper kills itself afterwards. A shutdown of the + environment will be recognized ... The helper stop its + work immediatly then! + */ + static AcceleratorExecute* createAcceleratorHelper(); + + //--------------------------------------- + /** @short fight against inlining ... */ + virtual ~AcceleratorExecute(); + + //--------------------------------------- + /** @short init this instance. + + @descr It must be called as first method after creation. + And further it can be called more then once ... + but at least its should be used one times only. + Otherwhise nobody can say, which asynchronous + executions will be used inside the old and which one + will be used inside the new environment. + + @param xSMGR + reference to an uno service manager. + + @param xEnv + if it points to a valid frame it will be used + to execute the dispatch there. Further the frame + is used to locate the right module configuration + and use it merged together with the document and + the global configuration. + + If this parameter is set to NULL, the global configuration + is used only. Further the global Desktop instance is + used for dispatch. + */ + virtual void init(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR, + const css::uno::Reference< css::frame::XFrame >& xEnv ); + + //--------------------------------------- + /** @short trigger this accelerator. + + @descr The internal configuartions are used to find + as suitable command for this key code. + This command will be queued and executed later + asynchronous. + + @param aKey + specify the accelerator for execute. + + @return [sal_Bool] + TRUE if this key is configured and match to a command. + Attention: This state does not mean the success state + of the corresponding execute. Because its done asynchronous! + */ + virtual sal_Bool execute(const KeyCode& aKey); + virtual sal_Bool execute(const css::awt::KeyEvent& aKey); + + /** search the command for the given key event. + * + * @param aKey The key event + * @return The command or an empty string if the key event could not be found. + */ + ::rtl::OUString findCommand(const ::com::sun::star::awt::KeyEvent& aKey); + //--------------------------------------- + /** TODO document me */ + static css::awt::KeyEvent st_VCLKey2AWTKey(const KeyCode& aKey); + static KeyCode st_AWTKey2VCLKey(const css::awt::KeyEvent& aKey); + + //--------------------------------------- + /** TODO document me */ + static css::uno::Reference< css::ui::XAcceleratorConfiguration > st_openGlobalConfig(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR); + + //--------------------------------------- + /** TODO document me */ + static css::uno::Reference< css::ui::XAcceleratorConfiguration > st_openModuleConfig(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR , + const css::uno::Reference< css::frame::XFrame >& xFrame); + + //--------------------------------------- + /** TODO document me */ + static css::uno::Reference< css::ui::XAcceleratorConfiguration > st_openDocConfig(const css::uno::Reference< css::frame::XModel >& xModel); + + //------------------------------------------- + // internal + private: + + //--------------------------------------- + /** @short allow creation of instances of this class + by using our factory only! + */ + SVT_DLLPRIVATE AcceleratorExecute(); + + AcceleratorExecute(const AcceleratorExecute& rCopy); + void operator=(const AcceleratorExecute&) {}; + //--------------------------------------- + /** TODO document me */ + SVT_DLLPRIVATE ::rtl::OUString impl_ts_findCommand(const css::awt::KeyEvent& aKey); + + //--------------------------------------- + /** TODO document me */ + SVT_DLLPRIVATE css::uno::Reference< css::util::XURLTransformer > impl_ts_getURLParser(); + + //--------------------------------------- + /** @deprecated + replaced by internal class AsyncAccelExec ... + remove this resource here if we go forwards to next major */ + DECL_DLLPRIVATE_LINK(impl_ts_asyncCallback, void*); +}; + +} // namespace svt + +#undef css + +#endif // INCLUDED_SVTOOLS_ACCELERATOREXECUTE_HXX diff --git a/svtools/inc/svtools/addresstemplate.hxx b/svtools/inc/svtools/addresstemplate.hxx new file mode 100644 index 000000000000..bb4ee44647e9 --- /dev/null +++ b/svtools/inc/svtools/addresstemplate.hxx @@ -0,0 +1,163 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVT_ADDRESSTEMPLATE_HXX_ +#define _SVT_ADDRESSTEMPLATE_HXX_ + +#include "svtools/svtdllapi.h" +#include <vcl/dialog.hxx> +#include <vcl/group.hxx> +#include <vcl/fixed.hxx> +#include <vcl/combobox.hxx> +#include <vcl/button.hxx> +#include <vcl/lstbox.hxx> +#include <vcl/scrbar.hxx> +#include <com/sun/star/container/XNameAccess.hpp> +#ifndef _COM_SUN_STAR_LANG_XSINGLESERVICEFACTORY_HPP_ +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#endif +#include <com/sun/star/util/AliasProgrammaticPair.hpp> +#include <com/sun/star/sdbc/XDataSource.hpp> +#include <unotools/configitem.hxx> + +// ....................................................................... +namespace svt +{ +// ....................................................................... + + // =================================================================== + // = AddressBookSourceDialog + // =================================================================== + struct AddressBookSourceDialogData; + class SVT_DLLPUBLIC AddressBookSourceDialog : public ModalDialog + { + protected: + // Controls + FixedLine m_aDatasourceFrame; + FixedText m_aDatasourceLabel; + ComboBox m_aDatasource; + PushButton m_aAdministrateDatasources; + FixedText m_aTableLabel; + ComboBox m_aTable; + + FixedText m_aFieldsTitle; + Window m_aFieldsFrame; + + ScrollBar m_aFieldScroller; + OKButton m_aOK; + CancelButton m_aCancel; + HelpButton m_aHelp; + + // string to display for "no selection" + const String m_sNoFieldSelection; + + /// the DatabaseContext for selecting data sources + ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > + m_xDatabaseContext; + // the ORB for creating objects + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > + m_xORB; + ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > + m_xCurrentDatasourceTables; + + AddressBookSourceDialogData* + m_pImpl; + + public: + AddressBookSourceDialog( Window* _pParent, + const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB ); + + /** if you use this ctor, the dialog + <ul><li>will not store it's data in the configuration (nor initially retrieve it from there)</li> + <li>will not allow to change the data source name</li> + <li>will not allow to change the table name</li> + <li>will not allow to call the data source administration dialog</li> + </ul> + + @param _rxORB + a service factory to use for various UNO related needs + @param _rxTransientDS + the data source to obtain connections from + @param _rDataSourceName + the to-be name of _rxTransientDS. This is only for displaying this + name to the user, since the dialog completely works on _rxTransientDS, + and doesn't allow to change this. + @param _rTable + the table name to display. It must refer to a valid table, relative to a connection + obtained from <arg>_rxTransientDS</arg> + */ + AddressBookSourceDialog( Window* _pParent, + const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB, + const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDataSource >& _rxTransientDS, + const ::rtl::OUString& _rDataSourceName, + const ::rtl::OUString& _rTable, + const ::com::sun::star::uno::Sequence< ::com::sun::star::util::AliasProgrammaticPair >& _rMapping + ); + + ~AddressBookSourceDialog(); + + // to be used if the object was constructed for editing a field mapping only + void getFieldMapping( + ::com::sun::star::uno::Sequence< ::com::sun::star::util::AliasProgrammaticPair >& _rMapping) const; + + protected: + void implConstruct(); + + // Window overridables + virtual long PreNotify( NotifyEvent& _rNEvt ); + + // implementations + void implScrollFields(sal_Int32 _nPos, sal_Bool _bAdjustFocus, sal_Bool _bAdjustScrollbar); + void implSelectField(ListBox* _pBox, const String& _rText); + + void initalizeListBox(ListBox* _pList); + void resetTables(); + void resetFields(); + + // fill in the data sources listbox + void initializeDatasources(); + + // initialize the dialog from the configuration data + void loadConfiguration(); + + DECL_LINK(OnFieldScroll, ScrollBar*); + DECL_LINK(OnFieldSelect, ListBox*); + DECL_LINK(OnAdministrateDatasources, void*); + DECL_LINK(OnComboGetFocus, ComboBox*); + DECL_LINK(OnComboLoseFocus, ComboBox*); + DECL_LINK(OnComboSelect, ComboBox*); + DECL_LINK(OnOkClicked, Button*); + DECL_LINK(OnDelayedInitialize, void*); + }; + + +// ....................................................................... +} // namespace svt +// ....................................................................... + +#endif // _SVT_ADDRESSTEMPLATE_HXX_ + diff --git a/svtools/inc/svtools/apearcfg.hxx b/svtools/inc/svtools/apearcfg.hxx new file mode 100644 index 000000000000..8e6018424c4c --- /dev/null +++ b/svtools/inc/svtools/apearcfg.hxx @@ -0,0 +1,127 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVT_APEARCFG_HXX +#define _SVT_APEARCFG_HXX + +#include "svtools/svtdllapi.h" +#include "tools/solar.h" +#include <unotools/configitem.hxx> + +class Application; + +/*-------------------------------------------------------------------- + Beschreibung: + --------------------------------------------------------------------*/ +typedef enum { + LookStardivision = 0, + LookMotif, + LookWindows, + LookOSTwo, + LookMacintosh +} SystemLook; + +typedef enum { + SnapToButton = 0, + SnapToMiddle, + NoSnap +} SnapType; + +typedef enum { // MUST match the order chosen in ListBox LB_DRAG_MODE in optgdlg.src + DragFullWindow, + DragFrame, + DragSystemDep +} DragMode; + + +class SVT_DLLPUBLIC SvtTabAppearanceCfg : public utl::ConfigItem +{ + short nLookNFeel ; + short nDragMode ; + short nScaleFactor ; + short nSnapMode ; + short nMiddleMouse; +#if defined( UNX ) || defined ( FS_PRIV_DEBUG ) + short nAAMinPixelHeight ; +#endif + + BOOL bMenuMouseFollow ; + BOOL bSingleLineTabCtrl ; + BOOL bColoredTabCtrl ; +#if defined( UNX ) || defined ( FS_PRIV_DEBUG ) + BOOL bFontAntialiasing ; +#endif + + static sal_Bool bInitialized ; + + SVT_DLLPRIVATE const com::sun::star::uno::Sequence<rtl::OUString>& GetPropertyNames(); + +public: + SvtTabAppearanceCfg( ); + ~SvtTabAppearanceCfg( ); + + virtual void Commit(); + virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString >& _rPropertyNames); + + USHORT GetLookNFeel () const { return nLookNFeel; } + void SetLookNFeel ( USHORT nSet ); + + USHORT GetDragMode () const { return nDragMode; } + void SetDragMode ( USHORT nSet ); + + USHORT GetScaleFactor () const { return nScaleFactor; } + void SetScaleFactor ( USHORT nSet ); + + USHORT GetSnapMode () const { return nSnapMode; } + void SetSnapMode ( USHORT nSet ); + + USHORT GetMiddleMouseButton () const { return nMiddleMouse; } + void SetMiddleMouseButton ( USHORT nSet ); + + void SetApplicationDefaults ( Application* pApp ); + + void SetMenuMouseFollow(BOOL bSet) {bMenuMouseFollow = bSet; SetModified();} + BOOL IsMenuMouseFollow() const{return bMenuMouseFollow;} + + void SetSingleLineTabCtrl(BOOL bSet) {bSingleLineTabCtrl = bSet; SetModified();} + BOOL IsSingleLineTabCtrl()const {return bSingleLineTabCtrl;} + +#if defined( UNX ) || defined ( FS_PRIV_DEBUG ) + void SetFontAntiAliasing( BOOL bSet ) { bFontAntialiasing = bSet; SetModified(); } + BOOL IsFontAntiAliasing() const { return bFontAntialiasing; } + + USHORT GetFontAntialiasingMinPixelHeight( ) const { return nAAMinPixelHeight; } + void SetFontAntialiasingMinPixelHeight( USHORT _nMinHeight ) { nAAMinPixelHeight = _nMinHeight; SetModified(); } +#endif + + void SetColoredTabCtrl(BOOL bSet) {bColoredTabCtrl = bSet; SetModified();}; + BOOL IsColoredTabCtrl()const {return bColoredTabCtrl;} + + static sal_Bool IsInitialized() { return bInitialized; } + static void SetInitialized() { bInitialized = sal_True; } +}; + +#endif // _OFA_APEARCFG_HXX diff --git a/svtools/inc/svtools/asynclink.hxx b/svtools/inc/svtools/asynclink.hxx new file mode 100644 index 000000000000..41c6f3e92388 --- /dev/null +++ b/svtools/inc/svtools/asynclink.hxx @@ -0,0 +1,77 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef SVTOOLS_ASYNCLINK_HXX +#define SVTOOLS_ASYNCLINK_HXX + +#include "svtools/svtdllapi.h" +#include <tools/solar.h> +#include <tools/link.hxx> + +class Timer; + +namespace vos +{ + class OMutex; +} + +namespace svtools { + +class SVT_DLLPUBLIC AsynchronLink +{ + Link _aLink; + ULONG _nEventId; + Timer* _pTimer; + BOOL _bInCall; + BOOL* _pDeleted; + void* _pArg; + vos::OMutex* _pMutex; + + DECL_DLLPRIVATE_STATIC_LINK( AsynchronLink, HandleCall, void* ); + SVT_DLLPRIVATE void Call_Impl( void* pArg ); + +public: + AsynchronLink( const Link& rLink ) : + _aLink( rLink ), _nEventId( 0 ), _pTimer( 0 ), _bInCall( FALSE ), + _pDeleted( 0 ), _pMutex( 0 ){} + AsynchronLink() : _nEventId( 0 ), _pTimer( 0 ), _bInCall( FALSE ), + _pDeleted( 0 ), _pMutex( 0 ){} + ~AsynchronLink(); + + void CreateMutex(); + void operator=( const Link& rLink ) { _aLink = rLink; } + void Call( void* pObj, BOOL bAllowDoubles = FALSE, + BOOL bUseTimer = FALSE ); + void ForcePendingCall( ); + void ClearPendingCall( ); + BOOL IsSet() const { return _aLink.IsSet(); } + Link GetLink() const { return _aLink; } +}; + +} + +#endif diff --git a/svtools/inc/svtools/calendar.hxx b/svtools/inc/svtools/calendar.hxx new file mode 100644 index 000000000000..f85887873bb0 --- /dev/null +++ b/svtools/inc/svtools/calendar.hxx @@ -0,0 +1,501 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _CALENDAR_HXX +#define _CALENDAR_HXX + +#include "svtools/svtdllapi.h" +#include <unotools/calendarwrapper.hxx> +#ifndef _COM_SUN_STAR_I18N_WEEKDAYS_HPP +#include <com/sun/star/i18n/Weekdays.hpp> +#endif + +#ifndef _CTRL_HXX +#include <vcl/ctrl.hxx> +#endif +#include <vcl/timer.hxx> +#ifndef _FIELD_HXX +#include <vcl/field.hxx> +#endif + +class Table; +class MouseEvent; +class TrackingEvent; +class KeyEvent; +class HelpEvent; +class DataChangedEvent; +class FloatingWindow; +class PushButton; +struct ImplDateInfo; +class ImplDateTable; +class ImplCFieldFloatWin; + +/************************************************************************* + +Beschreibung +============ + +class Calendar + +Diese Klasse erlaubt die Auswahl eines Datum. Der Datumsbereich der +angezeigt wird, ist der, der durch die Klasse Date vorgegeben ist. +Es werden soviele Monate angezeigt, wie die Ausgabeflaeche des +Controls vorgibt. Der Anwender kann zwischen den Monaten ueber ein +ContextMenu (Bei Click auf den Monatstitel) oder durch 2 ScrollButtons +zwischen den Monaten wechseln. + +-------------------------------------------------------------------------- + +WinBits + +WB_BORDER Um das Fenster wird ein Border gezeichnet. +WB_TABSTOP Tastatursteuerung ist moeglich. Der Focus wird + sich geholt, wenn mit der Maus in das + Control geklickt wird. +WB_QUICKHELPSHOWSDATEINFO DateInfo auch bei QuickInfo als BalloonHelp zeigen +WB_BOLDTEXT Formatiert wird nach fetten Texten und + DIB_BOLD wird bei AddDateInfo() ausgewertet +WB_FRAMEINFO Formatiert wird so, das Frame-Info angezeigt + werden kann und die FrameColor bei AddDateInfo() + ausgewertet wird +WB_RANGESELECT Es koennen mehrere Tage selektiert werden, die + jedoch alle zusammenhaengend sein muessen +WB_MULTISELECT Es koennen mehrere Tage selektiert werden +WB_WEEKNUMBER Es werden die Wochentage mit angezeigt + +-------------------------------------------------------------------------- + +Mit SetCurDate() / GetCurDate() wird das ausgewaehlte Datum gesetzt und +abgefragt. Wenn der Anwnder ein Datum selektiert hat, wird Select() +gerufen. Bei einem Doppelklick auf ein Datum wird DoubleClick() gerufen. + +-------------------------------------------------------------------------- + +Mit CalcWindowSizePixel() kann die Groesse des Fensters in Pixel fuer +die Darstellung einer bestimmte Anzahl von Monaten berechnet werden. + +-------------------------------------------------------------------------- + +Mit SetSaturdayColor() kann eine spezielle Farbe fuer Sonnabende gesetzt +werden und mit SetSundayColor() eine fuer Sonntage. Mit AddDateInfo() +koennen Tage speziell gekennzeichnet werden. Dabei kann man einem +einzelnen Datum eine andere Farbe geben (zum Beispiel fuer Feiertage) +oder diese Umranden (zum Beispiel fuer Termine). Wenn beim Datum +kein Jahr angegeben wird, wird der Tag in jedem Jahr benutzt. Mit +AddDateInfo() kann auch jedem Datum ein Text mitgegeben werden, der +dann angezeigt wird, wenn Balloon-Hilfe an ist. Um nicht alle Jahre +mit entsprechenden Daten zu versorgen, wird der RequestDateInfo()- +Handler gerufen, wenn ein neues Jahr angezeigt wird. Es kann dann +im Handler mit GetRequestYear() das Jahr abgefragt werden. + +-------------------------------------------------------------------------- + +Um ein ContextMenu zu einem Datum anzuzeigen, muss man den Command-Handler +ueberlagern. Mit GetDate() kann zur Mouse-Position das Datum ermittelt +werden. Bei Tastaturausloesung sollte das aktuelle Datum genommen werden. +Wenn ein ContextMenu angezeigt wird, darf der Handler der Basisklasse nicht +gerufen werden. + +-------------------------------------------------------------------------- + +Bei Mehrfachselektion WB_RANGESELECT oder WB_MULTISELECT kann mit +SelectDate()/SelectDateRange() Datumsbereiche selektiert/deselektiert +werden. SelectDateRange() gilt inkl. EndDatum. Mit SetNoSelection() kann +alles deselektiert werden. SetCurDate() selektiert bei Mehrfachselektion +jedoch nicht das Datum mit, sondern gibt nur das Focus-Rechteck vor. + +Den selektierten Bereich kann man mit GetSelectDateCount()/GetSelectDate() +abgefragt werden oder der Status von einem Datum kann mit IsDateSelected() +abgefragt werden. + +Waehrend der Anwender am selektieren ist, wird der SelectionChanging()- +Handler gerufen. In diesem kann der selektierte Bereich angepasst werden, +wenn man beispielsweise den Bereich eingrenzen oder erweitern will. Der +Bereich wird mit SelectDate()/SelectDateRange() umgesetzt und mit +GetSelectDateCount()/GetSelectDate() abgefragt. Wenn man wissen moechte, +in welche Richtung selektiert wird, kann dies ueber IsSelectLeft() +abgefragt werden. TRUE bedeutet eine Selektion nach links oder oben, +FALSE eine Selektion nach rechts oder unten. + +-------------------------------------------------------------------------- + +Wenn sich der Date-Range-Bereich anpasst und man dort die Selektion +uebernehmen will, sollte dies nur gemacht werden, wenn +IsScrollDateRangeChanged() TRUE zurueckliefert. Denn diese Methode liefert +TRUE zurueck, wenn der Bereich durch Betaetigung von den Scroll-Buttons +ausgeloest wurde. Bei FALSE wurde dies durch Resize(), Methoden-Aufrufen +oder durch Beendigung einer Selektion ausgeloest. + +*************************************************************************/ + +// ------------------ +// - Calendar-Types - +// ------------------ + +#define WB_QUICKHELPSHOWSDATEINFO ((WinBits)0x00004000) +#define WB_BOLDTEXT ((WinBits)0x00008000) +#define WB_FRAMEINFO ((WinBits)0x00010000) +#define WB_WEEKNUMBER ((WinBits)0x00020000) +// Muss mit den WinBits beim TabBar uebereinstimmen oder mal +// nach \vcl\inc\wintypes.hxx verlagert werden +#ifndef WB_RANGESELECT +#define WB_RANGESELECT ((WinBits)0x00200000) +#endif +#ifndef WB_MULTISELECT +#define WB_MULTISELECT ((WinBits)0x00400000) +#endif + +#define DIB_BOLD ((USHORT)0x0001) + +// ------------ +// - Calendar - +// ------------ + +class SVT_DLLPUBLIC Calendar : public Control +{ +private: + ImplDateTable* mpDateTable; + Table* mpSelectTable; + Table* mpOldSelectTable; + Table* mpRestoreSelectTable; + XubString* mpDayText[31]; + XubString maDayText; + XubString maWeekText; + CalendarWrapper maCalendarWrapper; + Rectangle maPrevRect; + Rectangle maNextRect; + String maDayOfWeekText; + sal_Int32 mnDayOfWeekAry[7]; + Date maOldFormatFirstDate; + Date maOldFormatLastDate; + Date maFirstDate; + Date maOldFirstDate; + Date maCurDate; + Date maOldCurDate; + Date maAnchorDate; + Date maDropDate; + Color maSelColor; + Color maOtherColor; + Color* mpStandardColor; + Color* mpSaturdayColor; + Color* mpSundayColor; + ULONG mnDayCount; + long mnDaysOffX; + long mnWeekDayOffY; + long mnDaysOffY; + long mnMonthHeight; + long mnMonthWidth; + long mnMonthPerLine; + long mnLines; + long mnDayWidth; + long mnDayHeight; + long mnWeekWidth; + long mnDummy2; + long mnDummy3; + long mnDummy4; + WinBits mnWinStyle; + USHORT mnFirstYear; + USHORT mnLastYear; + USHORT mnRequestYear; + BOOL mbCalc:1, + mbFormat:1, + mbDrag:1, + mbSelection:1, + mbMultiSelection:1, + mbWeekSel:1, + mbUnSel:1, + mbMenuDown:1, + mbSpinDown:1, + mbPrevIn:1, + mbNextIn:1, + mbDirect:1, + mbInSelChange:1, + mbTravelSelect:1, + mbScrollDateRange:1, + mbSelLeft:1, + mbAllSel:1, + mbDropPos:1; + Link maSelectionChangingHdl; + Link maDateRangeChangedHdl; + Link maRequestDateInfoHdl; + Link maDoubleClickHdl; + Link maSelectHdl; + Timer maDragScrollTimer; + USHORT mnDragScrollHitTest; + +#ifdef _SV_CALENDAR_CXX + using Control::ImplInitSettings; + using Window::ImplInit; + SVT_DLLPRIVATE void ImplInit( WinBits nWinStyle ); + SVT_DLLPRIVATE void ImplInitSettings(); + SVT_DLLPRIVATE void ImplGetWeekFont( Font& rFont ) const; + SVT_DLLPRIVATE void ImplFormat(); + using Window::ImplHitTest; + SVT_DLLPRIVATE USHORT ImplHitTest( const Point& rPos, Date& rDate ) const; + SVT_DLLPRIVATE void ImplDrawSpin( BOOL bDrawPrev = TRUE, BOOL bDrawNext = TRUE ); + SVT_DLLPRIVATE void ImplDrawDate( long nX, long nY, + USHORT nDay, USHORT nMonth, USHORT nYear, + DayOfWeek eDayOfWeek, + BOOL bBack = TRUE, BOOL bOther = FALSE, + ULONG nToday = 0 ); + SVT_DLLPRIVATE void ImplDraw( BOOL bPaint = FALSE ); + SVT_DLLPRIVATE void ImplUpdateDate( const Date& rDate ); + SVT_DLLPRIVATE void ImplUpdateSelection( Table* pOld ); + SVT_DLLPRIVATE void ImplMouseSelect( const Date& rDate, USHORT nHitTest, + BOOL bMove, BOOL bExpand, BOOL bExtended ); + SVT_DLLPRIVATE void ImplUpdate( BOOL bCalcNew = FALSE ); + using Window::ImplScroll; + SVT_DLLPRIVATE void ImplScroll( BOOL bPrev ); + SVT_DLLPRIVATE void ImplInvertDropPos(); + SVT_DLLPRIVATE void ImplShowMenu( const Point& rPos, const Date& rDate ); + SVT_DLLPRIVATE void ImplTracking( const Point& rPos, BOOL bRepeat ); + SVT_DLLPRIVATE void ImplEndTracking( BOOL bCancel ); + SVT_DLLPRIVATE DayOfWeek ImplGetWeekStart() const; +#endif + +protected: + BOOL ShowDropPos( const Point& rPos, Date& rDate ); + void HideDropPos(); + + DECL_STATIC_LINK( Calendar, ScrollHdl, Timer *); + +public: + Calendar( Window* pParent, WinBits nWinStyle = 0 ); + Calendar( Window* pParent, const ResId& rResId ); + ~Calendar(); + + virtual void MouseButtonDown( const MouseEvent& rMEvt ); + virtual void MouseButtonUp( const MouseEvent& rMEvt ); + virtual void MouseMove( const MouseEvent& rMEvt ); + virtual void Tracking( const TrackingEvent& rMEvt ); + virtual void KeyInput( const KeyEvent& rKEvt ); + virtual void Paint( const Rectangle& rRect ); + virtual void Resize(); + virtual void GetFocus(); + virtual void LoseFocus(); + virtual void RequestHelp( const HelpEvent& rHEvt ); + virtual void Command( const CommandEvent& rCEvt ); + virtual void StateChanged( StateChangedType nStateChange ); + virtual void DataChanged( const DataChangedEvent& rDCEvt ); + + virtual void SelectionChanging(); + virtual void DateRangeChanged(); + virtual void RequestDateInfo(); + virtual void DoubleClick(); + virtual void Select(); + + const CalendarWrapper& GetCalendarWrapper() const { return maCalendarWrapper; } + + /// Set one of ::com::sun::star::i18n::Weekdays. + void SetWeekStart( sal_Int16 nDay ); + + /// Set how many days of a week must reside in the first week of a year. + void SetMinimumNumberOfDaysInWeek( sal_Int16 nDays ); + + void SelectDate( const Date& rDate, BOOL bSelect = TRUE ); + void SelectDateRange( const Date& rStartDate, const Date& rEndDate, + BOOL bSelect = TRUE ); + void SetNoSelection(); + BOOL IsDateSelected( const Date& rDate ) const; + ULONG GetSelectDateCount() const; + Date GetSelectDate( ULONG nIndex = 0 ) const; + void EnableCallEverySelect( BOOL bEvery = TRUE ) { mbAllSel = bEvery; } + BOOL IsCallEverySelectEnabled() const { return mbAllSel; } + + USHORT GetRequestYear() const { return mnRequestYear; } + void SetCurDate( const Date& rNewDate ); + Date GetCurDate() const { return maCurDate; } + void SetFirstDate( const Date& rNewFirstDate ); + Date GetFirstDate() const { return maFirstDate; } + Date GetLastDate() const { return GetFirstDate() + mnDayCount; } + ULONG GetDayCount() const { return mnDayCount; } + Date GetFirstMonth() const; + Date GetLastMonth() const; + USHORT GetMonthCount() const; + BOOL GetDate( const Point& rPos, Date& rDate ) const; + Rectangle GetDateRect( const Date& rDate ) const; + BOOL GetDropDate( Date& rDate ) const; + + long GetCurMonthPerLine() const { return mnMonthPerLine; } + long GetCurLines() const { return mnLines; } + + void SetStandardColor( const Color& rColor ); + const Color& GetStandardColor() const; + void SetSaturdayColor( const Color& rColor ); + const Color& GetSaturdayColor() const; + void SetSundayColor( const Color& rColor ); + const Color& GetSundayColor() const; + + void AddDateInfo( const Date& rDate, const XubString& rText, + const Color* pTextColor = NULL, + const Color* pFrameColor = NULL, + USHORT nFlags = 0 ); + void RemoveDateInfo( const Date& rDate ); + void ClearDateInfo(); + XubString GetDateInfoText( const Date& rDate ); + + void StartSelection(); + void EndSelection(); + + BOOL IsTravelSelect() const { return mbTravelSelect; } + BOOL IsScrollDateRangeChanged() const { return mbScrollDateRange; } + BOOL IsSelectLeft() const { return mbSelLeft; } + + Size CalcWindowSizePixel( long nCalcMonthPerLine = 1, + long nCalcLines = 1 ) const; + + void SetSelectionChangingHdl( const Link& rLink ) { maSelectionChangingHdl = rLink; } + const Link& GetSelectionChangingHdl() const { return maSelectionChangingHdl; } + void SetDateRangeChangedHdl( const Link& rLink ) { maDateRangeChangedHdl = rLink; } + const Link& GetDateRangeChangedHdl() const { return maDateRangeChangedHdl; } + void SetRequestDateInfoHdl( const Link& rLink ) { maRequestDateInfoHdl = rLink; } + const Link& GetRequestDateInfoHdl() const { return maRequestDateInfoHdl; } + void SetDoubleClickHdl( const Link& rLink ) { maDoubleClickHdl = rLink; } + const Link& GetDoubleClickHdl() const { return maDoubleClickHdl; } + void SetSelectHdl( const Link& rLink ) { maSelectHdl = rLink; } + const Link& GetSelectHdl() const { return maSelectHdl; } +}; + +inline const Color& Calendar::GetStandardColor() const +{ + if ( mpStandardColor ) + return *mpStandardColor; + else + return GetFont().GetColor(); +} + +inline const Color& Calendar::GetSaturdayColor() const +{ + if ( mpSaturdayColor ) + return *mpSaturdayColor; + else + return GetFont().GetColor(); +} + +inline const Color& Calendar::GetSundayColor() const +{ + if ( mpSundayColor ) + return *mpSundayColor; + else + return GetFont().GetColor(); +} + +/************************************************************************* + +Beschreibung +============ + +class CalendarField + +Bei dieser Klasse handelt es sich um ein DateField, wo ueber einen +DropDown-Button ueber das Calendar-Control ein Datum ausgewaehlt werden +kann. + +-------------------------------------------------------------------------- + +WinBits + +Siehe DateField + +Die Vorgaben fuer das CalendarControl koennen ueber SetCalendarStyle() +gesetzt werden. + +-------------------------------------------------------------------------- + +Mit EnableToday()/EnableNone() kann ein Today-Button und ein None-Button +enabled werden. + +-------------------------------------------------------------------------- + +Wenn mit SetCalendarStyle() WB_RANGESELECT gesetzt wird, koennen im +Calendar auch mehrere Tage selektiert werden. Da immer nur das Start-Datum +in das Feld uebernommen wird, sollte dann im Select-Handler mit +GetCalendar() der Calendar abgefragt werden und an dem mit +GetSelectDateCount()/GetSelectDate() der selektierte Bereich abgefragt +werden, um beispielsweise diese dann in ein weiteres Feld zu uebernehmen. + +-------------------------------------------------------------------------- + +Wenn ein abgeleiteter Calendar verwendet werden soll, kann am +CalendarField die Methode CreateCalendar() ueberlagert werden und +dort ein eigener Calendar erzeugt werden. + +*************************************************************************/ + +// ----------------- +// - CalendarField - +// ----------------- + +class SVT_DLLPUBLIC CalendarField : public DateField +{ +private: + ImplCFieldFloatWin* mpFloatWin; + Calendar* mpCalendar; + WinBits mnCalendarStyle; + PushButton* mpTodayBtn; + PushButton* mpNoneBtn; + Date maDefaultDate; + BOOL mbToday; + BOOL mbNone; + Link maSelectHdl; + +#ifdef _SV_CALENDAR_CXX + DECL_DLLPRIVATE_LINK( ImplSelectHdl, Calendar* ); + DECL_DLLPRIVATE_LINK( ImplClickHdl, PushButton* ); + DECL_DLLPRIVATE_LINK( ImplPopupModeEndHdl, FloatingWindow* ); +#endif + +public: + CalendarField( Window* pParent, WinBits nWinStyle ); + CalendarField( Window* pParent, const ResId& rResId ); + ~CalendarField(); + + virtual void Select(); + + virtual BOOL ShowDropDown( BOOL bShow ); + virtual Calendar* CreateCalendar( Window* pParent ); + Calendar* GetCalendar(); + + void SetDefaultDate( const Date& rDate ) { maDefaultDate = rDate; } + Date GetDefaultDate() const { return maDefaultDate; } + + void EnableToday( BOOL bToday = TRUE ) { mbToday = bToday; } + BOOL IsTodayEnabled() const { return mbToday; } + void EnableNone( BOOL bNone = TRUE ) { mbNone = bNone; } + BOOL IsNoneEnabled() const { return mbNone; } + + void SetCalendarStyle( WinBits nStyle ) { mnCalendarStyle = nStyle; } + WinBits GetCalendarStyle() const { return mnCalendarStyle; } + + void SetSelectHdl( const Link& rLink ) { maSelectHdl = rLink; } + const Link& GetSelectHdl() const { return maSelectHdl; } + +protected: + virtual void StateChanged( StateChangedType nStateChange ); +}; + +#endif // _CALENDAR_HXX diff --git a/svtools/inc/svtools/cliplistener.hxx b/svtools/inc/svtools/cliplistener.hxx new file mode 100644 index 000000000000..ab20d6d7aa20 --- /dev/null +++ b/svtools/inc/svtools/cliplistener.hxx @@ -0,0 +1,61 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _CLIPLISTENER_HXX +#define _CLIPLISTENER_HXX + +#include "svtools/svtdllapi.h" +#include <tools/link.hxx> +#include <cppuhelper/implbase1.hxx> +#include <com/sun/star/datatransfer/clipboard/XClipboardListener.hpp> + +class Window; + + +class SVT_DLLPUBLIC TransferableClipboardListener : public ::cppu::WeakImplHelper1< + ::com::sun::star::datatransfer::clipboard::XClipboardListener > +{ + Link aLink; + +public: + // Link is called with a TransferableDataHelper pointer + TransferableClipboardListener( const Link& rCallback ); + ~TransferableClipboardListener(); + + void AddRemoveListener( Window* pWin, BOOL bAdd ); + void ClearCallbackLink(); + + // XEventListener + virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) + throw(::com::sun::star::uno::RuntimeException); + // XClipboardListener + virtual void SAL_CALL changedContents( const ::com::sun::star::datatransfer::clipboard::ClipboardEvent& event ) + throw(::com::sun::star::uno::RuntimeException); +}; + +#endif + diff --git a/svtools/inc/svtools/collatorres.hxx b/svtools/inc/svtools/collatorres.hxx new file mode 100644 index 000000000000..63b4e7ef64f3 --- /dev/null +++ b/svtools/inc/svtools/collatorres.hxx @@ -0,0 +1,24 @@ + +#ifndef SVTOOLS_COLLATORRESSOURCE_HXX +#define SVTOOLS_COLLATORRESSOURCE_HXX + +#include "svtools/svtdllapi.h" +#include <tools/string.hxx> + +class CollatorRessourceData; + +class SVT_DLLPUBLIC CollatorRessource +{ + private: + + CollatorRessourceData *mp_Data; + + public: + CollatorRessource (); + ~CollatorRessource (); + const String& GetTranslation (const String& r_Algorithm); +}; + +#endif /* SVTOOLS_COLLATORRESSOURCE_HXX */ + + diff --git a/svtools/inc/svtools/contextmenuhelper.hxx b/svtools/inc/svtools/contextmenuhelper.hxx new file mode 100644 index 000000000000..54d254309b1e --- /dev/null +++ b/svtools/inc/svtools/contextmenuhelper.hxx @@ -0,0 +1,130 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef INCLUDED_SVTOOLS_CONTEXTMENUHELPER_HXX +#define INCLUDED_SVTOOLS_CONTEXTMENUHELPER_HXX + +#include <com/sun/star/frame/XFrame.hpp> +#include <com/sun/star/awt/XPopupMenu.hpp> +#include <com/sun/star/util/XURLTransformer.hpp> +#include <com/sun/star/ui/XImageManager.hpp> +#include <com/sun/star/container/XNameAccess.hpp> + +#include <rtl/ustring.hxx> +#include <cppuhelper/weak.hxx> +#include <vcl/menu.hxx> +#include "svtools/svtdllapi.h" + +namespace svt +{ + +/** + Context menu helper class. + + Fills images and labels for a provided popup menu or + com.sun.star.awt.XPopupMenu. + + PRECONDITION: + All commands must be set via SetItemCommand and are part + of the configuration files + (see org.openoffice.Office.UI.[Module]Commands.xcu) +*/ +struct ExecuteInfo; +class SVT_DLLPUBLIC ContextMenuHelper +{ + public: + // create context menu helper + // ARGS: xFrame = frame defines the context of the context menu + // bAutoRefresh = specifies that the context will be constant or not + ContextMenuHelper( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& xFrame, bool bAutoRefresh=true ); + ~ContextMenuHelper(); + + // methods to complete a popup menu (set images, labels, enable/disable states) + // ATTENTION: The item ID's must be unique for the whole popup (inclusive the sub menus!) + void completeAndExecute( const Point& aPos, PopupMenu& aPopupMenu ); + void completeAndExecute( const Point& aPos, const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XPopupMenu >& xPopupMenu ); + + // methods to create a popup menu referenced by resource URL + // NOT IMPLEMENTED YET! + ::com::sun::star::uno::Reference< ::com::sun::star::awt::XPopupMenu > create( const ::rtl::OUString& aPopupMenuResourceURL ); + + // method to create and execute a popup menu referenced by a resource URL + // NOT IMPLEMENTED YET! + bool createAndExecute( const Point& aPos, const ::rtl::OUString& aPopupMenuResourceURL ); + + private: + // asynchronous link to prevent destruction while on stack + DECL_STATIC_LINK( ContextMenuHelper, ExecuteHdl_Impl, ExecuteInfo* ); + + // no copy-ctor and operator= + ContextMenuHelper( const ContextMenuHelper& ); + const ContextMenuHelper& operator=( const ContextMenuHelper& ); + + // show context menu and dispatch command automatically + void executePopupMenu( const Point& aPos, PopupMenu* pMenu ); + + // fill image and label for every menu item on the provided menu + void completeMenuProperties( Menu* pMenu ); + + // dispatch provided command + bool dispatchCommand( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& xFrame, const ::rtl::OUString& aCommandURL ); + + + // methods to retrieve a single command URL dependent value from a + // ui configuratin manager + Image getImageFromCommandURL( const ::rtl::OUString& aCmdURL, bool bHiContrast ) const; + rtl::OUString getLabelFromCommandURL( const ::rtl::OUString& aCmdURL ) const; + + // creates an association between current module/controller bound to the + // provided frame and their ui configuration managers. + bool associateUIConfigurationManagers(); + + // resets associations to create associations again on-demand. + // Usefull for implementations which recycle frames. Normal + // implementations can profit from caching and should set + // auto refresh on ctor to false (default). + void resetAssociations() + { + if ( m_bAutoRefresh ) + m_bUICfgMgrAssociated = false; + } + + ::com::sun::star::uno::WeakReference< ::com::sun::star::frame::XFrame > m_xWeakFrame; + ::rtl::OUString m_aModuleIdentifier; + ::rtl::OUString m_aSelf; + ::com::sun::star::uno::Reference< ::com::sun::star::util::XURLTransformer > m_xURLTransformer; + ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > m_aDefaultArgs; + ::com::sun::star::uno::Reference< ::com::sun::star::ui::XImageManager > m_xDocImageMgr; + ::com::sun::star::uno::Reference< ::com::sun::star::ui::XImageManager > m_xModuleImageMgr; + ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > m_xUICommandLabels; + bool m_bAutoRefresh; + bool m_bUICfgMgrAssociated; +}; + +} // namespace svt + +#endif // INCLUDED_SVTOOLS_CONTEXTMENUHELPER_HXX diff --git a/svtools/inc/svtools/controldims.hrc b/svtools/inc/svtools/controldims.hrc new file mode 100644 index 000000000000..5e26f132897d --- /dev/null +++ b/svtools/inc/svtools/controldims.hrc @@ -0,0 +1,102 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVT_CONTROLDIMS_HRC_ +#define _SVT_CONTROLDIMS_HRC_ + +// +// From: Dialogue Specification and Guidelines - Visual Design V1.3 +// by Christian Jansen +// + +// +// Usage: +// ====== +// +// all values have to be mapped by MAP_APPFONT +// + +// Base +#define RSC_BS_CHARHEIGHT 8 +#define RSC_BS_CHARWIDTH 4 + +// control dimensions +#define RSC_CD_PUSHBUTTON_WIDTH 50 +#define RSC_CD_PUSHBUTTON_HEIGHT 14 + +#define RSC_CD_FIXEDTEXT_HEIGHT RSC_BS_CHARHEIGHT +#define RSC_CD_FIXEDLINE_HEIGHT RSC_BS_CHARHEIGHT +#define RSC_CD_FIXEDLINE_WIDTH RSC_BS_CHARWIDTH // for vertical FixedLines + +#define RSC_CD_DROPDOWN_HEIGHT 12 // also combobox and dropdown list +#define RSC_CD_TEXTBOX_HEIGHT 12 // also numeric fields etc. + +#define RSC_CD_CHECKBOX_HEIGHT 10 // also tristate +#define RSC_CD_RADIOBUTTON_HEIGHT 10 + +// spacings +#define RSC_SP_CTRL_X 6 // controls that are unrelated +#define RSC_SP_CTRL_Y 7 +#define RSC_SP_CTRL_GROUP_X 3 // related controls, or controls in a groupbox +#define RSC_SP_CTRL_GROUP_Y 4 +#define RSC_SP_CTRL_DESC_X 3 // between description text and related control +#define RSC_SP_CTRL_DESC_Y 3 + +// overruled spacings between certain controls +#define RSC_SP_FLGR_SPACE_X 6 // between groupings made with FixedLine +#define RSC_SP_FLGR_SPACE_Y 4 +#define RSC_SP_GRP_SPACE_X 6 // between groupings made with GroupBox +#define RSC_SP_GRP_SPACE_Y 6 +#define RSC_SP_TXT_SPACE_X 5 // spacing between text paragraphs +#define RSC_SP_TXT_SPACE_Y 7 +#define RSC_SP_CHK_TEXTINDENT 8 // x indent of text aligned to checkbox title + +// dialog inner border +#define RSC_SP_DLG_INNERBORDER_LEFT 6 +#define RSC_SP_DLG_INNERBORDER_TOP 6 +#define RSC_SP_DLG_INNERBORDER_RIGHT 6 +#define RSC_SP_DLG_INNERBORDER_BOTTOM 6 + +// tab page inner border +#define RSC_SP_TBPG_INNERBORDER_LEFT 6 // for tabpage groupings +#define RSC_SP_TBPG_INNERBORDER_TOP 3 +#define RSC_SP_TBPG_INNERBORDER_RIGHT 6 +#define RSC_SP_TBPG_INNERBORDER_BOTTOM 6 + +// FixedLine group inner border +#define RSC_SP_FLGR_INNERBORDER_LEFT 6 // for FixedLine groupings +#define RSC_SP_FLGR_INNERBORDER_TOP 3 +#define RSC_SP_FLGR_INNERBORDER_RIGHT 0 +#define RSC_SP_FLGR_INNERBORDER_BOTTOM 0 + +// GroupBox inner border +#define RSC_SP_GRP_INNERBORDER_LEFT 6 // for GroupBox groupings +#define RSC_SP_GRP_INNERBORDER_TOP 6 +#define RSC_SP_GRP_INNERBORDER_RIGHT 6 +#define RSC_SP_GRP_INNERBORDER_BOTTOM 6 + +#endif // _SVT_CONTROLDIMS_HRC_ diff --git a/svtools/inc/svtools/ctrlbox.hxx b/svtools/inc/svtools/ctrlbox.hxx new file mode 100644 index 000000000000..9e6e942daf1e --- /dev/null +++ b/svtools/inc/svtools/ctrlbox.hxx @@ -0,0 +1,504 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _CTRLBOX_HXX +#define _CTRLBOX_HXX + +#include "svtools/svtdllapi.h" + +#ifndef _LSTBOX_HXX +#include <vcl/lstbox.hxx> +#endif +#ifndef _COMBOBOX_HXX +#include <vcl/combobox.hxx> +#endif +#ifndef _IMAGE_HXX +#include <vcl/image.hxx> +#endif +#ifndef _VIRDEV_HXX +#include <vcl/virdev.hxx> +#endif +#ifndef _METRIC_HXX +#include <vcl/metric.hxx> +#endif +#ifndef _FIELD_HXX +#include <vcl/field.hxx> +#endif + +class ImplFontList; +class ImpColorList; +class ImpLineList; +class FontList; + +/************************************************************************* + +Beschreibung +============ + +class ColorListBox + +Beschreibung + +Erlaubt die Auswahl von Farben. + +-------------------------------------------------------------------------- + +class LineListBox + +Beschreibung + +Erlaubt die Auswahl von Linien-Styles und Groessen. Es ist darauf zu achten, +das vor dem ersten Insert die Units und die Fesntergroesse gesetzt sein +muessen. An Unit wird Point und mm unterstuetzt und als SourceUnit Point, +mm und Twips. Alle Angaben muessen in 100teln der jeweiligen Einheit +vorliegen. + +Line1 ist aeussere, Line2 die innere und Distance die Distanz zwischen +den beiden Linien. Wenn Line2 = 0 ist, wird nur Line1 angezeigt. Als +Default sind sowohl Source als auch Ziel-Unit FUNIT_POINT. + +Mit SetColor() kann die Linienfarbe eingestellt werden. + +Anmerkungen und Ausnahmen + +Gegenueber einer normalen ListBox, koennen keine User-Daten gesetzt +werden. Ausserdem sollte wenn der UpdateMode ausgeschaltet ist, keine +Daten abgefragt oder die Selektion gesetzt werden, da in diesem Zustand +die Daten nicht definiert sind. Wenn der UpdateMode ausgeschaltet ist, +sollte der Rueckgabewert bei Insert nicht ausgewertet werden, da er keine +Bedeutung hat. Ausserdem darf nicht das WinBit WB_SORT gesetzt sein. + +-------------------------------------------------------------------------- + +class FontNameBox + +Beschreibung + +Erlaubt die Auswahl von Fonts. Die ListBox wird mit Fill gefuellt, wo +ein Pointer auf eine FontList uebergeben werden muss. + +Mit EnableWYSIWYG() kann man einstellen, das die Fontnamen in Ihrer Schrift +angezeigt werden und mit EnableSymbols() kann eingestellt werden, das +vor dem Namen ueber ein Symbol angezeigt wird, ob es sich um eine +Drucker oder Bildschirmschrift handelt. + +Querverweise + +FontList; FontStyleBox; FontSizeBox; FontNameMenu + +-------------------------------------------------------------------------- + +class FontStyleBox + +Beschreibung + +Erlaubt die Auswahl eines FontStyles. Mit Fill wird die ListBox mit +den Styles zum uebergebenen Font gefuellt. Nachgebildete Styles werden +immer mit eingefuegt (kann sich aber noch aendern, da vielleicht +nicht alle Applikationen [StarDraw,Formel,FontWork] mit Syntetic-Fonts +umgehen koennen). Bei Fill bleibt vorherige Name soweit wie moeglich +erhalten. + +Fuer DontKnow sollte die FontStyleBox mit String() gefuellt werden. +Dann enthaellt die Liste die Standardattribute. Der Style, der gerade +angezeigt wird, muss gegebenenfalls noch vom Programm zurueckgesetzt werden. + +Querverweise + +FontList; FontNameBox; FontSizeBox; FontStyleMenu + +-------------------------------------------------------------------------- + +class FontSizeBox + +Beschreibung + +Erlaubt die Auswahl von Fontgroessen. Werte werden ueber GetValue() +abgefragt und ueber SetValue() gesetzt. Fill fuellt die ListBox mit den +Groessen zum uebergebenen Font. Alle Groessen werden in 10tel Point +angegeben. Die FontListe, die bei Fill uebergeben wird, muss bis zum +naechsten Fill-Aufruf erhalten bleiben. + +Zusaetzlich erlaubt die FontSizeBox noch einen Relative-Mode. Dieser +dient dazu, Prozent-Werte eingeben zu koennen. Dies kann zum Beispiel +nuetzlich sein, wenn man die Box in einem Vorlagen-Dialog anbietet. +Dieser Modus ist nur anschaltbar, jedoch nicht wieder abschaltbar. + +Fuer DontKnow sollte die FontSizeBox mit FontInfo() gefuellt werden. +Dann enthaellt die Liste die Standardgroessen. Die Groesse, die gerade +angezeigt wird, muss gegebenenfalls noch vom Programm zurueckgesetzt werden. + +Querverweise + +FontList; FontNameBox; FontStyleBox; FontSizeMenu + +*************************************************************************/ + +// ---------------- +// - ColorListBox - +// ---------------- + +class SVT_DLLPUBLIC ColorListBox : public ListBox +{ + ImpColorList* pColorList; // Separate Liste, falls UserDaten von aussen verwendet werden. + Size aImageSize; + +#ifdef _CTRLBOX_CXX + using Window::ImplInit; + SVT_DLLPRIVATE void ImplInit(); + SVT_DLLPRIVATE void ImplDestroyColorEntries(); +#endif +public: + ColorListBox( Window* pParent, + WinBits nWinStyle = WB_BORDER ); + ColorListBox( Window* pParent, const ResId& rResId ); + virtual ~ColorListBox(); + + virtual void UserDraw( const UserDrawEvent& rUDEvt ); + + using ListBox::InsertEntry; + virtual USHORT InsertEntry( const XubString& rStr, + USHORT nPos = LISTBOX_APPEND ); + virtual USHORT InsertEntry( const Color& rColor, const XubString& rStr, + USHORT nPos = LISTBOX_APPEND ); + void InsertAutomaticEntry(); + using ListBox::RemoveEntry; + virtual void RemoveEntry( USHORT nPos ); + virtual void Clear(); + void CopyEntries( const ColorListBox& rBox ); + + using ListBox::GetEntryPos; + virtual USHORT GetEntryPos( const Color& rColor ) const; + virtual Color GetEntryColor( USHORT nPos ) const; + Size GetImageSize() const { return aImageSize; } + + void SelectEntry( const XubString& rStr, BOOL bSelect = TRUE ) + { ListBox::SelectEntry( rStr, bSelect ); } + void SelectEntry( const Color& rColor, BOOL bSelect = TRUE ); + XubString GetSelectEntry( USHORT nSelIndex = 0 ) const + { return ListBox::GetSelectEntry( nSelIndex ); } + Color GetSelectEntryColor( USHORT nSelIndex = 0 ) const; + BOOL IsEntrySelected( const XubString& rStr ) const + { return ListBox::IsEntrySelected( rStr ); } + + BOOL IsEntrySelected( const Color& rColor ) const; + +private: + // declared as private because some compilers would generate the default functions + ColorListBox( const ColorListBox& ); + ColorListBox& operator =( const ColorListBox& ); + + void SetEntryData( USHORT nPos, void* pNewData ); + void* GetEntryData( USHORT nPos ) const; +}; + +inline void ColorListBox::SelectEntry( const Color& rColor, BOOL bSelect ) +{ + USHORT nPos = GetEntryPos( rColor ); + if ( nPos != LISTBOX_ENTRY_NOTFOUND ) + ListBox::SelectEntryPos( nPos, bSelect ); +} + +inline BOOL ColorListBox::IsEntrySelected( const Color& rColor ) const +{ + USHORT nPos = GetEntryPos( rColor ); + if ( nPos != LISTBOX_ENTRY_NOTFOUND ) + return IsEntryPosSelected( nPos ); + else + return FALSE; +} + +inline Color ColorListBox::GetSelectEntryColor( USHORT nSelIndex ) const +{ + USHORT nPos = GetSelectEntryPos( nSelIndex ); + Color aColor; + if ( nPos != LISTBOX_ENTRY_NOTFOUND ) + aColor = GetEntryColor( nPos ); + return aColor; +} + +// --------------- +// - LineListBox - +// --------------- + +class SVT_DLLPUBLIC LineListBox : public ListBox +{ + ImpLineList* pLineList; + VirtualDevice aVirDev; + Size aTxtSize; + Color aColor; + Color maPaintCol; + FieldUnit eUnit; + FieldUnit eSourceUnit; + + SVT_DLLPRIVATE void ImpGetLine( long nLine1, long nLine2, long nDistance, Bitmap& rBmp, XubString& rStr ); + using Window::ImplInit; + SVT_DLLPRIVATE void ImplInit(); + void UpdateLineColors( void ); + BOOL UpdatePaintLineColor( void ); // returns TRUE if maPaintCol has changed + inline const Color& GetPaintColor( void ) const; + virtual void DataChanged( const DataChangedEvent& rDCEvt ); + +public: + LineListBox( Window* pParent, WinBits nWinStyle = WB_BORDER ); + LineListBox( Window* pParent, const ResId& rResId ); + virtual ~LineListBox(); + + using ListBox::InsertEntry; + virtual USHORT InsertEntry( const XubString& rStr, USHORT nPos = LISTBOX_APPEND ); + virtual USHORT InsertEntry( long nLine1, long nLine2 = 0, long nDistance = 0, USHORT nPos = LISTBOX_APPEND ); + using ListBox::RemoveEntry; + virtual void RemoveEntry( USHORT nPos ); + virtual void Clear(); + + using ListBox::GetEntryPos; + USHORT GetEntryPos( long nLine1, long nLine2 = 0, long nDistance = 0 ) const; + long GetEntryLine1( USHORT nPos ) const; + long GetEntryLine2( USHORT nPos ) const; + long GetEntryDistance( USHORT nPos ) const; + + inline void SelectEntry( const XubString& rStr, BOOL bSelect = TRUE ) { ListBox::SelectEntry( rStr, bSelect ); } + void SelectEntry( long nLine1, long nLine2 = 0, long nDistance = 0, BOOL bSelect = TRUE ); + long GetSelectEntryLine1( USHORT nSelIndex = 0 ) const; + long GetSelectEntryLine2( USHORT nSelIndex = 0 ) const; + long GetSelectEntryDistance( USHORT nSelIndex = 0 ) const; + inline BOOL IsEntrySelected( const XubString& rStr ) const { return ListBox::IsEntrySelected( rStr ); } + BOOL IsEntrySelected( long nLine1, long nLine2 = 0, long nDistance = 0 ) const; + + inline void SetUnit( FieldUnit eNewUnit ) { eUnit = eNewUnit; } + inline FieldUnit GetUnit() const { return eUnit; } + inline void SetSourceUnit( FieldUnit eNewUnit ) { eSourceUnit = eNewUnit; } + inline FieldUnit GetSourceUnit() const { return eSourceUnit; } + + void SetColor( const Color& rColor ); + inline Color GetColor( void ) const; + +private: + // declared as private because some compilers would generate the default methods + LineListBox( const LineListBox& ); + LineListBox& operator =( const LineListBox& ); + void SetEntryData( USHORT nPos, void* pNewData ); + void* GetEntryData( USHORT nPos ) const; +}; + +inline void LineListBox::SelectEntry( long nLine1, long nLine2, long nDistance, BOOL bSelect ) +{ + USHORT nPos = GetEntryPos( nLine1, nLine2, nDistance ); + if ( nPos != LISTBOX_ENTRY_NOTFOUND ) + ListBox::SelectEntryPos( nPos, bSelect ); +} + +inline long LineListBox::GetSelectEntryLine1( USHORT nSelIndex ) const +{ + USHORT nPos = GetSelectEntryPos( nSelIndex ); + if ( nPos != LISTBOX_ENTRY_NOTFOUND ) + return GetEntryLine1( nPos ); + else + return 0; +} + +inline long LineListBox::GetSelectEntryLine2( USHORT nSelIndex ) const +{ + USHORT nPos = GetSelectEntryPos( nSelIndex ); + if ( nPos != LISTBOX_ENTRY_NOTFOUND ) + return GetEntryLine2( nPos ); + else + return 0; +} + +inline long LineListBox::GetSelectEntryDistance( USHORT nSelIndex ) const +{ + USHORT nPos = GetSelectEntryPos( nSelIndex ); + if ( nPos != LISTBOX_ENTRY_NOTFOUND ) + return GetEntryDistance( nPos ); + else + return 0; +} + +inline BOOL LineListBox::IsEntrySelected( long nLine1, long nLine2, long nDistance ) const +{ + USHORT nPos = GetEntryPos( nLine1, nLine2, nDistance ); + if ( nPos != LISTBOX_ENTRY_NOTFOUND ) + return IsEntryPosSelected( nPos ); + else + return FALSE; +} + +inline void LineListBox::SetColor( const Color& rColor ) +{ + aColor = rColor; + + UpdateLineColors(); +} + +inline Color LineListBox::GetColor( void ) const +{ + return aColor; +} + + +// --------------- +// - FontNameBox - +// --------------- + +class SVT_DLLPUBLIC FontNameBox : public ComboBox +{ +private: + ImplFontList* mpFontList; + Image maImagePrinterFont; + Image maImageBitmapFont; + Image maImageScalableFont; + BOOL mbWYSIWYG; + BOOL mbSymbols; + +#ifdef _CTRLBOX_CXX + SVT_DLLPRIVATE void ImplCalcUserItemSize(); + SVT_DLLPRIVATE void ImplDestroyFontList(); +#endif + + void InitBitmaps( void ); +protected: + virtual void DataChanged( const DataChangedEvent& rDCEvt ); +public: + FontNameBox( Window* pParent, + WinBits nWinStyle = WB_SORT ); + FontNameBox( Window* pParent, const ResId& rResId ); + virtual ~FontNameBox(); + + virtual void UserDraw( const UserDrawEvent& rUDEvt ); + + void Fill( const FontList* pList ); + + void EnableWYSIWYG( BOOL bEnable = TRUE ); + BOOL IsWYSIWYGEnabled() const { return mbWYSIWYG; } + + void EnableSymbols( BOOL bEnable = TRUE ); + BOOL IsSymbolsEnabled() const { return mbSymbols; } + +private: + // declared as private because some compilers would generate the default functions + FontNameBox( const FontNameBox& ); + FontNameBox& operator =( const FontNameBox& ); +}; + +// ---------------- +// - FontStyleBox - +// ---------------- + +class SVT_DLLPUBLIC FontStyleBox : public ComboBox +{ + XubString aLastStyle; + +private: + using ComboBox::SetText; +public: + FontStyleBox( Window* pParent, WinBits nWinStyle = 0 ); + FontStyleBox( Window* pParent, const ResId& rResId ); + virtual ~FontStyleBox(); + + virtual void Select(); + virtual void LoseFocus(); + virtual void Modify(); + + void SetText( const XubString& rText ); + void Fill( const XubString& rName, const FontList* pList ); + +private: + // declared as private because some compilers would generate the default functions + FontStyleBox( const FontStyleBox& ); + FontStyleBox& operator =( const FontStyleBox& ); +}; + +inline void FontStyleBox::SetText( const XubString& rText ) +{ + aLastStyle = rText; + ComboBox::SetText( rText ); +} + +// --------------- +// - FontSizeBox - +// --------------- + +class SVT_DLLPUBLIC FontSizeBox : public MetricBox +{ + FontInfo aFontInfo; + const FontList* pFontList; + USHORT nRelMin; + USHORT nRelMax; + USHORT nRelStep; + short nPtRelMin; + short nPtRelMax; + short nPtRelStep; + BOOL bRelativeMode:1, + bRelative:1, + bPtRelative:1, + bStdSize:1; + +#ifdef _CTRLBOX_CXX + using Window::ImplInit; + SVT_DLLPRIVATE void ImplInit(); +#endif + +protected: + virtual XubString CreateFieldText( sal_Int64 nValue ) const; + +public: + FontSizeBox( Window* pParent, WinBits nWinStyle = 0 ); + FontSizeBox( Window* pParent, const ResId& rResId ); + virtual ~FontSizeBox(); + + void Reformat(); + void Modify(); + + void Fill( const FontInfo* pInfo, const FontList* pList ); + + void EnableRelativeMode( USHORT nMin = 50, USHORT nMax = 150, + USHORT nStep = 5 ); + void EnablePtRelativeMode( short nMin = -200, short nMax = 200, + short nStep = 10 ); + BOOL IsRelativeMode() const { return bRelativeMode; } + void SetRelative( BOOL bRelative = FALSE ); + BOOL IsRelative() const { return bRelative; } + void SetPtRelative( BOOL bPtRel = TRUE ) + { bPtRelative = bPtRel; SetRelative( TRUE ); } + BOOL IsPtRelative() const { return bPtRelative; } + + virtual void SetValue( sal_Int64 nNewValue, FieldUnit eInUnit ); + virtual void SetValue( sal_Int64 nNewValue ); + virtual sal_Int64 GetValue( FieldUnit eOutUnit ) const; + virtual sal_Int64 GetValue() const; + sal_Int64 GetValue( USHORT nPos, FieldUnit eOutUnit ) const; + void SetUserValue( sal_Int64 nNewValue, FieldUnit eInUnit ); + void SetUserValue( sal_Int64 nNewValue ) { SetUserValue( nNewValue, FUNIT_NONE ); } + +private: + // declared as private because some compilers would generate the default functions + FontSizeBox( const FontSizeBox& ); + FontSizeBox& operator =( const FontSizeBox& ); +}; + +#endif // _CTRLBOX_HXX diff --git a/svtools/inc/svtools/ctrltool.hxx b/svtools/inc/svtools/ctrltool.hxx new file mode 100644 index 000000000000..a0eb5db2b955 --- /dev/null +++ b/svtools/inc/svtools/ctrltool.hxx @@ -0,0 +1,251 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _CTRLTOOL_HXX +#define _CTRLTOOL_HXX + +#include "svtools/svtdllapi.h" + +#ifndef _SAL_TYPES_H +#include <sal/types.h> +#endif +#include <tools/list.hxx> +#ifndef _METRIC_HXX +#include <vcl/metric.hxx> +#endif + +class ImplFontListNameInfo; +class OutputDevice; + +/************************************************************************* + +Beschreibung +============ + +class FontList + +Diese Klasse verwaltet alle Fonts, die auf einem oder zwei Ausgabegeraeten +dargestellt werden koennen. Zusaetzlich bietet die Klasse Methoden an, um +aus Fett und Kursiv den StyleName zu generieren oder aus einem Stylename +die fehlenden Attribute. Zusaetzlich kann diese Klasse syntetisch nachgebildete +Fonts verarbeiten. Diese Klasse kann mit verschiedenen Standard-Controls und +Standard-Menus zusammenarbeiten. + +Querverweise + +class FontNameBox, class FontStyleBox, class FontSizeBox, +class FontNameMenu, class FontStyleMenu, class FontSizeMenu + +-------------------------------------------------------------------------- + +FontList::FontList( OutputDevice* pDevice, OutputDevice* pDevice2 = NULL, + BOOL bAll = TRUE ); + +Konstruktor der Klasse FontList. Vom uebergebenen OutputDevice werden die +entsprechenden Fonts abgefragt. Das OutputDevice muss solange existieren, +wie auch die Klasse FontList existiert. Optional kann noch ein 2tes +Ausgabedevice uebergeben werden, damit man zum Beispiel die Fonts von +einem Drucker und dem Bildschirm zusammen in einer FontListe verwalten kann +und somit auch den FontListen und FontMenus die Fonts von beiden OutputDevices +zu uebergeben. Auch das pDevice2 muss solange existieren, wie die Klasse +FontList existiert. + +Das OutputDevice, welches als erstes uebergeben wird, sollte das bevorzugte +sein. Dies sollte im normalfall der Drucker sein. Denn wenn 2 verschiede +Device-Schriften (eine fuer Drucker und eine fuer den Bildschirm) vorhanden +sind, wird die vom uebergebenen Device "pDevice" bevorzugt. + +Mit dem dritten Parameter kann man angeben, ob nur skalierbare Schriften +abgefragt werden sollen oder alle. Wenn TRUE uebergeben wird, werden auch +Bitmap-Schriften mit abgefragt. Bei FALSE werden Vector-Schriften und +scalierbare Schriften abgefragt. + +-------------------------------------------------------------------------- + +String FontList::GetStyleName( const FontInfo& rInfo ) const; + +Diese Methode gibt den StyleName von einer FontInfo zurueck. Falls kein +StyleName gesetzt ist, wird aus den gesetzten Attributen ein entsprechender +Name generiert, der dem Anwender praesentiert werden kann. + +-------------------------------------------------------------------------- + +XubString FontList::GetFontMapText( const FontInfo& rInfo ) const; + +Diese Methode gibt einen Matchstring zurueck, der dem Anwender +anzeigen soll, welche Probleme es mit diesem Font geben kann. + +-------------------------------------------------------------------------- + +FontInfo FontList::Get( const String& rName, const String& rStyleName ) const; + +Diese Methode sucht aus dem uebergebenen Namen und dem uebergebenen StyleName +die entsprechende FontInfo-Struktur raus. Der Stylename kann in dieser +Methode auch ein syntetischer sein. In diesem Fall werden die entsprechenden +Werte in der FontInfo-Struktur entsprechend gesetzt. Wenn ein StyleName +uebergeben wird, kann jedoch eine FontInfo-Struktur ohne Stylename +zurueckgegeben werden. Um den StyleName dem Anwender zu repraesentieren, +muss GetStyleName() mit dieser FontInfo-Struktur aufgerufen werden. + +Querverweise + +FontList::GetStyleName() + +-------------------------------------------------------------------------- + +FontInfo FontList::Get( const String& rName, FontWeight eWeight, + FontItalic eItalic ) const; + +Diese Methode sucht aus dem uebergebenen Namen und den uebergebenen Styles +die entsprechende FontInfo-Struktur raus. Diese Methode kann auch eine +FontInfo-Struktur ohne Stylename zurueckgegeben. Um den StyleName dem +Anwender zu repraesentieren, muss GetStyleName() mit dieser FontInfo-Struktur +aufgerufen werden. + +Querverweise + +FontList::GetStyleName() + +-------------------------------------------------------------------------- + +const long* FontList::GetSizeAry( const FontInfo& rInfo ) const; + +Diese Methode liefert zum uebergebenen Font die vorhandenen Groessen. +Falls es sich dabei um einen skalierbaren Font handelt, werden Standard- +Groessen zurueckgegeben. Das Array enthaelt die Hoehen des Fonts in 10tel +Point. Der letzte Wert des Array ist 0. Das Array, was zurueckgegeben wird, +wird von der FontList wieder zerstoert. Nach dem Aufruf der naechsten Methode +von der FontList, sollte deshalb das Array nicht mehr referenziert werden. + +*************************************************************************/ + +// ------------ +// - FontList - +// ------------ + +#define FONTLIST_FONTINFO_NOTFOUND ((USHORT)0xFFFF) + +#define FONTLIST_FONTNAMETYPE_PRINTER ((USHORT)0x0001) +#define FONTLIST_FONTNAMETYPE_SCREEN ((USHORT)0x0002) +#define FONTLIST_FONTNAMETYPE_SCALABLE ((USHORT)0x0004) + +class SVT_DLLPUBLIC FontList : private List +{ +private: + XubString maMapBoth; + XubString maMapPrinterOnly; + XubString maMapScreenOnly; + XubString maMapSizeNotAvailable; + XubString maMapStyleNotAvailable; + XubString maMapNotAvailable; + XubString maLight; + XubString maLightItalic; + XubString maNormal; + XubString maNormalItalic; + XubString maBold; + XubString maBoldItalic; + XubString maBlack; + XubString maBlackItalic; + long* mpSizeAry; + OutputDevice* mpDev; + OutputDevice* mpDev2; + +#ifdef CTRLTOOL_CXX + SVT_DLLPRIVATE ImplFontListNameInfo* ImplFind( const XubString& rSearchName, ULONG* pIndex ) const; + SVT_DLLPRIVATE ImplFontListNameInfo* ImplFindByName( const XubString& rStr ) const; + SVT_DLLPRIVATE void ImplInsertFonts( OutputDevice* pDev, BOOL bAll, + BOOL bInsertData ); +#endif + +public: + FontList( OutputDevice* pDevice, + OutputDevice* pDevice2 = NULL, + BOOL bAll = TRUE ); + ~FontList(); + + FontList* Clone() const; + + OutputDevice* GetDevice() const { return mpDev; } + OutputDevice* GetDevice2() const { return mpDev2; } + XubString GetFontMapText( const FontInfo& rInfo ) const; + USHORT GetFontNameType( const XubString& rFontName ) const; + + const XubString& GetNormalStr() const { return maNormal; } + const XubString& GetItalicStr() const { return maNormalItalic; } + const XubString& GetBoldStr() const { return maBold; } + const XubString& GetBoldItalicStr() const { return maBoldItalic; } + const XubString& GetStyleName( FontWeight eWeight, FontItalic eItalic ) const; + XubString GetStyleName( const FontInfo& rInfo ) const; + + FontInfo Get( const XubString& rName, + const XubString& rStyleName ) const; + FontInfo Get( const XubString& rName, + FontWeight eWeight, + FontItalic eItalic ) const; + + BOOL IsAvailable( const XubString& rName ) const; + USHORT GetFontNameCount() const + { return (USHORT)List::Count(); } + const FontInfo& GetFontName( USHORT nFont ) const; + USHORT GetFontNameType( USHORT nFont ) const; + sal_Handle GetFirstFontInfo( const XubString& rName ) const; + sal_Handle GetNextFontInfo( sal_Handle hFontInfo ) const; + const FontInfo& GetFontInfo( sal_Handle hFontInfo ) const; + + const long* GetSizeAry( const FontInfo& rInfo ) const; + static const long* GetStdSizeAry(); + +private: + FontList( const FontList& ); + FontList& operator =( const FontList& ); +}; + + +// ----------------- +// - FontSizeNames - +// ----------------- + +class SVT_DLLPUBLIC FontSizeNames +{ +private: + struct ImplFSNameItem* mpArray; + ULONG mnElem; + +public: + FontSizeNames( LanguageType eLanguage /* = LANGUAGE_DONTKNOW */ ); + + ULONG Count() const { return mnElem; } + BOOL IsEmpty() const { return !mnElem; } + + long Name2Size( const String& ) const; + String Size2Name( long ) const; + + String GetIndexName( ULONG nIndex ) const; + long GetIndexSize( ULONG nIndex ) const; +}; + +#endif // _CTRLTOOL_HXX diff --git a/svtools/inc/svtools/dialogclosedlistener.hxx b/svtools/inc/svtools/dialogclosedlistener.hxx new file mode 100644 index 000000000000..3712d408af52 --- /dev/null +++ b/svtools/inc/svtools/dialogclosedlistener.hxx @@ -0,0 +1,77 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVTOOLS_DIALOGCLOSEDLISTENER_HXX +#define _SVTOOLS_DIALOGCLOSEDLISTENER_HXX + +#include "svtools/svtdllapi.h" +#include <cppuhelper/implbase1.hxx> +#include <com/sun/star/ui/dialogs/XDialogClosedListener.hpp> +#include <tools/link.hxx> + +//......................................................................... +namespace svt +{ +//......................................................................... + + //===================================================================== + //= ODialogClosedListener + //===================================================================== + /** + C++ class to implement a ::com::sun::star::ui::dialogs::XDialogClosedListener + */ + class SVT_DLLPUBLIC DialogClosedListener : + public ::cppu::WeakImplHelper1< ::com::sun::star::ui::dialogs::XDialogClosedListener > + { + private: + /** + This link will be called when the dialog was closed. + + The link must have the type: + DECL_LINK( DialogClosedHdl, ::com::sun::star::ui::dialogs::DialogClosedEvent* ); + */ + Link m_aDialogClosedLink; + + public: + DialogClosedListener(); + DialogClosedListener( const Link& rLink ); + + inline void SetDialogClosedLink( const Link& rLink ) { m_aDialogClosedLink = rLink; } + + // XDialogClosedListener methods + virtual void SAL_CALL dialogClosed( const ::com::sun::star::ui::dialogs::DialogClosedEvent& aEvent ) throw (::com::sun::star::uno::RuntimeException); + + // XEventListener methods + virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw( ::com::sun::star::uno::RuntimeException ); + }; + +//......................................................................... +} // namespace svt +//......................................................................... + +#endif// COMPHELPER_DIALOGCLOSEDLISTENER_HXX + diff --git a/svtools/inc/svtools/dialogcontrolling.hxx b/svtools/inc/svtools/dialogcontrolling.hxx new file mode 100644 index 000000000000..cd60736527f5 --- /dev/null +++ b/svtools/inc/svtools/dialogcontrolling.hxx @@ -0,0 +1,306 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef SVTOOLS_DIALOGCONTROLLING_HXX +#define SVTOOLS_DIALOGCONTROLLING_HXX + +#include <svtools/svtdllapi.h> + +#include <tools/link.hxx> +#include <vcl/button.hxx> + +#include <vector> +#include <boost/shared_ptr.hpp> + +//........................................................................ +namespace svt +{ +//........................................................................ + + //===================================================================== + //= IWindowOperator + //===================================================================== + /** an abstract interface for operating on a ->Window + */ + class SVT_DLLPUBLIC SAL_NO_VTABLE IWindowOperator + { + public: + /** called when an event happened which should be reacted to + + @param _rTrigger + the event which triggered the call. If the Id of the event is 0, then this is the initial + call which is made when ->_rOperateOn is added to the responsibility of the DialogController. + @param _rOperateOn + the window on which to operate + */ + virtual void operateOn( const VclWindowEvent& _rTrigger, Window& _rOperateOn ) const = 0; + + virtual ~IWindowOperator(); + }; + typedef ::boost::shared_ptr< IWindowOperator > PWindowOperator; + + //===================================================================== + //= IWindowEventFilter + //===================================================================== + /** an abstract interface for deciding whether a ->VclWindowEvent + is worth paying attention to + */ + class SVT_DLLPUBLIC SAL_NO_VTABLE IWindowEventFilter + { + public: + virtual bool payAttentionTo( const VclWindowEvent& _rEvent ) const = 0; + + virtual ~IWindowEventFilter(); + }; + typedef ::boost::shared_ptr< IWindowEventFilter > PWindowEventFilter; + + //===================================================================== + //= DialogController + //===================================================================== + struct DialogController_Data; + /** a class controlling interactions between dialog controls + + An instance of this class listens to all events fired by a certain + ->Control (more precise, a ->Window), the so-called instigator. + + Additionally, the ->DialogController maintains a list of windows which + are affected by changes in the instigator window. Let's call those the + dependent windows. + + Now, by help of an owner-provided ->IWindowEventFilter, the ->DialogController + decides which events are worth attention. By help of an owner-provided + ->IWindowOperator, it handles those events for all dependent windows. + */ + class SVT_DLLPUBLIC DialogController + { + private: + ::std::auto_ptr< DialogController_Data > m_pImpl; + + public: + DialogController( Window& _rInstigator, const PWindowEventFilter& _pEventFilter, const PWindowOperator& _pOperator ); + virtual ~DialogController(); + + /** adds a window to the list of dependent windows + + @param _rWindow + The window to add to the list of dependent windows. + + The caller is responsible for life-time control: The given window + must live at least as long as the ->DialogController instance does. + */ + void addDependentWindow( Window& _rWindow ); + + /** resets the controller so that no actions happend anymore. + + The instances is disfunctional after this method has been called. + */ + void reset(); + + private: + void impl_Init(); + void impl_updateAll( const VclWindowEvent& _rTriggerEvent ); + void impl_update( const VclWindowEvent& _rTriggerEvent, Window& _rWindow ); + + DECL_LINK( OnWindowEvent, const VclWindowEvent* ); + + private: + DialogController( const DialogController& ); // never implemented + DialogController& operator=( const DialogController& ); // never implemented + }; + typedef ::boost::shared_ptr< DialogController > PDialogController; + + //===================================================================== + //= ControlDependencyManager + //===================================================================== + struct ControlDependencyManager_Data; + /** helper class for managing control dependencies + + Instances of this class are intended to be held as members of a dialog/tabpage/whatever + class, with easy administration of inter-control dependencies (such as "Enable + control X if and only if checkbox Y is checked). + */ + class SVT_DLLPUBLIC ControlDependencyManager + { + private: + ::std::auto_ptr< ControlDependencyManager_Data > m_pImpl; + + public: + ControlDependencyManager(); + ~ControlDependencyManager(); + + /** clears all dialog controllers previously added to the manager + */ + void clear(); + + /** ensures that a given window is enabled or disabled, according to the check state + of a given radio button + @param _rRadio + denotes the radio button whose check state is to observe + @param _rDependentWindow + denotes the window which should be enabled when ->_rRadio is checked, and + disabled when it's unchecked + */ + void enableOnRadioCheck( RadioButton& _rRadio, Window& _rDependentWindow ); + void enableOnRadioCheck( RadioButton& _rRadio, Window& _rDependentWindow1, Window& _rDependentWindow2 ); + void enableOnRadioCheck( RadioButton& _rRadio, Window& _rDependentWindow1, Window& _rDependentWindow2, Window& _rDependentWindow3 ); + void enableOnRadioCheck( RadioButton& _rRadio, Window& _rDependentWindow1, Window& _rDependentWindow2, Window& _rDependentWindow3, Window& _rDependentWindow4 ); + void enableOnRadioCheck( RadioButton& _rRadio, Window& _rDependentWindow1, Window& _rDependentWindow2, Window& _rDependentWindow3, Window& _rDependentWindow4, Window& _rDependentWindow5 ); + void enableOnRadioCheck( RadioButton& _rRadio, Window& _rDependentWindow1, Window& _rDependentWindow2, Window& _rDependentWindow3, Window& _rDependentWindow4, Window& _rDependentWindow5, Window& _rDependentWindow6 ); + + /** ensures that a given window is enabled or disabled, according to the mark state + of a given check box + @param _rBox + denotes the check box whose mark state is to observe + @param _rDependentWindow + denotes the window which should be enabled when ->_rBox is marked, and + disabled when it's unmarked + */ + void enableOnCheckMark( CheckBox& _rBox, Window& _rDependentWindow ); + void enableOnCheckMark( CheckBox& _rBox, Window& _rDependentWindow1, Window& _rDependentWindow2 ); + void enableOnCheckMark( CheckBox& _rBox, Window& _rDependentWindow1, Window& _rDependentWindow2, Window& _rDependentWindow3 ); + void enableOnCheckMark( CheckBox& _rBox, Window& _rDependentWindow1, Window& _rDependentWindow2, Window& _rDependentWindow3, Window& _rDependentWindow4 ); + void enableOnCheckMark( CheckBox& _rBox, Window& _rDependentWindow1, Window& _rDependentWindow2, Window& _rDependentWindow3, Window& _rDependentWindow4, Window& _rDependentWindow5 ); + void enableOnCheckMark( CheckBox& _rBox, Window& _rDependentWindow1, Window& _rDependentWindow2, Window& _rDependentWindow3, Window& _rDependentWindow4, Window& _rDependentWindow5, Window& _rDependentWindow6 ); + + /** adds a non-standard controller whose functionality is not covered by the other methods + + @param _pController + the controller to add to the manager. Must not be <NULL/>. + */ + void addController( const PDialogController& _pController ); + + private: + ControlDependencyManager( const ControlDependencyManager& ); // never implemented + ControlDependencyManager& operator=( const ControlDependencyManager& ); // never implemented + }; + + //===================================================================== + //= EnableOnCheck + //===================================================================== + /** a helper class implementing the ->IWindowOperator interface, + which enables a dependent window depending on the check state of + an instigator window. + + @see DialogController + */ + template< class CHECKABLE > + class SVT_DLLPUBLIC EnableOnCheck : public IWindowOperator + { + public: + typedef CHECKABLE SourceType; + + private: + SourceType& m_rCheckable; + + public: + /** constructs the instance + + @param _rCheckable + a ->Window instance which supports a boolean method IsChecked. Usually + a ->RadioButton or ->CheckBox + */ + EnableOnCheck( SourceType& _rCheckable ) + :m_rCheckable( _rCheckable ) + { + } + + virtual void operateOn( const VclWindowEvent& /*_rTrigger*/, Window& _rOperateOn ) const + { + _rOperateOn.Enable( m_rCheckable.IsChecked() ); + } + }; + + //===================================================================== + //= FilterForRadioOrCheckToggle + //===================================================================== + /** a helper class implementing the ->IWindowEventFilter interface, + which filters for radio buttons or check boxes being toggled. + + Technically, the class simply filters for the ->VCLEVENT_RADIOBUTTON_TOGGLE + and the ->VCLEVENT_CHECKBOX_TOGGLE event. + */ + class SVT_DLLPUBLIC FilterForRadioOrCheckToggle : public IWindowEventFilter + { + const Window& m_rWindow; + public: + FilterForRadioOrCheckToggle( const Window& _rWindow ) + :m_rWindow( _rWindow ) + { + } + + bool payAttentionTo( const VclWindowEvent& _rEvent ) const + { + if ( ( _rEvent.GetWindow() == &m_rWindow ) + && ( ( _rEvent.GetId() == VCLEVENT_RADIOBUTTON_TOGGLE ) + || ( _rEvent.GetId() == VCLEVENT_CHECKBOX_TOGGLE ) + ) + ) + return true; + return false; + } + }; + + //===================================================================== + //= RadioDependentEnabler + //===================================================================== + /** a ->DialogController derivee which enables or disables its dependent windows, + depending on the check state of a radio button. + + The usage of this class is as simple as + <code> + pController = new RadioDependentEnabler( m_aOptionSelectSomething ); + pController->addDependentWindow( m_aLabelSelection ); + pController->addDependentWindow( m_aListSelection ); + </code> + + With this, both <code>m_aLabelSelection</code> and <code>m_aListSelection</code> will + be disabled if and only <code>m_aOptionSelectSomething</code> is checked. + */ + class SVT_DLLPUBLIC RadioDependentEnabler : public DialogController + { + public: + RadioDependentEnabler( RadioButton& _rButton ) + :DialogController( _rButton, + PWindowEventFilter( new FilterForRadioOrCheckToggle( _rButton ) ), + PWindowOperator( new EnableOnCheck< RadioButton >( _rButton ) ) ) + { + } + + RadioDependentEnabler( CheckBox& _rBox ) + :DialogController( _rBox, + PWindowEventFilter( new FilterForRadioOrCheckToggle( _rBox ) ), + PWindowOperator( new EnableOnCheck< CheckBox >( _rBox ) ) ) + { + } + }; + +//........................................................................ +} // namespace svt +//........................................................................ + +#endif // SVTOOLS_DIALOGCONTROLLING_HXX + diff --git a/svtools/inc/svtools/editbrowsebox.hxx b/svtools/inc/svtools/editbrowsebox.hxx index f97449e1880c..26ff11e11ca2 100644 --- a/svtools/inc/svtools/editbrowsebox.hxx +++ b/svtools/inc/svtools/editbrowsebox.hxx @@ -37,7 +37,7 @@ #include <vcl/lstbox.hxx> #ifndef _IMAGEBTN_HXX -#include <vcl/imagebtn.hxx> +#include <vcl/button.hxx> #endif #include <svtools/brwbox.hxx> #include <vcl/timer.hxx> diff --git a/svtools/inc/svtools/expander.hxx b/svtools/inc/svtools/expander.hxx new file mode 100644 index 000000000000..c0f3cfc7632a --- /dev/null +++ b/svtools/inc/svtools/expander.hxx @@ -0,0 +1,92 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SV_EXPANDER_HXX +#define _SV_EXPANDER_HXX + +#include <vcl/ctrl.hxx> +#include <vcl/image.hxx> + +enum SvExpanderStateType +{ + EST_MIN=1, + EST_PLUS=2, + EST_MIN_DOWN=3, + EST_PLUS_DOWN=4, + EST_NONE=5, + EST_MIN_DIS=6, + EST_PLUS_DIS=7, + EST_MIN_DOWN_DIS=8, + EST_PLUS_DOWN_DIS=9 +}; + +class SvExpander: public Control +{ +private: + Point aImagePos; + Point aTextPos; + Image aActiveImage; + Rectangle maFocusRect; + ImageList maExpanderImages; + BOOL mbIsExpanded; + BOOL mbHasFocusRect; + BOOL mbIsInMouseDown; + Link maToggleHdl; + SvExpanderStateType eType; + +protected: + + virtual long PreNotify( NotifyEvent& rNEvt ); + virtual void MouseButtonDown( const MouseEvent& rMEvt ); + virtual void MouseMove( const MouseEvent& rMEvt ); + virtual void MouseButtonUp( const MouseEvent& rMEvt ); + virtual void Paint( const Rectangle& rRect ); + virtual void KeyInput( const KeyEvent& rKEvt ); + virtual void KeyUp( const KeyEvent& rKEvt ); + + virtual void Click(); + virtual void Resize(); + +public: + SvExpander( Window* pParent, WinBits nStyle = 0 ); + SvExpander( Window* pParent, const ResId& rResId ); + + BOOL IsExpanded() {return mbIsExpanded;} + + void SetToExpanded(BOOL bFlag=TRUE); + + void SetExpanderImage( SvExpanderStateType eType); + Image GetExpanderImage(SvExpanderStateType eType); + Size GetMinSize() const; + + void SetToggleHdl( const Link& rLink ) { maToggleHdl = rLink; } + const Link& GetToggleHdl() const { return maToggleHdl; } +}; + + + +#endif diff --git a/svtools/inc/svtools/extcolorcfg.hxx b/svtools/inc/svtools/extcolorcfg.hxx new file mode 100644 index 000000000000..44167f63287c --- /dev/null +++ b/svtools/inc/svtools/extcolorcfg.hxx @@ -0,0 +1,128 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef INCLUDED_SVTOOLS_EXTCOLORCFG_HXX +#define INCLUDED_SVTOOLS_EXTCOLORCFG_HXX + +#include "svtools/svtdllapi.h" +#include <rtl/ustring.hxx> +#include <tools/color.hxx> +#include <com/sun/star/uno/Sequence.h> +#include <svl/brdcst.hxx> +#include <svl/lstner.hxx> + +//----------------------------------------------------------------------------- +namespace svtools{ +/* -----------------------------22.03.2002 15:36------------------------------ + + ---------------------------------------------------------------------------*/ +class ExtendedColorConfig_Impl; +class ExtendedColorConfigValue +{ + ::rtl::OUString m_sName; + ::rtl::OUString m_sDisplayName; + sal_Int32 m_nColor; + sal_Int32 m_nDefaultColor; +public: + ExtendedColorConfigValue() : m_nColor(0),m_nDefaultColor(0){} + ExtendedColorConfigValue(const ::rtl::OUString& _sName + ,const ::rtl::OUString& _sDisplayName + ,sal_Int32 _nColor + ,sal_Int32 _nDefaultColor) + : m_sName(_sName) + ,m_sDisplayName(_sDisplayName) + ,m_nColor(_nColor) + ,m_nDefaultColor(_nDefaultColor) + {} + + inline ::rtl::OUString getName() const { return m_sName; } + inline ::rtl::OUString getDisplayName() const { return m_sDisplayName; } + inline sal_Int32 getColor() const { return m_nColor; } + inline sal_Int32 getDefaultColor() const { return m_nDefaultColor; } + + inline void setColor(sal_Int32 _nColor) { m_nColor = _nColor; } + + sal_Bool operator !=(const ExtendedColorConfigValue& rCmp) const + { return m_nColor != rCmp.m_nColor;} +}; +/* -----------------------------22.03.2002 15:36------------------------------ + + ---------------------------------------------------------------------------*/ +class SVT_DLLPUBLIC ExtendedColorConfig : public SfxBroadcaster, public SfxListener +{ + friend class ExtendedColorConfig_Impl; +private: + static ExtendedColorConfig_Impl* m_pImpl; +public: + ExtendedColorConfig(); + ~ExtendedColorConfig(); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + + // get the configured value + ExtendedColorConfigValue GetColorValue(const ::rtl::OUString& _sComponentName,const ::rtl::OUString& _sName)const; + sal_Int32 GetComponentCount() const; + ::rtl::OUString GetComponentName(sal_uInt32 _nPos) const; + ::rtl::OUString GetComponentDisplayName(const ::rtl::OUString& _sComponentName) const; + sal_Int32 GetComponentColorCount(const ::rtl::OUString& _sName) const; + ExtendedColorConfigValue GetComponentColorConfigValue(const ::rtl::OUString& _sComponentName,sal_uInt32 _nPos) const; +}; +/* -----------------------------22.03.2002 15:31------------------------------ + + ---------------------------------------------------------------------------*/ +class SVT_DLLPUBLIC EditableExtendedColorConfig +{ + ExtendedColorConfig_Impl* m_pImpl; + sal_Bool m_bModified; +public: + EditableExtendedColorConfig(); + ~EditableExtendedColorConfig(); + + ::com::sun::star::uno::Sequence< ::rtl::OUString > GetSchemeNames() const; + void DeleteScheme(const ::rtl::OUString& rScheme ); + void AddScheme(const ::rtl::OUString& rScheme ); + sal_Bool LoadScheme(const ::rtl::OUString& rScheme ); + const ::rtl::OUString& GetCurrentSchemeName()const; + void SetCurrentSchemeName(const ::rtl::OUString& rScheme); + + ExtendedColorConfigValue GetColorValue(const ::rtl::OUString& _sComponentName,const ::rtl::OUString& _sName)const; + sal_Int32 GetComponentCount() const; + ::rtl::OUString GetComponentName(sal_uInt32 _nPos) const; + ::rtl::OUString GetComponentDisplayName(const ::rtl::OUString& _sComponentName) const; + sal_Int32 GetComponentColorCount(const ::rtl::OUString& _sName) const; + ExtendedColorConfigValue GetComponentColorConfigValue(const ::rtl::OUString& _sName,sal_uInt32 _nPos) const; + void SetColorValue(const ::rtl::OUString& _sComponentName, const ExtendedColorConfigValue& rValue); + void SetModified(); + void ClearModified(){m_bModified = sal_False;} + sal_Bool IsModified()const{return m_bModified;} + void Commit(); + + void DisableBroadcast(); + void EnableBroadcast(); +}; +}//namespace svtools +#endif + diff --git a/svtools/inc/svtools/filectrl.hxx b/svtools/inc/svtools/filectrl.hxx new file mode 100644 index 000000000000..dd314bb23ca1 --- /dev/null +++ b/svtools/inc/svtools/filectrl.hxx @@ -0,0 +1,111 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SV_FILECTRL_HXX +#define _SV_FILECTRL_HXX + +#include "svtools/svtdllapi.h" +#include <vcl/window.hxx> +#include <vcl/edit.hxx> +#ifndef _SV_BUTTON_HXX +#include <vcl/button.hxx> +#endif + + +#define STR_FILECTRL_BUTTONTEXT 333 // ID-Range?! + +// Flags for FileControl +typedef USHORT FileControlMode; +#define FILECTRL_RESIZEBUTTONBYPATHLEN ((USHORT)0x0001)//if this is set, the button will become small as soon as the Text in the Edit Field is to long to be shown completely + + +// Flags for internal use of FileControl +typedef USHORT FileControlMode_Internal; +#define FILECTRL_INRESIZE ((USHORT)0x0001) +#define FILECTRL_ORIGINALBUTTONTEXT ((USHORT)0x0002) + + +class SVT_DLLPUBLIC FileControl : public Window +{ +private: + Edit maEdit; + PushButton maButton; + + String maButtonText; + BOOL mbOpenDlg; + + Link maDialogCreatedHdl; + + FileControlMode mnFlags; + FileControlMode_Internal mnInternalFlags; + +private: + SVT_DLLPRIVATE void ImplBrowseFile( ); + +protected: + SVT_DLLPRIVATE void Resize(); + SVT_DLLPRIVATE void GetFocus(); + SVT_DLLPRIVATE void StateChanged( StateChangedType nType ); + SVT_DLLPRIVATE WinBits ImplInitStyle( WinBits nStyle ); + DECL_DLLPRIVATE_LINK( ButtonHdl, PushButton* ); + +public: + FileControl( Window* pParent, WinBits nStyle, FileControlMode = 0 ); + ~FileControl(); + + Edit& GetEdit() { return maEdit; } + PushButton& GetButton() { return maButton; } + + void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, ULONG nFlags ); + + void SetOpenDialog( BOOL bOpen ) { mbOpenDlg = bOpen; } + BOOL IsOpenDialog() const { return mbOpenDlg; } + + void SetText( const XubString& rStr ); + XubString GetText() const; + UniString GetSelectedText() const { return maEdit.GetSelected(); } + + void SetSelection( const Selection& rSelection ) { maEdit.SetSelection( rSelection ); } + Selection GetSelection() const { return maEdit.GetSelection(); } + + void SetReadOnly( BOOL bReadOnly = TRUE ) { maEdit.SetReadOnly( bReadOnly ); } + BOOL IsReadOnly() const { return maEdit.IsReadOnly(); } + + //------ + //manipulate the Button-Text: + XubString GetButtonText() const { return maButtonText; } + void SetButtonText( const XubString& rStr ); + void ResetButtonText(); + + //------ + //use this to manipulate the dialog bevore executing it: + void SetDialogCreatedHdl( const Link& rLink ) { maDialogCreatedHdl = rLink; } + const Link& GetDialogCreatedHdl() const { return maDialogCreatedHdl; } +}; + +#endif + diff --git a/svtools/inc/svtools/filedlg.hxx b/svtools/inc/svtools/filedlg.hxx new file mode 100644 index 000000000000..c04e48fc7658 --- /dev/null +++ b/svtools/inc/svtools/filedlg.hxx @@ -0,0 +1,108 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVT_FILEDLG_HXX +#define _SVT_FILEDLG_HXX + +#include "svtools/svtdllapi.h" + +#ifndef _DIALOG_HXX +#include <vcl/dialog.hxx> +#endif + +class Edit; +class ImpSvFileDlg; + +// -------------- +// - SvPathDialog - +// -------------- + +class SVT_DLLPUBLIC PathDialog : public ModalDialog +{ +private: + friend class FileDialog; // Imp... + + ImpSvFileDlg* pImpFileDlg; // Implementation + Link aOKHdlLink; // Link zum OK-Handler + +protected: + UniString aDfltExt; // Default - Extension + +public: + PathDialog( Window* pParent, WinBits nWinStyle = 0, BOOL bCreateDir = TRUE ); + ~PathDialog(); + + virtual long OK(); + + void SetPath( const UniString& rNewPath ); + void SetPath( const Edit& rEdit ); + UniString GetPath() const; + + void SetOKHdl( const Link& rLink ) { aOKHdlLink = rLink; } + const Link& GetOKHdl() const { return aOKHdlLink; } + + virtual short Execute(); +}; + +// -------------- +// - SvFileDialog - +// -------------- + +class SVT_DLLPUBLIC FileDialog : public PathDialog +{ +private: + Link aFileHdlLink; // Link zum FileSelect-Handler + Link aFilterHdlLink; // Link zum FilterSelect-Handler + +public: + FileDialog( Window* pParent, WinBits nWinStyle ); + ~FileDialog(); + + virtual void FileSelect(); + virtual void FilterSelect(); + + void SetDefaultExt( const UniString& rExt ) { aDfltExt = rExt; } + const UniString& GetDefaultExt() const { return aDfltExt; } + void AddFilter( const UniString& rFilter, const UniString& rType ); + void RemoveFilter( const UniString& rFilter ); + void RemoveAllFilter(); + void SetCurFilter( const UniString& rFilter ); + UniString GetCurFilter() const; + USHORT GetFilterCount() const; + UniString GetFilterName( USHORT nPos ) const; + UniString GetFilterType( USHORT nPos ) const; + + void SetFileSelectHdl( const Link& rLink ) { aFileHdlLink = rLink; } + const Link& GetFileSelectHdl() const { return aFileHdlLink; } + void SetFilterSelectHdl( const Link& rLink ) { aFilterHdlLink = rLink; } + const Link& GetFilterSelectHdl() const { return aFilterHdlLink; } + + void SetOkButtonText( const UniString& rText ); + void SetCancelButtonText( const UniString& rText ); +}; + +#endif // _FILEDLG_HXX diff --git a/svtools/inc/svtools/filedlg2.hrc b/svtools/inc/svtools/filedlg2.hrc new file mode 100644 index 000000000000..a87bd6ebcad0 --- /dev/null +++ b/svtools/inc/svtools/filedlg2.hrc @@ -0,0 +1,41 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#define STR_FILEDLG_SELECT 1000 +#define STR_FILEDLG_CANTCHDIR 1001 +#define STR_FILEDLG_OPEN 1002 +#define STR_FILEDLG_FILE 1003 +#define STR_FILEDLG_DIR 1004 +#define STR_FILEDLG_TYPE 1005 +#define STR_FILEDLG_CANTOPENFILE 1006 +#define STR_FILEDLG_CANTOPENDIR 1007 +#define STR_FILEDLG_OVERWRITE 1008 +#define STR_FILEDLG_GOUP 1009 +#define STR_FILEDLG_SAVE 1010 +#define STR_FILEDLG_DRIVES 1011 +#define STR_FILEDLG_HOME 1012 +#define STR_FILEDLG_NEWDIR 1013 +#define STR_FILEDLG_ASKNEWDIR 1014 diff --git a/svtools/inc/svtools/fileview.hxx b/svtools/inc/svtools/fileview.hxx new file mode 100644 index 000000000000..db704a0e6784 --- /dev/null +++ b/svtools/inc/svtools/fileview.hxx @@ -0,0 +1,271 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVT_FILEVIEW_HXX +#define _SVT_FILEVIEW_HXX + +#include "svtools/svtdllapi.h" +#include <com/sun/star/uno/Sequence.h> +#include <com/sun/star/ucb/XContent.hpp> +#include <vcl/ctrl.hxx> +#include <vcl/image.hxx> +#include <vcl/fixed.hxx> +#ifndef _SV_BUTTON_HXX +#include <vcl/button.hxx> +#endif +#include <vcl/dialog.hxx> +#include <rtl/ustring.hxx> + +// class SvtFileView ----------------------------------------------------- + +#define FILEVIEW_ONLYFOLDER 0x0001 +#define FILEVIEW_MULTISELECTION 0x0002 + +#define FILEVIEW_SHOW_TITLE 0x0010 +#define FILEVIEW_SHOW_SIZE 0x0020 +#define FILEVIEW_SHOW_DATE 0x0040 +#define FILEVIEW_SHOW_ALL 0x0070 + +class ViewTabListBox_Impl; +class SvtFileView_Impl; +class SvLBoxEntry; +class HeaderBar; +class IUrlFilter; + +/// the result of an action in the FileView +enum FileViewResult +{ + eSuccess, + eFailure, + eTimeout, + eStillRunning +}; + +/// describes parameters for doing an action on the FileView asynchronously +struct FileViewAsyncAction +{ + sal_uInt32 nMinTimeout; /// minimum time to wait for a result, in milliseconds + sal_uInt32 nMaxTimeout; /// maximum time to wait for a result, in milliseconds, until eTimeout is returned + Link aFinishHandler; /// the handler to be called when the action is finished. Called in every case, no matter of the result + + FileViewAsyncAction() + { + nMinTimeout = nMaxTimeout = 0; + } +}; + +class SVT_DLLPUBLIC SvtFileView : public Control +{ +private: + SvtFileView_Impl* mpImp; + + ::com::sun::star::uno::Sequence< ::rtl::OUString > mpBlackList; + + SVT_DLLPRIVATE void OpenFolder( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aContents ); + + DECL_DLLPRIVATE_LINK( HeaderSelect_Impl, HeaderBar * ); + DECL_DLLPRIVATE_LINK( HeaderEndDrag_Impl, HeaderBar * ); + +protected: + virtual void GetFocus(); + +public: + SvtFileView( Window* pParent, const ResId& rResId, sal_Bool bOnlyFolder, sal_Bool bMultiSelection ); + SvtFileView( Window* pParent, const ResId& rResId, sal_Int8 nFlags ); + ~SvtFileView(); + + const String& GetViewURL() const; + String GetURL( SvLBoxEntry* pEntry ) const; + String GetCurrentURL() const; + + sal_Bool GetParentURL( String& _rParentURL ) const; + sal_Bool CreateNewFolder( const String& rNewFolder ); + + void SetHelpId( const rtl::OString& rHelpId ); + const rtl::OString& GetHelpId( ) const; + void SetSizePixel( const Size& rNewSize ); + using Window::SetPosSizePixel; + virtual void SetPosSizePixel( const Point& rNewPos, const Size& rNewSize ); + + /** initialize the view with the content of a folder given by URL, and aply an immediate filter + + @param rFolderURL + the URL of the folder whose content is to be read + @param rFilter + the initial filter to be applied + @param pAsyncDescriptor + If not <NULL/>, this struct describes the parameters for doing the + action asynchronously. + */ + FileViewResult Initialize( + const String& rFolderURL, + const String& rFilter, + const FileViewAsyncAction* pAsyncDescriptor, + const ::com::sun::star::uno::Sequence< ::rtl::OUString >& rBlackList + ); + + FileViewResult Initialize( + const String& rFolderURL, + const String& rFilter, + const FileViewAsyncAction* pAsyncDescriptor ); + /** initialze the view with a sequence of contents, which have already been obtained elsewhere + + This method will never return <member>eStillRunning</member>, since it will fill the + view synchronously + */ + sal_Bool Initialize( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aContents ); + + /** initializes the view with the content of a folder given by an UCB content + */ + sal_Bool Initialize( const ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XContent>& _xContent, + const String& rFilter ); + + /** reads the current content of the current folder again, and applies the given filter to it + + Note 1: The folder is really read a second time. This implies that any new elements (which were + not present when you called Initialize the last time) are now displayed. + + Note 2: This method must not be called when you previously initialized the view from a sequence + of strings, or a UNO content object. + + @param rFilter + the filter to be applied + @param pAsyncDescriptor + If not <NULL/>, this struct describes the parameters for doing the + action asynchronously. + */ + FileViewResult ExecuteFilter( + const String& rFilter, + const FileViewAsyncAction* pAsyncDescriptor + ); + + /** cancels a running async action (if any) + + @seealso Initialize + @seealso ExecuteFilter + @seealso FileViewAsyncAction + */ + void CancelRunningAsyncAction(); + + /** initializes the view with the parent folder of the current folder + + @param rNewURL + the URL of the folder which we just navigated to + @param pAsyncDescriptor + If not <NULL/>, this struct describes the parameters for doing the + action asynchronously. + */ + FileViewResult PreviousLevel( + const FileViewAsyncAction* pAsyncDescriptor + ); + + void SetNoSelection(); + void ResetCursor(); + + void SetSelectHdl( const Link& rHdl ); + void SetDoubleClickHdl( const Link& rHdl ); + void SetOpenDoneHdl( const Link& rHdl ); + + ULONG GetSelectionCount() const; + SvLBoxEntry* FirstSelected() const; + SvLBoxEntry* NextSelected( SvLBoxEntry* pEntry ) const; + void EnableAutoResize(); + void SetFocus(); + + void EnableContextMenu( sal_Bool bEnable ); + void EnableDelete( sal_Bool bEnable ); + void EnableNameReplacing( sal_Bool bEnable = sal_True ); + // translate folder names or display doc-title instead of file name + // EnableContextMenu( TRUE )/EnableDelete(TRUE) disable name replacing! + + // save and load column size and sort order + String GetConfigString() const; + void SetConfigString( const String& rCfgStr ); + + void SetUrlFilter( const IUrlFilter* _pFilter ); + const IUrlFilter* GetUrlFilter( ) const; + + void EndInplaceEditing( bool _bCancel ); + +protected: + virtual void StateChanged( StateChangedType nStateChange ); +}; + +// struct SvtContentEntry ------------------------------------------------ + +struct SvtContentEntry +{ + sal_Bool mbIsFolder; + UniString maURL; + + SvtContentEntry( const UniString& rURL, sal_Bool bIsFolder ) : + mbIsFolder( bIsFolder ), maURL( rURL ) {} +}; + +namespace svtools { + +// ----------------------------------------------------------------------- +// QueryDeleteDlg_Impl +// ----------------------------------------------------------------------- + +enum QueryDeleteResult_Impl +{ + QUERYDELETE_YES = 0, + QUERYDELETE_NO, + QUERYDELETE_ALL, + QUERYDELETE_CANCEL +}; + +class SVT_DLLPUBLIC QueryDeleteDlg_Impl : public ModalDialog +{ + FixedText _aEntryLabel; + FixedText _aEntry; + FixedText _aQueryMsg; + + PushButton _aYesButton; + PushButton _aAllButton; + PushButton _aNoButton; + CancelButton _aCancelButton; + + QueryDeleteResult_Impl _eResult; + +private: + + DECL_DLLPRIVATE_STATIC_LINK( QueryDeleteDlg_Impl, ClickLink, PushButton* ); + +public: + + QueryDeleteDlg_Impl( Window* pParent, + const String& rName ); + + void EnableAllButton() { _aAllButton.Enable( sal_True ); } + QueryDeleteResult_Impl GetResult() const { return _eResult; } +}; + +} + +#endif // _SVT_FILEVIEW_HXX + diff --git a/svtools/inc/svtools/fltdefs.hxx b/svtools/inc/svtools/fltdefs.hxx new file mode 100644 index 000000000000..86462c2faa33 --- /dev/null +++ b/svtools/inc/svtools/fltdefs.hxx @@ -0,0 +1,136 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#include <tools/solar.h> +#include <vcl/bitmap.hxx> + +#include <string.h> + +#ifndef _FLTDEFS_HXX +#define _FLTDEFS_HXX + + +#if defined ( WNT ) + +#define RGBQUAD RGBQUADWIN + +typedef struct RGBQUAD +{ + BYTE rgbBlue; + BYTE rgbGreen; + BYTE rgbRed; + BYTE rgbReserved; + + RGBQUAD( const BYTE cRed = 0, const BYTE cGreen = 0, const BYTE cBlue = 0 ) : + rgbBlue ( cBlue ), + rgbGreen ( cGreen ), + rgbRed ( cRed ), + rgbReserved ( 0 ) {}; +} RGBQUAD; + + +typedef BYTE* PDIBBYTE; +#define MEMCPY memcpy +#define MEMSET memset +#define GLOBALALLOC(nSize) ((PDIBBYTE)GlobalAlloc(GMEM_FIXED,(nSize))) +#define GLOBALFREE(pPointer) (GlobalFree((HGLOBAL)pPointer)) +#define GLOBALHANDLE(pPointer) ((HGLOBAL)(pPointer)) + +#else + +typedef BYTE* PDIBBYTE; +#define MEMCPY memcpy +#define MEMSET memset +#define GLOBALALLOC(nSize) ((PDIBBYTE)new BYTE[(nSize)]) +#define GLOBALFREE(pPointer) (delete[] (pPointer)) + +#endif + + +#if defined ( OS2 ) || defined ( UNX ) +void ReadBitmap( SvStream& rIStream, Bitmap& rBmp, USHORT nDefaultHeight = 0, ULONG nOffBits = 0 ); +void ReplaceInfoHeader( SvStream& rStm, BYTE* pBuffer ); + +#ifdef OS2 +#define RGBQUAD RGBQUADOS2 +#define BITMAPFILEHEADER BITMAPFILEHEADEROS2 +#define PBITMAPFILEHEADER PBITMAPFILEHEADEROS2 +#define BITMAPINFOHEADER BITMAPINFOHEADEROS2 +#define PBITMAPINFOHEADER PBITMAPINFOHEADEROS2 +#define BITMAPINFO BITMAPINFOOS2 +#define PBITMAPINFO PBITMAPINFOOS2 +#endif + +typedef struct RGBQUAD +{ + BYTE rgbBlue; + BYTE rgbGreen; + BYTE rgbRed; + BYTE rgbReserved; + + RGBQUAD( const BYTE cRed = 0, const BYTE cGreen = 0, const BYTE cBlue = 0 ) : + rgbBlue ( cBlue ), + rgbGreen ( cGreen ), + rgbRed ( cRed ), + rgbReserved ( 0 ) {}; +} RGBQUAD; + +typedef struct BITMAPFILEHEADER +{ + UINT16 bfType; + UINT32 bfSize; + UINT16 bfReserved1; + UINT16 bfReserved2; + UINT32 bfOffBits; +} BITMAPFILEHEADER; +typedef BITMAPFILEHEADER* PBITMAPFILEHEADER; + +typedef struct BITMAPINFOHEADER +{ + UINT32 biSize; + UINT32 biWidth; + UINT32 biHeight; + UINT16 biPlanes; + UINT16 biBitCount; + UINT32 biCompression; + UINT32 biSizeImage; + UINT32 biXPelsPerMeter; + UINT32 biYPelsPerMeter; + UINT32 biClrUsed; + UINT32 biClrImportant; +} BITMAPINFOHEADER; +typedef BITMAPINFOHEADER* PBITMAPINFOHEADER; + +typedef struct BITMAPINFO +{ + BITMAPINFOHEADER bmiHeader; + RGBQUAD bmiColors[1]; +} BITMAPINFO; +typedef BITMAPINFO* PBITMAPINFO; + +#endif +#endif diff --git a/svtools/inc/svtools/fontsubstconfig.hxx b/svtools/inc/svtools/fontsubstconfig.hxx new file mode 100644 index 000000000000..7bdb0dc412c3 --- /dev/null +++ b/svtools/inc/svtools/fontsubstconfig.hxx @@ -0,0 +1,68 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVT_FONTSUBSTCONFIG_HXX +#define _SVT_FONTSUBSTCONFIG_HXX + +#include "svtools/svtdllapi.h" +#include <unotools/configitem.hxx> + +struct SvtFontSubstConfig_Impl; + +//----------------------------------------------------------------------------- +struct SubstitutionStruct +{ + rtl::OUString sFont; + rtl::OUString sReplaceBy; + sal_Bool bReplaceAlways; + sal_Bool bReplaceOnScreenOnly; +}; +//----------------------------------------------------------------------------- +class SVT_DLLPUBLIC SvtFontSubstConfig : public utl::ConfigItem +{ + sal_Bool bIsEnabled; + SvtFontSubstConfig_Impl* pImpl; +public: + SvtFontSubstConfig(); + virtual ~SvtFontSubstConfig(); + + virtual void Commit(); + virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString >& _rPropertyNames); + + sal_Bool IsEnabled() const {return bIsEnabled;} + void Enable(sal_Bool bSet) {bIsEnabled = bSet; SetModified();} + + sal_Int32 SubstitutionCount() const; + void ClearSubstitutions(); + const SubstitutionStruct* GetSubstitution(sal_Int32 nPos); + void AddSubstitution(const SubstitutionStruct& rToAdd); + void Apply(); +}; + +#endif + + + diff --git a/svtools/inc/svtools/framestatuslistener.hxx b/svtools/inc/svtools/framestatuslistener.hxx new file mode 100644 index 000000000000..fd068ac5f86b --- /dev/null +++ b/svtools/inc/svtools/framestatuslistener.hxx @@ -0,0 +1,116 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVTOOLS_FRAMESTATUSLISTENER_HXX +#define _SVTOOLS_FRAMESTATUSLISTENER_HXX + +#include "svtools/svtdllapi.h" +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <com/sun/star/util/XURLTransformer.hpp> +#include <com/sun/star/frame/XFrame.hpp> +#include <com/sun/star/frame/XFrameActionListener.hpp> +#include <com/sun/star/frame/XDispatch.hpp> +#include <com/sun/star/frame/XStatusListener.hpp> +#include <cppuhelper/weak.hxx> +#include <cppuhelper/interfacecontainer.hxx> +#include <comphelper/broadcasthelper.hxx> + +#ifndef INCLUDED_HASH_MAP +#include <hash_map> +#define INCLUDED_HASH_MAP +#endif + +namespace svt +{ + +class SVT_DLLPUBLIC FrameStatusListener : public ::com::sun::star::frame::XStatusListener, + public ::com::sun::star::frame::XFrameActionListener, + public ::com::sun::star::lang::XComponent, + public ::comphelper::OBaseMutex, + public ::cppu::OWeakObject +{ + public: + FrameStatusListener( const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >& rServiceManager, + const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& xFrame ); + virtual ~FrameStatusListener(); + + ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > getFrameInterface() const; + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > getServiceManager() const; + + void updateStatus( const rtl::OUString aCommandURL ); + + // methods to support status forwarder, known by the old sfx2 toolbox controller implementation + void addStatusListener( const rtl::OUString& aCommandURL ); + void removeStatusListener( const rtl::OUString& aCommandURL ); + void bindListener(); + void unbindListener(); + sal_Bool isBound() const; + + // XInterface + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL acquire() throw (); + virtual void SAL_CALL release() throw (); + + // XComponent + virtual void SAL_CALL dispose() throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException); + + // XEventListener + virtual void SAL_CALL disposing( const com::sun::star::lang::EventObject& Source ) throw ( ::com::sun::star::uno::RuntimeException ); + + // XStatusListener + virtual void SAL_CALL statusChanged( const ::com::sun::star::frame::FeatureStateEvent& Event ) throw ( ::com::sun::star::uno::RuntimeException ) = 0; + + // XFrameActionListener + virtual void SAL_CALL frameAction( const com::sun::star::frame::FrameActionEvent& Action ) throw ( ::com::sun::star::uno::RuntimeException ); + + protected: + struct Listener + { + Listener( const ::com::sun::star::util::URL& rURL, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch >& rDispatch ) : + aURL( rURL ), xDispatch( rDispatch ) {} + + ::com::sun::star::util::URL aURL; + ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch > xDispatch; + }; + + typedef ::std::hash_map< ::rtl::OUString, + com::sun::star::uno::Reference< com::sun::star::frame::XDispatch >, + ::rtl::OUStringHash, + ::std::equal_to< ::rtl::OUString > > URLToDispatchMap; + + sal_Bool m_bInitialized : 1, + m_bDisposed : 1; + ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > m_xFrame; + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xServiceManager; + URLToDispatchMap m_aListenerMap; +}; + +} + +#endif // _SVTOOLS_FRAMESTATUSLISTENER_HXX diff --git a/svtools/inc/svtools/helpagentwindow.hxx b/svtools/inc/svtools/helpagentwindow.hxx new file mode 100644 index 000000000000..45b2917c500a --- /dev/null +++ b/svtools/inc/svtools/helpagentwindow.hxx @@ -0,0 +1,88 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVTOOLS_HELPAGENTWIDNOW_HXX_ +#define _SVTOOLS_HELPAGENTWIDNOW_HXX_ + +#include "svtools/svtdllapi.h" +#include <vcl/floatwin.hxx> +#include <vcl/image.hxx> + +//........................................................................ +namespace svt +{ +//........................................................................ + + //==================================================================== + //= IHelpAgentCallback + //==================================================================== + class IHelpAgentCallback + { + public: + virtual void helpRequested() = 0; + virtual void closeAgent() = 0; + }; + + //==================================================================== + //= HelpAgentWindow + //==================================================================== + class SVT_DLLPUBLIC HelpAgentWindow : public FloatingWindow + { + protected: + Window* m_pCloser; + IHelpAgentCallback* m_pCallback; + Size m_aPreferredSize; + Image m_aPicture; + + public: + HelpAgentWindow( Window* _pParent ); + ~HelpAgentWindow(); + + /// returns the preferred size of the window + const Size& getPreferredSizePixel() const { return m_aPreferredSize; } + + // callback handler maintainance + void setCallback(IHelpAgentCallback* _pCB) { m_pCallback = _pCB; } + IHelpAgentCallback* getCallback() const { return m_pCallback; } + + protected: + virtual void Resize(); + virtual void Paint( const Rectangle& rRect ); + virtual void MouseButtonUp( const MouseEvent& rMEvt ); + + DECL_LINK( OnButtonClicked, Window* ); + + private: + SVT_DLLPRIVATE Size implOptimalButtonSize( const Image& _rButtonImage ); + }; + +//........................................................................ +} // namespace svt +//........................................................................ + +#endif // _SVTOOLS_HELPAGENTWIDNOW_HXX_ + diff --git a/svtools/inc/svtools/htmlkywd.hxx b/svtools/inc/svtools/htmlkywd.hxx new file mode 100644 index 000000000000..13928eaeaa39 --- /dev/null +++ b/svtools/inc/svtools/htmlkywd.hxx @@ -0,0 +1,801 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _HTMLKYWD_HXX +#define _HTMLKYWD_HXX + +#include "sal/config.h" + +#define OOO_STRING_SVTOOLS_HTML_doctype32 \ + "HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\"" +#define OOO_STRING_SVTOOLS_HTML_doctype40 \ + "HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"" + +// diese werden nur eingeschaltet +#define OOO_STRING_SVTOOLS_HTML_area "AREA" +#define OOO_STRING_SVTOOLS_HTML_base "BASE" +#define OOO_STRING_SVTOOLS_HTML_comment "!--" +#define OOO_STRING_SVTOOLS_HTML_doctype "!DOCTYPE" +#define OOO_STRING_SVTOOLS_HTML_embed "EMBED" +#define OOO_STRING_SVTOOLS_HTML_figureoverlay "OVERLAY" +#define OOO_STRING_SVTOOLS_HTML_horzrule "HR" +#define OOO_STRING_SVTOOLS_HTML_horztab "TAB" +#define OOO_STRING_SVTOOLS_HTML_image "IMG" +#define OOO_STRING_SVTOOLS_HTML_image2 "IMAGE" +#define OOO_STRING_SVTOOLS_HTML_input "INPUT" +#define OOO_STRING_SVTOOLS_HTML_isindex "ISINDEX" +#define OOO_STRING_SVTOOLS_HTML_linebreak "BR" +#define OOO_STRING_SVTOOLS_HTML_li "LI" +#define OOO_STRING_SVTOOLS_HTML_link "LINK" +#define OOO_STRING_SVTOOLS_HTML_meta "META" +#define OOO_STRING_SVTOOLS_HTML_nextid "NEXTID" +#define OOO_STRING_SVTOOLS_HTML_nobr "NOBR" +#define OOO_STRING_SVTOOLS_HTML_of "OF" +#define OOO_STRING_SVTOOLS_HTML_option "OPTION" +#define OOO_STRING_SVTOOLS_HTML_param "PARAM" +#define OOO_STRING_SVTOOLS_HTML_range "RANGE" +#define OOO_STRING_SVTOOLS_HTML_spacer "SPACER" +#define OOO_STRING_SVTOOLS_HTML_wbr "WBR" + +// diese werden wieder abgeschaltet +#define OOO_STRING_SVTOOLS_HTML_abbreviation "ABBREV" +#define OOO_STRING_SVTOOLS_HTML_above "ABOVE" +#define OOO_STRING_SVTOOLS_HTML_acronym "ACRONYM" +#define OOO_STRING_SVTOOLS_HTML_address "ADDRESS" +#define OOO_STRING_SVTOOLS_HTML_anchor "A" +#define OOO_STRING_SVTOOLS_HTML_applet "APPLET" +#define OOO_STRING_SVTOOLS_HTML_array "ARRAY" +#define OOO_STRING_SVTOOLS_HTML_author "AU" +#define OOO_STRING_SVTOOLS_HTML_banner "BANNER" +#define OOO_STRING_SVTOOLS_HTML_bar "BAR" +#define OOO_STRING_SVTOOLS_HTML_basefont "BASEFONT" +#define OOO_STRING_SVTOOLS_HTML_below "BELOW" +#define OOO_STRING_SVTOOLS_HTML_bigprint "BIG" +#define OOO_STRING_SVTOOLS_HTML_blink "BLINK" +#define OOO_STRING_SVTOOLS_HTML_blockquote "BLOCKQUOTE" +#define OOO_STRING_SVTOOLS_HTML_blockquote30 "BQ" +#define OOO_STRING_SVTOOLS_HTML_body "BODY" +#define OOO_STRING_SVTOOLS_HTML_bold "B" +#define OOO_STRING_SVTOOLS_HTML_boldtext "BT" +#define OOO_STRING_SVTOOLS_HTML_box "BOX" +#define OOO_STRING_SVTOOLS_HTML_caption "CAPTION" +#define OOO_STRING_SVTOOLS_HTML_center "CENTER" +#define OOO_STRING_SVTOOLS_HTML_citiation "CITE" +#define OOO_STRING_SVTOOLS_HTML_code "CODE" +#define OOO_STRING_SVTOOLS_HTML_col "COL" +#define OOO_STRING_SVTOOLS_HTML_colgroup "COLGROUP" +#define OOO_STRING_SVTOOLS_HTML_credit "CREDIT" +#define OOO_STRING_SVTOOLS_HTML_dd "DD" +#define OOO_STRING_SVTOOLS_HTML_deflist "DL" +#define OOO_STRING_SVTOOLS_HTML_deletedtext "DEL" +#define OOO_STRING_SVTOOLS_HTML_dirlist "DIR" +#define OOO_STRING_SVTOOLS_HTML_division "DIV" +#define OOO_STRING_SVTOOLS_HTML_dot "DOT" +#define OOO_STRING_SVTOOLS_HTML_doubledot "DDOT" +#define OOO_STRING_SVTOOLS_HTML_dt "DT" +#define OOO_STRING_SVTOOLS_HTML_emphasis "EM" +#define OOO_STRING_SVTOOLS_HTML_figure "FIG" +#define OOO_STRING_SVTOOLS_HTML_font "FONT" +#define OOO_STRING_SVTOOLS_HTML_footnote "FN" +#define OOO_STRING_SVTOOLS_HTML_form "FORM" +#define OOO_STRING_SVTOOLS_HTML_frame "FRAME" +#define OOO_STRING_SVTOOLS_HTML_frameset "FRAMESET" +#define OOO_STRING_SVTOOLS_HTML_hat "HAT" +#define OOO_STRING_SVTOOLS_HTML_head1 "H1" +#define OOO_STRING_SVTOOLS_HTML_head2 "H2" +#define OOO_STRING_SVTOOLS_HTML_head3 "H3" +#define OOO_STRING_SVTOOLS_HTML_head4 "H4" +#define OOO_STRING_SVTOOLS_HTML_head5 "H5" +#define OOO_STRING_SVTOOLS_HTML_head6 "H6" +#define OOO_STRING_SVTOOLS_HTML_head "HEAD" +#define OOO_STRING_SVTOOLS_HTML_html "HTML" +#define OOO_STRING_SVTOOLS_HTML_iframe "IFRAME" +#define OOO_STRING_SVTOOLS_HTML_ilayer "ILAYER" +#define OOO_STRING_SVTOOLS_HTML_insertedtext "INS" +#define OOO_STRING_SVTOOLS_HTML_italic "I" +#define OOO_STRING_SVTOOLS_HTML_item "ITEM" +#define OOO_STRING_SVTOOLS_HTML_keyboard "KBD" +#define OOO_STRING_SVTOOLS_HTML_language "LANG" +#define OOO_STRING_SVTOOLS_HTML_layer "LAYER" +#define OOO_STRING_SVTOOLS_HTML_listheader "LH" +#define OOO_STRING_SVTOOLS_HTML_map "MAP" +#define OOO_STRING_SVTOOLS_HTML_math "MATH" +#define OOO_STRING_SVTOOLS_HTML_menulist "MENU" +#define OOO_STRING_SVTOOLS_HTML_multicol "MULTICOL" +#define OOO_STRING_SVTOOLS_HTML_noembed "NOEMBED" +#define OOO_STRING_SVTOOLS_HTML_noframe "NOFRAME" +#define OOO_STRING_SVTOOLS_HTML_noframes "NOFRAMES" +#define OOO_STRING_SVTOOLS_HTML_noscript "NOSCRIPT" +#define OOO_STRING_SVTOOLS_HTML_note "NOTE" +#define OOO_STRING_SVTOOLS_HTML_object "OBJECT" +#define OOO_STRING_SVTOOLS_HTML_orderlist "OL" +#define OOO_STRING_SVTOOLS_HTML_parabreak "P" +#define OOO_STRING_SVTOOLS_HTML_person "PERSON" +#define OOO_STRING_SVTOOLS_HTML_plaintext "T" +#define OOO_STRING_SVTOOLS_HTML_preformtxt "PRE" +#define OOO_STRING_SVTOOLS_HTML_root "ROOT" +#define OOO_STRING_SVTOOLS_HTML_row "ROW" +#define OOO_STRING_SVTOOLS_HTML_sample "SAMP" +#define OOO_STRING_SVTOOLS_HTML_script "SCRIPT" +#define OOO_STRING_SVTOOLS_HTML_select "SELECT" +#define OOO_STRING_SVTOOLS_HTML_shortquote "Q" +#define OOO_STRING_SVTOOLS_HTML_smallprint "SMALL" +#define OOO_STRING_SVTOOLS_HTML_span "SPAN" +#define OOO_STRING_SVTOOLS_HTML_squareroot "AQRT" +#define OOO_STRING_SVTOOLS_HTML_strikethrough "S" +#define OOO_STRING_SVTOOLS_HTML_strong "STRONG" +#define OOO_STRING_SVTOOLS_HTML_style "STYLE" +#define OOO_STRING_SVTOOLS_HTML_subscript "SUB" +#define OOO_STRING_SVTOOLS_HTML_superscript "SUP" +#define OOO_STRING_SVTOOLS_HTML_table "TABLE" +#define OOO_STRING_SVTOOLS_HTML_tablerow "TR" +#define OOO_STRING_SVTOOLS_HTML_tabledata "TD" +#define OOO_STRING_SVTOOLS_HTML_tableheader "TH" +#define OOO_STRING_SVTOOLS_HTML_tbody "TBODY" +#define OOO_STRING_SVTOOLS_HTML_teletype "TT" +#define OOO_STRING_SVTOOLS_HTML_text "TEXT" +#define OOO_STRING_SVTOOLS_HTML_textarea "TEXTAREA" +#define OOO_STRING_SVTOOLS_HTML_textflow "TEXTFLOW" +#define OOO_STRING_SVTOOLS_HTML_tfoot "TFOOT" +#define OOO_STRING_SVTOOLS_HTML_thead "THEAD" +#define OOO_STRING_SVTOOLS_HTML_tilde "TILDE" +#define OOO_STRING_SVTOOLS_HTML_title "TITLE" +#define OOO_STRING_SVTOOLS_HTML_underline "U" +#define OOO_STRING_SVTOOLS_HTML_unorderlist "UL" +#define OOO_STRING_SVTOOLS_HTML_variable "VAR" +#define OOO_STRING_SVTOOLS_HTML_vector "VEC" + +// obsolete features +#define OOO_STRING_SVTOOLS_HTML_xmp "XMP" +#define OOO_STRING_SVTOOLS_HTML_listing "LISTING" + +// proposed features +#define OOO_STRING_SVTOOLS_HTML_definstance "DFN" +#define OOO_STRING_SVTOOLS_HTML_strike "STRIKE" +#define OOO_STRING_SVTOOLS_HTML_bgsound "BGSOUND" +#define OOO_STRING_SVTOOLS_HTML_comment2 "COMMENT" +#define OOO_STRING_SVTOOLS_HTML_marquee "MARQUEE" +#define OOO_STRING_SVTOOLS_HTML_plaintext2 "PLAINTEXT" +#define OOO_STRING_SVTOOLS_HTML_sdfield "SDFIELD" + +// die Namen fuer alle Zeichen +#define OOO_STRING_SVTOOLS_HTML_C_lt "lt" +#define OOO_STRING_SVTOOLS_HTML_C_gt "gt" +#define OOO_STRING_SVTOOLS_HTML_C_amp "amp" +#define OOO_STRING_SVTOOLS_HTML_C_quot "quot" +#define OOO_STRING_SVTOOLS_HTML_C_Aacute "Aacute" +#define OOO_STRING_SVTOOLS_HTML_C_Agrave "Agrave" +#define OOO_STRING_SVTOOLS_HTML_C_Acirc "Acirc" +#define OOO_STRING_SVTOOLS_HTML_C_Atilde "Atilde" +#define OOO_STRING_SVTOOLS_HTML_C_Aring "Aring" +#define OOO_STRING_SVTOOLS_HTML_C_Auml "Auml" +#define OOO_STRING_SVTOOLS_HTML_C_AElig "AElig" +#define OOO_STRING_SVTOOLS_HTML_C_Ccedil "Ccedil" +#define OOO_STRING_SVTOOLS_HTML_C_Eacute "Eacute" +#define OOO_STRING_SVTOOLS_HTML_C_Egrave "Egrave" +#define OOO_STRING_SVTOOLS_HTML_C_Ecirc "Ecirc" +#define OOO_STRING_SVTOOLS_HTML_C_Euml "Euml" +#define OOO_STRING_SVTOOLS_HTML_C_Iacute "Iacute" +#define OOO_STRING_SVTOOLS_HTML_C_Igrave "Igrave" +#define OOO_STRING_SVTOOLS_HTML_C_Icirc "Icirc" +#define OOO_STRING_SVTOOLS_HTML_C_Iuml "Iuml" +#define OOO_STRING_SVTOOLS_HTML_C_ETH "ETH" +#define OOO_STRING_SVTOOLS_HTML_C_Ntilde "Ntilde" +#define OOO_STRING_SVTOOLS_HTML_C_Oacute "Oacute" +#define OOO_STRING_SVTOOLS_HTML_C_Ograve "Ograve" +#define OOO_STRING_SVTOOLS_HTML_C_Ocirc "Ocirc" +#define OOO_STRING_SVTOOLS_HTML_C_Otilde "Otilde" +#define OOO_STRING_SVTOOLS_HTML_C_Ouml "Ouml" +#define OOO_STRING_SVTOOLS_HTML_C_Oslash "Oslash" +#define OOO_STRING_SVTOOLS_HTML_C_Uacute "Uacute" +#define OOO_STRING_SVTOOLS_HTML_C_Ugrave "Ugrave" +#define OOO_STRING_SVTOOLS_HTML_C_Ucirc "Ucirc" +#define OOO_STRING_SVTOOLS_HTML_C_Uuml "Uuml" +#define OOO_STRING_SVTOOLS_HTML_C_Yacute "Yacute" +#define OOO_STRING_SVTOOLS_HTML_C_THORN "THORN" +#define OOO_STRING_SVTOOLS_HTML_C_szlig "szlig" +#define OOO_STRING_SVTOOLS_HTML_S_aacute "aacute" +#define OOO_STRING_SVTOOLS_HTML_S_agrave "agrave" +#define OOO_STRING_SVTOOLS_HTML_S_acirc "acirc" +#define OOO_STRING_SVTOOLS_HTML_S_atilde "atilde" +#define OOO_STRING_SVTOOLS_HTML_S_aring "aring" +#define OOO_STRING_SVTOOLS_HTML_S_auml "auml" +#define OOO_STRING_SVTOOLS_HTML_S_aelig "aelig" +#define OOO_STRING_SVTOOLS_HTML_S_ccedil "ccedil" +#define OOO_STRING_SVTOOLS_HTML_S_eacute "eacute" +#define OOO_STRING_SVTOOLS_HTML_S_egrave "egrave" +#define OOO_STRING_SVTOOLS_HTML_S_ecirc "ecirc" +#define OOO_STRING_SVTOOLS_HTML_S_euml "euml" +#define OOO_STRING_SVTOOLS_HTML_S_iacute "iacute" +#define OOO_STRING_SVTOOLS_HTML_S_igrave "igrave" +#define OOO_STRING_SVTOOLS_HTML_S_icirc "icirc" +#define OOO_STRING_SVTOOLS_HTML_S_iuml "iuml" +#define OOO_STRING_SVTOOLS_HTML_S_eth "eth" +#define OOO_STRING_SVTOOLS_HTML_S_ntilde "ntilde" +#define OOO_STRING_SVTOOLS_HTML_S_oacute "oacute" +#define OOO_STRING_SVTOOLS_HTML_S_ograve "ograve" +#define OOO_STRING_SVTOOLS_HTML_S_ocirc "ocirc" +#define OOO_STRING_SVTOOLS_HTML_S_otilde "otilde" +#define OOO_STRING_SVTOOLS_HTML_S_ouml "ouml" +#define OOO_STRING_SVTOOLS_HTML_S_oslash "oslash" +#define OOO_STRING_SVTOOLS_HTML_S_uacute "uacute" +#define OOO_STRING_SVTOOLS_HTML_S_ugrave "ugrave" +#define OOO_STRING_SVTOOLS_HTML_S_ucirc "ucirc" +#define OOO_STRING_SVTOOLS_HTML_S_uuml "uuml" +#define OOO_STRING_SVTOOLS_HTML_S_yacute "yacute" +#define OOO_STRING_SVTOOLS_HTML_S_thorn "thorn" +#define OOO_STRING_SVTOOLS_HTML_S_yuml "yuml" +#define OOO_STRING_SVTOOLS_HTML_S_acute "acute" +#define OOO_STRING_SVTOOLS_HTML_S_brvbar "brvbar" +#define OOO_STRING_SVTOOLS_HTML_S_cedil "cedil" +#define OOO_STRING_SVTOOLS_HTML_S_cent "cent" +#define OOO_STRING_SVTOOLS_HTML_S_copy "copy" +#define OOO_STRING_SVTOOLS_HTML_S_curren "curren" +#define OOO_STRING_SVTOOLS_HTML_S_deg "deg" +#define OOO_STRING_SVTOOLS_HTML_S_divide "divide" +#define OOO_STRING_SVTOOLS_HTML_S_frac12 "frac12" +#define OOO_STRING_SVTOOLS_HTML_S_frac14 "frac14" +#define OOO_STRING_SVTOOLS_HTML_S_frac34 "frac34" +#define OOO_STRING_SVTOOLS_HTML_S_iexcl "iexcl" +#define OOO_STRING_SVTOOLS_HTML_S_iquest "iquest" +#define OOO_STRING_SVTOOLS_HTML_S_laquo "laquo" +#define OOO_STRING_SVTOOLS_HTML_S_macr "macr" +#define OOO_STRING_SVTOOLS_HTML_S_micro "micro" +#define OOO_STRING_SVTOOLS_HTML_S_middot "middot" +#define OOO_STRING_SVTOOLS_HTML_S_nbsp "nbsp" +#define OOO_STRING_SVTOOLS_HTML_S_not "not" +#define OOO_STRING_SVTOOLS_HTML_S_ordf "ordf" +#define OOO_STRING_SVTOOLS_HTML_S_ordm "ordm" +#define OOO_STRING_SVTOOLS_HTML_S_para "para" +#define OOO_STRING_SVTOOLS_HTML_S_plusmn "plusmn" +#define OOO_STRING_SVTOOLS_HTML_S_pound "pound" +#define OOO_STRING_SVTOOLS_HTML_S_raquo "raquo" +#define OOO_STRING_SVTOOLS_HTML_S_reg "reg" +#define OOO_STRING_SVTOOLS_HTML_S_sect "sect" +#define OOO_STRING_SVTOOLS_HTML_S_shy "shy" +#define OOO_STRING_SVTOOLS_HTML_S_sup1 "sup1" +#define OOO_STRING_SVTOOLS_HTML_S_sup2 "sup2" +#define OOO_STRING_SVTOOLS_HTML_S_sup3 "sup3" +#define OOO_STRING_SVTOOLS_HTML_S_times "times" +#define OOO_STRING_SVTOOLS_HTML_S_uml "uml" +#define OOO_STRING_SVTOOLS_HTML_S_yen "yen" + +// Netscape kennt noch ein paar in Grossbuchstaben ... +#define OOO_STRING_SVTOOLS_HTML_C_LT "LT" +#define OOO_STRING_SVTOOLS_HTML_C_GT "GT" +#define OOO_STRING_SVTOOLS_HTML_C_AMP "AMP" +#define OOO_STRING_SVTOOLS_HTML_C_QUOT "QUOT" +#define OOO_STRING_SVTOOLS_HTML_S_COPY "COPY" +#define OOO_STRING_SVTOOLS_HTML_S_REG "REG" + +// HTML4 +#define OOO_STRING_SVTOOLS_HTML_S_alefsym "alefsym" +#define OOO_STRING_SVTOOLS_HTML_S_Alpha "Alpha" +#define OOO_STRING_SVTOOLS_HTML_S_alpha "alpha" +#define OOO_STRING_SVTOOLS_HTML_S_and "and" +#define OOO_STRING_SVTOOLS_HTML_S_ang "ang" +#define OOO_STRING_SVTOOLS_HTML_S_asymp "asymp" +#define OOO_STRING_SVTOOLS_HTML_S_bdquo "bdquo" +#define OOO_STRING_SVTOOLS_HTML_S_Beta "Beta" +#define OOO_STRING_SVTOOLS_HTML_S_beta "beta" +#define OOO_STRING_SVTOOLS_HTML_S_bull "bull" +#define OOO_STRING_SVTOOLS_HTML_S_cap "cap" +#define OOO_STRING_SVTOOLS_HTML_S_chi "chi" +#define OOO_STRING_SVTOOLS_HTML_S_Chi "Chi" +#define OOO_STRING_SVTOOLS_HTML_S_circ "circ" +#define OOO_STRING_SVTOOLS_HTML_S_clubs "clubs" +#define OOO_STRING_SVTOOLS_HTML_S_cong "cong" +#define OOO_STRING_SVTOOLS_HTML_S_crarr "crarr" +#define OOO_STRING_SVTOOLS_HTML_S_cup "cup" +#define OOO_STRING_SVTOOLS_HTML_S_dagger "dagger" +#define OOO_STRING_SVTOOLS_HTML_S_Dagger "Dagger" +#define OOO_STRING_SVTOOLS_HTML_S_darr "darr" +#define OOO_STRING_SVTOOLS_HTML_S_dArr "dArr" +#define OOO_STRING_SVTOOLS_HTML_S_Delta "Delta" +#define OOO_STRING_SVTOOLS_HTML_S_delta "delta" +#define OOO_STRING_SVTOOLS_HTML_S_diams "diams" +#define OOO_STRING_SVTOOLS_HTML_S_empty "empty" +#define OOO_STRING_SVTOOLS_HTML_S_emsp "emsp" +#define OOO_STRING_SVTOOLS_HTML_S_ensp "ensp" +#define OOO_STRING_SVTOOLS_HTML_S_Epsilon "Epsilon" +#define OOO_STRING_SVTOOLS_HTML_S_epsilon "epsilon" +#define OOO_STRING_SVTOOLS_HTML_S_equiv "equiv" +#define OOO_STRING_SVTOOLS_HTML_S_Eta "Eta" +#define OOO_STRING_SVTOOLS_HTML_S_eta "eta" +#define OOO_STRING_SVTOOLS_HTML_S_euro "euro" +#define OOO_STRING_SVTOOLS_HTML_S_exist "exist" +#define OOO_STRING_SVTOOLS_HTML_S_fnof "fnof" +#define OOO_STRING_SVTOOLS_HTML_S_forall "forall" +#define OOO_STRING_SVTOOLS_HTML_S_frasl "frasl" +#define OOO_STRING_SVTOOLS_HTML_S_Gamma "Gamma" +#define OOO_STRING_SVTOOLS_HTML_S_gamma "gamma" +#define OOO_STRING_SVTOOLS_HTML_S_ge "ge" +#define OOO_STRING_SVTOOLS_HTML_S_harr "harr" +#define OOO_STRING_SVTOOLS_HTML_S_hArr "hArr" +#define OOO_STRING_SVTOOLS_HTML_S_hearts "hearts" +#define OOO_STRING_SVTOOLS_HTML_S_hellip "hellip" +#define OOO_STRING_SVTOOLS_HTML_S_image "image" +#define OOO_STRING_SVTOOLS_HTML_S_infin "infin" +#define OOO_STRING_SVTOOLS_HTML_S_int "int" +#define OOO_STRING_SVTOOLS_HTML_S_Iota "Iota" +#define OOO_STRING_SVTOOLS_HTML_S_iota "iota" +#define OOO_STRING_SVTOOLS_HTML_S_isin "isin" +#define OOO_STRING_SVTOOLS_HTML_S_Kappa "Kappa" +#define OOO_STRING_SVTOOLS_HTML_S_kappa "kappa" +#define OOO_STRING_SVTOOLS_HTML_S_Lambda "Lambda" +#define OOO_STRING_SVTOOLS_HTML_S_lambda "lambda" +#define OOO_STRING_SVTOOLS_HTML_S_lang "lang" +#define OOO_STRING_SVTOOLS_HTML_S_larr "larr" +#define OOO_STRING_SVTOOLS_HTML_S_lArr "lArr" +#define OOO_STRING_SVTOOLS_HTML_S_lceil "lceil" +#define OOO_STRING_SVTOOLS_HTML_S_ldquo "ldquo" +#define OOO_STRING_SVTOOLS_HTML_S_le "le" +#define OOO_STRING_SVTOOLS_HTML_S_lfloor "lfloor" +#define OOO_STRING_SVTOOLS_HTML_S_lowast "lowast" +#define OOO_STRING_SVTOOLS_HTML_S_loz "loz" +#define OOO_STRING_SVTOOLS_HTML_S_lrm "lrm" +#define OOO_STRING_SVTOOLS_HTML_S_lsaquo "lsaquo" +#define OOO_STRING_SVTOOLS_HTML_S_lsquo "lsquo" +#define OOO_STRING_SVTOOLS_HTML_S_mdash "mdash" +#define OOO_STRING_SVTOOLS_HTML_S_minus "minus" +#define OOO_STRING_SVTOOLS_HTML_S_Mu "Mu" +#define OOO_STRING_SVTOOLS_HTML_S_mu "mu" +#define OOO_STRING_SVTOOLS_HTML_S_nabla "nabla" +#define OOO_STRING_SVTOOLS_HTML_S_ndash "ndash" +#define OOO_STRING_SVTOOLS_HTML_S_ne "ne" +#define OOO_STRING_SVTOOLS_HTML_S_ni "ni" +#define OOO_STRING_SVTOOLS_HTML_S_notin "notin" +#define OOO_STRING_SVTOOLS_HTML_S_nsub "nsub" +#define OOO_STRING_SVTOOLS_HTML_S_Nu "Nu" +#define OOO_STRING_SVTOOLS_HTML_S_nu "nu" +#define OOO_STRING_SVTOOLS_HTML_S_OElig "OElig" +#define OOO_STRING_SVTOOLS_HTML_S_oelig "oelig" +#define OOO_STRING_SVTOOLS_HTML_S_oline "oline" +#define OOO_STRING_SVTOOLS_HTML_S_Omega "Omega" +#define OOO_STRING_SVTOOLS_HTML_S_omega "omega" +#define OOO_STRING_SVTOOLS_HTML_S_Omicron "Omicron" +#define OOO_STRING_SVTOOLS_HTML_S_omicron "omicron" +#define OOO_STRING_SVTOOLS_HTML_S_oplus "oplus" +#define OOO_STRING_SVTOOLS_HTML_S_or "or" +#define OOO_STRING_SVTOOLS_HTML_S_otimes "otimes" +#define OOO_STRING_SVTOOLS_HTML_S_part "part" +#define OOO_STRING_SVTOOLS_HTML_S_permil "permil" +#define OOO_STRING_SVTOOLS_HTML_S_perp "perp" +#define OOO_STRING_SVTOOLS_HTML_S_Phi "Phi" +#define OOO_STRING_SVTOOLS_HTML_S_phi "phi" +#define OOO_STRING_SVTOOLS_HTML_S_Pi "Pi" +#define OOO_STRING_SVTOOLS_HTML_S_pi "pi" +#define OOO_STRING_SVTOOLS_HTML_S_piv "piv" +#define OOO_STRING_SVTOOLS_HTML_S_prime "prime" +#define OOO_STRING_SVTOOLS_HTML_S_Prime "Prime" +#define OOO_STRING_SVTOOLS_HTML_S_prod "prod" +#define OOO_STRING_SVTOOLS_HTML_S_prop "prop" +#define OOO_STRING_SVTOOLS_HTML_S_Psi "Psi" +#define OOO_STRING_SVTOOLS_HTML_S_psi "psi" +#define OOO_STRING_SVTOOLS_HTML_S_radic "radic" +#define OOO_STRING_SVTOOLS_HTML_S_rang "rang" +#define OOO_STRING_SVTOOLS_HTML_S_rarr "rarr" +#define OOO_STRING_SVTOOLS_HTML_S_rArr "rArr" +#define OOO_STRING_SVTOOLS_HTML_S_rceil "rceil" +#define OOO_STRING_SVTOOLS_HTML_S_rdquo "rdquo" +#define OOO_STRING_SVTOOLS_HTML_S_real "real" +#define OOO_STRING_SVTOOLS_HTML_S_rfloor "rfloor" +#define OOO_STRING_SVTOOLS_HTML_S_Rho "Rho" +#define OOO_STRING_SVTOOLS_HTML_S_rho "rho" +#define OOO_STRING_SVTOOLS_HTML_S_rlm "rlm" +#define OOO_STRING_SVTOOLS_HTML_S_rsaquo "rsaquo" +#define OOO_STRING_SVTOOLS_HTML_S_rsquo "rsquo" +#define OOO_STRING_SVTOOLS_HTML_S_sbquo "sbquo" +#define OOO_STRING_SVTOOLS_HTML_S_Scaron "Scaron" +#define OOO_STRING_SVTOOLS_HTML_S_scaron "scaron" +#define OOO_STRING_SVTOOLS_HTML_S_sdot "sdot" +#define OOO_STRING_SVTOOLS_HTML_S_Sigma "Sigma" +#define OOO_STRING_SVTOOLS_HTML_S_sigma "sigma" +#define OOO_STRING_SVTOOLS_HTML_S_sigmaf "sigmaf" +#define OOO_STRING_SVTOOLS_HTML_S_sim "sim" +#define OOO_STRING_SVTOOLS_HTML_S_spades "spades" +#define OOO_STRING_SVTOOLS_HTML_S_sub "sub" +#define OOO_STRING_SVTOOLS_HTML_S_sube "sube" +#define OOO_STRING_SVTOOLS_HTML_S_sum "sum" +#define OOO_STRING_SVTOOLS_HTML_S_sup "sup" +#define OOO_STRING_SVTOOLS_HTML_S_supe "supe" +#define OOO_STRING_SVTOOLS_HTML_S_Tau "Tau" +#define OOO_STRING_SVTOOLS_HTML_S_tau "tau" +#define OOO_STRING_SVTOOLS_HTML_S_there4 "there4" +#define OOO_STRING_SVTOOLS_HTML_S_Theta "Theta" +#define OOO_STRING_SVTOOLS_HTML_S_theta "theta" +#define OOO_STRING_SVTOOLS_HTML_S_thetasym "thetasym" +#define OOO_STRING_SVTOOLS_HTML_S_thinsp "thinsp" +#define OOO_STRING_SVTOOLS_HTML_S_tilde "tilde" +#define OOO_STRING_SVTOOLS_HTML_S_trade "trade" +#define OOO_STRING_SVTOOLS_HTML_S_uarr "uarr" +#define OOO_STRING_SVTOOLS_HTML_S_uArr "uArr" +#define OOO_STRING_SVTOOLS_HTML_S_upsih "upsih" +#define OOO_STRING_SVTOOLS_HTML_S_Upsilon "Upsilon" +#define OOO_STRING_SVTOOLS_HTML_S_upsilon "upsilon" +#define OOO_STRING_SVTOOLS_HTML_S_weierp "weierp" +#define OOO_STRING_SVTOOLS_HTML_S_Xi "Xi" +#define OOO_STRING_SVTOOLS_HTML_S_xi "xi" +#define OOO_STRING_SVTOOLS_HTML_S_Yuml "Yuml" +#define OOO_STRING_SVTOOLS_HTML_S_Zeta "Zeta" +#define OOO_STRING_SVTOOLS_HTML_S_zeta "zeta" +#define OOO_STRING_SVTOOLS_HTML_S_zwj "zwj" +#define OOO_STRING_SVTOOLS_HTML_S_zwnj "zwnj" + +// HTML Attribut-Token (=Optionen) + +// Attribute ohne Wert +#define OOO_STRING_SVTOOLS_HTML_O_box "BOX" +#define OOO_STRING_SVTOOLS_HTML_O_checked "CHECKED" +#define OOO_STRING_SVTOOLS_HTML_O_compact "COMPACT" +#define OOO_STRING_SVTOOLS_HTML_O_continue "CONTINUE" +#define OOO_STRING_SVTOOLS_HTML_O_controls "CONTROLS" +#define OOO_STRING_SVTOOLS_HTML_O_declare "DECLARE" +#define OOO_STRING_SVTOOLS_HTML_O_disabled "DISABLED" +#define OOO_STRING_SVTOOLS_HTML_O_folded "FOLDED" +#define OOO_STRING_SVTOOLS_HTML_O_ismap "ISMAP" +#define OOO_STRING_SVTOOLS_HTML_O_mayscript "MAYSCRIPT" +#define OOO_STRING_SVTOOLS_HTML_O_multiple "MULTIPLE" +#define OOO_STRING_SVTOOLS_HTML_O_noflow "NOFLOW" +#define OOO_STRING_SVTOOLS_HTML_O_nohref "NOHREF" +#define OOO_STRING_SVTOOLS_HTML_O_noresize "NORESIZE" +#define OOO_STRING_SVTOOLS_HTML_O_noshade "NOSHADE" +#define OOO_STRING_SVTOOLS_HTML_O_nowrap "NOWRAP" +#define OOO_STRING_SVTOOLS_HTML_O_plain "PLAIN" +#define OOO_STRING_SVTOOLS_HTML_O_sdfixed "SDFIXED" +#define OOO_STRING_SVTOOLS_HTML_O_selected "SELECTED" +#define OOO_STRING_SVTOOLS_HTML_O_shapes "SHAPES" + +// Attribute mit einem String als Wert +#define OOO_STRING_SVTOOLS_HTML_O_above "ABOVE" +#define OOO_STRING_SVTOOLS_HTML_O_accesskey "ACCESSKEY" +#define OOO_STRING_SVTOOLS_HTML_O_accept "ACCEPT" +#define OOO_STRING_SVTOOLS_HTML_O_add_date "ADD_DATE" +#define OOO_STRING_SVTOOLS_HTML_O_alt "ALT" +#define OOO_STRING_SVTOOLS_HTML_O_axes "AXES" +#define OOO_STRING_SVTOOLS_HTML_O_axis "AXIS" +#define OOO_STRING_SVTOOLS_HTML_O_below "BELOW" +#define OOO_STRING_SVTOOLS_HTML_O_char "CHAR" +#define OOO_STRING_SVTOOLS_HTML_O_class "CLASS" +#define OOO_STRING_SVTOOLS_HTML_O_clip "CLIP" +#define OOO_STRING_SVTOOLS_HTML_O_code "CODE" +#define OOO_STRING_SVTOOLS_HTML_O_codetype "CODETYPE" +#define OOO_STRING_SVTOOLS_HTML_O_colspec "COLSPEC" +#define OOO_STRING_SVTOOLS_HTML_O_content "CONTENT" +#define OOO_STRING_SVTOOLS_HTML_O_coords "COORDS" +#define OOO_STRING_SVTOOLS_HTML_O_dp "DP" +#define OOO_STRING_SVTOOLS_HTML_O_enctype "ENCTYPE" +#define OOO_STRING_SVTOOLS_HTML_O_error "ERROR" +#define OOO_STRING_SVTOOLS_HTML_O_face "FACE" +#define OOO_STRING_SVTOOLS_HTML_O_frameborder "FRAMEBORDER" +#define OOO_STRING_SVTOOLS_HTML_O_httpequiv "HTTP-EQUIV" +#define OOO_STRING_SVTOOLS_HTML_O_language "LANGUAGE" +#define OOO_STRING_SVTOOLS_HTML_O_last_modified "LAST_MODIFIED" +#define OOO_STRING_SVTOOLS_HTML_O_last_visit "LAST_VISIT" +#define OOO_STRING_SVTOOLS_HTML_O_md "MD" +#define OOO_STRING_SVTOOLS_HTML_O_n "N" +#define OOO_STRING_SVTOOLS_HTML_O_name "NAME" +#define OOO_STRING_SVTOOLS_HTML_O_notation "NOTATION" +#define OOO_STRING_SVTOOLS_HTML_O_prompt "PROMPT" +#define OOO_STRING_SVTOOLS_HTML_O_shape "SHAPE" +#define OOO_STRING_SVTOOLS_HTML_O_standby "STANDBY" +#define OOO_STRING_SVTOOLS_HTML_O_style "STYLE" +#define OOO_STRING_SVTOOLS_HTML_O_title "TITLE" +#define OOO_STRING_SVTOOLS_HTML_O_value "VALUE" +#define OOO_STRING_SVTOOLS_HTML_O_SDval "SDVAL" +#define OOO_STRING_SVTOOLS_HTML_O_SDnum "SDNUM" +#define OOO_STRING_SVTOOLS_HTML_O_sdlibrary "SDLIBRARY" +#define OOO_STRING_SVTOOLS_HTML_O_sdmodule "SDMODULE" +#define OOO_STRING_SVTOOLS_HTML_O_sdevent "SDEVENT-" +#define OOO_STRING_SVTOOLS_HTML_O_sdaddparam "SDADDPARAM-" + +// Attribute mit einem SGML-Identifier als Wert +#define OOO_STRING_SVTOOLS_HTML_O_from "FROM" +#define OOO_STRING_SVTOOLS_HTML_O_id "ID" +#define OOO_STRING_SVTOOLS_HTML_O_target "TARGET" +#define OOO_STRING_SVTOOLS_HTML_O_to "TO" +#define OOO_STRING_SVTOOLS_HTML_O_until "UNTIL" + +// Attribute mit einem URI als Wert +#define OOO_STRING_SVTOOLS_HTML_O_action "ACTION" +#define OOO_STRING_SVTOOLS_HTML_O_archive "ARCHIVE" +#define OOO_STRING_SVTOOLS_HTML_O_background "BACKGROUND" +#define OOO_STRING_SVTOOLS_HTML_O_classid "CLASSID" +#define OOO_STRING_SVTOOLS_HTML_O_codebase "CODEBASE" +#define OOO_STRING_SVTOOLS_HTML_O_data "DATA" +#define OOO_STRING_SVTOOLS_HTML_O_dynsrc "DYNSRC" +#define OOO_STRING_SVTOOLS_HTML_O_dynsync "DYNSYNC" +#define OOO_STRING_SVTOOLS_HTML_O_imagemap "IMAGEMAP" +#define OOO_STRING_SVTOOLS_HTML_O_href "HREF" +#define OOO_STRING_SVTOOLS_HTML_O_lowsrc "LOWSRC" +#define OOO_STRING_SVTOOLS_HTML_O_script "SCRIPT" +#define OOO_STRING_SVTOOLS_HTML_O_src "SRC" +#define OOO_STRING_SVTOOLS_HTML_O_usemap "USEMAP" + +// Attribute mit Entity-Namen als Wert +#define OOO_STRING_SVTOOLS_HTML_O_dingbat "DINGBAT" +#define OOO_STRING_SVTOOLS_HTML_O_sym "SYM" + +// Attribute mit einer Farbe als Wert (alle Netscape) +#define OOO_STRING_SVTOOLS_HTML_O_alink "ALINK" +#define OOO_STRING_SVTOOLS_HTML_O_bgcolor "BGCOLOR" +#define OOO_STRING_SVTOOLS_HTML_O_bordercolor "BORDERCOLOR" +#define OOO_STRING_SVTOOLS_HTML_O_bordercolorlight "BORDERCOLORLIGHT" +#define OOO_STRING_SVTOOLS_HTML_O_bordercolordark "BORDERCOLORDARK" +#define OOO_STRING_SVTOOLS_HTML_O_color "COLOR" +#define OOO_STRING_SVTOOLS_HTML_O_link "LINK" +#define OOO_STRING_SVTOOLS_HTML_O_text "TEXT" +#define OOO_STRING_SVTOOLS_HTML_O_vlink "VLINK" + +// Attribute mit einem numerischen Wert +#define OOO_STRING_SVTOOLS_HTML_O_border "BORDER" +#define OOO_STRING_SVTOOLS_HTML_O_cellspacing "CELLSPACING" +#define OOO_STRING_SVTOOLS_HTML_O_cellpadding "CELLPADDING" +#define OOO_STRING_SVTOOLS_HTML_O_charoff "CHAROFF" +#define OOO_STRING_SVTOOLS_HTML_O_colspan "COLSPAN" +#define OOO_STRING_SVTOOLS_HTML_O_framespacing "FRAMESPACING" +#define OOO_STRING_SVTOOLS_HTML_O_gutter "GUTTER" +#define OOO_STRING_SVTOOLS_HTML_O_indent "INDENT" +#define OOO_STRING_SVTOOLS_HTML_O_height "HEIGHT" +#define OOO_STRING_SVTOOLS_HTML_O_hspace "HSPACE" +#define OOO_STRING_SVTOOLS_HTML_O_left "LEFT" +#define OOO_STRING_SVTOOLS_HTML_O_leftmargin "LEFTMARGIN" +#define OOO_STRING_SVTOOLS_HTML_O_loop "LOOP" +#define OOO_STRING_SVTOOLS_HTML_O_marginheight "MARGINHEIGHT" +#define OOO_STRING_SVTOOLS_HTML_O_marginwidth "MARGINWIDTH" +#define OOO_STRING_SVTOOLS_HTML_O_max "MAX" +#define OOO_STRING_SVTOOLS_HTML_O_maxlength "MAXLENGTH" +#define OOO_STRING_SVTOOLS_HTML_O_min "MIN" +#define OOO_STRING_SVTOOLS_HTML_O_pagex "PAGEX" +#define OOO_STRING_SVTOOLS_HTML_O_pagey "PAGEY" +#define OOO_STRING_SVTOOLS_HTML_O_pointsize "POINT-SIZE" +#define OOO_STRING_SVTOOLS_HTML_O_rowspan "ROWSPAN" +#define OOO_STRING_SVTOOLS_HTML_O_scrollamount "SCROLLAMOUNT" +#define OOO_STRING_SVTOOLS_HTML_O_scrolldelay "SCROLLDELAY" +#define OOO_STRING_SVTOOLS_HTML_O_seqnum "SEQNUM" +#define OOO_STRING_SVTOOLS_HTML_O_skip "SKIP" +#define OOO_STRING_SVTOOLS_HTML_O_span "SPAN" +#define OOO_STRING_SVTOOLS_HTML_O_tabindex "TABINDEX" +#define OOO_STRING_SVTOOLS_HTML_O_top "TOP" +#define OOO_STRING_SVTOOLS_HTML_O_topmargin "TOPMARGIN" +#define OOO_STRING_SVTOOLS_HTML_O_vspace "VSPACE" +#define OOO_STRING_SVTOOLS_HTML_O_weight "WEIGHT" +#define OOO_STRING_SVTOOLS_HTML_O_width "WIDTH" +#define OOO_STRING_SVTOOLS_HTML_O_x "X" +#define OOO_STRING_SVTOOLS_HTML_O_y "Y" +#define OOO_STRING_SVTOOLS_HTML_O_zindex "Z-INDEX" + +// Attribute mit Enum-Werten +#define OOO_STRING_SVTOOLS_HTML_O_behavior "BEHAVIOR" +#define OOO_STRING_SVTOOLS_HTML_O_bgproperties "BGPROPERTIES" +#define OOO_STRING_SVTOOLS_HTML_O_clear "CLEAR" +#define OOO_STRING_SVTOOLS_HTML_O_dir "DIR" +#define OOO_STRING_SVTOOLS_HTML_O_direction "DIRECTION" +#define OOO_STRING_SVTOOLS_HTML_O_format "FORMAT" +#define OOO_STRING_SVTOOLS_HTML_O_frame "FRAME" +#define OOO_STRING_SVTOOLS_HTML_O_lang "LANG" +#define OOO_STRING_SVTOOLS_HTML_O_method "METHOD" +#define OOO_STRING_SVTOOLS_HTML_O_palette "PALETTE" +#define OOO_STRING_SVTOOLS_HTML_O_rel "REL" +#define OOO_STRING_SVTOOLS_HTML_O_rev "REV" +#define OOO_STRING_SVTOOLS_HTML_O_rules "RULES" +#define OOO_STRING_SVTOOLS_HTML_O_scrolling "SCROLLING" +#define OOO_STRING_SVTOOLS_HTML_O_sdreadonly "READONLY" +#define OOO_STRING_SVTOOLS_HTML_O_subtype "SUBTYPE" +#define OOO_STRING_SVTOOLS_HTML_O_type "TYPE" +#define OOO_STRING_SVTOOLS_HTML_O_valign "VALIGN" +#define OOO_STRING_SVTOOLS_HTML_O_valuetype "VALUETYPE" +#define OOO_STRING_SVTOOLS_HTML_O_visibility "VISIBILITY" +#define OOO_STRING_SVTOOLS_HTML_O_wrap "WRAP" + +// Attribute mit Script-Code als Wert +#define OOO_STRING_SVTOOLS_HTML_O_onblur "ONBLUR" +#define OOO_STRING_SVTOOLS_HTML_O_onchange "ONCHANGE" +#define OOO_STRING_SVTOOLS_HTML_O_onclick "ONCLICK" +#define OOO_STRING_SVTOOLS_HTML_O_onfocus "ONFOCUS" +#define OOO_STRING_SVTOOLS_HTML_O_onload "ONLOAD" +#define OOO_STRING_SVTOOLS_HTML_O_onmouseover "ONMOUSEOVER" +#define OOO_STRING_SVTOOLS_HTML_O_onreset "ONRESET" +#define OOO_STRING_SVTOOLS_HTML_O_onselect "ONSELECT" +#define OOO_STRING_SVTOOLS_HTML_O_onsubmit "ONSUBMIT" +#define OOO_STRING_SVTOOLS_HTML_O_onunload "ONUNLOAD" +#define OOO_STRING_SVTOOLS_HTML_O_onabort "ONABORT" +#define OOO_STRING_SVTOOLS_HTML_O_onerror "ONERROR" +#define OOO_STRING_SVTOOLS_HTML_O_onmouseout "ONMOUSEOUT" +#define OOO_STRING_SVTOOLS_HTML_O_SDonblur "SDONBLUR" +#define OOO_STRING_SVTOOLS_HTML_O_SDonchange "SDONCHANGE" +#define OOO_STRING_SVTOOLS_HTML_O_SDonclick "SDONCLICK" +#define OOO_STRING_SVTOOLS_HTML_O_SDonfocus "SDONFOCUS" +#define OOO_STRING_SVTOOLS_HTML_O_SDonload "SDONLOAD" +#define OOO_STRING_SVTOOLS_HTML_O_SDonmouseover "SDONMOUSEOVER" +#define OOO_STRING_SVTOOLS_HTML_O_SDonreset "SDONRESET" +#define OOO_STRING_SVTOOLS_HTML_O_SDonselect "SDONSELECT" +#define OOO_STRING_SVTOOLS_HTML_O_SDonsubmit "SDONSUBMIT" +#define OOO_STRING_SVTOOLS_HTML_O_SDonunload "SDONUNLOAD" +#define OOO_STRING_SVTOOLS_HTML_O_SDonabort "SDONABORT" +#define OOO_STRING_SVTOOLS_HTML_O_SDonerror "SDONERROR" +#define OOO_STRING_SVTOOLS_HTML_O_SDonmouseout "SDONMOUSEOUT" + +// Attribute mit Kontext-abhaengigen Werten +#define OOO_STRING_SVTOOLS_HTML_O_align "ALIGN" +#define OOO_STRING_SVTOOLS_HTML_O_cols "COLS" +#define OOO_STRING_SVTOOLS_HTML_O_rows "ROWS" +#define OOO_STRING_SVTOOLS_HTML_O_start "START" +#define OOO_STRING_SVTOOLS_HTML_O_size "SIZE" +#define OOO_STRING_SVTOOLS_HTML_O_units "UNITS" + +// Werte von <INPUT TYPE=...> +#define OOO_STRING_SVTOOLS_HTML_IT_text "TEXT" +#define OOO_STRING_SVTOOLS_HTML_IT_password "PASSWORD" +#define OOO_STRING_SVTOOLS_HTML_IT_checkbox "CHECKBOX" +#define OOO_STRING_SVTOOLS_HTML_IT_radio "RADIO" +#define OOO_STRING_SVTOOLS_HTML_IT_range "RANGE" +#define OOO_STRING_SVTOOLS_HTML_IT_scribble "SCRIBBLE" +#define OOO_STRING_SVTOOLS_HTML_IT_file "FILE" +#define OOO_STRING_SVTOOLS_HTML_IT_hidden "HIDDEN" +#define OOO_STRING_SVTOOLS_HTML_IT_submit "SUBMIT" +#define OOO_STRING_SVTOOLS_HTML_IT_image "IMAGE" +#define OOO_STRING_SVTOOLS_HTML_IT_reset "RESET" +#define OOO_STRING_SVTOOLS_HTML_IT_button "BUTTON" + +// Werte von <TABLE FRAME=...> +#define OOO_STRING_SVTOOLS_HTML_TF_void "VOID" +#define OOO_STRING_SVTOOLS_HTML_TF_above "ABOVE" +#define OOO_STRING_SVTOOLS_HTML_TF_below "BELOW" +#define OOO_STRING_SVTOOLS_HTML_TF_hsides "HSIDES" +#define OOO_STRING_SVTOOLS_HTML_TF_lhs "LHS" +#define OOO_STRING_SVTOOLS_HTML_TF_rhs "RHS" +#define OOO_STRING_SVTOOLS_HTML_TF_vsides "VSIDES" +#define OOO_STRING_SVTOOLS_HTML_TF_box "BOX" +#define OOO_STRING_SVTOOLS_HTML_TF_border "BORDER" + +// Werte von <TABLE RULES=...> +#define OOO_STRING_SVTOOLS_HTML_TR_none "NONE" +#define OOO_STRING_SVTOOLS_HTML_TR_groups "GROUPS" +#define OOO_STRING_SVTOOLS_HTML_TR_rows "ROWS" +#define OOO_STRING_SVTOOLS_HTML_TR_cols "COLS" +#define OOO_STRING_SVTOOLS_HTML_TR_all "ALL" + +// Werte von <P, H?, TR, TH, TD ALIGN=...> +#define OOO_STRING_SVTOOLS_HTML_AL_left "LEFT" +#define OOO_STRING_SVTOOLS_HTML_AL_center "CENTER" +#define OOO_STRING_SVTOOLS_HTML_AL_middle "MIDDLE" +#define OOO_STRING_SVTOOLS_HTML_AL_right "RIGHT" +#define OOO_STRING_SVTOOLS_HTML_AL_justify "JUSTIFY" +#define OOO_STRING_SVTOOLS_HTML_AL_char "CHAR" +#define OOO_STRING_SVTOOLS_HTML_AL_all "ALL" +#define OOO_STRING_SVTOOLS_HTML_AL_none "NONE" + +// Werte von <TR VALIGN=...>, <IMG ALIGN=...> +#define OOO_STRING_SVTOOLS_HTML_VA_top "TOP" +#define OOO_STRING_SVTOOLS_HTML_VA_middle "MIDDLE" +#define OOO_STRING_SVTOOLS_HTML_VA_bottom "BOTTOM" +#define OOO_STRING_SVTOOLS_HTML_VA_baseline "BASELINE" +#define OOO_STRING_SVTOOLS_HTML_VA_texttop "TEXTTOP" +#define OOO_STRING_SVTOOLS_HTML_VA_absmiddle "ABSMIDDLE" +#define OOO_STRING_SVTOOLS_HTML_VA_absbottom "ABSBOTTOM" + +// Werte von <AREA SHAPE=...> +#define OOO_STRING_SVTOOLS_HTML_SH_rect "RECT" +#define OOO_STRING_SVTOOLS_HTML_SH_rectangle "RECTANGLE" +#define OOO_STRING_SVTOOLS_HTML_SH_circ "CIRC" +#define OOO_STRING_SVTOOLS_HTML_SH_circle "CIRCLE" +#define OOO_STRING_SVTOOLS_HTML_SH_poly "POLY" +#define OOO_STRING_SVTOOLS_HTML_SH_polygon "POLYGON" +#define OOO_STRING_SVTOOLS_HTML_SH_default "DEFAULT" + +#define OOO_STRING_SVTOOLS_HTML_LG_starbasic "STARBASIC" +#define OOO_STRING_SVTOOLS_HTML_LG_javascript "JAVASCRIPT" +#define OOO_STRING_SVTOOLS_HTML_LG_javascript11 "JAVASCRIPT1.1" +#define OOO_STRING_SVTOOLS_HTML_LG_livescript "LIVESCRIPT" + +// ein par Werte fuer unser StarBASIC-Support +#define OOO_STRING_SVTOOLS_HTML_SB_library "$LIBRARY:" +#define OOO_STRING_SVTOOLS_HTML_SB_module "$MODULE:" + +// Werte von <FORM METHOD=...> +#define OOO_STRING_SVTOOLS_HTML_METHOD_get "GET" +#define OOO_STRING_SVTOOLS_HTML_METHOD_post "POST" + +// Werte von <META CONTENT/HTTP-EQUIV=...> +#define OOO_STRING_SVTOOLS_HTML_META_refresh "REFRESH" +#define OOO_STRING_SVTOOLS_HTML_META_generator "GENERATOR" +#define OOO_STRING_SVTOOLS_HTML_META_author "AUTHOR" +#define OOO_STRING_SVTOOLS_HTML_META_classification "CLASSIFICATION" +#define OOO_STRING_SVTOOLS_HTML_META_description "DESCRIPTION" +#define OOO_STRING_SVTOOLS_HTML_META_keywords "KEYWORDS" +#define OOO_STRING_SVTOOLS_HTML_META_changed "CHANGED" +#define OOO_STRING_SVTOOLS_HTML_META_changedby "CHANGEDBY" +#define OOO_STRING_SVTOOLS_HTML_META_created "CREATED" +#define OOO_STRING_SVTOOLS_HTML_META_content_type "CONTENT-TYPE" +#define OOO_STRING_SVTOOLS_HTML_META_content_script_type "CONTENT-SCRIPT-TYPE" +#define OOO_STRING_SVTOOLS_HTML_META_sdendnote "SDENDNOTE" +#define OOO_STRING_SVTOOLS_HTML_META_sdfootnote "SDFOOTNOTE" + +// Werte von <UL TYPE=...> +#define OOO_STRING_SVTOOLS_HTML_ULTYPE_disc "DISC" +#define OOO_STRING_SVTOOLS_HTML_ULTYPE_square "SQUARE" +#define OOO_STRING_SVTOOLS_HTML_ULTYPE_circle "CIRCLE" + +// Werte von <FRAMESET SCROLLING=...> +#define OOO_STRING_SVTOOLS_HTML_SCROLL_yes "YES" +#define OOO_STRING_SVTOOLS_HTML_SCROLL_no "NO" +#define OOO_STRING_SVTOOLS_HTML_SCROLL_auto "AUTO" + +// Werte von <MULTICOL TYPE=...> +#define OOO_STRING_SVTOOLS_HTML_MCTYPE_horizontal "HORIZONTAL" +#define OOO_STRING_SVTOOLS_HTML_MCTYPE_vertical "VERTICAL" +#define OOO_STRING_SVTOOLS_HTML_MCTYPE_box "BOX" + +// Werte von <MARQUEE BEHAVIOUR=...> +#define OOO_STRING_SVTOOLS_HTML_BEHAV_scroll "SCROLL" +#define OOO_STRING_SVTOOLS_HTML_BEHAV_slide "SLIDE" +#define OOO_STRING_SVTOOLS_HTML_BEHAV_alternate "ALTERNATE" + +// Werte von <MARQUEE LOOP=...> +#define OOO_STRING_SVTOOLS_HTML_LOOP_infinite "INFINITE" +#define OOO_STRING_SVTOOLS_HTML_SPTYPE_block "BLOCK" +#define OOO_STRING_SVTOOLS_HTML_SPTYPE_horizontal "HORIZONTAL" +#define OOO_STRING_SVTOOLS_HTML_SPTYPE_vertical "VERTICAL" + +// interne Grafik-Namen +#define OOO_STRING_SVTOOLS_HTML_private_image "private:image/" +#define OOO_STRING_SVTOOLS_HTML_internal_gopher "internal-gopher-" +#define OOO_STRING_SVTOOLS_HTML_internal_icon "internal-icon-" +#define OOO_STRING_SVTOOLS_HTML_INT_GOPHER_binary "binary" +#define OOO_STRING_SVTOOLS_HTML_INT_GOPHER_image "image" +#define OOO_STRING_SVTOOLS_HTML_INT_GOPHER_index "index" +#define OOO_STRING_SVTOOLS_HTML_INT_GOPHER_menu "menu" +#define OOO_STRING_SVTOOLS_HTML_INT_GOPHER_movie "movie" +#define OOO_STRING_SVTOOLS_HTML_INT_GOPHER_sound "sound" +#define OOO_STRING_SVTOOLS_HTML_INT_GOPHER_telnet "telnet" +#define OOO_STRING_SVTOOLS_HTML_INT_GOPHER_text "text" +#define OOO_STRING_SVTOOLS_HTML_INT_GOPHER_unknown "unknown" +#define OOO_STRING_SVTOOLS_HTML_INT_ICON_baddata "baddata" +#define OOO_STRING_SVTOOLS_HTML_INT_ICON_delayed "delayed" +#define OOO_STRING_SVTOOLS_HTML_INT_ICON_embed "embed" +#define OOO_STRING_SVTOOLS_HTML_INT_ICON_insecure "insecure" +#define OOO_STRING_SVTOOLS_HTML_INT_ICON_notfound "notfound" +#define OOO_STRING_SVTOOLS_HTML_sdendnote "sdendnote" +#define OOO_STRING_SVTOOLS_HTML_sdendnote_anc "sdendnoteanc" +#define OOO_STRING_SVTOOLS_HTML_sdendnote_sym "sdendnotesym" +#define OOO_STRING_SVTOOLS_HTML_sdfootnote "sdfootnote" +#define OOO_STRING_SVTOOLS_HTML_sdfootnote_anc "sdfootnoteanc" +#define OOO_STRING_SVTOOLS_HTML_sdfootnote_sym "sdfootnotesym" +#define OOO_STRING_SVTOOLS_HTML_FTN_anchor "anc" +#define OOO_STRING_SVTOOLS_HTML_FTN_symbol "sym" +#define OOO_STRING_SVTOOLS_HTML_WW_off "OFF" +#define OOO_STRING_SVTOOLS_HTML_WW_hard "HARD" +#define OOO_STRING_SVTOOLS_HTML_WW_soft "SOFT" +#define OOO_STRING_SVTOOLS_HTML_WW_virtual "VIRTUAL" +#define OOO_STRING_SVTOOLS_HTML_WW_physical "PHYSICAL" +#define OOO_STRING_SVTOOLS_HTML_on "on" +#define OOO_STRING_SVTOOLS_HTML_ET_url "application/x-www-form-urlencoded" +#define OOO_STRING_SVTOOLS_HTML_ET_multipart "multipart/form-data" +#define OOO_STRING_SVTOOLS_HTML_ET_text "text/plain" + +#endif diff --git a/svtools/inc/svtools/htmltokn.h b/svtools/inc/svtools/htmltokn.h new file mode 100644 index 000000000000..7c43c1463e25 --- /dev/null +++ b/svtools/inc/svtools/htmltokn.h @@ -0,0 +1,569 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _HTMLTOKN_H +#define _HTMLTOKN_H + +#include "svtools/svtdllapi.h" +#include <sal/types.h> +#ifndef _SOLAR_h +#include <tools/solar.h> +#endif + +class String; + +// suche das Char zu dem CharNamen +sal_Unicode GetHTMLCharName( const String& rName ); + +// suche die TokenID zu dem Token +SVT_DLLPUBLIC int GetHTMLToken( const String& rName ); + +// suche die TokenId zu einemm Attribut-Token +int GetHTMLOption( const String& rName ); + +// suche die 24-bit-Farbe zu einem Farbnamen (nicht gefunden = ULONG_MAX) +SVT_DLLPUBLIC ULONG GetHTMLColor( const String& rName ); + +// beginnen immer ab 256, groesser als ein char +const int HTML_TOKEN_START = 0x100; +const int HTML_TOKEN_ONOFF = 0x200; +const int HTML_TOKEN_MICROSOFT = 0x1000; + +enum HTML_TOKEN_IDS +{ + HTML_TEXTTOKEN = HTML_TOKEN_START, + HTML_SINGLECHAR, + HTML_NEWPARA, + HTML_TABCHAR, + HTML_RAWDATA, + HTML_LINEFEEDCHAR, + + // diese werden nur eingeschaltet + HTML_AREA, // Netscape 2.0 + HTML_BASE, // HTML 3.0 + HTML_COMMENT, + HTML_DOCTYPE, + HTML_EMBED, // Netscape 2.0 </EMBED> ignorieren + HTML_FIGUREOVERLAY, // HTML 3.0 + HTML_HORZRULE, // </HR> ignorieren + HTML_HORZTAB, // HTML 3.0 + HTML_IMAGE, // </IMG> ignorieren + HTML_INPUT, // </INPUT> ignorieren + HTML_ISINDEX, // HTML 3.0 + HTML_LINEBREAK, // </BR> -> <BR> + HTML_LINK, // HTML 3.0 + HTML_META, // HTML 3.0 </META> ignorieren + HTML_NEXTID, // HTML 3.0 + HTML_OF, // HTML 3.0 + HTML_OPTION, // </OPTION> ignorieren + HTML_PARAM, // HotJava + HTML_RANGE, // HTML 3.0 + HTML_SPACER, // Netscape 3.0b5 // </SPACER> ignorieren + HTML_WBR, // Netscape + + // Tokens, die ueber HTML-Charakter erkannt werden + HTML_NONBREAKSPACE, + HTML_SOFTHYPH, + + // diese werden wieder abgeschaltet, + // der off-Wert liegt immer dahinter (+1) !! + HTML_ABBREVIATION_ON = HTML_TOKEN_ONOFF, // HTML 3.0 + HTML_ABBREVIATION_OFF, // HTML 3.0 + HTML_ABOVE_ON, // HTML 3.0 + HTML_ABOVE_OFF, // HTML 3.0 + HTML_ACRONYM_ON, // HTML 3.0 + HTML_ACRONYM_OFF, // HTML 3.0 + HTML_ADDRESS_ON, + HTML_ADDRESS_OFF, + HTML_ANCHOR_ON, + HTML_ANCHOR_OFF, + HTML_APPLET_ON, // HotJava + HTML_APPLET_OFF, // HotJava + HTML_ARRAY_ON, // HTML 3.0 + HTML_ARRAY_OFF, // HTML 3.0 + HTML_AUTHOR_ON, // HTML 3.0 + HTML_AUTHOR_OFF, // HTML 3.0 + HTML_BANNER_ON, // HTML 3.0 + HTML_BANNER_OFF, // HTML 3.0 + HTML_BAR_ON, // HTML 3.0 + HTML_BAR_OFF, // HTML 3.0 + HTML_BASEFONT_ON, // Netscape + HTML_BASEFONT_OFF, // Netscape + HTML_BELOW_ON, // HTML 3.0 + HTML_BELOW_OFF, // HTML 3.0 + HTML_BIGPRINT_ON, // HTML 3.0 + HTML_BIGPRINT_OFF, // HTML 3.0 + HTML_BLINK_ON, // Netscape + HTML_BLINK_OFF, // Netscape + HTML_BLOCKQUOTE30_ON, // HTML 3.0 + HTML_BLOCKQUOTE30_OFF, // HTML 3.0 + HTML_BLOCKQUOTE_ON, + HTML_BLOCKQUOTE_OFF, + HTML_BODY_ON, + HTML_BODY_OFF, + HTML_BOLDTEXT_ON, // HTML 3.0 + HTML_BOLDTEXT_OFF, // HTML 3.0 + HTML_BOLD_ON, + HTML_BOLD_OFF, + HTML_BOX_ON, // HTML 3.0 + HTML_BOX_OFF, // HTML 3.0 + HTML_CAPTION_ON, // HTML 3.0 + HTML_CAPTION_OFF, // HTML 3.0 + HTML_CENTER_ON, // Netscape + HTML_CENTER_OFF, // Netscape + HTML_CITIATION_ON, + HTML_CITIATION_OFF, + HTML_CODE_ON, + HTML_CODE_OFF, + HTML_COL_ON, // HTML3 Table Model Draft + HTML_COL_OFF, // HTML3 Table Model Draft + HTML_COLGROUP_ON, // HTML3 Table Model Draft + HTML_COLGROUP_OFF, // HTML3 Table Model Draft + HTML_CREDIT_ON, // HTML 3.0 + HTML_CREDIT_OFF, // HTML 3.0 + HTML_DD_ON, + HTML_DD_OFF, + HTML_DEFLIST_ON, + HTML_DEFLIST_OFF, + HTML_DELETEDTEXT_ON, // HTML 3.0 + HTML_DELETEDTEXT_OFF, // HTML 3.0 + HTML_DIRLIST_ON, + HTML_DIRLIST_OFF, + HTML_DIVISION_ON, // HTML 3.0 + HTML_DIVISION_OFF, // HTML 3.0 + HTML_DOT_ON, // HTML 3.0 + HTML_DOT_OFF, // HTML 3.0 + HTML_DOUBLEDOT_ON, // HTML 3.0 + HTML_DOUBLEDOT_OFF, // HTML 3.0 + HTML_DT_ON, + HTML_DT_OFF, + HTML_EMPHASIS_ON, + HTML_EMPHASIS_OFF, + HTML_FIGURE_ON, // HTML 3.0 + HTML_FIGURE_OFF, // HTML 3.0 + HTML_FONT_ON, // Netscape + HTML_FONT_OFF, // Netscape + HTML_FOOTNOTE_ON, // HTML 3.0 + HTML_FOOTNOTE_OFF, // HTML 3.0 + HTML_FORM_ON, + HTML_FORM_OFF, + HTML_FRAME_ON, // Netscape 2.0 + HTML_FRAME_OFF, // Netscape 2.0 + HTML_FRAMESET_ON, // Netscape 2.0 + HTML_FRAMESET_OFF, // Netscape 2.0 + HTML_HAT_ON, // HTML 3.0 + HTML_HAT_OFF, // HTML 3.0 + HTML_HEAD1_ON, + HTML_HEAD1_OFF, + HTML_HEAD2_ON, + HTML_HEAD2_OFF, + HTML_HEAD3_ON, + HTML_HEAD3_OFF, + HTML_HEAD4_ON, + HTML_HEAD4_OFF, + HTML_HEAD5_ON, + HTML_HEAD5_OFF, + HTML_HEAD6_ON, + HTML_HEAD6_OFF, + HTML_HEAD_ON, + HTML_HEAD_OFF, + HTML_HTML_ON, + HTML_HTML_OFF, + HTML_IFRAME_ON, // IE 3.0b2 + HTML_IFRAME_OFF, // IE 3.0b2 + HTML_ILAYER_ON, + HTML_ILAYER_OFF, + HTML_INSERTEDTEXT_ON, // HTML 3.0 + HTML_INSERTEDTEXT_OFF, // HTML 3.0 + HTML_ITALIC_ON, + HTML_ITALIC_OFF, + HTML_ITEM_ON, // HTML 3.0 + HTML_ITEM_OFF, // HTML 3.0 + HTML_KEYBOARD_ON, + HTML_KEYBOARD_OFF, + HTML_LAYER_ON, + HTML_LAYER_OFF, + HTML_LANGUAGE_ON, // HTML 3.0 + HTML_LANGUAGE_OFF, // HTML 3.0 + HTML_LISTHEADER_ON, // HTML 3.0 + HTML_LISTHEADER_OFF, // HTML 3.0 + HTML_LI_ON, + HTML_LI_OFF, + HTML_MAP_ON, // Netscape 2.0 + HTML_MAP_OFF, // Netscape 2.0 + HTML_MATH_ON, // HTML 3.0 + HTML_MATH_OFF, // HTML 3.0 + HTML_MENULIST_ON, + HTML_MENULIST_OFF, + HTML_MULTICOL_ON, // Netscape 3.0b5 + HTML_MULTICOL_OFF, // Netscape 3.0b5 + HTML_NOBR_ON, // Netscape + HTML_NOBR_OFF, // Netscape + HTML_NOEMBED_ON, // Netscape 2.0 + HTML_NOEMBED_OFF, // Netscape 2.0 + HTML_NOFRAMES_ON, // Netscape 2.0 + HTML_NOFRAMES_OFF, // Netscape 2.0 + HTML_NOSCRIPT_ON, // Netscape 2.0 + HTML_NOSCRIPT_OFF, // Netscape 3.0 + HTML_NOTE_ON, // HTML 3.0 + HTML_NOTE_OFF, // HTML 3.0 + HTML_OBJECT_ON, // HotJava + HTML_OBJECT_OFF, // HotJava + HTML_ORDERLIST_ON, + HTML_ORDERLIST_OFF, + HTML_PARABREAK_ON, + HTML_PARABREAK_OFF, + HTML_PERSON_ON, // HTML 3.0 + HTML_PERSON_OFF, // HTML 3.0 + HTML_PLAINTEXT_ON, // HTML 3.0 + HTML_PLAINTEXT_OFF, // HTML 3.0 + HTML_PREFORMTXT_ON, + HTML_PREFORMTXT_OFF, + HTML_ROOT_ON, // HTML 3.0 + HTML_ROOT_OFF, // HTML 3.0 + HTML_ROW_ON, // HTML 3.0 + HTML_ROW_OFF, // HTML 3.0 + HTML_SAMPLE_ON, + HTML_SAMPLE_OFF, + HTML_SCRIPT_ON, // HTML 3.2 + HTML_SCRIPT_OFF, // HTML 3.2 + HTML_SELECT_ON, + HTML_SELECT_OFF, + HTML_SHORTQUOTE_ON, // HTML 3.0 + HTML_SHORTQUOTE_OFF, // HTML 3.0 + HTML_SMALLPRINT_ON, // HTML 3.0 + HTML_SMALLPRINT_OFF, // HTML 3.0 + HTML_SPAN_ON, // Style Sheets + HTML_SPAN_OFF, // Style Sheets + HTML_SQUAREROOT_ON, // HTML 3.0 + HTML_SQUAREROOT_OFF, // HTML 3.0 + HTML_STRIKETHROUGH_ON, // HTML 3.0 + HTML_STRIKETHROUGH_OFF, // HTML 3.0 + HTML_STRONG_ON, + HTML_STRONG_OFF, + HTML_STYLE_ON, // HTML 3.0 + HTML_STYLE_OFF, // HTML 3.0 + HTML_SUBSCRIPT_ON, // HTML 3.0 + HTML_SUBSCRIPT_OFF, // HTML 3.0 + HTML_SUPERSCRIPT_ON, // HTML 3.0 + HTML_SUPERSCRIPT_OFF, // HTML 3.0 + HTML_TABLE_ON, // HTML 3.0 + HTML_TABLE_OFF, // HTML 3.0 + HTML_TABLEDATA_ON, // HTML 3.0 + HTML_TABLEDATA_OFF, // HTML 3.0 + HTML_TABLEHEADER_ON, // HTML 3.0 + HTML_TABLEHEADER_OFF, // HTML 3.0 + HTML_TABLEROW_ON, // HTML 3.0 + HTML_TABLEROW_OFF, // HTML 3.0 + HTML_TBODY_ON, // HTML3 Table Model Draft + HTML_TBODY_OFF, // HTML3 Table Model Draft + HTML_TELETYPE_ON, + HTML_TELETYPE_OFF, + HTML_TEXTAREA_ON, + HTML_TEXTAREA_OFF, + HTML_TEXTFLOW_ON, // HTML 3.2 + HTML_TEXTFLOW_OFF, // HTML 3.2 + HTML_TEXT_ON, // HTML 3.0 + HTML_TEXT_OFF, // HTML 3.0 + HTML_TFOOT_ON, // HTML3 Table Model Draft + HTML_TFOOT_OFF, // HTML3 Table Model Draft + HTML_THEAD_ON, // HTML3 Table Model Draft + HTML_THEAD_OFF, // HTML3 Table Model Draft + HTML_TILDE_ON, // HTML 3.0 + HTML_TILDE_OFF, // HTML 3.0 + HTML_TITLE_ON, + HTML_TITLE_OFF, + HTML_UNDERLINE_ON, + HTML_UNDERLINE_OFF, + HTML_UNORDERLIST_ON, + HTML_UNORDERLIST_OFF, + HTML_VARIABLE_ON, + HTML_VARIABLE_OFF, + HTML_VECTOR_ON, // HTML 3.0 + HTML_VECTOR_OFF, // HTML 3.0 + + // obsolete features + HTML_XMP_ON, + HTML_XMP_OFF, + HTML_LISTING_ON, + HTML_LISTING_OFF, + + // proposed features + HTML_DEFINSTANCE_ON, + HTML_DEFINSTANCE_OFF, + HTML_STRIKE_ON, + HTML_STRIKE_OFF, + + HTML_UNKNOWNCONTROL_ON, + HTML_UNKNOWNCONTROL_OFF, + + HTML_BGSOUND = HTML_TOKEN_MICROSOFT|HTML_TOKEN_START, + + HTML_COMMENT2_ON = HTML_TOKEN_MICROSOFT|HTML_TOKEN_ONOFF, // HTML 2.0 ? + HTML_COMMENT2_OFF, // HTML 2.0 ? + HTML_MARQUEE_ON, + HTML_MARQUEE_OFF, + HTML_PLAINTEXT2_ON, // HTML 2.0 ? + HTML_PLAINTEXT2_OFF, // HTML 2.0 ? + + HTML_SDFIELD_ON, + HTML_SDFIELD_OFF +}; + +// HTML Attribut-Token (=Optionen) + +// beginnen immer ab 256, groesser als ein char +const int HTML_OPTION_START = 0x100; + +enum HTML_OPTION_IDS +{ +HTML_OPTION_BOOL_START = HTML_OPTION_START, + +// Attribute ohne Wert + HTML_O_BOX = HTML_OPTION_BOOL_START, + HTML_O_CHECKED, + HTML_O_COMPACT, + HTML_O_CONTINUE, + HTML_O_CONTROLS, // IExplorer 2.0 + HTML_O_DECLARE, // IExplorer 3.0b5 + HTML_O_DISABLED, + HTML_O_FOLDED, // Netscape internal + HTML_O_ISMAP, + HTML_O_MAYSCRIPT, // Netcape 3.0 + HTML_O_MULTIPLE, + HTML_O_NOFLOW, + HTML_O_NOHREF, // Netscape + HTML_O_NORESIZE, // Netscape 2.0 + HTML_O_NOSHADE, // Netscape + HTML_O_NOWRAP, + HTML_O_PLAIN, + HTML_O_SDFIXED, + HTML_O_SELECTED, + HTML_O_SHAPES, // IExplorer 3.0b5 +HTML_OPTION_BOOL_END, + +// Attribute mit einem String als Wert +HTML_OPTION_STRING_START = HTML_OPTION_BOOL_END, + HTML_O_ABOVE = HTML_OPTION_STRING_START, + HTML_O_ACCEPT, + HTML_O_ACCESSKEY, + HTML_O_ADD_DATE, // Netscape internal + HTML_O_ALT, + HTML_O_AXES, + HTML_O_AXIS, + HTML_O_BELOW, + HTML_O_CHAR, // HTML3 Table Model Draft + HTML_O_CLASS, + HTML_O_CLIP, + HTML_O_CODE, // HotJava + HTML_O_CODETYPE, + HTML_O_COLSPEC, + HTML_O_CONTENT, + HTML_O_COORDS, // Netscape 2.0 + HTML_O_DP, + HTML_O_ENCTYPE, + HTML_O_ERROR, + HTML_O_FACE, // IExplorer 2.0 + HTML_O_FRAMEBORDER, // IExplorer 3.0 + HTML_O_HTTPEQUIV, + HTML_O_LANGUAGE, // JavaScript + HTML_O_LAST_MODIFIED, // Netscape internal + HTML_O_LAST_VISIT, // Netscape internal + HTML_O_MD, + HTML_O_N, + HTML_O_NAME, + HTML_O_NOTATION, + HTML_O_PROMPT, + HTML_O_SHAPE, + HTML_O_STANDBY, + HTML_O_STYLE, // Style Sheets + HTML_O_TITLE, + HTML_O_VALUE, + HTML_O_SDVAL, // StarDiv NumberValue + HTML_O_SDNUM, // StarDiv NumberFormat + HTML_O_SDLIBRARY, + HTML_O_SDMODULE, +HTML_OPTION_STRING_END, + +// Attribute mit einem SGML-Identifier als Wert +HTML_OPTION_SGMLID_START = HTML_OPTION_STRING_END, + HTML_O_FROM = HTML_OPTION_SGMLID_START, + HTML_O_ID, + HTML_O_TARGET, // Netscape 2.0 + HTML_O_TO, + HTML_O_UNTIL, +HTML_OPTION_SGMLID_END, + +// Attribute mit einem URI als Wert +HTML_OPTION_URI_START = HTML_OPTION_SGMLID_END, + HTML_O_ACTION = HTML_OPTION_URI_START, + HTML_O_ARCHIVE, + HTML_O_BACKGROUND, + HTML_O_CLASSID, + HTML_O_CODEBASE, // HotJava + HTML_O_DATA, + HTML_O_DYNSRC, // IExplorer 3.0 + HTML_O_DYNSYNC, // IExplorer 2.0 + HTML_O_IMAGEMAP, + HTML_O_HREF, + HTML_O_LOWSRC, // Netscape 3.0 + HTML_O_SCRIPT, + HTML_O_SRC, + HTML_O_USEMAP, // Netscape 2.0 +HTML_OPTION_URI_END, + +// Attribute mit Entity-Namen als Wert +HTML_OPTION_ENTITY_START = HTML_OPTION_URI_END, + HTML_O_DINGBAT = HTML_OPTION_ENTITY_START, + HTML_O_SYM, +HTML_OPTION_ENTITY_END, + +// Attribute mit einer Farbe als Wert (alle Netscape) +HTML_OPTION_COLOR_START = HTML_OPTION_ENTITY_END, + HTML_O_ALINK = HTML_OPTION_COLOR_START, + HTML_O_BGCOLOR, + HTML_O_BORDERCOLOR, // IExplorer 2.0 + HTML_O_BORDERCOLORLIGHT, // IExplorer 2.0 + HTML_O_BORDERCOLORDARK, // IExplorer 2.0 + HTML_O_COLOR, + HTML_O_LINK, + HTML_O_TEXT, + HTML_O_VLINK, +HTML_OPTION_COLOR_END, + +// Attribute mit einem numerischen Wert +HTML_OPTION_NUMBER_START = HTML_OPTION_COLOR_END, + HTML_O_BORDER = HTML_OPTION_NUMBER_START, + HTML_O_CELLSPACING, // HTML3 Table Model Draft + HTML_O_CELLPADDING, // HTML3 Table Model Draft + HTML_O_CHAROFF, // HTML3 Table Model Draft + HTML_O_COLSPAN, + HTML_O_FRAMESPACING, // IExplorer 3.0 + HTML_O_GUTTER, // Netscape 3.0b5 + HTML_O_INDENT, + HTML_O_HEIGHT, + HTML_O_HSPACE, // Netscape + HTML_O_LEFT, + HTML_O_LEFTMARGIN, // IExplorer 2.0 + HTML_O_LOOP, // IExplorer 2.0 + HTML_O_MARGINWIDTH, // Netscape 2.0 + HTML_O_MARGINHEIGHT, // Netscape 2.0 + HTML_O_MAX, + HTML_O_MAXLENGTH, + HTML_O_MIN, + HTML_O_PAGEX, + HTML_O_PAGEY, + HTML_O_POINTSIZE, + HTML_O_ROWSPAN, + HTML_O_SCROLLAMOUNT, // IExplorer 2.0 + HTML_O_SCROLLDELAY, // IExplorer 2.0 + HTML_O_SEQNUM, + HTML_O_SKIP, + HTML_O_SPAN, // HTML3 Table Model Draft + HTML_O_TABINDEX, + HTML_O_TOP, + HTML_O_TOPMARGIN, // IExplorer 2.0 + HTML_O_VSPACE, // Netscape + HTML_O_WEIGHT, + HTML_O_WIDTH, + HTML_O_X, + HTML_O_Y, + HTML_O_ZINDEX, +HTML_OPTION_NUMBER_END, + +// Attribute mit Enum-Werten +HTML_OPTION_ENUM_START = HTML_OPTION_NUMBER_END, + HTML_O_BEHAVIOR = HTML_OPTION_ENUM_START, // IExplorer 2.0 + HTML_O_BGPROPERTIES, // IExplorer 2.0 + HTML_O_CLEAR, + HTML_O_DIR, + HTML_O_DIRECTION, // IExplorer 2.0 + HTML_O_FORMAT, + HTML_O_FRAME, // HTML3 Table Model Draft + HTML_O_LANG, + HTML_O_METHOD, + HTML_O_PALETTE, + HTML_O_REL, + HTML_O_REV, + HTML_O_RULES, // HTML3 Table Model Draft + HTML_O_SCROLLING, // Netscape 2.0 + HTML_O_SDREADONLY, + HTML_O_SUBTYPE, + HTML_O_TYPE, + HTML_O_VALIGN, + HTML_O_VALUETYPE, + HTML_O_VISIBILITY, + HTML_O_WRAP, +HTML_OPTION_ENUM_END, + +// Attribute mit Script-Code als Wert +HTML_OPTION_SCRIPT_START = HTML_OPTION_ENUM_END, + HTML_O_ONABORT = HTML_OPTION_SCRIPT_START, // JavaScaript + HTML_O_ONBLUR, // JavaScript + HTML_O_ONCHANGE, // JavaScript + HTML_O_ONCLICK, // JavaScript + HTML_O_ONERROR, // JavaScript + HTML_O_ONFOCUS, // JavaScript + HTML_O_ONLOAD, // JavaScript + HTML_O_ONMOUSEOUT, // JavaScript + HTML_O_ONMOUSEOVER, // JavaScript + HTML_O_ONRESET, // JavaScript + HTML_O_ONSELECT, // JavaScript + HTML_O_ONSUBMIT, // JavaScript + HTML_O_ONUNLOAD, // JavaScript + + HTML_O_SDONABORT, // StarBasic + HTML_O_SDONBLUR, // StarBasic + HTML_O_SDONCHANGE, // StarBasic + HTML_O_SDONCLICK, // StarBasic + HTML_O_SDONERROR, // StarBasic + HTML_O_SDONFOCUS, // StarBasic + HTML_O_SDONLOAD, // StarBasic + HTML_O_SDONMOUSEOUT, // StarBasic + HTML_O_SDONMOUSEOVER, // StarBasic + HTML_O_SDONRESET, // StarBasic + HTML_O_SDONSELECT, // StarBasic + HTML_O_SDONSUBMIT, // StarBasic + HTML_O_SDONUNLOAD, // StarBasic +HTML_OPTION_SCRIPT_END, + +// Attribute mit Kontext-abhaengigen Werten +HTML_OPTION_CONTEXT_START = HTML_OPTION_SCRIPT_END, + HTML_O_ALIGN = HTML_OPTION_CONTEXT_START, + HTML_O_COLS, // Netscape 2.0 vs HTML 2.0 + HTML_O_ROWS, // Netscape 2.0 vs HTML 2.0 + HTML_O_SIZE, + HTML_O_START, + HTML_O_UNITS, +HTML_OPTION_CONTEXT_END, + +// eine unbekannte Option +HTML_O_UNKNOWN = HTML_OPTION_CONTEXT_END, +HTML_OPTION_END +}; + +#endif // _HTMLTOKN_H diff --git a/svtools/inc/svtools/imagemgr.hrc b/svtools/inc/svtools/imagemgr.hrc new file mode 100644 index 000000000000..19cc2942d6f4 --- /dev/null +++ b/svtools/inc/svtools/imagemgr.hrc @@ -0,0 +1,190 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVTOOLS_IMAGEMGR_HRC +#define _SVTOOLS_IMAGEMGR_HRC + +// includes ****************************************************************** + +#define IMAGELIST_START 3076 // must match to old Id's in SFX! + +#define IMG_IMPRESS (IMAGELIST_START + 47) +#define IMG_WORKPLACE (IMAGELIST_START + 48) +#define IMG_BITMAP (IMAGELIST_START + 49) +#define IMG_CALC (IMAGELIST_START + 50) +#define IMG_CALCTEMPLATE (IMAGELIST_START + 51) +#define IMG_CHART (IMAGELIST_START + 52) +#define IMG_DATABASE (IMAGELIST_START + 53) +#define IMG_IMPRESSTEMPLATE (IMAGELIST_START + 54) +#define IMG_EXCEL (IMAGELIST_START + 55) +#define IMG_EXCELTEMPLATE (IMAGELIST_START + 56) +#define IMG_FTPSERVER (IMAGELIST_START + 58) +#define IMG_GALLERY (IMAGELIST_START + 59) +#define IMG_GALLERYTHEME (IMAGELIST_START + 60) +#define IMG_GIF (IMAGELIST_START + 61) +#define IMG_HELP (IMAGELIST_START + 62) +#define IMG_HTML (IMAGELIST_START + 63) +#define IMG_JPG (IMAGELIST_START + 64) +#define IMG_LINK (IMAGELIST_START + 65) +#define IMG_LOTUS (IMAGELIST_START + 66) +#define IMG_MATH (IMAGELIST_START + 68) +#define IMG_MATHTEMPLATE (IMAGELIST_START + 69) +#define IMG_FILE (IMAGELIST_START + 74) +#define IMG_APP (IMAGELIST_START + 75) +#define IMG_PCD (IMAGELIST_START + 76) +#define IMG_PCT (IMAGELIST_START + 77) +#define IMG_PCX (IMAGELIST_START + 78) +#define IMG_SIM (IMAGELIST_START + 79) +#define IMG_TEXTFILE (IMAGELIST_START + 80) +#define IMG_SVHELP (IMAGELIST_START + 81) +#define IMG_TIFF (IMAGELIST_START + 82) +#define IMG_URL (IMAGELIST_START + 83) +#define IMG_WMF (IMAGELIST_START + 84) +#define IMG_WORD (IMAGELIST_START + 85) +#define IMG_WRITER (IMAGELIST_START + 86) +#define IMG_WRITERTEMPLATE (IMAGELIST_START + 87) +#define IMG_FIXEDDEV (IMAGELIST_START + 88) +#define IMG_REMOVEABLEDEV (IMAGELIST_START + 89) +#define IMG_CDROMDEV (IMAGELIST_START + 90) +#define IMG_NETWORKDEV (IMAGELIST_START + 91) +#define IMG_RAMDEV (IMAGELIST_START + 92) +#define IMG_TABLEFOLDER (IMAGELIST_START + 111) +#define IMG_TABLE (IMAGELIST_START + 112) +#define IMG_FOLDER (IMAGELIST_START + 113) +#define IMG_EXPANDEDFOLDER (IMAGELIST_START + 114) +#define IMG_XXX (IMAGELIST_START + 117) +#define IMG_GALLERYIMPORT (IMAGELIST_START + 122) +#define IMG_QUERYFOLDER (IMAGELIST_START + 125) +#define IMG_QUERY (IMAGELIST_START + 126) +#define IMG_FORM (IMAGELIST_START + 127) +#define IMG_FORMFOLDER (IMAGELIST_START + 128) +#define IMG_REPORT (IMAGELIST_START + 129) +#define IMG_REPORTFOLDER (IMAGELIST_START + 130) +#define IMG_OTHERS (IMAGELIST_START + 138) +#define IMG_MACROLIB (IMAGELIST_START + 140) +#define IMG_DXF (IMAGELIST_START + 141) +#define IMG_MET (IMAGELIST_START + 142) +#define IMG_PNG (IMAGELIST_START + 143) +#define IMG_SGF (IMAGELIST_START + 144) +#define IMG_SGV (IMAGELIST_START + 145) +#define IMG_SVM (IMAGELIST_START + 146) +#define IMG_GLOBAL_DOC (IMAGELIST_START + 150) +#define IMG_DRAW (IMAGELIST_START + 151) +#define IMG_DRAWTEMPLATE (IMAGELIST_START + 152) +#define IMG_TASK (IMAGELIST_START + 160) +#define IMG_APPOINTMENT (IMAGELIST_START + 161) +#define IMG_RELATION (IMAGELIST_START + 163) +#define IMG_IMPRESSPACKED (IMAGELIST_START + 165) +#define IMG_NEWFROMTEMPLATE (IMAGELIST_START + 166) +#define IMG_POWERPOINT (IMAGELIST_START + 167) +#define IMG_POWERPOINTTEMPLATE (IMAGELIST_START + 168) +#define IMG_OO_DATABASE_DOC (IMAGELIST_START + 169) +#define IMG_OO_DRAW_DOC (IMAGELIST_START + 170) +#define IMG_OO_MATH_DOC (IMAGELIST_START + 171) +#define IMG_OO_GLOBAL_DOC (IMAGELIST_START + 172) +#define IMG_OO_IMPRESS_DOC (IMAGELIST_START + 173) +#define IMG_OO_CALC_DOC (IMAGELIST_START + 174) +#define IMG_OO_WRITER_DOC (IMAGELIST_START + 175) +#define IMG_OO_DRAW_TEMPLATE (IMAGELIST_START + 176) +#define IMG_OO_IMPRESS_TEMPLATE (IMAGELIST_START + 177) +#define IMG_OO_CALC_TEMPLATE (IMAGELIST_START + 178) +#define IMG_OO_WRITER_TEMPLATE (IMAGELIST_START + 179) +#define IMG_EXTENSION (IMAGELIST_START + 180) + +#define RID_DESCRIPTION_START 256 + +#define STR_DESCRIPTION_SOURCEFILE (RID_DESCRIPTION_START + 0) +#define STR_DESCRIPTION_BOOKMARKFILE (RID_DESCRIPTION_START + 1) +#define STR_DESCRIPTION_GRAPHIC_DOC (RID_DESCRIPTION_START + 2) +#define STR_DESCRIPTION_CFGFILE (RID_DESCRIPTION_START + 3) +#define STR_DESCRIPTION_APPLICATION (RID_DESCRIPTION_START + 4) +#define STR_DESCRIPTION_DATABASE_TABLE (RID_DESCRIPTION_START + 5) +#define STR_DESCRIPTION_SYSFILE (RID_DESCRIPTION_START + 6) +#define STR_DESCRIPTION_WORD_DOC (RID_DESCRIPTION_START + 7) +#define STR_DESCRIPTION_HELP_DOC (RID_DESCRIPTION_START + 8) +#define STR_DESCRIPTION_HTMLFILE (RID_DESCRIPTION_START + 9) +#define STR_DESCRIPTION_ARCHIVFILE (RID_DESCRIPTION_START + 10) +#define STR_DESCRIPTION_LOGFILE (RID_DESCRIPTION_START + 11) +#define STR_DESCRIPTION_SMATH_DOC (RID_DESCRIPTION_START + 12) +#define STR_DESCRIPTION_SCHART_DOC (RID_DESCRIPTION_START + 13) +#define STR_DESCRIPTION_SDRAW_DOC (RID_DESCRIPTION_START + 14) +#define STR_DESCRIPTION_SCALC_DOC (RID_DESCRIPTION_START + 15) +#define STR_DESCRIPTION_SIMPRESS_DOC (RID_DESCRIPTION_START + 16) +#define STR_DESCRIPTION_SWRITER_DOC (RID_DESCRIPTION_START + 17) +#define STR_DESCRIPTION_GLOBALDOC (RID_DESCRIPTION_START + 18) +#define STR_DESCRIPTION_SIMAGE_DOC (RID_DESCRIPTION_START + 19) +#define STR_DESCRIPTION_TEXTFILE (RID_DESCRIPTION_START + 20) +#define STR_DESCRIPTION_LINK (RID_DESCRIPTION_START + 21) +#define STR_DESCRIPTION_SOFFICE_TEMPLATE_DOC (RID_DESCRIPTION_START + 22) +#define STR_DESCRIPTION_EXCEL_DOC (RID_DESCRIPTION_START + 23) +#define STR_DESCRIPTION_EXCEL_TEMPLATE_DOC (RID_DESCRIPTION_START + 24) +#define STR_DESCRIPTION_BATCHFILE (RID_DESCRIPTION_START + 25) +#define STR_DESCRIPTION_FILE (RID_DESCRIPTION_START + 26) +#define STR_DESCRIPTION_FOLDER (RID_DESCRIPTION_START + 27) +#define STR_DESCRIPTION_FACTORY_WRITER (RID_DESCRIPTION_START + 28) +#define STR_DESCRIPTION_FACTORY_CALC (RID_DESCRIPTION_START + 29) +#define STR_DESCRIPTION_FACTORY_IMPRESS (RID_DESCRIPTION_START + 30) +#define STR_DESCRIPTION_FACTORY_DRAW (RID_DESCRIPTION_START + 31) +#define STR_DESCRIPTION_FACTORY_WRITERWEB (RID_DESCRIPTION_START + 32) +#define STR_DESCRIPTION_FACTORY_GLOBALDOC (RID_DESCRIPTION_START + 33) +#define STR_DESCRIPTION_FACTORY_MATH (RID_DESCRIPTION_START + 34) +#define STR_DESCRIPTION_CALC_TEMPLATE (RID_DESCRIPTION_START + 35) +#define STR_DESCRIPTION_DRAW_TEMPLATE (RID_DESCRIPTION_START + 36) +#define STR_DESCRIPTION_IMPRESS_TEMPLATE (RID_DESCRIPTION_START + 37) +#define STR_DESCRIPTION_WRITER_TEMPLATE (RID_DESCRIPTION_START + 38) +#define STR_DESCRIPTION_LOCALE_VOLUME (RID_DESCRIPTION_START + 39) +#define STR_DESCRIPTION_FLOPPY_VOLUME (RID_DESCRIPTION_START + 40) +#define STR_DESCRIPTION_CDROM_VOLUME (RID_DESCRIPTION_START + 41) +#define STR_DESCRIPTION_REMOTE_VOLUME (RID_DESCRIPTION_START + 42) +#define STR_DESCRIPTION_POWERPOINT (RID_DESCRIPTION_START + 43) +#define STR_DESCRIPTION_POWERPOINT_TEMPLATE (RID_DESCRIPTION_START + 44) +#define STR_DESCRIPTION_POWERPOINT_SHOW (RID_DESCRIPTION_START + 45) +#define STR_DESCRIPTION_SXMATH_DOC (RID_DESCRIPTION_START + 46) +#define STR_DESCRIPTION_SXCHART_DOC (RID_DESCRIPTION_START + 47) +#define STR_DESCRIPTION_SXDRAW_DOC (RID_DESCRIPTION_START + 48) +#define STR_DESCRIPTION_SXCALC_DOC (RID_DESCRIPTION_START + 49) +#define STR_DESCRIPTION_SXIMPRESS_DOC (RID_DESCRIPTION_START + 50) +#define STR_DESCRIPTION_SXWRITER_DOC (RID_DESCRIPTION_START + 51) +#define STR_DESCRIPTION_SXGLOBAL_DOC (RID_DESCRIPTION_START + 52) +#define STR_DESCRIPTION_MATHML_DOC (RID_DESCRIPTION_START + 53) +#define STR_DESCRIPTION_SDATABASE_DOC (RID_DESCRIPTION_START + 54) +#define STR_DESCRIPTION_OO_DATABASE_DOC (RID_DESCRIPTION_START + 55) +#define STR_DESCRIPTION_OO_DRAW_DOC (RID_DESCRIPTION_START + 56) +#define STR_DESCRIPTION_OO_MATH_DOC (RID_DESCRIPTION_START + 57) +#define STR_DESCRIPTION_OO_GLOBAL_DOC (RID_DESCRIPTION_START + 58) +#define STR_DESCRIPTION_OO_IMPRESS_DOC (RID_DESCRIPTION_START + 59) +#define STR_DESCRIPTION_OO_CALC_DOC (RID_DESCRIPTION_START + 60) +#define STR_DESCRIPTION_OO_WRITER_DOC (RID_DESCRIPTION_START + 61) +#define STR_DESCRIPTION_OO_DRAW_TEMPLATE (RID_DESCRIPTION_START + 62) +#define STR_DESCRIPTION_OO_IMPRESS_TEMPLATE (RID_DESCRIPTION_START + 63) +#define STR_DESCRIPTION_OO_CALC_TEMPLATE (RID_DESCRIPTION_START + 64) +#define STR_DESCRIPTION_OO_WRITER_TEMPLATE (RID_DESCRIPTION_START + 65) +#define STR_DESCRIPTION_FACTORY_DATABASE (RID_DESCRIPTION_START + 66) +#define STR_DESCRIPTION_EXTENSION (RID_DESCRIPTION_START + 67) + +#endif + diff --git a/svtools/inc/svtools/imagemgr.hxx b/svtools/inc/svtools/imagemgr.hxx new file mode 100644 index 000000000000..efd15c5f4cde --- /dev/null +++ b/svtools/inc/svtools/imagemgr.hxx @@ -0,0 +1,95 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVTOOLS_IMAGEMGR_HXX +#define _SVTOOLS_IMAGEMGR_HXX + +// includes ****************************************************************** + +#include "svtools/svtdllapi.h" +#include "sal/types.h" + +class Image; +class String; +class INetURLObject; + +namespace svtools { + +struct VolumeInfo +{ + sal_Bool m_bIsVolume; + sal_Bool m_bIsRemote; + sal_Bool m_bIsRemoveable; + sal_Bool m_bIsFloppy; + sal_Bool m_bIsCompactDisc; + + VolumeInfo() : + m_bIsVolume ( sal_False ), + m_bIsRemote ( sal_False ), + m_bIsRemoveable ( sal_False ), + m_bIsFloppy ( sal_False ), + m_bIsCompactDisc( sal_False ) {} + + VolumeInfo( sal_Bool _bIsVolume, + sal_Bool _bIsRemote, + sal_Bool _bIsRemoveable, + sal_Bool _bIsFloppy, + sal_Bool _bIsCompactDisc ) : + m_bIsVolume ( _bIsVolume ), + m_bIsRemote ( _bIsRemote ), + m_bIsRemoveable ( _bIsRemoveable ), + m_bIsFloppy ( _bIsFloppy ), + m_bIsCompactDisc( _bIsCompactDisc ) {} +}; + +} + +class SvFileInformationManager +{ +private: + SVT_DLLPRIVATE static String GetDescription_Impl( const INetURLObject& rObject, sal_Bool bDetectFolder ); + +public: + // depricated, because no high contrast mode + SVT_DLLPUBLIC static Image GetImage( const INetURLObject& rURL, sal_Bool bBig = sal_False ); + static Image GetFileImage( const INetURLObject& rURL, sal_Bool bBig = sal_False ); + static Image GetImageNoDefault( const INetURLObject& rURL, sal_Bool bBig = sal_False ); + SVT_DLLPUBLIC static Image GetFolderImage( const svtools::VolumeInfo& rInfo, sal_Bool bBig = sal_False ); + + // now with high contrast mode + SVT_DLLPUBLIC static Image GetImage( const INetURLObject& rURL, sal_Bool bBig, sal_Bool bHighContrast ); + SVT_DLLPUBLIC static Image GetFileImage( const INetURLObject& rURL, sal_Bool bBig, sal_Bool bHighContrast ); + SVT_DLLPUBLIC static Image GetImageNoDefault( const INetURLObject& rURL, sal_Bool bBig, sal_Bool bHighContrast ); + SVT_DLLPUBLIC static Image GetFolderImage( const svtools::VolumeInfo& rInfo, sal_Bool bBig, sal_Bool bHighContrast ); + + SVT_DLLPUBLIC static String GetDescription( const INetURLObject& rObject ); + SVT_DLLPUBLIC static String GetFileDescription( const INetURLObject& rObject ); + SVT_DLLPUBLIC static String GetFolderDescription( const svtools::VolumeInfo& rInfo ); +}; + +#endif + diff --git a/svtools/inc/svtools/imageresourceaccess.hxx b/svtools/inc/svtools/imageresourceaccess.hxx new file mode 100644 index 000000000000..d77b1c97a512 --- /dev/null +++ b/svtools/inc/svtools/imageresourceaccess.hxx @@ -0,0 +1,90 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef SVTOOLS_INC_IMAGERESOURCEACCESS_HXX +#define SVTOOLS_INC_IMAGERESOURCEACCESS_HXX + +#include "svtools/svtdllapi.h" + +/** === begin UNO includes === **/ +#include <com/sun/star/io/XInputStream.hpp> +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +/** === end UNO includes === **/ + +class SvStream; +//........................................................................ +namespace svt +{ +//........................................................................ + + //==================================================================== + //= GraphicAccess + //==================================================================== + /** helper class for obtaining streams (which also can be used with the ImageProducer) + from a resource + */ + class GraphicAccess + { + private: + GraphicAccess(); // never implemented + + public: + /** determines whether the given URL denotes an image within a resource + ( or an image specified by a vnd.sun.star.GraphicObject scheme URL ) + */ + SVT_DLLPUBLIC static bool isSupportedURL( const ::rtl::OUString& _rURL ); + + /** for a given URL of an image within a resource ( or an image specified by a vnd.sun.star.GraphicObject scheme URL ), this method retrieves + an SvStream for this image. + + This method works for arbitrary URLs denoting an image, since the + <type scope="com::sun::star::graphics">GraphicsProvider</type> service is used + to resolve the URL. However, obtaining the stream is expensive (since + the image must be copied), so you are strongly encouraged to only use it + when you know that the image is small enough. + */ + SVT_DLLPUBLIC static SvStream* getImageStream( + const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB, + const ::rtl::OUString& _rImageResourceURL + ); + + /** for a given URL of an image within a resource ( or an image specified by a vnd.sun.star.GraphicObject scheme URL ), this method retrieves + an <type scope="com::sun::star::io">XInputStream</type> for this image. + */ + SVT_DLLPUBLIC static ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > + getImageXStream( + const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB, + const ::rtl::OUString& _rImageResourceURL + ); + }; + +//........................................................................ +} // namespace svt +//........................................................................ + +#endif // DBA14_SVTOOLS_INC_IMAGERESOURCEACCESS_HXX + diff --git a/svtools/inc/svtools/imgdef.hxx b/svtools/inc/svtools/imgdef.hxx new file mode 100644 index 000000000000..7cdcec0fd642 --- /dev/null +++ b/svtools/inc/svtools/imgdef.hxx @@ -0,0 +1,43 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVTOOLS_IMGDEF_HXX +#define _SVTOOLS_IMGDEF_HXX + +enum SfxSymbolsSize +{ + SFX_SYMBOLS_SIZE_SMALL, + SFX_SYMBOLS_SIZE_LARGE, + SFX_SYMBOLS_SIZE_AUTO +}; + +#define SFX_TOOLBOX_CHANGESYMBOLSET 0x0001 +#define SFX_TOOLBOX_CHANGEOUTSTYLE 0x0002 +#define SFX_TOOLBOX_CHANGEBUTTONTYPE 0x0004 + +#endif // _SVTOOLS_IMGDEF_HXX + diff --git a/svtools/inc/svtools/indexentryres.hxx b/svtools/inc/svtools/indexentryres.hxx new file mode 100644 index 000000000000..f2c73000ed67 --- /dev/null +++ b/svtools/inc/svtools/indexentryres.hxx @@ -0,0 +1,23 @@ + +#ifndef SVTOOLS_INDEXENTRYRESSOURCE_HXX +#define SVTOOLS_INDEXENTRYRESSOURCE_HXX + +#include "svtools/svtdllapi.h" +#include <tools/string.hxx> + +class IndexEntryRessourceData; + +class SVT_DLLPUBLIC IndexEntryRessource +{ + private: + IndexEntryRessourceData *mp_Data; + + public: + IndexEntryRessource (); + ~IndexEntryRessource (); + const String& GetTranslation (const String& r_Algorithm); +}; + +#endif /* SVTOOLS_INDEXENTRYRESSOURCE_HXX */ + + diff --git a/svtools/inc/svtools/inetimg.hxx b/svtools/inc/svtools/inetimg.hxx new file mode 100644 index 000000000000..924bbad831d6 --- /dev/null +++ b/svtools/inc/svtools/inetimg.hxx @@ -0,0 +1,86 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _INETIMG_HXX +#define _INETIMG_HXX + +#include <tools/string.hxx> +#include <tools/gen.hxx> + +class SvData; +class SotDataObject; +class SotDataMemberObject; + +//========================================================================= + +class INetImage +{ + String aImageURL; + String aTargetURL; + String aTargetFrame; + String aAlternateText; + Size aSizePixel; + +protected: + String CopyExchange() const; + void PasteExchange( const String& rString ); + + void SetImageURL( const String& rS ) { aImageURL = rS; } + void SetTargetURL( const String& rS ) { aTargetURL = rS; } + void SetTargetFrame( const String& rS ) { aTargetFrame = rS; } + void SetAlternateText( const String& rS ){ aAlternateText = rS; } + void SetSizePixel( const Size& rSize ) { aSizePixel = rSize; } + +public: + INetImage( + const String& rImageURL, + const String& rTargetURL, + const String& rTargetFrame, + const String& rAlternateText, + const Size& rSizePixel ) + : aImageURL( rImageURL ), + aTargetURL( rTargetURL ), + aTargetFrame( rTargetFrame ), + aAlternateText( rAlternateText ), + aSizePixel( rSizePixel ) + {} + INetImage() + {} + + const String& GetImageURL() const { return aImageURL; } + const String& GetTargetURL() const { return aTargetURL; } + const String& GetTargetFrame() const { return aTargetFrame; } + const String& GetAlternateText() const { return aAlternateText; } + const Size& GetSizePixel() const { return aSizePixel; } + + // Im-/Export + sal_Bool Write( SvStream& rOStm, ULONG nFormat ) const; + sal_Bool Read( SvStream& rIStm, ULONG nFormat ); +}; + +#endif // #ifndef _INETIMG_HXX + + diff --git a/svtools/inc/svtools/itemdel.hxx b/svtools/inc/svtools/itemdel.hxx new file mode 100644 index 000000000000..51af97730079 --- /dev/null +++ b/svtools/inc/svtools/itemdel.hxx @@ -0,0 +1,39 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVTOOLS_ITEMDEL_HXX +#define _SVTOOLS_ITEMDEL_HXX + +#include "svtools/svtdllapi.h" + +class SfxPoolItem; + +SVT_DLLPUBLIC SfxPoolItem* DeleteItemOnIdle( SfxPoolItem* pItem ); + +void DeleteOnIdleItems(); + +#endif + diff --git a/svtools/inc/svtools/ivctrl.hxx b/svtools/inc/svtools/ivctrl.hxx new file mode 100644 index 000000000000..5bea4675b62e --- /dev/null +++ b/svtools/inc/svtools/ivctrl.hxx @@ -0,0 +1,390 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _ICNVW_HXX +#define _ICNVW_HXX + +#include "svtools/svtdllapi.h" +#include <tools/string.hxx> +#include <vcl/ctrl.hxx> +#include <tools/link.hxx> +#include <vcl/image.hxx> +#include <vcl/seleng.hxx> + +class SvPtrarr; +class ResId; +class Point; +class SvxIconChoiceCtrl_Impl; +class Image; + +#define ICNVIEW_FLAG_POS_LOCKED 0x0001 +#define ICNVIEW_FLAG_SELECTED 0x0002 +#define ICNVIEW_FLAG_FOCUSED 0x0004 +#define ICNVIEW_FLAG_IN_USE 0x0008 +#define ICNVIEW_FLAG_CURSORED 0x0010 // Rahmen um Image +#define ICNVIEW_FLAG_POS_MOVED 0x0020 // per D&D verschoben aber nicht gelockt +#define ICNVIEW_FLAG_DROP_TARGET 0x0040 // im QueryDrop gesetzt +#define ICNVIEW_FLAG_BLOCK_EMPHASIS 0x0080 // Emphasis nicht painten +#define ICNVIEW_FLAG_USER1 0x0100 +#define ICNVIEW_FLAG_USER2 0x0200 +#define ICNVIEW_FLAG_PRED_SET 0x0400 // Predecessor wurde umgesetzt + +enum SvxIconChoiceCtrlTextMode +{ + IcnShowTextFull = 1, // BoundRect nach unten aufplustern + IcnShowTextShort, // Abkuerzung mit "..." + IcnShowTextSmart, // Text komplett anzeigen, wenn moeglich (n.i.) + IcnShowTextDontKnow // Einstellung der View +}; + +enum SvxIconChoiceCtrlPositionMode +{ + IcnViewPositionModeFree = 0, // freies pixelgenaues Positionieren + IcnViewPositionModeAutoArrange = 1, // automatisches Ausrichten + IcnViewPositionModeAutoAdjust = 2, // automatisches Anordnen + IcnViewPositionModeLast = IcnViewPositionModeAutoAdjust +}; + +class SvxIconChoiceCtrlEntry +{ + Image aImage; + Image aImageHC; + + String aText; + String aQuickHelpText; + void* pUserData; + + friend class SvxIconChoiceCtrl_Impl; + friend class IcnCursor_Impl; + friend class EntryList_Impl; + friend class IcnGridMap_Impl; + + Rectangle aRect; // Bounding-Rect des Entries + Rectangle aGridRect; // nur gesetzt im Grid-Modus + ULONG nPos; + + // die Eintragsposition in der Eintragsliste entspricht der beim Insert vorgegebenen + // [Sortier-]Reihenfolge (->Reihenfolge der Anker in der Ankerliste!). Im AutoArrange-Modus + // kann die sichtbare Reihenfolge aber anders sein. Die Eintraege werden deshalb dann + // verkettet + SvxIconChoiceCtrlEntry* pblink; // backward (linker Nachbar) + SvxIconChoiceCtrlEntry* pflink; // forward (rechter Nachbar) + + SvxIconChoiceCtrlTextMode eTextMode; + USHORT nX,nY; // fuer Tastatursteuerung + USHORT nFlags; + + void ClearFlags( USHORT nMask ) { nFlags &= (~nMask); } + void SetFlags( USHORT nMask ) { nFlags |= nMask; } + void AssignFlags( USHORT _nFlags ) { nFlags = _nFlags; } + + // setzt den linken Nachbarn (A <-> B ==> A <-> this <-> B) + void SetBacklink( SvxIconChoiceCtrlEntry* pA ) + { + pA->pflink->pblink = this; // X <- B + this->pflink = pA->pflink; // X -> B + this->pblink = pA; // A <- X + pA->pflink = this; // A -> X + } + // loest eine Verbindung (A <-> this <-> B ==> A <-> B) + void Unlink() + { + this->pblink->pflink = this->pflink; + this->pflink->pblink = this->pblink; + this->pflink = 0; + this->pblink = 0; + } + +public: + SvxIconChoiceCtrlEntry( USHORT nFlags = 0 ); + SvxIconChoiceCtrlEntry( const String& rText, const Image& rImage, USHORT nFlags = 0 ); + SvxIconChoiceCtrlEntry( const String& rText, const Image& rImage, const Image& rImageHC, USHORT nFlags = 0 ); + ~SvxIconChoiceCtrlEntry () {} + + void SetImage ( const Image& rImage ) { aImage = rImage; } + void SetImageHC ( const Image& rImage ) { aImageHC = rImage; } + Image GetImage () const { return aImage; } + Image GetImageHC () const { return aImageHC; } + void SetText ( const String& rText ) { aText = rText; } + String GetText () const { return aText; } + String SVT_DLLPUBLIC GetDisplayText() const; + void SetQuickHelpText( const String& rText ) { aQuickHelpText = rText; } + String GetQuickHelpText() const { return aQuickHelpText; } + void SetUserData ( void* _pUserData ) { pUserData = _pUserData; } + void* GetUserData () { return pUserData; } + + const Rectangle & GetBoundRect() const { return aRect; } + + void SetFocus ( BOOL bSet ) + { nFlags = ( bSet ? nFlags | ICNVIEW_FLAG_FOCUSED : nFlags & ~ICNVIEW_FLAG_FOCUSED ); } + + SvxIconChoiceCtrlTextMode GetTextMode() const { return eTextMode; } + USHORT GetFlags() const { return nFlags; } + BOOL IsSelected() const { return (BOOL)((nFlags & ICNVIEW_FLAG_SELECTED) !=0); } + BOOL IsFocused() const { return (BOOL)((nFlags & ICNVIEW_FLAG_FOCUSED) !=0); } + BOOL IsInUse() const { return (BOOL)((nFlags & ICNVIEW_FLAG_IN_USE) !=0); } + BOOL IsCursored() const { return (BOOL)((nFlags & ICNVIEW_FLAG_CURSORED) !=0); } + BOOL IsDropTarget() const { return (BOOL)((nFlags & ICNVIEW_FLAG_DROP_TARGET) !=0); } + BOOL IsBlockingEmphasis() const { return (BOOL)((nFlags & ICNVIEW_FLAG_BLOCK_EMPHASIS) !=0); } + BOOL WasMoved() const { return (BOOL)((nFlags & ICNVIEW_FLAG_POS_MOVED) !=0); } + void SetMoved( BOOL bMoved ); + BOOL IsPosLocked() const { return (BOOL)((nFlags & ICNVIEW_FLAG_POS_LOCKED) !=0); } + void LockPos( BOOL bLock ); + // Nur bei AutoArrange gesetzt. Den Kopf der Liste gibts per SvxIconChoiceCtrl::GetPredecessorHead + SvxIconChoiceCtrlEntry* GetSuccessor() const { return pflink; } + SvxIconChoiceCtrlEntry* GetPredecessor() const { return pblink; } + +// sal_Unicode GetMnemonicChar() const; +}; + +enum SvxIconChoiceCtrlColumnAlign +{ + IcnViewAlignLeft = 1, + IcnViewAlignRight, + IcnViewAlignCenter +}; + +class SvxIconChoiceCtrlColumnInfo +{ + String aColText; + Image aColImage; + long nWidth; + SvxIconChoiceCtrlColumnAlign eAlignment; + USHORT nSubItem; + +public: + SvxIconChoiceCtrlColumnInfo( USHORT nSub, long nWd, + SvxIconChoiceCtrlColumnAlign eAlign ) : + nWidth( nWd ), eAlignment( eAlign ), nSubItem( nSub ) {} + SvxIconChoiceCtrlColumnInfo( const SvxIconChoiceCtrlColumnInfo& ); + + void SetText( const String& rText ) { aColText = rText; } + void SetImage( const Image& rImg ) { aColImage = rImg; } + void SetWidth( long nWd ) { nWidth = nWd; } + void SetAlignment( SvxIconChoiceCtrlColumnAlign eAlign ) { eAlignment = eAlign; } + void SetSubItem( USHORT nSub) { nSubItem = nSub; } + + const String& GetText() const { return aColText; } + const Image& GetImage() const { return aColImage; } + long GetWidth() const { return nWidth; } + SvxIconChoiceCtrlColumnAlign GetAlignment() const { return eAlignment; } + USHORT GetSubItem() const { return nSubItem; } +}; + +//################################################################################################################################### +/* + Window-Bits: + WB_ICON // Text unter dem Icon + WB_SMALL_ICON // Text rechts neben Icon, beliebige Positionierung + WB_DETAILS // Text rechts neben Icon, eingeschraenkte Posit. + WB_BORDER + WB_NOHIDESELECTION // Selektion inaktiv zeichnen, wenn kein Fokus + WB_NOHSCROLL + WB_NOVSCROLL + WB_NOSELECTION + WB_SMART_ARRANGE // im Arrange die Vis-Area beibehalten + WB_ALIGN_TOP // Anordnung zeilenweise von links nach rechts + WB_ALIGN_LEFT // Anordnung spaltenweise von oben nach unten + WB_NODRAGSELECTION // Keine Selektion per Tracking-Rect + WB_NOCOLUMNHEADER // keine Headerbar in Detailsview (Headerbar not implemented) + WB_NOPOINTERFOCUS // Kein GrabFocus im MouseButtonDown + WB_HIGHLIGHTFRAME // der unter der Maus befindliche Eintrag wird hervorgehoben + WB_NOASYNCSELECTHDL // Selektionshandler synchron aufrufen, d.h. Events nicht sammeln +*/ + +#define WB_ICON WB_RECTSTYLE +#define WB_SMALLICON WB_SMALLSTYLE +#define WB_DETAILS WB_VCENTER +#define WB_NOHSCROLL WB_SPIN +#define WB_NOVSCROLL WB_DRAG +#define WB_NOSELECTION WB_REPEAT +#define WB_NODRAGSELECTION WB_PATHELLIPSIS +#define WB_SMART_ARRANGE WB_PASSWORD +#define WB_ALIGN_TOP WB_TOP +#define WB_ALIGN_LEFT WB_LEFT +#define WB_NOCOLUMNHEADER WB_CENTER +#define WB_HIGHLIGHTFRAME WB_INFO +#define WB_NOASYNCSELECTHDL WB_NOLABEL + +class MnemonicGenerator; + +class SVT_DLLPUBLIC SvtIconChoiceCtrl : public Control +{ + friend class SvxIconChoiceCtrl_Impl; + + Link _aClickIconHdl; + Link _aDocRectChangedHdl; + Link _aVisRectChangedHdl; + KeyEvent* _pCurKeyEvent; + SvxIconChoiceCtrl_Impl* _pImp; + BOOL _bAutoFontColor; + +protected: + + virtual void KeyInput( const KeyEvent& rKEvt ); + virtual BOOL EditedEntry( SvxIconChoiceCtrlEntry*, const XubString& rNewText, BOOL bCancelled ); + virtual void DocumentRectChanged(); + virtual void VisibleRectChanged(); + virtual BOOL EditingEntry( SvxIconChoiceCtrlEntry* pEntry ); + virtual void Command( const CommandEvent& rCEvt ); + virtual void Paint( const Rectangle& rRect ); + virtual void MouseButtonDown( const MouseEvent& rMEvt ); + virtual void MouseButtonUp( const MouseEvent& rMEvt ); + virtual void MouseMove( const MouseEvent& rMEvt ); + virtual void Resize(); + virtual void GetFocus(); + virtual void LoseFocus(); + virtual void ClickIcon(); + virtual void StateChanged( StateChangedType nType ); + virtual void DataChanged( const DataChangedEvent& rDCEvt ); + virtual void RequestHelp( const HelpEvent& rHEvt ); + virtual void DrawEntryImage( + SvxIconChoiceCtrlEntry* pEntry, + const Point& rPos, + OutputDevice& rDev ); + + virtual String GetEntryText( + SvxIconChoiceCtrlEntry* pEntry, + BOOL bInplaceEdit ); + + virtual void FillLayoutData() const; + + void CallImplEventListeners(ULONG nEvent, void* pData); + +public: + + SvtIconChoiceCtrl( Window* pParent, WinBits nWinStyle = WB_ICON | WB_BORDER ); + SvtIconChoiceCtrl( Window* pParent, const ResId& rResId ); + virtual ~SvtIconChoiceCtrl(); + + void SetStyle( WinBits nWinStyle ); + WinBits GetStyle() const; + + BOOL SetChoiceWithCursor ( BOOL bDo = TRUE ); + + void SetUpdateMode( BOOL bUpdateMode ); + void SetFont( const Font& rFont ); + void SetPointFont( const Font& rFont ); + + void SetClickHdl( const Link& rLink ) { _aClickIconHdl = rLink; } + const Link& GetClickHdl() const { return _aClickIconHdl; } + + using OutputDevice::SetBackground; + void SetBackground( const Wallpaper& rWallpaper ); + + void ArrangeIcons(); + + + SvxIconChoiceCtrlEntry* InsertEntry( ULONG nPos = LIST_APPEND, + const Point* pPos = 0, + USHORT nFlags = 0 ); + SvxIconChoiceCtrlEntry* InsertEntry( const String& rText, const Image& rImage, + ULONG nPos = LIST_APPEND, + const Point* pPos = 0, + USHORT nFlags = 0 ); + SvxIconChoiceCtrlEntry* InsertEntry( const String& rText, const Image& rImage, const Image& rImageHC, + ULONG nPos = LIST_APPEND, + const Point* pPos = 0, + USHORT nFlags = 0 ); + + /** creates automatic mnemonics for all icon texts in the control + */ + void CreateAutoMnemonics( void ); + + /** creates automatic mnemonics for all icon texts in the control + + @param _rUsedMnemonics + a <type>MnemonicGenerator</type> at which some other mnemonics are already registered. + This can be used if the control needs to share the "mnemonic space" with other elements, + such as a menu bar. + */ + void CreateAutoMnemonics( MnemonicGenerator& _rUsedMnemonics ); + + void RemoveEntry( SvxIconChoiceCtrlEntry* pEntry ); + + BOOL DoKeyInput( const KeyEvent& rKEvt ); + + BOOL IsEntryEditing() const; + void Clear(); + + ULONG GetEntryCount() const; + SvxIconChoiceCtrlEntry* GetEntry( ULONG nPos ) const; + ULONG GetEntryListPos( SvxIconChoiceCtrlEntry* pEntry ) const; + using Window::SetCursor; + void SetCursor( SvxIconChoiceCtrlEntry* pEntry ); + SvxIconChoiceCtrlEntry* GetCursor() const; + + // Neu-Berechnung gecachter View-Daten und Invalidierung im Fenster + void InvalidateEntry( SvxIconChoiceCtrlEntry* pEntry ); + + // bHit==FALSE: Eintrag gilt als getroffen, wenn Position im BoundRect liegt + // ==TRUE : Bitmap oder Text muss getroffen sein + SvxIconChoiceCtrlEntry* GetEntry( const Point& rPosPixel, BOOL bHit = FALSE ) const; + // Gibt den naechsten ueber pCurEntry liegenden Eintrag (ZOrder) + SvxIconChoiceCtrlEntry* GetNextEntry( const Point& rPosPixel, SvxIconChoiceCtrlEntry* pCurEntry, BOOL ) const; + // Gibt den naechsten unter pCurEntry liegenden Eintrag (ZOrder) + SvxIconChoiceCtrlEntry* GetPrevEntry( const Point& rPosPixel, SvxIconChoiceCtrlEntry* pCurEntry, BOOL ) const; + + // in dem ULONG wird die Position in der Liste des gefunden Eintrags zurueckgegeben + SvxIconChoiceCtrlEntry* GetSelectedEntry( ULONG& rPos ) const; + + void SetEntryTextMode( SvxIconChoiceCtrlTextMode eMode, SvxIconChoiceCtrlEntry* pEntry = 0 ); + SvxIconChoiceCtrlTextMode GetEntryTextMode( const SvxIconChoiceCtrlEntry* pEntry = 0 ) const; + + // offene asynchron abzuarbeitende Aktionen ausfuehren. Muss vor dem Speichern von + // Eintragspositionen etc. gerufen werden + void Flush(); + + + virtual BOOL HasBackground() const; + virtual BOOL HasFont() const; + virtual BOOL HasFontTextColor() const; + virtual BOOL HasFontFillColor() const; + + void SetFontColorToBackground ( BOOL bDo = TRUE ) { _bAutoFontColor = bDo; } + BOOL AutoFontColor () { return _bAutoFontColor; } + + Point GetLogicPos( const Point& rPosPixel ) const; + Point GetPixelPos( const Point& rPosLogic ) const; + void SetSelectionMode( SelectionMode eMode ); + + BOOL HandleShortCutKey( const KeyEvent& rKeyEvent ); + + Rectangle GetBoundingBox( SvxIconChoiceCtrlEntry* pEntry ) const; + Rectangle GetEntryCharacterBounds( const sal_Int32 _nEntryPos, const sal_Int32 _nCharacterIndex ) const; + + void SetNoSelection(); + + // ACCESSIBILITY ========================================================== + + /** Creates and returns the accessible object of the Box. */ + virtual ::com::sun::star::uno::Reference< + ::com::sun::star::accessibility::XAccessible > CreateAccessible(); +}; + +#endif // _ICNVW_HXX + diff --git a/svtools/inc/svtools/localresaccess.hxx b/svtools/inc/svtools/localresaccess.hxx new file mode 100644 index 000000000000..c72f68f64f03 --- /dev/null +++ b/svtools/inc/svtools/localresaccess.hxx @@ -0,0 +1,82 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVTOOLS_LOCALRESACCESS_HXX_ +#define _SVTOOLS_LOCALRESACCESS_HXX_ + +#include <tools/rc.hxx> +#include <tools/rcid.h> +#include <osl/diagnose.h> + +//......................................................................... +namespace svt +{ +//......................................................................... + + //========================================================================= + //= OLocalResourceAccess + //========================================================================= + /** helper class for acessing local resources + */ + class OLocalResourceAccess : public Resource + { + protected: + ResMgr* m_pManager; + + public: + OLocalResourceAccess( const ResId& _rId ) + :Resource( _rId.SetAutoRelease( sal_False ) ) + ,m_pManager( _rId.GetResMgr() ) + { + } + + OLocalResourceAccess(const ResId& _rId, RESOURCE_TYPE _rType) + :Resource(_rId.SetRT(_rType).SetAutoRelease(sal_False)) + ,m_pManager(_rId.GetResMgr()) + { + OSL_ENSURE( m_pManager != NULL, "OLocalResourceAccess::OLocalResourceAccess: invalid resource manager!" ); + } + + ~OLocalResourceAccess() + { + if ( m_pManager ) + m_pManager->Increment( m_pManager->GetRemainSize() ); + FreeResource(); + } + + inline BOOL IsAvailableRes( const ResId& _rId ) const + { + return Resource::IsAvailableRes( _rId ); + } + }; + +//......................................................................... +} // namespace svt +//......................................................................... + +#endif // _SVTOOLS_LOCALRESACCESS_HXX_ + diff --git a/svtools/inc/svtools/prgsbar.hxx b/svtools/inc/svtools/prgsbar.hxx new file mode 100644 index 000000000000..c02d400c6931 --- /dev/null +++ b/svtools/inc/svtools/prgsbar.hxx @@ -0,0 +1,100 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _PRGSBAR_HXX +#define _PRGSBAR_HXX + +#include "svtools/svtdllapi.h" +#include <vcl/window.hxx> + +/************************************************************************* + +Beschreibung +============ + +class ProgressBar + +Diese Klasse dient zur Anzeige einer Progress-Anzeige. + +-------------------------------------------------------------------------- + +WinBits + +WB_BORDER Border um das Fenster +WB_3DLOOK 3D-Darstellung + +-------------------------------------------------------------------------- + +Methoden + +Mit SetValue() setzt man einen Prozent-Wert zwischen 0 und 100. Wenn Werte +groesser 100 gesetzt werden, faengt das letzte Rechteck an zu blinken. + +*************************************************************************/ + +// ----------- +// - WinBits - +// ----------- + +#define WB_STDPROGRESSBAR WB_BORDER + +// --------------- +// - ProgressBar - +// --------------- + +class SVT_DLLPUBLIC ProgressBar : public Window +{ +private: + Point maPos; + long mnPrgsWidth; + long mnPrgsHeight; + USHORT mnPercent; + USHORT mnPercentCount; + BOOL mbCalcNew; + +#ifdef _SV_PRGSBAR_CXX + using Window::ImplInit; + SVT_DLLPRIVATE void ImplInit(); + SVT_DLLPRIVATE void ImplInitSettings( BOOL bFont, BOOL bForeground, BOOL bBackground ); + SVT_DLLPRIVATE void ImplDrawProgress( USHORT nOldPerc, USHORT nNewPerc ); +#endif + +public: + ProgressBar( Window* pParent, WinBits nWinBits = WB_STDPROGRESSBAR ); + ProgressBar( Window* pParent, const ResId& rResId ); + ~ProgressBar(); + + virtual void Paint( const Rectangle& rRect ); + virtual void Resize(); + virtual void StateChanged( StateChangedType nStateChange ); + virtual void DataChanged( const DataChangedEvent& rDCEvt ); + + void SetValue( USHORT nNewPercent ); + USHORT GetValue() const { return mnPercent; } +}; + +#endif // _PRGSBAR_HXX diff --git a/svtools/inc/svtools/roadmap.hxx b/svtools/inc/svtools/roadmap.hxx new file mode 100644 index 000000000000..ff94cc966f4d --- /dev/null +++ b/svtools/inc/svtools/roadmap.hxx @@ -0,0 +1,137 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVTOOLS_ROADMAP_HXX +#define _SVTOOLS_ROADMAP_HXX + +#include "svtools/svtdllapi.h" +#include <vcl/ctrl.hxx> +#include <vcl/imgctrl.hxx> + +#ifndef _SVTOOLS_HYPERLABEL_HXX +#include "svtools/hyperlabel.hxx" +#endif + + + + +class Bitmap; +//......................................................................... +namespace svt +{ +//......................................................................... + + struct RoadmapTypes + { + public: + typedef sal_Int16 ItemId; + typedef sal_Int32 ItemIndex; + }; + + class RoadmapImpl; + class RoadmapItem; + + //===================================================================== + //= Roadmap + //===================================================================== + class SVT_DLLPUBLIC ORoadmap : public Control, public RoadmapTypes + { + protected: + RoadmapImpl* m_pImpl; + // Window overridables + void Paint( const Rectangle& _rRect ); + void implInit(); + + public: + ORoadmap( Window* _pParent, const ResId& _rId ); + ORoadmap( Window* _pParent, WinBits _nWinStyle = 0 ); + ~ORoadmap( ); + + void SetRoadmapBitmap( const BitmapEx& maBitmap, sal_Bool _bInvalidate = sal_True ); + const BitmapEx& GetRoadmapBitmap( ) const; + + void EnableRoadmapItem( ItemId _nItemId, sal_Bool _bEnable, ItemIndex _nStartIndex = 0 ); + sal_Bool IsRoadmapItemEnabled( ItemId _nItemId, ItemIndex _nStartIndex = 0 ) const; + + void ChangeRoadmapItemLabel( ItemId _nID, const ::rtl::OUString& sLabel, ItemIndex _nStartIndex = 0 ); + ::rtl::OUString GetRoadmapItemLabel( ItemId _nID, ItemIndex _nStartIndex = 0 ); + void ChangeRoadmapItemID( ItemId _nID, ItemId _NewID, ItemIndex _nStartIndex = 0 ); + + void SetRoadmapInteractive( sal_Bool _bInteractive ); + sal_Bool IsRoadmapInteractive(); + + void SetRoadmapComplete( sal_Bool _bComplete ); + sal_Bool IsRoadmapComplete() const; + + ItemIndex GetItemCount() const; + ItemId GetItemID( ItemIndex _nIndex ) const; + ItemIndex GetItemIndex( ItemId _nID ) const; + + void InsertRoadmapItem( ItemIndex _Index, const ::rtl::OUString& _RoadmapItem, ItemId _nUniqueId, sal_Bool _bEnabled = sal_True ); + void ReplaceRoadmapItem( ItemIndex _Index, const ::rtl::OUString& _RoadmapItem, ItemId _nUniqueId, sal_Bool _bEnabled ); + void DeleteRoadmapItem( ItemIndex _nIndex ); + + ItemId GetCurrentRoadmapItemID() const; + sal_Bool SelectRoadmapItemByID( ItemId _nItemID ); + + void SetItemSelectHdl( const Link& _rHdl ); + Link GetItemSelectHdl( ) const; + virtual void DataChanged( const DataChangedEvent& rDCEvt ); + virtual void GetFocus(); + + + protected: + long PreNotify( NotifyEvent& rNEvt ); + + protected: + /// called when an item has been selected by any means + virtual void Select(); + + private: + DECL_LINK(ImplClickHdl, HyperLabel*); + + RoadmapItem* GetByIndex( ItemIndex _nItemIndex ); + const RoadmapItem* GetByIndex( ItemIndex _nItemIndex ) const; + + RoadmapItem* GetByID( ItemId _nID, ItemIndex _nStartIndex = 0 ); + const RoadmapItem* GetByID( ItemId _nID, ItemIndex _nStartIndex = 0 ) const; + RoadmapItem* GetPreviousHyperLabel( ItemIndex _Index); + + void DrawHeadline(); + void DeselectOldRoadmapItems(); + ItemId GetNextAvailableItemId( ItemIndex _NewIndex ); + ItemId GetPreviousAvailableItemId( ItemIndex _NewIndex ); + RoadmapItem* GetByPointer(Window* pWindow); + RoadmapItem* InsertHyperLabel( ItemIndex _Index, const ::rtl::OUString& _aStr, ItemId _RMID, sal_Bool _bEnabled = sal_True ); + void UpdatefollowingHyperLabels( ItemIndex _Index ); + }; + +//......................................................................... +} // namespace svt +//......................................................................... + +#endif + diff --git a/svtools/inc/svtools/rtfkeywd.hxx b/svtools/inc/svtools/rtfkeywd.hxx new file mode 100644 index 000000000000..de59e1d8faf9 --- /dev/null +++ b/svtools/inc/svtools/rtfkeywd.hxx @@ -0,0 +1,1154 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _RTFKEYWD_HXX +#define _RTFKEYWD_HXX + +#include "sal/config.h" + +#define OOO_STRING_SVTOOLS_RTF_HEXCHAR "\\'" +#define OOO_STRING_SVTOOLS_RTF_IGNORE "\\*" +#define OOO_STRING_SVTOOLS_RTF_OPTHYPH "\\-" +#define OOO_STRING_SVTOOLS_RTF_SUBENTRY "\\:" +#define OOO_STRING_SVTOOLS_RTF_ABSH "\\absh" +#define OOO_STRING_SVTOOLS_RTF_ABSW "\\absw" +#define OOO_STRING_SVTOOLS_RTF_ALT "\\alt" +#define OOO_STRING_SVTOOLS_RTF_ANNOTATION "\\annotation" +#define OOO_STRING_SVTOOLS_RTF_ANSI "\\ansi" +#define OOO_STRING_SVTOOLS_RTF_ATNDATE "\\atndate" +#define OOO_STRING_SVTOOLS_RTF_ATNID "\\atnid" +#define OOO_STRING_SVTOOLS_RTF_AUTHOR "\\author" +#define OOO_STRING_SVTOOLS_RTF_B "\\b" +#define OOO_STRING_SVTOOLS_RTF_BGBDIAG "\\bgbdiag" +#define OOO_STRING_SVTOOLS_RTF_BGCROSS "\\bgcross" +#define OOO_STRING_SVTOOLS_RTF_BGDCROSS "\\bgdcross" +#define OOO_STRING_SVTOOLS_RTF_BGDKBDIAG "\\bgdkbdiag" +#define OOO_STRING_SVTOOLS_RTF_BGDKCROSS "\\bgdkcross" +#define OOO_STRING_SVTOOLS_RTF_BGDKDCROSS "\\bgdkdcross" +#define OOO_STRING_SVTOOLS_RTF_BGDKFDIAG "\\bgdkfdiag" +#define OOO_STRING_SVTOOLS_RTF_BGDKHORIZ "\\bgdkhoriz" +#define OOO_STRING_SVTOOLS_RTF_BGDKVERT "\\bgdkvert" +#define OOO_STRING_SVTOOLS_RTF_BGFDIAG "\\bgfdiag" +#define OOO_STRING_SVTOOLS_RTF_BGHORIZ "\\bghoriz" +#define OOO_STRING_SVTOOLS_RTF_BGVERT "\\bgvert" +#define OOO_STRING_SVTOOLS_RTF_BIN "\\bin" +#define OOO_STRING_SVTOOLS_RTF_BINFSXN "\\binfsxn" +#define OOO_STRING_SVTOOLS_RTF_BINSXN "\\binsxn" +#define OOO_STRING_SVTOOLS_RTF_BKMKCOLF "\\bkmkcolf" +#define OOO_STRING_SVTOOLS_RTF_BKMKCOLL "\\bkmkcoll" +#define OOO_STRING_SVTOOLS_RTF_BKMKEND "\\bkmkend" +#define OOO_STRING_SVTOOLS_RTF_BKMKSTART "\\bkmkstart" +#define OOO_STRING_SVTOOLS_RTF_BLUE "\\blue" +#define OOO_STRING_SVTOOLS_RTF_BOX "\\box" +#define OOO_STRING_SVTOOLS_RTF_BRDRB "\\brdrb" +#define OOO_STRING_SVTOOLS_RTF_BRDRBAR "\\brdrbar" +#define OOO_STRING_SVTOOLS_RTF_BRDRBTW "\\brdrbtw" +#define OOO_STRING_SVTOOLS_RTF_BRDRCF "\\brdrcf" +#define OOO_STRING_SVTOOLS_RTF_BRDRDB "\\brdrdb" +#define OOO_STRING_SVTOOLS_RTF_BRDRDOT "\\brdrdot" +#define OOO_STRING_SVTOOLS_RTF_BRDRHAIR "\\brdrhair" +#define OOO_STRING_SVTOOLS_RTF_BRDRL "\\brdrl" +#define OOO_STRING_SVTOOLS_RTF_BRDRR "\\brdrr" +#define OOO_STRING_SVTOOLS_RTF_BRDRS "\\brdrs" +#define OOO_STRING_SVTOOLS_RTF_BRDRSH "\\brdrsh" +#define OOO_STRING_SVTOOLS_RTF_BRDRT "\\brdrt" +#define OOO_STRING_SVTOOLS_RTF_BRDRTH "\\brdrth" +#define OOO_STRING_SVTOOLS_RTF_BRDRW "\\brdrw" +#define OOO_STRING_SVTOOLS_RTF_BRSP "\\brsp" +#define OOO_STRING_SVTOOLS_RTF_BULLET "\\bullet" +#define OOO_STRING_SVTOOLS_RTF_BUPTIM "\\buptim" +#define OOO_STRING_SVTOOLS_RTF_BXE "\\bxe" +#define OOO_STRING_SVTOOLS_RTF_CAPS "\\caps" +#define OOO_STRING_SVTOOLS_RTF_CB "\\cb" +#define OOO_STRING_SVTOOLS_RTF_CBPAT "\\cbpat" +#define OOO_STRING_SVTOOLS_RTF_CELL "\\cell" +#define OOO_STRING_SVTOOLS_RTF_CELLX "\\cellx" +#define OOO_STRING_SVTOOLS_RTF_CF "\\cf" +#define OOO_STRING_SVTOOLS_RTF_CFPAT "\\cfpat" +#define OOO_STRING_SVTOOLS_RTF_CHATN "\\chatn" +#define OOO_STRING_SVTOOLS_RTF_CHDATE "\\chdate" +#define OOO_STRING_SVTOOLS_RTF_CHDPA "\\chdpa" +#define OOO_STRING_SVTOOLS_RTF_CHDPL "\\chdpl" +#define OOO_STRING_SVTOOLS_RTF_CHFTN "\\chftn" +#define OOO_STRING_SVTOOLS_RTF_CHFTNSEP "\\chftnsep" +#define OOO_STRING_SVTOOLS_RTF_CHFTNSEPC "\\chftnsepc" +#define OOO_STRING_SVTOOLS_RTF_CHPGN "\\chpgn" +#define OOO_STRING_SVTOOLS_RTF_CHTIME "\\chtime" +#define OOO_STRING_SVTOOLS_RTF_CLBGBDIAG "\\clbgbdiag" +#define OOO_STRING_SVTOOLS_RTF_CLBGCROSS "\\clbgcross" +#define OOO_STRING_SVTOOLS_RTF_CLBGDCROSS "\\clbgdcross" +#define OOO_STRING_SVTOOLS_RTF_CLBGDKBDIAG "\\clbgdkbdiag" +#define OOO_STRING_SVTOOLS_RTF_CLBGDKCROSS "\\clbgdkcross" +#define OOO_STRING_SVTOOLS_RTF_CLBGDKDCROSS "\\clbgdkdcross" +#define OOO_STRING_SVTOOLS_RTF_CLBGDKFDIAG "\\clbgdkfdiag" +#define OOO_STRING_SVTOOLS_RTF_CLBGDKHOR "\\clbgdkhor" +#define OOO_STRING_SVTOOLS_RTF_CLBGDKVERT "\\clbgdkvert" +#define OOO_STRING_SVTOOLS_RTF_CLBGFDIAG "\\clbgfdiag" +#define OOO_STRING_SVTOOLS_RTF_CLBGHORIZ "\\clbghoriz" +#define OOO_STRING_SVTOOLS_RTF_CLBGVERT "\\clbgvert" +#define OOO_STRING_SVTOOLS_RTF_CLBRDRB "\\clbrdrb" +#define OOO_STRING_SVTOOLS_RTF_CLBRDRL "\\clbrdrl" +#define OOO_STRING_SVTOOLS_RTF_CLBRDRR "\\clbrdrr" +#define OOO_STRING_SVTOOLS_RTF_CLBRDRT "\\clbrdrt" +#define OOO_STRING_SVTOOLS_RTF_CLCBPAT "\\clcbpat" +#define OOO_STRING_SVTOOLS_RTF_CLCFPAT "\\clcfpat" +#define OOO_STRING_SVTOOLS_RTF_CLMGF "\\clmgf" +#define OOO_STRING_SVTOOLS_RTF_CLMRG "\\clmrg" +#define OOO_STRING_SVTOOLS_RTF_CLSHDNG "\\clshdng" +#define OOO_STRING_SVTOOLS_RTF_COLNO "\\colno" +#define OOO_STRING_SVTOOLS_RTF_COLORTBL "\\colortbl" +#define OOO_STRING_SVTOOLS_RTF_COLS "\\cols" +#define OOO_STRING_SVTOOLS_RTF_COLSR "\\colsr" +#define OOO_STRING_SVTOOLS_RTF_COLSX "\\colsx" +#define OOO_STRING_SVTOOLS_RTF_COLUMN "\\column" +#define OOO_STRING_SVTOOLS_RTF_COLW "\\colw" +#define OOO_STRING_SVTOOLS_RTF_COMMENT "\\comment" +#define OOO_STRING_SVTOOLS_RTF_CREATIM "\\creatim" +#define OOO_STRING_SVTOOLS_RTF_CTRL "\\ctrl" +#define OOO_STRING_SVTOOLS_RTF_DEFF "\\deff" +#define OOO_STRING_SVTOOLS_RTF_DEFFORMAT "\\defformat" +#define OOO_STRING_SVTOOLS_RTF_DEFLANG "\\deflang" +#define OOO_STRING_SVTOOLS_RTF_DEFTAB "\\deftab" +#define OOO_STRING_SVTOOLS_RTF_DELETED "\\deleted" +#define OOO_STRING_SVTOOLS_RTF_DFRMTXTX "\\dfrmtxtx" +#define OOO_STRING_SVTOOLS_RTF_DFRMTXTY "\\dfrmtxty" +#define OOO_STRING_SVTOOLS_RTF_DIBITMAP "\\dibitmap" +#define OOO_STRING_SVTOOLS_RTF_DN "\\dn" +#define OOO_STRING_SVTOOLS_RTF_DOCCOMM "\\doccomm" +#define OOO_STRING_SVTOOLS_RTF_DOCTEMP "\\doctemp" +#define OOO_STRING_SVTOOLS_RTF_DROPCAPLI "\\dropcapli" +#define OOO_STRING_SVTOOLS_RTF_DROPCAPT "\\dropcapt" +#define OOO_STRING_SVTOOLS_RTF_ABSNOOVRLP "\\absnoovrlp" +#define OOO_STRING_SVTOOLS_RTF_DXFRTEXT "\\dxfrtext" +#define OOO_STRING_SVTOOLS_RTF_DY "\\dy" +#define OOO_STRING_SVTOOLS_RTF_EDMINS "\\edmins" +#define OOO_STRING_SVTOOLS_RTF_EMDASH "\\emdash" +#define OOO_STRING_SVTOOLS_RTF_ENDASH "\\endash" +#define OOO_STRING_SVTOOLS_RTF_ENDDOC "\\enddoc" +#define OOO_STRING_SVTOOLS_RTF_ENDNHERE "\\endnhere" +#define OOO_STRING_SVTOOLS_RTF_ENDNOTES "\\endnotes" +#define OOO_STRING_SVTOOLS_RTF_EXPND "\\expnd" +#define OOO_STRING_SVTOOLS_RTF_EXPNDTW "\\expndtw" +#define OOO_STRING_SVTOOLS_RTF_F "\\f" +#define OOO_STRING_SVTOOLS_RTF_FACINGP "\\facingp" +#define OOO_STRING_SVTOOLS_RTF_FACPGSXN "\\facpgsxn" +#define OOO_STRING_SVTOOLS_RTF_FALT "\\falt" +#define OOO_STRING_SVTOOLS_RTF_FCHARSET "\\fcharset" +#define OOO_STRING_SVTOOLS_RTF_FDECOR "\\fdecor" +#define OOO_STRING_SVTOOLS_RTF_FI "\\fi" +#define OOO_STRING_SVTOOLS_RTF_FIELD "\\field" +#define OOO_STRING_SVTOOLS_RTF_FLDDIRTY "\\flddirty" +#define OOO_STRING_SVTOOLS_RTF_FLDEDIT "\\fldedit" +#define OOO_STRING_SVTOOLS_RTF_FLDINST "\\fldinst" +#define OOO_STRING_SVTOOLS_RTF_FLDLOCK "\\fldlock" +#define OOO_STRING_SVTOOLS_RTF_FLDPRIV "\\fldpriv" +#define OOO_STRING_SVTOOLS_RTF_FLDRSLT "\\fldrslt" +#define OOO_STRING_SVTOOLS_RTF_FMODERN "\\fmodern" +#define OOO_STRING_SVTOOLS_RTF_FN "\\fn" +#define OOO_STRING_SVTOOLS_RTF_FNIL "\\fnil" +#define OOO_STRING_SVTOOLS_RTF_FONTTBL "\\fonttbl" +#define OOO_STRING_SVTOOLS_RTF_FOOTER "\\footer" +#define OOO_STRING_SVTOOLS_RTF_FOOTERF "\\footerf" +#define OOO_STRING_SVTOOLS_RTF_FOOTERL "\\footerl" +#define OOO_STRING_SVTOOLS_RTF_FOOTERR "\\footerr" +#define OOO_STRING_SVTOOLS_RTF_FOOTERY "\\footery" +#define OOO_STRING_SVTOOLS_RTF_FOOTNOTE "\\footnote" +#define OOO_STRING_SVTOOLS_RTF_FPRQ "\\fprq" +#define OOO_STRING_SVTOOLS_RTF_FRACWIDTH "\\fracwidth" +#define OOO_STRING_SVTOOLS_RTF_FROMAN "\\froman" +#define OOO_STRING_SVTOOLS_RTF_FS "\\fs" +#define OOO_STRING_SVTOOLS_RTF_FSCRIPT "\\fscript" +#define OOO_STRING_SVTOOLS_RTF_FSWISS "\\fswiss" +#define OOO_STRING_SVTOOLS_RTF_FTECH "\\ftech" +#define OOO_STRING_SVTOOLS_RTF_FTNBJ "\\ftnbj" +#define OOO_STRING_SVTOOLS_RTF_FTNCN "\\ftncn" +#define OOO_STRING_SVTOOLS_RTF_FTNRESTART "\\ftnrestart" +#define OOO_STRING_SVTOOLS_RTF_FTNSEP "\\ftnsep" +#define OOO_STRING_SVTOOLS_RTF_FTNSEPC "\\ftnsepc" +#define OOO_STRING_SVTOOLS_RTF_FTNSTART "\\ftnstart" +#define OOO_STRING_SVTOOLS_RTF_FTNTJ "\\ftntj" +#define OOO_STRING_SVTOOLS_RTF_GREEN "\\green" +#define OOO_STRING_SVTOOLS_RTF_GUTTER "\\gutter" +#define OOO_STRING_SVTOOLS_RTF_GUTTERSXN "\\guttersxn" +#define OOO_STRING_SVTOOLS_RTF_HEADER "\\header" +#define OOO_STRING_SVTOOLS_RTF_HEADERF "\\headerf" +#define OOO_STRING_SVTOOLS_RTF_HEADERL "\\headerl" +#define OOO_STRING_SVTOOLS_RTF_HEADERR "\\headerr" +#define OOO_STRING_SVTOOLS_RTF_HEADERY "\\headery" +#define OOO_STRING_SVTOOLS_RTF_HR "\\hr" +#define OOO_STRING_SVTOOLS_RTF_HYPHHOTZ "\\hyphhotz" +#define OOO_STRING_SVTOOLS_RTF_I "\\i" +#define OOO_STRING_SVTOOLS_RTF_ID "\\id" +#define OOO_STRING_SVTOOLS_RTF_INFO "\\info" +#define OOO_STRING_SVTOOLS_RTF_INTBL "\\intbl" +#define OOO_STRING_SVTOOLS_RTF_IXE "\\ixe" +#define OOO_STRING_SVTOOLS_RTF_KEEP "\\keep" +#define OOO_STRING_SVTOOLS_RTF_KEEPN "\\keepn" +#define OOO_STRING_SVTOOLS_RTF_KERNING "\\kerning" +#define OOO_STRING_SVTOOLS_RTF_KEYCODE "\\keycode" +#define OOO_STRING_SVTOOLS_RTF_KEYWORDS "\\keywords" +#define OOO_STRING_SVTOOLS_RTF_LANDSCAPE "\\landscape" +#define OOO_STRING_SVTOOLS_RTF_LANG "\\lang" +#define OOO_STRING_SVTOOLS_RTF_LDBLQUOTE "\\ldblquote" +#define OOO_STRING_SVTOOLS_RTF_LEVEL "\\level" +#define OOO_STRING_SVTOOLS_RTF_LI "\\li" +#define OOO_STRING_SVTOOLS_RTF_LIN "\\lin" +#define OOO_STRING_SVTOOLS_RTF_LINE "\\line" +#define OOO_STRING_SVTOOLS_RTF_LINEBETCOL "\\linebetcol" +#define OOO_STRING_SVTOOLS_RTF_LINECONT "\\linecont" +#define OOO_STRING_SVTOOLS_RTF_LINEMOD "\\linemod" +#define OOO_STRING_SVTOOLS_RTF_LINEPPAGE "\\lineppage" +#define OOO_STRING_SVTOOLS_RTF_LINERESTART "\\linerestart" +#define OOO_STRING_SVTOOLS_RTF_LINESTART "\\linestart" +#define OOO_STRING_SVTOOLS_RTF_LINESTARTS "\\linestarts" +#define OOO_STRING_SVTOOLS_RTF_LINEX "\\linex" +#define OOO_STRING_SVTOOLS_RTF_LNDSCPSXN "\\lndscpsxn" +#define OOO_STRING_SVTOOLS_RTF_LQUOTE "\\lquote" +#define OOO_STRING_SVTOOLS_RTF_MAC "\\mac" +#define OOO_STRING_SVTOOLS_RTF_MACPICT "\\macpict" +#define OOO_STRING_SVTOOLS_RTF_MAKEBACKUP "\\makebackup" +#define OOO_STRING_SVTOOLS_RTF_MARGB "\\margb" +#define OOO_STRING_SVTOOLS_RTF_MARGBSXN "\\margbsxn" +#define OOO_STRING_SVTOOLS_RTF_MARGL "\\margl" +#define OOO_STRING_SVTOOLS_RTF_MARGLSXN "\\marglsxn" +#define OOO_STRING_SVTOOLS_RTF_MARGMIRROR "\\margmirror" +#define OOO_STRING_SVTOOLS_RTF_MARGR "\\margr" +#define OOO_STRING_SVTOOLS_RTF_MARGRSXN "\\margrsxn" +#define OOO_STRING_SVTOOLS_RTF_MARGT "\\margt" +#define OOO_STRING_SVTOOLS_RTF_MARGTSXN "\\margtsxn" +#define OOO_STRING_SVTOOLS_RTF_MIN "\\min" +#define OOO_STRING_SVTOOLS_RTF_MO "\\mo" +#define OOO_STRING_SVTOOLS_RTF_NEXTCSET "\\nextcset" +#define OOO_STRING_SVTOOLS_RTF_NEXTFILE "\\nextfile" +#define OOO_STRING_SVTOOLS_RTF_NOFCHARS "\\nofchars" +#define OOO_STRING_SVTOOLS_RTF_NOFPAGES "\\nofpages" +#define OOO_STRING_SVTOOLS_RTF_NOFWORDS "\\nofwords" +#define OOO_STRING_SVTOOLS_RTF_NOLINE "\\noline" +#define OOO_STRING_SVTOOLS_RTF_NOSUPERSUB "\\nosupersub" +#define OOO_STRING_SVTOOLS_RTF_NOWRAP "\\nowrap" +#define OOO_STRING_SVTOOLS_RTF_OPERATOR "\\operator" +#define OOO_STRING_SVTOOLS_RTF_OUTL "\\outl" +#define OOO_STRING_SVTOOLS_RTF_PAGE "\\page" +#define OOO_STRING_SVTOOLS_RTF_PAGEBB "\\pagebb" +#define OOO_STRING_SVTOOLS_RTF_PAPERH "\\paperh" +#define OOO_STRING_SVTOOLS_RTF_PAPERW "\\paperw" +#define OOO_STRING_SVTOOLS_RTF_PAR "\\par" +#define OOO_STRING_SVTOOLS_RTF_PARD "\\pard" +#define OOO_STRING_SVTOOLS_RTF_PC "\\pc" +#define OOO_STRING_SVTOOLS_RTF_PCA "\\pca" +#define OOO_STRING_SVTOOLS_RTF_PGHSXN "\\pghsxn" +#define OOO_STRING_SVTOOLS_RTF_PGNCONT "\\pgncont" +#define OOO_STRING_SVTOOLS_RTF_PGNDEC "\\pgndec" +#define OOO_STRING_SVTOOLS_RTF_PGNLCLTR "\\pgnlcltr" +#define OOO_STRING_SVTOOLS_RTF_PGNLCRM "\\pgnlcrm" +#define OOO_STRING_SVTOOLS_RTF_PGNRESTART "\\pgnrestart" +#define OOO_STRING_SVTOOLS_RTF_PGNSTART "\\pgnstart" +#define OOO_STRING_SVTOOLS_RTF_PGNSTARTS "\\pgnstarts" +#define OOO_STRING_SVTOOLS_RTF_PGNUCLTR "\\pgnucltr" +#define OOO_STRING_SVTOOLS_RTF_PGNUCRM "\\pgnucrm" +#define OOO_STRING_SVTOOLS_RTF_PGNX "\\pgnx" +#define OOO_STRING_SVTOOLS_RTF_PGNY "\\pgny" +#define OOO_STRING_SVTOOLS_RTF_PGWSXN "\\pgwsxn" +#define OOO_STRING_SVTOOLS_RTF_PHCOL "\\phcol" +#define OOO_STRING_SVTOOLS_RTF_PHMRG "\\phmrg" +#define OOO_STRING_SVTOOLS_RTF_PHPG "\\phpg" +#define OOO_STRING_SVTOOLS_RTF_PICCROPB "\\piccropb" +#define OOO_STRING_SVTOOLS_RTF_PICCROPL "\\piccropl" +#define OOO_STRING_SVTOOLS_RTF_PICCROPR "\\piccropr" +#define OOO_STRING_SVTOOLS_RTF_PICCROPT "\\piccropt" +#define OOO_STRING_SVTOOLS_RTF_PICH "\\pich" +#define OOO_STRING_SVTOOLS_RTF_PICHGOAL "\\pichgoal" +#define OOO_STRING_SVTOOLS_RTF_PICSCALED "\\picscaled" +#define OOO_STRING_SVTOOLS_RTF_PICSCALEX "\\picscalex" +#define OOO_STRING_SVTOOLS_RTF_PICSCALEY "\\picscaley" +#define OOO_STRING_SVTOOLS_RTF_PICT "\\pict" +#define OOO_STRING_SVTOOLS_RTF_PICW "\\picw" +#define OOO_STRING_SVTOOLS_RTF_PICWGOAL "\\picwgoal" +#define OOO_STRING_SVTOOLS_RTF_PLAIN "\\plain" +#define OOO_STRING_SVTOOLS_RTF_PMMETAFILE "\\pmmetafile" +#define OOO_STRING_SVTOOLS_RTF_POSNEGX "\\posnegx" +#define OOO_STRING_SVTOOLS_RTF_POSNEGY "\\posnegy" +#define OOO_STRING_SVTOOLS_RTF_POSX "\\posx" +#define OOO_STRING_SVTOOLS_RTF_POSXC "\\posxc" +#define OOO_STRING_SVTOOLS_RTF_POSXI "\\posxi" +#define OOO_STRING_SVTOOLS_RTF_POSXL "\\posxl" +#define OOO_STRING_SVTOOLS_RTF_POSXO "\\posxo" +#define OOO_STRING_SVTOOLS_RTF_POSXR "\\posxr" +#define OOO_STRING_SVTOOLS_RTF_POSY "\\posy" +#define OOO_STRING_SVTOOLS_RTF_POSYB "\\posyb" +#define OOO_STRING_SVTOOLS_RTF_POSYC "\\posyc" +#define OOO_STRING_SVTOOLS_RTF_POSYIL "\\posyil" +#define OOO_STRING_SVTOOLS_RTF_POSYT "\\posyt" +#define OOO_STRING_SVTOOLS_RTF_PRINTIM "\\printim" +#define OOO_STRING_SVTOOLS_RTF_PSOVER "\\psover" +#define OOO_STRING_SVTOOLS_RTF_PVMRG "\\pvmrg" +#define OOO_STRING_SVTOOLS_RTF_PVPARA "\\pvpara" +#define OOO_STRING_SVTOOLS_RTF_PVPG "\\pvpg" +#define OOO_STRING_SVTOOLS_RTF_QC "\\qc" +#define OOO_STRING_SVTOOLS_RTF_QJ "\\qj" +#define OOO_STRING_SVTOOLS_RTF_QL "\\ql" +#define OOO_STRING_SVTOOLS_RTF_QR "\\qr" +#define OOO_STRING_SVTOOLS_RTF_RDBLQUOTE "\\rdblquote" +#define OOO_STRING_SVTOOLS_RTF_RED "\\red" +#define OOO_STRING_SVTOOLS_RTF_REVBAR "\\revbar" +#define OOO_STRING_SVTOOLS_RTF_REVISED "\\revised" +#define OOO_STRING_SVTOOLS_RTF_REVISIONS "\\revisions" +#define OOO_STRING_SVTOOLS_RTF_REVPROP "\\revprop" +#define OOO_STRING_SVTOOLS_RTF_REVTIM "\\revtim" +#define OOO_STRING_SVTOOLS_RTF_RI "\\ri" +#define OOO_STRING_SVTOOLS_RTF_RIN "\\rin" +#define OOO_STRING_SVTOOLS_RTF_ROW "\\row" +#define OOO_STRING_SVTOOLS_RTF_RQUOTE "\\rquote" +#define OOO_STRING_SVTOOLS_RTF_RTF "\\rtf" +#define OOO_STRING_SVTOOLS_RTF_RXE "\\rxe" +#define OOO_STRING_SVTOOLS_RTF_S "\\s" +#define OOO_STRING_SVTOOLS_RTF_SA "\\sa" +#define OOO_STRING_SVTOOLS_RTF_SB "\\sb" +#define OOO_STRING_SVTOOLS_RTF_SBASEDON "\\sbasedon" +#define OOO_STRING_SVTOOLS_RTF_SBKCOL "\\sbkcol" +#define OOO_STRING_SVTOOLS_RTF_SBKEVEN "\\sbkeven" +#define OOO_STRING_SVTOOLS_RTF_SBKNONE "\\sbknone" +#define OOO_STRING_SVTOOLS_RTF_SBKODD "\\sbkodd" +#define OOO_STRING_SVTOOLS_RTF_SBKPAGE "\\sbkpage" +#define OOO_STRING_SVTOOLS_RTF_SBYS "\\sbys" +#define OOO_STRING_SVTOOLS_RTF_SCAPS "\\scaps" +#define OOO_STRING_SVTOOLS_RTF_SECT "\\sect" +#define OOO_STRING_SVTOOLS_RTF_SECTD "\\sectd" +#define OOO_STRING_SVTOOLS_RTF_SHAD "\\shad" +#define OOO_STRING_SVTOOLS_RTF_SHADING "\\shading" +#define OOO_STRING_SVTOOLS_RTF_SHIFT "\\shift" +#define OOO_STRING_SVTOOLS_RTF_SL "\\sl" +#define OOO_STRING_SVTOOLS_RTF_SNEXT "\\snext" +#define OOO_STRING_SVTOOLS_RTF_STRIKE "\\strike" +#define OOO_STRING_SVTOOLS_RTF_STYLESHEET "\\stylesheet" +#define OOO_STRING_SVTOOLS_RTF_SUB "\\sub" +#define OOO_STRING_SVTOOLS_RTF_SUBJECT "\\subject" +#define OOO_STRING_SVTOOLS_RTF_SUPER "\\super" +#define OOO_STRING_SVTOOLS_RTF_TAB "\\tab" +#define OOO_STRING_SVTOOLS_RTF_TB "\\tb" +#define OOO_STRING_SVTOOLS_RTF_TC "\\tc" +#define OOO_STRING_SVTOOLS_RTF_TCF "\\tcf" +#define OOO_STRING_SVTOOLS_RTF_TCL "\\tcl" +#define OOO_STRING_SVTOOLS_RTF_TEMPLATE "\\template" +#define OOO_STRING_SVTOOLS_RTF_TITLE "\\title" +#define OOO_STRING_SVTOOLS_RTF_TITLEPG "\\titlepg" +#define OOO_STRING_SVTOOLS_RTF_TLDOT "\\tldot" +#define OOO_STRING_SVTOOLS_RTF_TLEQ "\\tleq" +#define OOO_STRING_SVTOOLS_RTF_TLHYPH "\\tlhyph" +#define OOO_STRING_SVTOOLS_RTF_TLTH "\\tlth" +#define OOO_STRING_SVTOOLS_RTF_TLUL "\\tlul" +#define OOO_STRING_SVTOOLS_RTF_TQC "\\tqc" +#define OOO_STRING_SVTOOLS_RTF_TQDEC "\\tqdec" +#define OOO_STRING_SVTOOLS_RTF_TQR "\\tqr" +#define OOO_STRING_SVTOOLS_RTF_TQL "\\tql" +#define OOO_STRING_SVTOOLS_RTF_TRGAPH "\\trgaph" +#define OOO_STRING_SVTOOLS_RTF_TRLEFT "\\trleft" +#define OOO_STRING_SVTOOLS_RTF_TROWD "\\trowd" +#define OOO_STRING_SVTOOLS_RTF_TRQC "\\trqc" +#define OOO_STRING_SVTOOLS_RTF_TRQL "\\trql" +#define OOO_STRING_SVTOOLS_RTF_TRQR "\\trqr" +#define OOO_STRING_SVTOOLS_RTF_TRRH "\\trrh" +#define OOO_STRING_SVTOOLS_RTF_TX "\\tx" +#define OOO_STRING_SVTOOLS_RTF_TXE "\\txe" +#define OOO_STRING_SVTOOLS_RTF_UL "\\ul" +#define OOO_STRING_SVTOOLS_RTF_ULD "\\uld" +#define OOO_STRING_SVTOOLS_RTF_ULDB "\\uldb" +#define OOO_STRING_SVTOOLS_RTF_ULNONE "\\ulnone" +#define OOO_STRING_SVTOOLS_RTF_ULW "\\ulw" +#define OOO_STRING_SVTOOLS_RTF_UP "\\up" +#define OOO_STRING_SVTOOLS_RTF_V "\\v" +#define OOO_STRING_SVTOOLS_RTF_VERN "\\vern" +#define OOO_STRING_SVTOOLS_RTF_VERSION "\\version" +#define OOO_STRING_SVTOOLS_RTF_VERTALB "\\vertalb" +#define OOO_STRING_SVTOOLS_RTF_VERTALC "\\vertalc" +#define OOO_STRING_SVTOOLS_RTF_VERTALJ "\\vertalj" +#define OOO_STRING_SVTOOLS_RTF_VERTALT "\\vertalt" +#define OOO_STRING_SVTOOLS_RTF_WBITMAP "\\wbitmap" +#define OOO_STRING_SVTOOLS_RTF_WBMBITSPIXEL "\\wbmbitspixel" +#define OOO_STRING_SVTOOLS_RTF_WBMPLANES "\\wbmplanes" +#define OOO_STRING_SVTOOLS_RTF_WBMWIDTHBYTES "\\wbmwidthbytes" +#define OOO_STRING_SVTOOLS_RTF_WIDOWCTRL "\\widowctrl" +#define OOO_STRING_SVTOOLS_RTF_WMETAFILE "\\wmetafile" +#define OOO_STRING_SVTOOLS_RTF_XE "\\xe" +#define OOO_STRING_SVTOOLS_RTF_YR "\\yr" +#define OOO_STRING_SVTOOLS_RTF_NOBRKHYPH "\\_" +#define OOO_STRING_SVTOOLS_RTF_FORMULA "\\|" +#define OOO_STRING_SVTOOLS_RTF_NOBREAK "\\~" +#define OOO_STRING_SVTOOLS_RTF_AB "\\ab" +#define OOO_STRING_SVTOOLS_RTF_ACAPS "\\acaps" +#define OOO_STRING_SVTOOLS_RTF_ACF "\\acf" +#define OOO_STRING_SVTOOLS_RTF_ADDITIVE "\\additive" +#define OOO_STRING_SVTOOLS_RTF_ADN "\\adn" +#define OOO_STRING_SVTOOLS_RTF_AENDDOC "\\aenddoc" +#define OOO_STRING_SVTOOLS_RTF_AENDNOTES "\\aendnotes" +#define OOO_STRING_SVTOOLS_RTF_AEXPND "\\aexpnd" +#define OOO_STRING_SVTOOLS_RTF_AF "\\af" +#define OOO_STRING_SVTOOLS_RTF_AFS "\\afs" +#define OOO_STRING_SVTOOLS_RTF_AFTNBJ "\\aftnbj" +#define OOO_STRING_SVTOOLS_RTF_AFTNCN "\\aftncn" +#define OOO_STRING_SVTOOLS_RTF_AFTNNALC "\\aftnnalc" +#define OOO_STRING_SVTOOLS_RTF_AFTNNAR "\\aftnnar" +#define OOO_STRING_SVTOOLS_RTF_AFTNNAUC "\\aftnnauc" +#define OOO_STRING_SVTOOLS_RTF_AFTNNCHI "\\aftnnchi" +#define OOO_STRING_SVTOOLS_RTF_AFTNNRLC "\\aftnnrlc" +#define OOO_STRING_SVTOOLS_RTF_AFTNNRUC "\\aftnnruc" +#define OOO_STRING_SVTOOLS_RTF_AFTNRESTART "\\aftnrestart" +#define OOO_STRING_SVTOOLS_RTF_AFTNRSTCONT "\\aftnrstcont" +#define OOO_STRING_SVTOOLS_RTF_AFTNSEP "\\aftnsep" +#define OOO_STRING_SVTOOLS_RTF_AFTNSEPC "\\aftnsepc" +#define OOO_STRING_SVTOOLS_RTF_AFTNSTART "\\aftnstart" +#define OOO_STRING_SVTOOLS_RTF_AFTNTJ "\\aftntj" +#define OOO_STRING_SVTOOLS_RTF_AI "\\ai" +#define OOO_STRING_SVTOOLS_RTF_ALANG "\\alang" +#define OOO_STRING_SVTOOLS_RTF_ALLPROT "\\allprot" +#define OOO_STRING_SVTOOLS_RTF_ANNOTPROT "\\annotprot" +#define OOO_STRING_SVTOOLS_RTF_AOUTL "\\aoutl" +#define OOO_STRING_SVTOOLS_RTF_ASCAPS "\\ascaps" +#define OOO_STRING_SVTOOLS_RTF_ASHAD "\\ashad" +#define OOO_STRING_SVTOOLS_RTF_ASTRIKE "\\astrike" +#define OOO_STRING_SVTOOLS_RTF_ATNAUTHOR "\\atnauthor" +#define OOO_STRING_SVTOOLS_RTF_ATNICN "\\atnicn" +#define OOO_STRING_SVTOOLS_RTF_ATNREF "\\atnref" +#define OOO_STRING_SVTOOLS_RTF_ATNTIME "\\atntime" +#define OOO_STRING_SVTOOLS_RTF_ATRFEND "\\atrfend" +#define OOO_STRING_SVTOOLS_RTF_ATRFSTART "\\atrfstart" +#define OOO_STRING_SVTOOLS_RTF_AUL "\\aul" +#define OOO_STRING_SVTOOLS_RTF_AULD "\\auld" +#define OOO_STRING_SVTOOLS_RTF_AULDB "\\auldb" +#define OOO_STRING_SVTOOLS_RTF_AULNONE "\\aulnone" +#define OOO_STRING_SVTOOLS_RTF_AULW "\\aulw" +#define OOO_STRING_SVTOOLS_RTF_AUP "\\aup" +#define OOO_STRING_SVTOOLS_RTF_BKMKPUB "\\bkmkpub" +#define OOO_STRING_SVTOOLS_RTF_BRDRDASH "\\brdrdash" +#define OOO_STRING_SVTOOLS_RTF_BRKFRM "\\brkfrm" +#define OOO_STRING_SVTOOLS_RTF_CCHS "\\cchs" +#define OOO_STRING_SVTOOLS_RTF_CPG "\\cpg" +#define OOO_STRING_SVTOOLS_RTF_CS "\\cs" +#define OOO_STRING_SVTOOLS_RTF_CVMME "\\cvmme" +#define OOO_STRING_SVTOOLS_RTF_DATAFIELD "\\datafield" +#define OOO_STRING_SVTOOLS_RTF_DO "\\do" +#define OOO_STRING_SVTOOLS_RTF_DOBXCOLUMN "\\dobxcolumn" +#define OOO_STRING_SVTOOLS_RTF_DOBXMARGIN "\\dobxmargin" +#define OOO_STRING_SVTOOLS_RTF_DOBXPAGE "\\dobxpage" +#define OOO_STRING_SVTOOLS_RTF_DOBYMARGIN "\\dobymargin" +#define OOO_STRING_SVTOOLS_RTF_DOBYPAGE "\\dobypage" +#define OOO_STRING_SVTOOLS_RTF_DOBYPARA "\\dobypara" +#define OOO_STRING_SVTOOLS_RTF_DODHGT "\\dodhgt" +#define OOO_STRING_SVTOOLS_RTF_DOLOCK "\\dolock" +#define OOO_STRING_SVTOOLS_RTF_DPAENDHOL "\\dpaendhol" +#define OOO_STRING_SVTOOLS_RTF_DPAENDL "\\dpaendl" +#define OOO_STRING_SVTOOLS_RTF_DPAENDSOL "\\dpaendsol" +#define OOO_STRING_SVTOOLS_RTF_DPAENDW "\\dpaendw" +#define OOO_STRING_SVTOOLS_RTF_DPARC "\\dparc" +#define OOO_STRING_SVTOOLS_RTF_DPARCFLIPX "\\dparcflipx" +#define OOO_STRING_SVTOOLS_RTF_DPARCFLIPY "\\dparcflipy" +#define OOO_STRING_SVTOOLS_RTF_DPASTARTHOL "\\dpastarthol" +#define OOO_STRING_SVTOOLS_RTF_DPASTARTL "\\dpastartl" +#define OOO_STRING_SVTOOLS_RTF_DPASTARTSOL "\\dpastartsol" +#define OOO_STRING_SVTOOLS_RTF_DPASTARTW "\\dpastartw" +#define OOO_STRING_SVTOOLS_RTF_DPCALLOUT "\\dpcallout" +#define OOO_STRING_SVTOOLS_RTF_DPCOA "\\dpcoa" +#define OOO_STRING_SVTOOLS_RTF_DPCOACCENT "\\dpcoaccent" +#define OOO_STRING_SVTOOLS_RTF_DPCOBESTFIT "\\dpcobestfit" +#define OOO_STRING_SVTOOLS_RTF_DPCOBORDER "\\dpcoborder" +#define OOO_STRING_SVTOOLS_RTF_DPCODABS "\\dpcodabs" +#define OOO_STRING_SVTOOLS_RTF_DPCODBOTTOM "\\dpcodbottom" +#define OOO_STRING_SVTOOLS_RTF_DPCODCENTER "\\dpcodcenter" +#define OOO_STRING_SVTOOLS_RTF_DPCODTOP "\\dpcodtop" +#define OOO_STRING_SVTOOLS_RTF_DPCOLENGTH "\\dpcolength" +#define OOO_STRING_SVTOOLS_RTF_DPCOMINUSX "\\dpcominusx" +#define OOO_STRING_SVTOOLS_RTF_DPCOMINUSY "\\dpcominusy" +#define OOO_STRING_SVTOOLS_RTF_DPCOOFFSET "\\dpcooffset" +#define OOO_STRING_SVTOOLS_RTF_DPCOSMARTA "\\dpcosmarta" +#define OOO_STRING_SVTOOLS_RTF_DPCOTDOUBLE "\\dpcotdouble" +#define OOO_STRING_SVTOOLS_RTF_DPCOTRIGHT "\\dpcotright" +#define OOO_STRING_SVTOOLS_RTF_DPCOTSINGLE "\\dpcotsingle" +#define OOO_STRING_SVTOOLS_RTF_DPCOTTRIPLE "\\dpcottriple" +#define OOO_STRING_SVTOOLS_RTF_DPCOUNT "\\dpcount" +#define OOO_STRING_SVTOOLS_RTF_DPELLIPSE "\\dpellipse" +#define OOO_STRING_SVTOOLS_RTF_DPENDGROUP "\\dpendgroup" +#define OOO_STRING_SVTOOLS_RTF_DPFILLBGCB "\\dpfillbgcb" +#define OOO_STRING_SVTOOLS_RTF_DPFILLBGCG "\\dpfillbgcg" +#define OOO_STRING_SVTOOLS_RTF_DPFILLBGCR "\\dpfillbgcr" +#define OOO_STRING_SVTOOLS_RTF_DPFILLBGGRAY "\\dpfillbggray" +#define OOO_STRING_SVTOOLS_RTF_DPFILLBGPAL "\\dpfillbgpal" +#define OOO_STRING_SVTOOLS_RTF_DPFILLFGCB "\\dpfillfgcb" +#define OOO_STRING_SVTOOLS_RTF_DPFILLFGCG "\\dpfillfgcg" +#define OOO_STRING_SVTOOLS_RTF_DPFILLFGCR "\\dpfillfgcr" +#define OOO_STRING_SVTOOLS_RTF_DPFILLFGGRAY "\\dpfillfggray" +#define OOO_STRING_SVTOOLS_RTF_DPFILLFGPAL "\\dpfillfgpal" +#define OOO_STRING_SVTOOLS_RTF_DPFILLPAT "\\dpfillpat" +#define OOO_STRING_SVTOOLS_RTF_DPGROUP "\\dpgroup" +#define OOO_STRING_SVTOOLS_RTF_DPLINE "\\dpline" +#define OOO_STRING_SVTOOLS_RTF_DPLINECOB "\\dplinecob" +#define OOO_STRING_SVTOOLS_RTF_DPLINECOG "\\dplinecog" +#define OOO_STRING_SVTOOLS_RTF_DPLINECOR "\\dplinecor" +#define OOO_STRING_SVTOOLS_RTF_DPLINEDADO "\\dplinedado" +#define OOO_STRING_SVTOOLS_RTF_DPLINEDADODO "\\dplinedadodo" +#define OOO_STRING_SVTOOLS_RTF_DPLINEDASH "\\dplinedash" +#define OOO_STRING_SVTOOLS_RTF_DPLINEDOT "\\dplinedot" +#define OOO_STRING_SVTOOLS_RTF_DPLINEGRAY "\\dplinegray" +#define OOO_STRING_SVTOOLS_RTF_DPLINEHOLLOW "\\dplinehollow" +#define OOO_STRING_SVTOOLS_RTF_DPLINEPAL "\\dplinepal" +#define OOO_STRING_SVTOOLS_RTF_DPLINESOLID "\\dplinesolid" +#define OOO_STRING_SVTOOLS_RTF_DPLINEW "\\dplinew" +#define OOO_STRING_SVTOOLS_RTF_DPPOLYCOUNT "\\dppolycount" +#define OOO_STRING_SVTOOLS_RTF_DPPOLYGON "\\dppolygon" +#define OOO_STRING_SVTOOLS_RTF_DPPOLYLINE "\\dppolyline" +#define OOO_STRING_SVTOOLS_RTF_DPPTX "\\dpptx" +#define OOO_STRING_SVTOOLS_RTF_DPPTY "\\dppty" +#define OOO_STRING_SVTOOLS_RTF_DPRECT "\\dprect" +#define OOO_STRING_SVTOOLS_RTF_DPROUNDR "\\dproundr" +#define OOO_STRING_SVTOOLS_RTF_DPSHADOW "\\dpshadow" +#define OOO_STRING_SVTOOLS_RTF_DPSHADX "\\dpshadx" +#define OOO_STRING_SVTOOLS_RTF_DPSHADY "\\dpshady" +#define OOO_STRING_SVTOOLS_RTF_DPTXBX "\\dptxbx" +#define OOO_STRING_SVTOOLS_RTF_DPTXBXMAR "\\dptxbxmar" +#define OOO_STRING_SVTOOLS_RTF_DPTXBXTEXT "\\dptxbxtext" +#define OOO_STRING_SVTOOLS_RTF_DPX "\\dpx" +#define OOO_STRING_SVTOOLS_RTF_DPXSIZE "\\dpxsize" +#define OOO_STRING_SVTOOLS_RTF_DPY "\\dpy" +#define OOO_STRING_SVTOOLS_RTF_DPYSIZE "\\dpysize" +#define OOO_STRING_SVTOOLS_RTF_DS "\\ds" +#define OOO_STRING_SVTOOLS_RTF_EMSPACE "\\emspace" +#define OOO_STRING_SVTOOLS_RTF_ENSPACE "\\enspace" +#define OOO_STRING_SVTOOLS_RTF_FBIDI "\\fbidi" +#define OOO_STRING_SVTOOLS_RTF_FET "\\fet" +#define OOO_STRING_SVTOOLS_RTF_FID "\\fid" +#define OOO_STRING_SVTOOLS_RTF_FILE "\\file" +#define OOO_STRING_SVTOOLS_RTF_FILETBL "\\filetbl" +#define OOO_STRING_SVTOOLS_RTF_FLDALT "\\fldalt" +#define OOO_STRING_SVTOOLS_RTF_FNETWORK "\\fnetwork" +#define OOO_STRING_SVTOOLS_RTF_FONTEMB "\\fontemb" +#define OOO_STRING_SVTOOLS_RTF_FONTFILE "\\fontfile" +#define OOO_STRING_SVTOOLS_RTF_FORMDISP "\\formdisp" +#define OOO_STRING_SVTOOLS_RTF_FORMPROT "\\formprot" +#define OOO_STRING_SVTOOLS_RTF_FORMSHADE "\\formshade" +#define OOO_STRING_SVTOOLS_RTF_FOSNUM "\\fosnum" +#define OOO_STRING_SVTOOLS_RTF_FRELATIVE "\\frelative" +#define OOO_STRING_SVTOOLS_RTF_FTNALT "\\ftnalt" +#define OOO_STRING_SVTOOLS_RTF_FTNIL "\\ftnil" +#define OOO_STRING_SVTOOLS_RTF_FTNNALC "\\ftnnalc" +#define OOO_STRING_SVTOOLS_RTF_FTNNAR "\\ftnnar" +#define OOO_STRING_SVTOOLS_RTF_FTNNAUC "\\ftnnauc" +#define OOO_STRING_SVTOOLS_RTF_FTNNCHI "\\ftnnchi" +#define OOO_STRING_SVTOOLS_RTF_FTNNRLC "\\ftnnrlc" +#define OOO_STRING_SVTOOLS_RTF_FTNNRUC "\\ftnnruc" +#define OOO_STRING_SVTOOLS_RTF_FTNRSTCONT "\\ftnrstcont" +#define OOO_STRING_SVTOOLS_RTF_FTNRSTPG "\\ftnrstpg" +#define OOO_STRING_SVTOOLS_RTF_FTTRUETYPE "\\fttruetype" +#define OOO_STRING_SVTOOLS_RTF_FVALIDDOS "\\fvaliddos" +#define OOO_STRING_SVTOOLS_RTF_FVALIDHPFS "\\fvalidhpfs" +#define OOO_STRING_SVTOOLS_RTF_FVALIDMAC "\\fvalidmac" +#define OOO_STRING_SVTOOLS_RTF_FVALIDNTFS "\\fvalidntfs" +#define OOO_STRING_SVTOOLS_RTF_HYPHAUTO "\\hyphauto" +#define OOO_STRING_SVTOOLS_RTF_HYPHCAPS "\\hyphcaps" +#define OOO_STRING_SVTOOLS_RTF_HYPHCONSEC "\\hyphconsec" +#define OOO_STRING_SVTOOLS_RTF_HYPHPAR "\\hyphpar" +#define OOO_STRING_SVTOOLS_RTF_LINKSELF "\\linkself" +#define OOO_STRING_SVTOOLS_RTF_LINKSTYLES "\\linkstyles" +#define OOO_STRING_SVTOOLS_RTF_LTRCH "\\ltrch" +#define OOO_STRING_SVTOOLS_RTF_LTRDOC "\\ltrdoc" +#define OOO_STRING_SVTOOLS_RTF_LTRMARK "\\ltrmark" +#define OOO_STRING_SVTOOLS_RTF_LTRPAR "\\ltrpar" +#define OOO_STRING_SVTOOLS_RTF_LTRROW "\\ltrrow" +#define OOO_STRING_SVTOOLS_RTF_LTRSECT "\\ltrsect" +#define OOO_STRING_SVTOOLS_RTF_NOCOLBAL "\\nocolbal" +#define OOO_STRING_SVTOOLS_RTF_NOEXTRASPRL "\\noextrasprl" +#define OOO_STRING_SVTOOLS_RTF_NOTABIND "\\notabind" +#define OOO_STRING_SVTOOLS_RTF_NOWIDCTLPAR "\\nowidctlpar" +#define OOO_STRING_SVTOOLS_RTF_OBJALIAS "\\objalias" +#define OOO_STRING_SVTOOLS_RTF_OBJALIGN "\\objalign" +#define OOO_STRING_SVTOOLS_RTF_OBJAUTLINK "\\objautlink" +#define OOO_STRING_SVTOOLS_RTF_OBJCLASS "\\objclass" +#define OOO_STRING_SVTOOLS_RTF_OBJCROPB "\\objcropb" +#define OOO_STRING_SVTOOLS_RTF_OBJCROPL "\\objcropl" +#define OOO_STRING_SVTOOLS_RTF_OBJCROPR "\\objcropr" +#define OOO_STRING_SVTOOLS_RTF_OBJCROPT "\\objcropt" +#define OOO_STRING_SVTOOLS_RTF_OBJDATA "\\objdata" +#define OOO_STRING_SVTOOLS_RTF_OBJECT "\\object" +#define OOO_STRING_SVTOOLS_RTF_OBJEMB "\\objemb" +#define OOO_STRING_SVTOOLS_RTF_OBJH "\\objh" +#define OOO_STRING_SVTOOLS_RTF_OBJICEMB "\\objicemb" +#define OOO_STRING_SVTOOLS_RTF_OBJLINK "\\objlink" +#define OOO_STRING_SVTOOLS_RTF_OBJLOCK "\\objlock" +#define OOO_STRING_SVTOOLS_RTF_OBJNAME "\\objname" +#define OOO_STRING_SVTOOLS_RTF_OBJPUB "\\objpub" +#define OOO_STRING_SVTOOLS_RTF_OBJSCALEX "\\objscalex" +#define OOO_STRING_SVTOOLS_RTF_OBJSCALEY "\\objscaley" +#define OOO_STRING_SVTOOLS_RTF_OBJSECT "\\objsect" +#define OOO_STRING_SVTOOLS_RTF_OBJSETSIZE "\\objsetsize" +#define OOO_STRING_SVTOOLS_RTF_OBJSUB "\\objsub" +#define OOO_STRING_SVTOOLS_RTF_OBJTIME "\\objtime" +#define OOO_STRING_SVTOOLS_RTF_OBJTRANSY "\\objtransy" +#define OOO_STRING_SVTOOLS_RTF_OBJUPDATE "\\objupdate" +#define OOO_STRING_SVTOOLS_RTF_OBJW "\\objw" +#define OOO_STRING_SVTOOLS_RTF_OTBLRUL "\\otblrul" +#define OOO_STRING_SVTOOLS_RTF_PGNHN "\\pgnhn" +#define OOO_STRING_SVTOOLS_RTF_PGNHNSC "\\pgnhnsc" +#define OOO_STRING_SVTOOLS_RTF_PGNHNSH "\\pgnhnsh" +#define OOO_STRING_SVTOOLS_RTF_PGNHNSM "\\pgnhnsm" +#define OOO_STRING_SVTOOLS_RTF_PGNHNSN "\\pgnhnsn" +#define OOO_STRING_SVTOOLS_RTF_PGNHNSP "\\pgnhnsp" +#define OOO_STRING_SVTOOLS_RTF_PICBMP "\\picbmp" +#define OOO_STRING_SVTOOLS_RTF_PICBPP "\\picbpp" +#define OOO_STRING_SVTOOLS_RTF_PN "\\pn" +#define OOO_STRING_SVTOOLS_RTF_PNACROSS "\\pnacross" +#define OOO_STRING_SVTOOLS_RTF_PNB "\\pnb" +#define OOO_STRING_SVTOOLS_RTF_PNCAPS "\\pncaps" +#define OOO_STRING_SVTOOLS_RTF_PNCARD "\\pncard" +#define OOO_STRING_SVTOOLS_RTF_PNCF "\\pncf" +#define OOO_STRING_SVTOOLS_RTF_PNDEC "\\pndec" +#define OOO_STRING_SVTOOLS_RTF_PNF "\\pnf" +#define OOO_STRING_SVTOOLS_RTF_PNFS "\\pnfs" +#define OOO_STRING_SVTOOLS_RTF_PNHANG "\\pnhang" +#define OOO_STRING_SVTOOLS_RTF_PNI "\\pni" +#define OOO_STRING_SVTOOLS_RTF_PNINDENT "\\pnindent" +#define OOO_STRING_SVTOOLS_RTF_PNLCLTR "\\pnlcltr" +#define OOO_STRING_SVTOOLS_RTF_PNLCRM "\\pnlcrm" +#define OOO_STRING_SVTOOLS_RTF_PNLVL "\\pnlvl" +#define OOO_STRING_SVTOOLS_RTF_PNLVLBLT "\\pnlvlblt" +#define OOO_STRING_SVTOOLS_RTF_PNLVLBODY "\\pnlvlbody" +#define OOO_STRING_SVTOOLS_RTF_PNLVLCONT "\\pnlvlcont" +#define OOO_STRING_SVTOOLS_RTF_PNNUMONCE "\\pnnumonce" +#define OOO_STRING_SVTOOLS_RTF_PNORD "\\pnord" +#define OOO_STRING_SVTOOLS_RTF_PNORDT "\\pnordt" +#define OOO_STRING_SVTOOLS_RTF_PNPREV "\\pnprev" +#define OOO_STRING_SVTOOLS_RTF_PNQC "\\pnqc" +#define OOO_STRING_SVTOOLS_RTF_PNQL "\\pnql" +#define OOO_STRING_SVTOOLS_RTF_PNQR "\\pnqr" +#define OOO_STRING_SVTOOLS_RTF_PNRESTART "\\pnrestart" +#define OOO_STRING_SVTOOLS_RTF_PNSCAPS "\\pnscaps" +#define OOO_STRING_SVTOOLS_RTF_PNSECLVL "\\pnseclvl" +#define OOO_STRING_SVTOOLS_RTF_PNSP "\\pnsp" +#define OOO_STRING_SVTOOLS_RTF_PNSTART "\\pnstart" +#define OOO_STRING_SVTOOLS_RTF_PNSTRIKE "\\pnstrike" +#define OOO_STRING_SVTOOLS_RTF_PNTEXT "\\pntext" +#define OOO_STRING_SVTOOLS_RTF_PNTXTA "\\pntxta" +#define OOO_STRING_SVTOOLS_RTF_PNTXTB "\\pntxtb" +#define OOO_STRING_SVTOOLS_RTF_PNUCLTR "\\pnucltr" +#define OOO_STRING_SVTOOLS_RTF_PNUCRM "\\pnucrm" +#define OOO_STRING_SVTOOLS_RTF_PNUL "\\pnul" +#define OOO_STRING_SVTOOLS_RTF_PNULD "\\pnuld" +#define OOO_STRING_SVTOOLS_RTF_PNULDB "\\pnuldb" +#define OOO_STRING_SVTOOLS_RTF_PNULNONE "\\pnulnone" +#define OOO_STRING_SVTOOLS_RTF_PNULW "\\pnulw" +#define OOO_STRING_SVTOOLS_RTF_PRCOLBL "\\prcolbl" +#define OOO_STRING_SVTOOLS_RTF_PRINTDATA "\\printdata" +#define OOO_STRING_SVTOOLS_RTF_PSZ "\\psz" +#define OOO_STRING_SVTOOLS_RTF_PUBAUTO "\\pubauto" +#define OOO_STRING_SVTOOLS_RTF_RESULT "\\result" +#define OOO_STRING_SVTOOLS_RTF_REVAUTH "\\revauth" +#define OOO_STRING_SVTOOLS_RTF_REVDTTM "\\revdttm" +#define OOO_STRING_SVTOOLS_RTF_REVPROT "\\revprot" +#define OOO_STRING_SVTOOLS_RTF_REVTBL "\\revtbl" +#define OOO_STRING_SVTOOLS_RTF_RSLTBMP "\\rsltbmp" +#define OOO_STRING_SVTOOLS_RTF_RSLTMERGE "\\rsltmerge" +#define OOO_STRING_SVTOOLS_RTF_RSLTPICT "\\rsltpict" +#define OOO_STRING_SVTOOLS_RTF_RSLTRTF "\\rsltrtf" +#define OOO_STRING_SVTOOLS_RTF_RSLTTXT "\\rslttxt" +#define OOO_STRING_SVTOOLS_RTF_RTLCH "\\rtlch" +#define OOO_STRING_SVTOOLS_RTF_RTLDOC "\\rtldoc" +#define OOO_STRING_SVTOOLS_RTF_RTLMARK "\\rtlmark" +#define OOO_STRING_SVTOOLS_RTF_RTLPAR "\\rtlpar" +#define OOO_STRING_SVTOOLS_RTF_RTLROW "\\rtlrow" +#define OOO_STRING_SVTOOLS_RTF_RTLSECT "\\rtlsect" +#define OOO_STRING_SVTOOLS_RTF_SEC "\\sec" +#define OOO_STRING_SVTOOLS_RTF_SECTNUM "\\sectnum" +#define OOO_STRING_SVTOOLS_RTF_SECTUNLOCKED "\\sectunlocked" +#define OOO_STRING_SVTOOLS_RTF_SLMULT "\\slmult" +#define OOO_STRING_SVTOOLS_RTF_SOFTCOL "\\softcol" +#define OOO_STRING_SVTOOLS_RTF_SOFTLHEIGHT "\\softlheight" +#define OOO_STRING_SVTOOLS_RTF_SOFTLINE "\\softline" +#define OOO_STRING_SVTOOLS_RTF_SOFTPAGE "\\softpage" +#define OOO_STRING_SVTOOLS_RTF_SPRSSPBF "\\sprsspbf" +#define OOO_STRING_SVTOOLS_RTF_SPRSTSP "\\sprstsp" +#define OOO_STRING_SVTOOLS_RTF_SUBDOCUMENT "\\subdocument" +#define OOO_STRING_SVTOOLS_RTF_SWPBDR "\\swpbdr" +#define OOO_STRING_SVTOOLS_RTF_TCN "\\tcn" +#define OOO_STRING_SVTOOLS_RTF_TRANSMF "\\transmf" +#define OOO_STRING_SVTOOLS_RTF_TRBRDRB "\\trbrdrb" +#define OOO_STRING_SVTOOLS_RTF_TRBRDRH "\\trbrdrh" +#define OOO_STRING_SVTOOLS_RTF_TRBRDRL "\\trbrdrl" +#define OOO_STRING_SVTOOLS_RTF_TRBRDRR "\\trbrdrr" +#define OOO_STRING_SVTOOLS_RTF_TRBRDRT "\\trbrdrt" +#define OOO_STRING_SVTOOLS_RTF_TRBRDRV "\\trbrdrv" +#define OOO_STRING_SVTOOLS_RTF_TRHDR "\\trhdr" +#define OOO_STRING_SVTOOLS_RTF_TRKEEP "\\trkeep" +#define OOO_STRING_SVTOOLS_RTF_TRPADDB "\\trpaddb" +#define OOO_STRING_SVTOOLS_RTF_TRPADDL "\\trpaddl" +#define OOO_STRING_SVTOOLS_RTF_TRPADDR "\\trpaddr" +#define OOO_STRING_SVTOOLS_RTF_TRPADDT "\\trpaddt" +#define OOO_STRING_SVTOOLS_RTF_TRPADDFB "\\trpaddfb" +#define OOO_STRING_SVTOOLS_RTF_TRPADDFL "\\trpaddfl" +#define OOO_STRING_SVTOOLS_RTF_TRPADDFR "\\trpaddfr" +#define OOO_STRING_SVTOOLS_RTF_TRPADDFT "\\trpaddft" +#define OOO_STRING_SVTOOLS_RTF_WRAPTRSP "\\wraptrsp" +#define OOO_STRING_SVTOOLS_RTF_XEF "\\xef" +#define OOO_STRING_SVTOOLS_RTF_ZWJ "\\zwj" +#define OOO_STRING_SVTOOLS_RTF_ZWNJ "\\zwnj" + +// neue Tokens zur 1.5 +#define OOO_STRING_SVTOOLS_RTF_ABSLOCK "\\abslock" +#define OOO_STRING_SVTOOLS_RTF_ADJUSTRIGHT "\\adjustright" +#define OOO_STRING_SVTOOLS_RTF_AFTNNCHOSUNG "\\aftnnchosung" +#define OOO_STRING_SVTOOLS_RTF_AFTNNCNUM "\\aftnncnum" +#define OOO_STRING_SVTOOLS_RTF_AFTNNDBAR "\\aftnndbar" +#define OOO_STRING_SVTOOLS_RTF_AFTNNDBNUM "\\aftnndbnum" +#define OOO_STRING_SVTOOLS_RTF_AFTNNDBNUMD "\\aftnndbnumd" +#define OOO_STRING_SVTOOLS_RTF_AFTNNDBNUMK "\\aftnndbnumk" +#define OOO_STRING_SVTOOLS_RTF_AFTNNDBNUMT "\\aftnndbnumt" +#define OOO_STRING_SVTOOLS_RTF_AFTNNGANADA "\\aftnnganada" +#define OOO_STRING_SVTOOLS_RTF_AFTNNGBNUM "\\aftnngbnum" +#define OOO_STRING_SVTOOLS_RTF_AFTNNGBNUMD "\\aftnngbnumd" +#define OOO_STRING_SVTOOLS_RTF_AFTNNGBNUMK "\\aftnngbnumk" +#define OOO_STRING_SVTOOLS_RTF_AFTNNGBNUML "\\aftnngbnuml" +#define OOO_STRING_SVTOOLS_RTF_AFTNNZODIAC "\\aftnnzodiac" +#define OOO_STRING_SVTOOLS_RTF_AFTNNZODIACD "\\aftnnzodiacd" +#define OOO_STRING_SVTOOLS_RTF_AFTNNZODIACL "\\aftnnzodiacl" +#define OOO_STRING_SVTOOLS_RTF_ANIMTEXT "\\animtext" +#define OOO_STRING_SVTOOLS_RTF_ANSICPG "\\ansicpg" +#define OOO_STRING_SVTOOLS_RTF_BACKGROUND "\\background" +#define OOO_STRING_SVTOOLS_RTF_BDBFHDR "\\bdbfhdr" +#define OOO_STRING_SVTOOLS_RTF_BLIPTAG "\\bliptag" +#define OOO_STRING_SVTOOLS_RTF_BLIPUID "\\blipuid" +#define OOO_STRING_SVTOOLS_RTF_BLIPUPI "\\blipupi" +#define OOO_STRING_SVTOOLS_RTF_BRDRART "\\brdrart" +#define OOO_STRING_SVTOOLS_RTF_BRDRDASHD "\\brdrdashd" +#define OOO_STRING_SVTOOLS_RTF_BRDRDASHDD "\\brdrdashdd" +#define OOO_STRING_SVTOOLS_RTF_BRDRDASHDOTSTR "\\brdrdashdotstr" +#define OOO_STRING_SVTOOLS_RTF_BRDRDASHSM "\\brdrdashsm" +#define OOO_STRING_SVTOOLS_RTF_BRDREMBOSS "\\brdremboss" +#define OOO_STRING_SVTOOLS_RTF_BRDRENGRAVE "\\brdrengrave" +#define OOO_STRING_SVTOOLS_RTF_BRDRFRAME "\\brdrframe" +#define OOO_STRING_SVTOOLS_RTF_BRDRTHTNLG "\\brdrthtnlg" +#define OOO_STRING_SVTOOLS_RTF_BRDRTHTNMG "\\brdrthtnmg" +#define OOO_STRING_SVTOOLS_RTF_BRDRTHTNSG "\\brdrthtnsg" +#define OOO_STRING_SVTOOLS_RTF_BRDRTNTHLG "\\brdrtnthlg" +#define OOO_STRING_SVTOOLS_RTF_BRDRTNTHMG "\\brdrtnthmg" +#define OOO_STRING_SVTOOLS_RTF_BRDRTNTHSG "\\brdrtnthsg" +#define OOO_STRING_SVTOOLS_RTF_BRDRTNTHTNLG "\\brdrtnthtnlg" +#define OOO_STRING_SVTOOLS_RTF_BRDRTNTHTNMG "\\brdrtnthtnmg" +#define OOO_STRING_SVTOOLS_RTF_BRDRTNTHTNSG "\\brdrtnthtnsg" +#define OOO_STRING_SVTOOLS_RTF_BRDRTRIPLE "\\brdrtriple" +#define OOO_STRING_SVTOOLS_RTF_BRDRWAVY "\\brdrwavy" +#define OOO_STRING_SVTOOLS_RTF_BRDRWAVYDB "\\brdrwavydb" +#define OOO_STRING_SVTOOLS_RTF_CATEGORY "\\category" +#define OOO_STRING_SVTOOLS_RTF_CGRID "\\cgrid" +#define OOO_STRING_SVTOOLS_RTF_CHARSCALEX "\\charscalex" +#define OOO_STRING_SVTOOLS_RTF_CHBGBDIAG "\\chbgbdiag" +#define OOO_STRING_SVTOOLS_RTF_CHBGCROSS "\\chbgcross" +#define OOO_STRING_SVTOOLS_RTF_CHBGDCROSS "\\chbgdcross" +#define OOO_STRING_SVTOOLS_RTF_CHBGDKBDIAG "\\chbgdkbdiag" +#define OOO_STRING_SVTOOLS_RTF_CHBGDKCROSS "\\chbgdkcross" +#define OOO_STRING_SVTOOLS_RTF_CHBGDKDCROSS "\\chbgdkdcross" +#define OOO_STRING_SVTOOLS_RTF_CHBGDKFDIAG "\\chbgdkfdiag" +#define OOO_STRING_SVTOOLS_RTF_CHBGDKHORIZ "\\chbgdkhoriz" +#define OOO_STRING_SVTOOLS_RTF_CHBGDKVERT "\\chbgdkvert" +#define OOO_STRING_SVTOOLS_RTF_CHBGFDIAG "\\chbgfdiag" +#define OOO_STRING_SVTOOLS_RTF_CHBGHORIZ "\\chbghoriz" +#define OOO_STRING_SVTOOLS_RTF_CHBGVERT "\\chbgvert" +#define OOO_STRING_SVTOOLS_RTF_CHBRDR "\\chbrdr" +#define OOO_STRING_SVTOOLS_RTF_CHCBPAT "\\chcbpat" +#define OOO_STRING_SVTOOLS_RTF_CHCFPAT "\\chcfpat" +#define OOO_STRING_SVTOOLS_RTF_CHSHDNG "\\chshdng" +#define OOO_STRING_SVTOOLS_RTF_CLPADL "\\clpadl" +#define OOO_STRING_SVTOOLS_RTF_CLPADT "\\clpadt" +#define OOO_STRING_SVTOOLS_RTF_CLPADB "\\clpadb" +#define OOO_STRING_SVTOOLS_RTF_CLPADR "\\clpadr" +#define OOO_STRING_SVTOOLS_RTF_CLPADFL "\\clpadfl" +#define OOO_STRING_SVTOOLS_RTF_CLPADFT "\\clpadft" +#define OOO_STRING_SVTOOLS_RTF_CLPADFB "\\clpadfb" +#define OOO_STRING_SVTOOLS_RTF_CLPADFR "\\clpadfr" +#define OOO_STRING_SVTOOLS_RTF_CLTXLRTB "\\cltxlrtb" +#define OOO_STRING_SVTOOLS_RTF_CLTXTBRL "\\cltxtbrl" +#define OOO_STRING_SVTOOLS_RTF_CLVERTALB "\\clvertalb" +#define OOO_STRING_SVTOOLS_RTF_CLVERTALC "\\clvertalc" +#define OOO_STRING_SVTOOLS_RTF_CLVERTALT "\\clvertalt" +#define OOO_STRING_SVTOOLS_RTF_CLVMGF "\\clvmgf" +#define OOO_STRING_SVTOOLS_RTF_CLVMRG "\\clvmrg" +#define OOO_STRING_SVTOOLS_RTF_CLTXTBRLV "\\cltxtbrlv" +#define OOO_STRING_SVTOOLS_RTF_CLTXBTLR "\\cltxbtlr" +#define OOO_STRING_SVTOOLS_RTF_CLTXLRTBV "\\cltxlrtbv" +#define OOO_STRING_SVTOOLS_RTF_COMPANY "\\company" +#define OOO_STRING_SVTOOLS_RTF_CRAUTH "\\crauth" +#define OOO_STRING_SVTOOLS_RTF_CRDATE "\\crdate" +#define OOO_STRING_SVTOOLS_RTF_DATE "\\date" +#define OOO_STRING_SVTOOLS_RTF_DEFLANGFE "\\deflangfe" +#define OOO_STRING_SVTOOLS_RTF_DFRAUTH "\\dfrauth" +#define OOO_STRING_SVTOOLS_RTF_DFRDATE "\\dfrdate" +#define OOO_STRING_SVTOOLS_RTF_DFRSTART "\\dfrstart" +#define OOO_STRING_SVTOOLS_RTF_DFRSTOP "\\dfrstop" +#define OOO_STRING_SVTOOLS_RTF_DFRXST "\\dfrxst" +#define OOO_STRING_SVTOOLS_RTF_DGMARGIN "\\dgmargin" +#define OOO_STRING_SVTOOLS_RTF_DNTBLNSBDB "\\dntblnsbdb" +#define OOO_STRING_SVTOOLS_RTF_DOCTYPE "\\doctype" +#define OOO_STRING_SVTOOLS_RTF_DOCVAR "\\docvar" +#define OOO_STRING_SVTOOLS_RTF_DPCODESCENT "\\dpcodescent" +#define OOO_STRING_SVTOOLS_RTF_EMBO "\\embo" +#define OOO_STRING_SVTOOLS_RTF_EMFBLIP "\\emfblip" +#define OOO_STRING_SVTOOLS_RTF_EXPSHRTN "\\expshrtn" +#define OOO_STRING_SVTOOLS_RTF_FAAUTO "\\faauto" +#define OOO_STRING_SVTOOLS_RTF_FBIAS "\\fbias" +#define OOO_STRING_SVTOOLS_RTF_FFDEFRES "\\ffdefres" +#define OOO_STRING_SVTOOLS_RTF_FFDEFTEXT "\\ffdeftext" +#define OOO_STRING_SVTOOLS_RTF_FFENTRYMCR "\\ffentrymcr" +#define OOO_STRING_SVTOOLS_RTF_FFEXITMCR "\\ffexitmcr" +#define OOO_STRING_SVTOOLS_RTF_FFFORMAT "\\ffformat" +#define OOO_STRING_SVTOOLS_RTF_FFHASLISTBOX "\\ffhaslistbox" +#define OOO_STRING_SVTOOLS_RTF_FFHELPTEXT "\\ffhelptext" +#define OOO_STRING_SVTOOLS_RTF_FFHPS "\\ffhps" +#define OOO_STRING_SVTOOLS_RTF_FFL "\\ffl" +#define OOO_STRING_SVTOOLS_RTF_FFMAXLEN "\\ffmaxlen" +#define OOO_STRING_SVTOOLS_RTF_FFNAME "\\ffname" +#define OOO_STRING_SVTOOLS_RTF_FFOWNHELP "\\ffownhelp" +#define OOO_STRING_SVTOOLS_RTF_FFOWNSTAT "\\ffownstat" +#define OOO_STRING_SVTOOLS_RTF_FFPROT "\\ffprot" +#define OOO_STRING_SVTOOLS_RTF_FFRECALC "\\ffrecalc" +#define OOO_STRING_SVTOOLS_RTF_FFRES "\\ffres" +#define OOO_STRING_SVTOOLS_RTF_FFSIZE "\\ffsize" +#define OOO_STRING_SVTOOLS_RTF_FFSTATTEXT "\\ffstattext" +#define OOO_STRING_SVTOOLS_RTF_FFTYPE "\\fftype" +#define OOO_STRING_SVTOOLS_RTF_FFTYPETXT "\\fftypetxt" +#define OOO_STRING_SVTOOLS_RTF_FLDTYPE "\\fldtype" +#define OOO_STRING_SVTOOLS_RTF_FNAME "\\fname" +#define OOO_STRING_SVTOOLS_RTF_FORMFIELD "\\formfield" +#define OOO_STRING_SVTOOLS_RTF_FROMTEXT "\\fromtext" +#define OOO_STRING_SVTOOLS_RTF_FTNNCHOSUNG "\\ftnnchosung" +#define OOO_STRING_SVTOOLS_RTF_FTNNCNUM "\\ftnncnum" +#define OOO_STRING_SVTOOLS_RTF_FTNNDBAR "\\ftnndbar" +#define OOO_STRING_SVTOOLS_RTF_FTNNDBNUM "\\ftnndbnum" +#define OOO_STRING_SVTOOLS_RTF_FTNNDBNUMD "\\ftnndbnumd" +#define OOO_STRING_SVTOOLS_RTF_FTNNDBNUMK "\\ftnndbnumk" +#define OOO_STRING_SVTOOLS_RTF_FTNNDBNUMT "\\ftnndbnumt" +#define OOO_STRING_SVTOOLS_RTF_FTNNGANADA "\\ftnnganada" +#define OOO_STRING_SVTOOLS_RTF_FTNNGBNUM "\\ftnngbnum" +#define OOO_STRING_SVTOOLS_RTF_FTNNGBNUMD "\\ftnngbnumd" +#define OOO_STRING_SVTOOLS_RTF_FTNNGBNUMK "\\ftnngbnumk" +#define OOO_STRING_SVTOOLS_RTF_FTNNGBNUML "\\ftnngbnuml" +#define OOO_STRING_SVTOOLS_RTF_FTNNZODIAC "\\ftnnzodiac" +#define OOO_STRING_SVTOOLS_RTF_FTNNZODIACD "\\ftnnzodiacd" +#define OOO_STRING_SVTOOLS_RTF_FTNNZODIACL "\\ftnnzodiacl" +#define OOO_STRING_SVTOOLS_RTF_G "\\g" +#define OOO_STRING_SVTOOLS_RTF_GCW "\\gcw" +#define OOO_STRING_SVTOOLS_RTF_GRIDTBL "\\gridtbl" +#define OOO_STRING_SVTOOLS_RTF_HIGHLIGHT "\\highlight" +#define OOO_STRING_SVTOOLS_RTF_HLFR "\\hlfr" +#define OOO_STRING_SVTOOLS_RTF_HLINKBASE "\\hlinkbase" +#define OOO_STRING_SVTOOLS_RTF_HLLOC "\\hlloc" +#define OOO_STRING_SVTOOLS_RTF_HLSRC "\\hlsrc" +#define OOO_STRING_SVTOOLS_RTF_ILVL "\\ilvl" +#define OOO_STRING_SVTOOLS_RTF_IMPR "\\impr" +#define OOO_STRING_SVTOOLS_RTF_JPEGBLIP "\\jpegblip" +#define OOO_STRING_SVTOOLS_RTF_LEVELFOLLOW "\\levelfollow" +#define OOO_STRING_SVTOOLS_RTF_LEVELINDENT "\\levelindent" +#define OOO_STRING_SVTOOLS_RTF_LEVELJC "\\leveljc" +#define OOO_STRING_SVTOOLS_RTF_LEVELLEGAL "\\levellegal" +#define OOO_STRING_SVTOOLS_RTF_LEVELNFC "\\levelnfc" +#define OOO_STRING_SVTOOLS_RTF_LEVELNORESTART "\\levelnorestart" +#define OOO_STRING_SVTOOLS_RTF_LEVELNUMBERS "\\levelnumbers" +#define OOO_STRING_SVTOOLS_RTF_LEVELOLD "\\levelold" +#define OOO_STRING_SVTOOLS_RTF_LEVELPREV "\\levelprev" +#define OOO_STRING_SVTOOLS_RTF_LEVELPREVSPACE "\\levelprevspace" +#define OOO_STRING_SVTOOLS_RTF_LEVELSPACE "\\levelspace" +#define OOO_STRING_SVTOOLS_RTF_LEVELSTARTAT "\\levelstartat" +#define OOO_STRING_SVTOOLS_RTF_LEVELTEXT "\\leveltext" +#define OOO_STRING_SVTOOLS_RTF_LINKVAL "\\linkval" +#define OOO_STRING_SVTOOLS_RTF_LIST "\\list" +#define OOO_STRING_SVTOOLS_RTF_LISTID "\\listid" +#define OOO_STRING_SVTOOLS_RTF_LISTLEVEL "\\listlevel" +#define OOO_STRING_SVTOOLS_RTF_LISTNAME "\\listname" +#define OOO_STRING_SVTOOLS_RTF_LISTOVERRIDE "\\listoverride" +#define OOO_STRING_SVTOOLS_RTF_LISTOVERRIDECOUNT "\\listoverridecount" +#define OOO_STRING_SVTOOLS_RTF_LISTOVERRIDEFORMAT "\\listoverrideformat" +#define OOO_STRING_SVTOOLS_RTF_LISTOVERRIDESTART "\\listoverridestart" +#define OOO_STRING_SVTOOLS_RTF_LISTOVERRIDETABLE "\\listoverridetable" +#define OOO_STRING_SVTOOLS_RTF_LISTRESTARTHDN "\\listrestarthdn" +#define OOO_STRING_SVTOOLS_RTF_LISTSIMPLE "\\listsimple" +#define OOO_STRING_SVTOOLS_RTF_LISTTABLE "\\listtable" +#define OOO_STRING_SVTOOLS_RTF_LISTTEMPLATEID "\\listtemplateid" +#define OOO_STRING_SVTOOLS_RTF_LISTTEXT "\\listtext" +#define OOO_STRING_SVTOOLS_RTF_LS "\\ls" +#define OOO_STRING_SVTOOLS_RTF_LYTEXCTTP "\\lytexcttp" +#define OOO_STRING_SVTOOLS_RTF_LYTPRTMET "\\lytprtmet" +#define OOO_STRING_SVTOOLS_RTF_MANAGER "\\manager" +#define OOO_STRING_SVTOOLS_RTF_MSMCAP "\\msmcap" +#define OOO_STRING_SVTOOLS_RTF_NOFCHARSWS "\\nofcharsws" +#define OOO_STRING_SVTOOLS_RTF_NOLEAD "\\nolead" +#define OOO_STRING_SVTOOLS_RTF_NONSHPPICT "\\nonshppict" +#define OOO_STRING_SVTOOLS_RTF_NOSECTEXPAND "\\nosectexpand" +#define OOO_STRING_SVTOOLS_RTF_NOSNAPLINEGRID "\\nosnaplinegrid" +#define OOO_STRING_SVTOOLS_RTF_NOSPACEFORUL "\\nospaceforul" +#define OOO_STRING_SVTOOLS_RTF_NOULTRLSPC "\\noultrlspc" +#define OOO_STRING_SVTOOLS_RTF_NOXLATTOYEN "\\noxlattoyen" +#define OOO_STRING_SVTOOLS_RTF_OBJATTPH "\\objattph" +#define OOO_STRING_SVTOOLS_RTF_OBJHTML "\\objhtml" +#define OOO_STRING_SVTOOLS_RTF_OBJOCX "\\objocx" +#define OOO_STRING_SVTOOLS_RTF_OLDLINEWRAP "\\oldlinewrap" +#define OOO_STRING_SVTOOLS_RTF_OUTLINELEVEL "\\outlinelevel" +#define OOO_STRING_SVTOOLS_RTF_OVERLAY "\\overlay" +#define OOO_STRING_SVTOOLS_RTF_PANOSE "\\panose" +#define OOO_STRING_SVTOOLS_RTF_PGBRDRB "\\pgbrdrb" +#define OOO_STRING_SVTOOLS_RTF_PGBRDRFOOT "\\pgbrdrfoot" +#define OOO_STRING_SVTOOLS_RTF_PGBRDRHEAD "\\pgbrdrhead" +#define OOO_STRING_SVTOOLS_RTF_PGBRDRL "\\pgbrdrl" +#define OOO_STRING_SVTOOLS_RTF_PGBRDROPT "\\pgbrdropt" +#define OOO_STRING_SVTOOLS_RTF_PGBRDRR "\\pgbrdrr" +#define OOO_STRING_SVTOOLS_RTF_PGBRDRSNAP "\\pgbrdrsnap" +#define OOO_STRING_SVTOOLS_RTF_PGBRDRT "\\pgbrdrt" +#define OOO_STRING_SVTOOLS_RTF_PGNCHOSUNG "\\pgnchosung" +#define OOO_STRING_SVTOOLS_RTF_PGNCNUM "\\pgncnum" +#define OOO_STRING_SVTOOLS_RTF_PGNDBNUMK "\\pgndbnumk" +#define OOO_STRING_SVTOOLS_RTF_PGNDBNUMT "\\pgndbnumt" +#define OOO_STRING_SVTOOLS_RTF_PGNGANADA "\\pgnganada" +#define OOO_STRING_SVTOOLS_RTF_PGNGBNUM "\\pgngbnum" +#define OOO_STRING_SVTOOLS_RTF_PGNGBNUMD "\\pgngbnumd" +#define OOO_STRING_SVTOOLS_RTF_PGNGBNUMK "\\pgngbnumk" +#define OOO_STRING_SVTOOLS_RTF_PGNGBNUML "\\pgngbnuml" +#define OOO_STRING_SVTOOLS_RTF_PGNZODIAC "\\pgnzodiac" +#define OOO_STRING_SVTOOLS_RTF_PGNZODIACD "\\pgnzodiacd" +#define OOO_STRING_SVTOOLS_RTF_PGNZODIACL "\\pgnzodiacl" +#define OOO_STRING_SVTOOLS_RTF_PICPROP "\\picprop" +#define OOO_STRING_SVTOOLS_RTF_PNAIUEO "\\pnaiueo" +#define OOO_STRING_SVTOOLS_RTF_PNAIUEOD "\\pnaiueod" +#define OOO_STRING_SVTOOLS_RTF_PNCHOSUNG "\\pnchosung" +#define OOO_STRING_SVTOOLS_RTF_PNDBNUMD "\\pndbnumd" +#define OOO_STRING_SVTOOLS_RTF_PNDBNUMK "\\pndbnumk" +#define OOO_STRING_SVTOOLS_RTF_PNDBNUML "\\pndbnuml" +#define OOO_STRING_SVTOOLS_RTF_PNDBNUMT "\\pndbnumt" +#define OOO_STRING_SVTOOLS_RTF_PNGANADA "\\pnganada" +#define OOO_STRING_SVTOOLS_RTF_PNGBLIP "\\pngblip" +#define OOO_STRING_SVTOOLS_RTF_PNGBNUM "\\pngbnum" +#define OOO_STRING_SVTOOLS_RTF_PNGBNUMD "\\pngbnumd" +#define OOO_STRING_SVTOOLS_RTF_PNGBNUMK "\\pngbnumk" +#define OOO_STRING_SVTOOLS_RTF_PNGBNUML "\\pngbnuml" +#define OOO_STRING_SVTOOLS_RTF_PNRAUTH "\\pnrauth" +#define OOO_STRING_SVTOOLS_RTF_PNRDATE "\\pnrdate" +#define OOO_STRING_SVTOOLS_RTF_PNRNFC "\\pnrnfc" +#define OOO_STRING_SVTOOLS_RTF_PNRNOT "\\pnrnot" +#define OOO_STRING_SVTOOLS_RTF_PNRPNBR "\\pnrpnbr" +#define OOO_STRING_SVTOOLS_RTF_PNRRGB "\\pnrrgb" +#define OOO_STRING_SVTOOLS_RTF_PNRSTART "\\pnrstart" +#define OOO_STRING_SVTOOLS_RTF_PNRSTOP "\\pnrstop" +#define OOO_STRING_SVTOOLS_RTF_PNRXST "\\pnrxst" +#define OOO_STRING_SVTOOLS_RTF_PNZODIAC "\\pnzodiac" +#define OOO_STRING_SVTOOLS_RTF_PNZODIACD "\\pnzodiacd" +#define OOO_STRING_SVTOOLS_RTF_PNZODIACL "\\pnzodiacl" +#define OOO_STRING_SVTOOLS_RTF_LFOLEVEL "\\lfolevel" +#define OOO_STRING_SVTOOLS_RTF_POSYIN "\\posyin" +#define OOO_STRING_SVTOOLS_RTF_POSYOUT "\\posyout" +#define OOO_STRING_SVTOOLS_RTF_PRIVATE "\\private" +#define OOO_STRING_SVTOOLS_RTF_PROPNAME "\\propname" +#define OOO_STRING_SVTOOLS_RTF_PROPTYPE "\\proptype" +#define OOO_STRING_SVTOOLS_RTF_REVAUTHDEL "\\revauthdel" +#define OOO_STRING_SVTOOLS_RTF_REVDTTMDEL "\\revdttmdel" +#define OOO_STRING_SVTOOLS_RTF_SAUTOUPD "\\sautoupd" +#define OOO_STRING_SVTOOLS_RTF_SECTDEFAULTCL "\\sectdefaultcl" +#define OOO_STRING_SVTOOLS_RTF_SECTEXPAND "\\sectexpand" +#define OOO_STRING_SVTOOLS_RTF_SECTLINEGRID "\\sectlinegrid" +#define OOO_STRING_SVTOOLS_RTF_SECTSPECIFYCL "\\sectspecifycl" +#define OOO_STRING_SVTOOLS_RTF_SECTSPECIFYL "\\sectspecifyl" +#define OOO_STRING_SVTOOLS_RTF_SHIDDEN "\\shidden" +#define OOO_STRING_SVTOOLS_RTF_SHPBOTTOM "\\shpbottom" +#define OOO_STRING_SVTOOLS_RTF_SHPBXCOLUMN "\\shpbxcolumn" +#define OOO_STRING_SVTOOLS_RTF_SHPBXMARGIN "\\shpbxmargin" +#define OOO_STRING_SVTOOLS_RTF_SHPBXPAGE "\\shpbxpage" +#define OOO_STRING_SVTOOLS_RTF_SHPBXIGNORE "\\shpbxignore" +#define OOO_STRING_SVTOOLS_RTF_SHPBYMARGIN "\\shpbymargin" +#define OOO_STRING_SVTOOLS_RTF_SHPBYPAGE "\\shpbypage" +#define OOO_STRING_SVTOOLS_RTF_SHPBYPARA "\\shpbypara" +#define OOO_STRING_SVTOOLS_RTF_SHPBYIGNORE "\\shpbyignore" +#define OOO_STRING_SVTOOLS_RTF_SHPFBLWTXT "\\shpfblwtxt" +#define OOO_STRING_SVTOOLS_RTF_SHPFHDR "\\shpfhdr" +#define OOO_STRING_SVTOOLS_RTF_SHPGRP "\\shpgrp" +#define OOO_STRING_SVTOOLS_RTF_SHPINST "\\shpinst" +#define OOO_STRING_SVTOOLS_RTF_SHPLEFT "\\shpleft" +#define OOO_STRING_SVTOOLS_RTF_SHPLID "\\shplid" +#define OOO_STRING_SVTOOLS_RTF_SHPLOCKANCHOR "\\shplockanchor" +#define OOO_STRING_SVTOOLS_RTF_SHPPICT "\\shppict" +#define OOO_STRING_SVTOOLS_RTF_SHPRIGHT "\\shpright" +#define OOO_STRING_SVTOOLS_RTF_SHPRSLT "\\shprslt" +#define OOO_STRING_SVTOOLS_RTF_SHPTOP "\\shptop" +#define OOO_STRING_SVTOOLS_RTF_SHPTXT "\\shptxt" +#define OOO_STRING_SVTOOLS_RTF_SHPWRK "\\shpwrk" +#define OOO_STRING_SVTOOLS_RTF_SHPWR "\\shpwr" +#define OOO_STRING_SVTOOLS_RTF_SHPZ "\\shpz" +#define OOO_STRING_SVTOOLS_RTF_SP "\\sp" +#define OOO_STRING_SVTOOLS_RTF_SPRSBSP "\\sprsbsp" +#define OOO_STRING_SVTOOLS_RTF_SPRSLNSP "\\sprslnsp" +#define OOO_STRING_SVTOOLS_RTF_SPRSTSM "\\sprstsm" +#define OOO_STRING_SVTOOLS_RTF_STATICVAL "\\staticval" +#define OOO_STRING_SVTOOLS_RTF_STEXTFLOW "\\stextflow" +#define OOO_STRING_SVTOOLS_RTF_STRIKED "\\striked" +#define OOO_STRING_SVTOOLS_RTF_SUBFONTBYSIZE "\\subfontbysize" +#define OOO_STRING_SVTOOLS_RTF_TCELLD "\\tcelld" +#define OOO_STRING_SVTOOLS_RTF_TIME "\\time" +#define OOO_STRING_SVTOOLS_RTF_TRUNCATEFONTHEIGHT "\\truncatefontheight" +#define OOO_STRING_SVTOOLS_RTF_UC "\\uc" +#define OOO_STRING_SVTOOLS_RTF_UD "\\ud" +#define OOO_STRING_SVTOOLS_RTF_ULDASH "\\uldash" +#define OOO_STRING_SVTOOLS_RTF_ULDASHD "\\uldashd" +#define OOO_STRING_SVTOOLS_RTF_ULDASHDD "\\uldashdd" +#define OOO_STRING_SVTOOLS_RTF_ULTH "\\ulth" +#define OOO_STRING_SVTOOLS_RTF_ULWAVE "\\ulwave" +#define OOO_STRING_SVTOOLS_RTF_ULC "\\ulc" +#define OOO_STRING_SVTOOLS_RTF_U "\\u" +#define OOO_STRING_SVTOOLS_RTF_UPR "\\upr" +#define OOO_STRING_SVTOOLS_RTF_USERPROPS "\\userprops" +#define OOO_STRING_SVTOOLS_RTF_VIEWKIND "\\viewkind" +#define OOO_STRING_SVTOOLS_RTF_VIEWSCALE "\\viewscale" +#define OOO_STRING_SVTOOLS_RTF_VIEWZK "\\viewzk" +#define OOO_STRING_SVTOOLS_RTF_WIDCTLPAR "\\widctlpar" +#define OOO_STRING_SVTOOLS_RTF_WINDOWCAPTION "\\windowcaption" +#define OOO_STRING_SVTOOLS_RTF_WPEQN "\\wpeqn" +#define OOO_STRING_SVTOOLS_RTF_WPJST "\\wpjst" +#define OOO_STRING_SVTOOLS_RTF_WPSP "\\wpsp" +#define OOO_STRING_SVTOOLS_RTF_YXE "\\yxe" +#define OOO_STRING_SVTOOLS_RTF_FRMTXLRTB "\\frmtxlrtb" +#define OOO_STRING_SVTOOLS_RTF_FRMTXTBRL "\\frmtxtbrl" +#define OOO_STRING_SVTOOLS_RTF_FRMTXBTLR "\\frmtxbtlr" +#define OOO_STRING_SVTOOLS_RTF_FRMTXLRTBV "\\frmtxlrtbv" +#define OOO_STRING_SVTOOLS_RTF_FRMTXTBRLV "\\frmtxtbrlv" + +// MS-2000 Tokens +#define OOO_STRING_SVTOOLS_RTF_ULTHD "\\ulthd" +#define OOO_STRING_SVTOOLS_RTF_ULTHDASH "\\ulthdash" +#define OOO_STRING_SVTOOLS_RTF_ULLDASH "\\ulldash" +#define OOO_STRING_SVTOOLS_RTF_ULTHLDASH "\\ulthldash" +#define OOO_STRING_SVTOOLS_RTF_ULTHDASHD "\\ulthdashd" +#define OOO_STRING_SVTOOLS_RTF_ULTHDASHDD "\\ulthdashdd" +#define OOO_STRING_SVTOOLS_RTF_ULHWAVE "\\ulhwave" +#define OOO_STRING_SVTOOLS_RTF_ULULDBWAVE "\\ululdbwave" +#define OOO_STRING_SVTOOLS_RTF_LOCH "\\loch" +#define OOO_STRING_SVTOOLS_RTF_HICH "\\hich" +#define OOO_STRING_SVTOOLS_RTF_DBCH "\\dbch" +#define OOO_STRING_SVTOOLS_RTF_LANGFE "\\langfe" +#define OOO_STRING_SVTOOLS_RTF_ADEFLANG "\\adeflang" +#define OOO_STRING_SVTOOLS_RTF_ADEFF "\\adeff" +#define OOO_STRING_SVTOOLS_RTF_ACCNONE "\\accnone" +#define OOO_STRING_SVTOOLS_RTF_ACCDOT "\\accdot" +#define OOO_STRING_SVTOOLS_RTF_ACCCOMMA "\\acccomma" +#define OOO_STRING_SVTOOLS_RTF_TWOINONE "\\twoinone" +#define OOO_STRING_SVTOOLS_RTF_HORZVERT "\\horzvert" +#define OOO_STRING_SVTOOLS_RTF_FAHANG "\\fahang" +#define OOO_STRING_SVTOOLS_RTF_FAVAR "\\favar" +#define OOO_STRING_SVTOOLS_RTF_FACENTER "\\facenter" +#define OOO_STRING_SVTOOLS_RTF_FAROMAN "\\faroman" +#define OOO_STRING_SVTOOLS_RTF_FAFIXED "\\fafixed" +#define OOO_STRING_SVTOOLS_RTF_NOCWRAP "\\nocwrap" +#define OOO_STRING_SVTOOLS_RTF_NOOVERFLOW "\\nooverflow" +#define OOO_STRING_SVTOOLS_RTF_ASPALPHA "\\aspalpha" + +// SWG spezifische Attribute +#define OOO_STRING_SVTOOLS_RTF_GRFALIGNV "\\grfalignv" +#define OOO_STRING_SVTOOLS_RTF_GRFALIGNH "\\grfalignh" +#define OOO_STRING_SVTOOLS_RTF_GRFMIRROR "\\grfmirror" +#define OOO_STRING_SVTOOLS_RTF_HEADERYB "\\headeryb" +#define OOO_STRING_SVTOOLS_RTF_HEADERXL "\\headerxl" +#define OOO_STRING_SVTOOLS_RTF_HEADERXR "\\headerxr" +#define OOO_STRING_SVTOOLS_RTF_FOOTERYT "\\footeryt" +#define OOO_STRING_SVTOOLS_RTF_FOOTERXL "\\footerxl" +#define OOO_STRING_SVTOOLS_RTF_FOOTERXR "\\footerxr" +#define OOO_STRING_SVTOOLS_RTF_HEADERYH "\\headeryh" +#define OOO_STRING_SVTOOLS_RTF_FOOTERYH "\\footeryh" +#define OOO_STRING_SVTOOLS_RTF_BALANCEDCOLUMN "\\swcolmnblnc" +#define OOO_STRING_SVTOOLS_RTF_UPDNPROP "\\updnprop" +#define OOO_STRING_SVTOOLS_RTF_PRTDATA "\\prtdata" +#define OOO_STRING_SVTOOLS_RTF_BKMKKEY "\\bkmkkey" + +// Attribute fuer die freifliegenden Rahmen +#define OOO_STRING_SVTOOLS_RTF_FLYPRINT "\\flyprint" +#define OOO_STRING_SVTOOLS_RTF_FLYOPAQUE "\\flyopaque" +#define OOO_STRING_SVTOOLS_RTF_FLYPRTCTD "\\flyprtctd" +#define OOO_STRING_SVTOOLS_RTF_FLYMAINCNT "\\flymaincnt" +#define OOO_STRING_SVTOOLS_RTF_FLYVERT "\\flyvert" +#define OOO_STRING_SVTOOLS_RTF_FLYHORZ "\\flyhorz" +#define OOO_STRING_SVTOOLS_RTF_DFRMTXTL "\\dfrmtxtl" +#define OOO_STRING_SVTOOLS_RTF_DFRMTXTR "\\dfrmtxtr" +#define OOO_STRING_SVTOOLS_RTF_DFRMTXTU "\\dfrmtxtu" +#define OOO_STRING_SVTOOLS_RTF_DFRMTXTW "\\dfrmtxtw" +#define OOO_STRING_SVTOOLS_RTF_FLYANCHOR "\\flyanchor" +#define OOO_STRING_SVTOOLS_RTF_FLYCNTNT "\\flycntnt" +#define OOO_STRING_SVTOOLS_RTF_FLYCOLUMN "\\flycolumn" +#define OOO_STRING_SVTOOLS_RTF_FLYPAGE "\\flypage" +#define OOO_STRING_SVTOOLS_RTF_FLYINPARA "\\flyinpara" +#define OOO_STRING_SVTOOLS_RTF_BRDBOX "\\brdbox" +#define OOO_STRING_SVTOOLS_RTF_BRDLNCOL "\\brdlncol" +#define OOO_STRING_SVTOOLS_RTF_BRDLNIN "\\brdlnin" +#define OOO_STRING_SVTOOLS_RTF_BRDLNOUT "\\brdlnout" +#define OOO_STRING_SVTOOLS_RTF_BRDLNDIST "\\brdlndist" +#define OOO_STRING_SVTOOLS_RTF_SHADOW "\\shadow" +#define OOO_STRING_SVTOOLS_RTF_SHDWDIST "\\shdwdist" +#define OOO_STRING_SVTOOLS_RTF_SHDWSTYLE "\\shdwstyle" +#define OOO_STRING_SVTOOLS_RTF_SHDWCOL "\\shdwcol" +#define OOO_STRING_SVTOOLS_RTF_SHDWFCOL "\\shdwfcol" +#define OOO_STRING_SVTOOLS_RTF_PGDSCTBL "\\pgdsctbl" +#define OOO_STRING_SVTOOLS_RTF_PGDSC "\\pgdsc" +#define OOO_STRING_SVTOOLS_RTF_PGDSCUSE "\\pgdscuse" +#define OOO_STRING_SVTOOLS_RTF_PGDSCNXT "\\pgdscnxt" +#define OOO_STRING_SVTOOLS_RTF_HYPHEN "\\hyphen" +#define OOO_STRING_SVTOOLS_RTF_HYPHLEAD "\\hyphlead" +#define OOO_STRING_SVTOOLS_RTF_HYPHTRAIL "\\hyphtrail" +#define OOO_STRING_SVTOOLS_RTF_HYPHMAX "\\hyphmax" +#define OOO_STRING_SVTOOLS_RTF_TLSWG "\\tlswg" +#define OOO_STRING_SVTOOLS_RTF_PGBRK "\\pgbrk" +#define OOO_STRING_SVTOOLS_RTF_PGDSCNO "\\pgdscno" +#define OOO_STRING_SVTOOLS_RTF_SOUTLVL "\\soutlvl" +#define OOO_STRING_SVTOOLS_RTF_SHP "\\shp" +#define OOO_STRING_SVTOOLS_RTF_SN "\\sn" +#define OOO_STRING_SVTOOLS_RTF_SV "\\sv" +#define OOO_STRING_SVTOOLS_RTF_SP "\\sp" + +// Support for overline attributes +#define OOO_STRING_SVTOOLS_RTF_OL "\\ol" +#define OOO_STRING_SVTOOLS_RTF_OLD "\\old" +#define OOO_STRING_SVTOOLS_RTF_OLDB "\\oldb" +#define OOO_STRING_SVTOOLS_RTF_OLNONE "\\olnone" +#define OOO_STRING_SVTOOLS_RTF_OLW "\\olw" +#define OOO_STRING_SVTOOLS_RTF_OLDASH "\\oldash" +#define OOO_STRING_SVTOOLS_RTF_OLDASHD "\\oldashd" +#define OOO_STRING_SVTOOLS_RTF_OLDASHDD "\\oldashdd" +#define OOO_STRING_SVTOOLS_RTF_OLTH "\\olth" +#define OOO_STRING_SVTOOLS_RTF_OLWAVE "\\olwave" +#define OOO_STRING_SVTOOLS_RTF_OLC "\\olc" +#define OOO_STRING_SVTOOLS_RTF_OLTHD "\\olthd" +#define OOO_STRING_SVTOOLS_RTF_OLTHDASH "\\olthdash" +#define OOO_STRING_SVTOOLS_RTF_OLLDASH "\\olldash" +#define OOO_STRING_SVTOOLS_RTF_OLTHLDASH "\\olthldash" +#define OOO_STRING_SVTOOLS_RTF_OLTHDASHD "\\olthdashd" +#define OOO_STRING_SVTOOLS_RTF_OLTHDASHDD "\\olthdashdd" +#define OOO_STRING_SVTOOLS_RTF_OLHWAVE "\\olhwave" +#define OOO_STRING_SVTOOLS_RTF_OLOLDBWAVE "\\ololdbwave" + +// Support for nested tables +#define OOO_STRING_SVTOOLS_RTF_ITAP "\\itap" +#define OOO_STRING_SVTOOLS_RTF_NESTCELL "\\nestcell" +#define OOO_STRING_SVTOOLS_RTF_NESTTABLEPROPRS "\\nesttableprops" +#define OOO_STRING_SVTOOLS_RTF_NESTROW "\\nestrow" +#define OOO_STRING_SVTOOLS_RTF_NONESTTABLES "\\nonesttables" + +#endif // _RTFKEYWD_HXX diff --git a/svtools/inc/svtools/rtfout.hxx b/svtools/inc/svtools/rtfout.hxx new file mode 100644 index 000000000000..b9bfbc901848 --- /dev/null +++ b/svtools/inc/svtools/rtfout.hxx @@ -0,0 +1,67 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _RTFOUT_HXX +#define _RTFOUT_HXX + +#include "svtools/svtdllapi.h" +#include <tools/solar.h> + +#ifndef _RTL_TEXTENC_H_ +#include <rtl/textenc.h> +#endif + +class String; +class SvStream; + +class SVT_DLLPUBLIC RTFOutFuncs +{ +public: +#if defined(UNX) + static const sal_Char sNewLine; // nur \012 oder \015 +#else + static const sal_Char __FAR_DATA sNewLine[]; // \015\012 +#endif + + static SvStream& Out_Char( SvStream&, sal_Unicode cChar, + int *pUCMode, + rtl_TextEncoding eDestEnc = RTL_TEXTENCODING_MS_1252, + BOOL bWriteHelpFile = FALSE ); + static SvStream& Out_String( SvStream&, const String&, + rtl_TextEncoding eDestEnc = RTL_TEXTENCODING_MS_1252, + BOOL bWriteHelpFile = FALSE ); + static SvStream& Out_Fontname( SvStream&, const String&, + rtl_TextEncoding eDestEnc = RTL_TEXTENCODING_MS_1252, + BOOL bWriteHelpFile = FALSE ); + + static SvStream& Out_Hex( SvStream&, ULONG nHex, BYTE nLen ); +}; + + +#endif + + diff --git a/svtools/inc/svtools/rtftoken.h b/svtools/inc/svtools/rtftoken.h new file mode 100644 index 000000000000..f292682a0236 --- /dev/null +++ b/svtools/inc/svtools/rtftoken.h @@ -0,0 +1,1273 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil -*- */ + +#ifndef _RTFTOKEN_H +#define _RTFTOKEN_H + +class String; + +// suche die TokenID zu dem Token +int GetRTFToken( const String& rSearch ); + +enum RTF_TOKEN_RANGES { + RTF_NOGROUP = 0x0100, + RTF_DOCFMT = 0x0200, + RTF_SECTFMT = 0x0300, + RTF_PARFMT = 0x0400, + RTF_TABSTOPDEF = 0x0500, + RTF_BRDRDEF = 0x0600, + RTF_CHRFMT = 0x0700, + RTF_SPECCHAR = 0x0800, + RTF_APOCTL = 0x0900, + RTF_SHADINGDEF = 0x0A00, + // free = 0x0B00, + RTF_DRAWOBJECTS = 0x0C00, + RTF_OBJECTS = 0x0D00, + RTF_NUMBULLETS = 0x0E00, + + // !!! kann hinein verodert werden (Border/Background) !!!! + RTF_TABLEDEF = 0x1000, + + // !!! kann hinein verodert werden (Border/Tab) !!!! + RTF_SWGDEFS = 0x4000 +}; + +enum RTF_TOKEN_IDS { + + RTF_TEXTTOKEN = RTF_NOGROUP, + RTF_SINGLECHAR, + RTF_UNKNOWNCONTROL, + RTF_UNKNOWNDATA, + + RTF_RTF, + RTF_ANSITYPE, + RTF_MACTYPE, + RTF_PCTYPE, + RTF_PCATYPE, + RTF_NEXTTYPE, + + RTF_STYLESHEET, + RTF_SBASEDON, + RTF_SNEXT, + RTF_SHIDDEN, + RTF_SAUTOUPD, + + RTF_KEYCODE, + RTF_FNKEY, + RTF_ALTKEY, + RTF_SHIFTKEY, + RTF_CTRLKEY, + + RTF_FONTTBL, + RTF_DEFF, + RTF_FNIL, + RTF_FROMAN, + RTF_FSWISS, + RTF_FMODERN, + RTF_FSCRIPT, + RTF_FDECOR, + RTF_FTECH, + + RTF_COLORTBL, + RTF_RED, + RTF_GREEN, + RTF_BLUE, + + RTF_INFO, + RTF_TITLE, + RTF_SUBJECT, + RTF_AUTHOR, + RTF_OPERATOR, + RTF_KEYWORDS, + RTF_COMMENT, + RTF_VERSION, + RTF_DOCCOMM, + RTF_VERN, + RTF_CREATIM, + RTF_REVTIM, + RTF_PRINTIM, + RTF_BUPTIM, + RTF_EDMINS, + RTF_NOFPAGES, + RTF_NOFWORDS, + RTF_NOFCHARS, + RTF_ID, + RTF_YR, + RTF_MO, + RTF_DY, + RTF_HR, + RTF_MIN, + RTF_USERPROPS, + RTF_CATEGORY, + RTF_COMPANY, + RTF_MANAGER, + RTF_PROPNAME, + RTF_LINKVAL, + RTF_NOFCHARSWS, + RTF_HLINKBASE, + RTF_STATICVAL, + RTF_PROPTYPE, + + RTF_ANNOTATION, + RTF_ATNID, + + RTF_FOOTNOTE, + + RTF_XE, + RTF_BXE, + RTF_IXE, + RTF_RXE, + RTF_TXE, + RTF_YXE, + + RTF_TC, + RTF_TCF, + RTF_TCL, + + RTF_BKMKSTART, + RTF_BKMKEND, + + RTF_PICT, // Bitmaps + RTF_PICW, + RTF_PICH, + RTF_WBMBITSPIXEL, + RTF_WBMPLANES, + RTF_WBMWIDTHBYTES, + RTF_PICWGOAL, + RTF_PICHGOAL, + RTF_BIN, + RTF_PICSCALEX, + RTF_PICSCALEY, + RTF_PICSCALED, + RTF_WBITMAP, + RTF_WMETAFILE, + RTF_MACPICT, + RTF_OSMETAFILE, + RTF_DIBITMAP, + RTF_PICCROPT, + RTF_PICCROPB, + RTF_PICCROPL, + RTF_PICCROPR, + RTF_PICDATA, + RTF_PICBMP, + RTF_PICBPP, + RTF_PICPROP, + RTF_SHPPICT, + RTF_EMFBLIP, + RTF_PNGBLIP, + RTF_JPEGBLIP, + RTF_NONSHPPICT, + RTF_BLIPTAG, + RTF_BLIPUID, + RTF_BLIPUPI, + + RTF_FIELD, // Felder + RTF_FLDDIRTY, + RTF_FLDEDIT, + RTF_FLDLOCK, + RTF_FLDPRIV, + RTF_FLDINST, + RTF_FLDRSLT, + RTF_FLDTYPE, + RTF_TIME, + RTF_DATE, + RTF_WPEQN, + + RTF_NOLINE, + RTF_REVISED, + + RTF_BKMKCOLF, + RTF_BKMKCOLL, + RTF_PSOVER, + RTF_DOCTEMP, + RTF_DELETED, + + RTF_FCHARSET, + RTF_FALT, + RTF_FPRQ, + RTF_PANOSE, + RTF_FNAME, + RTF_FBIAS, + + RTF_ADDITIVE, + RTF_BKMKPUB, + RTF_CPG, + RTF_DATAFIELD, + + RTF_FBIDI, + RTF_FID, + RTF_FILE, + RTF_FILETBL, + RTF_FNETWORK, + RTF_FONTEMB, + RTF_FONTFILE, + RTF_FOSNUM, + RTF_FRELATIVE, + RTF_FTNIL, + RTF_FTTRUETYPE, + RTF_FVALIDDOS, + RTF_FVALIDHPFS, + RTF_FVALIDMAC, + RTF_FVALIDNTFS, + RTF_LINKSELF, + RTF_PUBAUTO, + RTF_REVTBL, + RTF_RTLMARK, + RTF_SEC, + RTF_TCN, + RTF_XEF, + + RTF_UD, // Unicode + RTF_UPR, + RTF_U, + RTF_UC, + RTF_ANSICPG, + + RTF_FFEXITMCR, // Form Fields + RTF_FFENTRYMCR, + RTF_FFDEFTEXT, + RTF_FFFORMAT, + RTF_FFSTATTEXT, + RTF_FORMFIELD, + RTF_FFNAME, + RTF_FFHELPTEXT, + RTF_FFL, + RTF_FFOWNHELP, + RTF_FFOWNSTAT, + RTF_FFMAXLEN, + RTF_FFHASLISTBOX, + RTF_FFHPS, + RTF_FFPROT, + RTF_FFTYPE, + RTF_FFTYPETXT, + RTF_FFSIZE, + RTF_FFRECALC, + RTF_FFRES, + RTF_FFDEFRES, + + RTF_HIGHLIGHT, + +/* */ + + RTF_DEFTAB = RTF_DOCFMT, + RTF_HYPHHOTZ, + RTF_LINESTART, + RTF_FRACWIDTH, + RTF_NEXTFILE, + RTF_TEMPLATE, + RTF_MAKEBACKUP, + RTF_DEFFORMAT, + RTF_DEFLANG, + RTF_FTNSEP, + RTF_FTNSEPC, + RTF_FTNCN, + RTF_ENDNOTES, + RTF_ENDDOC, + RTF_FTNTJ, + RTF_FTNBJ, + RTF_FTNSTART, + RTF_FTNRESTART, + RTF_PAPERW, + RTF_PAPERH, + RTF_MARGL, + RTF_MARGR, + RTF_MARGT, + RTF_MARGB, + RTF_FACINGP, + RTF_GUTTER, + RTF_MARGMIRROR, + RTF_LANDSCAPE, + RTF_PGNSTART, + RTF_WIDOWCTRL, + RTF_REVISIONS, + RTF_REVPROP, + RTF_REVBAR, + + RTF_AENDDOC, + RTF_AENDNOTES, + RTF_AFTNBJ, + RTF_AFTNCN, + RTF_AFTNNALC, + RTF_AFTNNAR, + RTF_AFTNNAUC, + RTF_AFTNNCHI, + RTF_AFTNNRLC, + RTF_AFTNNRUC, + RTF_AFTNRESTART, + RTF_AFTNRSTCONT, + RTF_AFTNSEP, + RTF_AFTNSEPC, + RTF_AFTNSTART, + RTF_AFTNTJ, + RTF_ALLPROT, + RTF_ANNOTPROT, + RTF_ATNAUTHOR, + RTF_ATNICN, + RTF_ATNREF, + RTF_ATNTIME, + RTF_ATRFEND, + RTF_ATRFSTART, + RTF_BRKFRM, + RTF_CVMME, + RTF_FET, + RTF_FLDALT, + RTF_FORMDISP, + RTF_FORMPROT, + RTF_FORMSHADE, + RTF_FTNALT, + RTF_FTNNALC, + RTF_FTNNAR, + RTF_FTNNAUC, + RTF_FTNNCHI, + RTF_FTNNRLC, + RTF_FTNNRUC, + RTF_FTNRSTCONT, + RTF_FTNRSTPG, + RTF_HYPHAUTO, + RTF_HYPHCAPS, + RTF_HYPHCONSEC, + RTF_LINKSTYLES, + RTF_LTRDOC, + RTF_NOCOLBAL, + RTF_NOEXTRASPRL, + RTF_NOTABIND, + RTF_OTBLRUL, + RTF_PRCOLBL, + RTF_PRINTDATA, + RTF_PSZ, + RTF_REVPROT, + RTF_RTLDOC, + RTF_SPRSSPBF, + RTF_SPRSTSP, + RTF_SWPBDR, + RTF_TRANSMF, + RTF_WRAPTRSP, + + RTF_PRIVATE, + RTF_NOULTRLSPC, + RTF_MSMCAP, + RTF_NOLEAD, + RTF_NOSPACEFORUL, + RTF_LYTEXCTTP, + RTF_LYTPRTMET, + RTF_DNTBLNSBDB, + RTF_FROMTEXT, + RTF_EXPSHRTN, + RTF_PGBRDRT, + RTF_SPRSBSP, + RTF_PGBRDRR, + RTF_PGBRDRSNAP, + RTF_BDBFHDR, + RTF_SUBFONTBYSIZE, + RTF_TRUNCATEFONTHEIGHT, + RTF_SPRSLNSP, + RTF_SPRSTSM, + RTF_PGBRDRL, + RTF_WPJST, + RTF_PGBRDRB, + RTF_WPSP, + RTF_NOXLATTOYEN, + RTF_OLDLINEWRAP, + RTF_PGBRDRFOOT, + RTF_PGBRDRHEAD, + RTF_DEFLANGFE, + RTF_DOCTYPE, + RTF_PGBRDROPT, + RTF_VIEWKIND, + RTF_VIEWSCALE, + RTF_WINDOWCAPTION, + RTF_BRDRART, + RTF_VIEWZK, + RTF_DOCVAR, + + RTF_DGMARGIN, + RTF_AFTNNCHOSUNG, + RTF_AFTNNCNUM, + RTF_AFTNNDBAR, + RTF_AFTNNDBNUM, + RTF_AFTNNDBNUMD, + RTF_AFTNNDBNUMK, + RTF_AFTNNDBNUMT, + RTF_AFTNNGANADA, + RTF_AFTNNGBNUM, + RTF_AFTNNGBNUMD, + RTF_AFTNNGBNUMK, + RTF_AFTNNGBNUML, + RTF_AFTNNZODIAC, + RTF_AFTNNZODIACD, + RTF_AFTNNZODIACL, + RTF_FTNNCHOSUNG, + RTF_FTNNCNUM, + RTF_FTNNDBAR, + RTF_FTNNDBNUM, + RTF_FTNNDBNUMD, + RTF_FTNNDBNUMK, + RTF_FTNNDBNUMT, + RTF_FTNNGANADA, + RTF_FTNNGBNUM, + RTF_FTNNGBNUMD, + RTF_FTNNGBNUMK, + RTF_FTNNGBNUML, + RTF_FTNNZODIAC, + RTF_FTNNZODIACD, + RTF_FTNNZODIACL, + + RTF_ADEFLANG, + RTF_ADEFF, + +/* */ + + RTF_SECTD = RTF_SECTFMT, + RTF_ENDNHERE, + RTF_BINFSXN, + RTF_BINSXN, + RTF_SBKNONE, + RTF_SBKCOL, + RTF_SBKPAGE, + RTF_SBKEVEN, + RTF_SBKODD, + RTF_COLS, + RTF_COLSX, + RTF_COLNO, + RTF_COLSR, + RTF_COLW, + RTF_LINEBETCOL, + RTF_LINEMOD, + RTF_LINEX, + RTF_LINESTARTS, + RTF_LINERESTART, + RTF_LINEPAGE, + RTF_LINECONT, + RTF_PGWSXN, + RTF_PGHSXN, + RTF_MARGLSXN, + RTF_MARGRSXN, + RTF_MARGTSXN, + RTF_MARGBSXN, + RTF_GUTTERSXN, + RTF_LNDSCPSXN, + RTF_FACPGSXN, + RTF_TITLEPG, + RTF_HEADERY, + RTF_FOOTERY, + RTF_PGNSTARTS, + RTF_PGNCONT, + RTF_PGNRESTART, + RTF_PGNX, + RTF_PGNY, + RTF_PGNDEC, + RTF_PGNUCRM, + RTF_PGNLCRM, + RTF_PGNUCLTR, + RTF_PGNLCLTR, + RTF_VERTALT, + RTF_VERTALB, + RTF_VERTALC, + RTF_VERTALJ, + + RTF_FOOTER, + RTF_FOOTERL, + RTF_FOOTERR, + RTF_FOOTERF, + RTF_HEADER, + RTF_HEADERL, + RTF_HEADERR, + RTF_HEADERF, + RTF_DS, + RTF_LTRSECT, + RTF_PGNHN, + RTF_PGNHNSC, + RTF_PGNHNSH, + RTF_PGNHNSM, + RTF_PGNHNSN, + RTF_PGNHNSP, + RTF_RTLSECT, + RTF_SECTUNLOCKED, + RTF_STEXTFLOW, + RTF_PGNCHOSUNG, + RTF_PGNCNUM, + RTF_PGNDBNUMK, + RTF_PGNDBNUMT, + RTF_PGNGANADA, + RTF_PGNGBNUM, + RTF_PGNGBNUMD, + RTF_PGNGBNUMK, + RTF_PGNGBNUML, + RTF_PGNZODIAC, + RTF_PGNZODIACD, + RTF_PGNZODIACL, + RTF_SECTDEFAULTCL, + RTF_SECTEXPAND, + RTF_SECTLINEGRID, + RTF_SECTSPECIFYCL, + RTF_SECTSPECIFYL, + + // Swg-Header/Footer-Tokens + RTF_HEADER_YB = (RTF_SECTFMT|RTF_SWGDEFS), + RTF_HEADER_XL, + RTF_HEADER_XR, + RTF_FOOTER_YT, + RTF_FOOTER_XL, + RTF_FOOTER_XR, + RTF_HEADER_YH, + RTF_FOOTER_YH, + RTF_BALANCED_COLUMN, + + +/* */ + + RTF_PARD = RTF_PARFMT, + RTF_S, + RTF_INTBL, + RTF_KEEP, + RTF_KEEPN, + RTF_LEVEL, + RTF_PAGEBB, + RTF_SBYS, + RTF_QL, + RTF_QR, + RTF_QJ, + RTF_QC, + RTF_FI, + RTF_LI, + RTF_LIN, + RTF_RI, + RTF_RIN, + RTF_SB, + RTF_SA, + RTF_SL, + RTF_HYPHPAR, + RTF_LTRPAR, + RTF_NOWIDCTLPAR, + RTF_RTLPAR, + RTF_SLMULT, + RTF_SUBDOCUMENT, + + RTF_WIDCTLPAR, + + RTF_LISTTEXT, + RTF_POSYIN, + RTF_PNRNOT, + RTF_BRDRDASHDOTSTR, + RTF_POSYOUT, + RTF_BRDRDASHD, + RTF_BRDRDASHDD, + RTF_BRDRENGRAVE, + RTF_BRDRTHTNLG, + RTF_BRDREMBOSS, + RTF_BRDRTNTHTNLG, + RTF_BRDRDASHSM, + RTF_BRDRTHTNMG, + RTF_OVERLAY, + RTF_BRDRTNTHSG, + RTF_BRDRTNTHMG, + RTF_BRDRTHTNSG, + RTF_BRDRTNTHLG, + RTF_BRDRTRIPLE, + RTF_BRDRTNTHTNSG, + RTF_BRDRTNTHTNMG, + RTF_BRDRWAVYDB, + RTF_BRDRWAVY, + RTF_ILVL, + RTF_DFRSTOP, + RTF_DFRXST, + RTF_PNRAUTH, + RTF_DFRSTART, + RTF_OUTLINELEVEL, + RTF_DFRAUTH, + RTF_DFRDATE, + RTF_PNRRGB, + RTF_PNRPNBR, + RTF_PNRSTART, + RTF_PNRXST, + RTF_PNRSTOP, + RTF_PNRDATE, + RTF_PNRNFC, + RTF_NOSNAPLINEGRID, + RTF_FAAUTO, + RTF_FAHANG, + RTF_FAVAR, + RTF_FACENTER, + RTF_FAROMAN, + RTF_FAFIXED, + RTF_ADJUSTRIGHT, + RTF_LS, + RTF_NOCWRAP, + RTF_NOOVERFLOW, + RTF_ASPALPHA, + + +/* */ + + RTF_TX = RTF_TABSTOPDEF, + RTF_TB, + RTF_TQL, + RTF_TQR, + RTF_TQC, + RTF_TQDEC, + RTF_TLDOT, + RTF_TLHYPH, + RTF_TLUL, + RTF_TLTH, + RTF_TLEQ, + + // Swg-TabStop-Tokens + RTF_TLSWG = (RTF_TABSTOPDEF|RTF_SWGDEFS), + +/* */ + + RTF_BRDRT = RTF_BRDRDEF, + RTF_BRDRB, + RTF_BRDRL, + RTF_BRDRR, + RTF_BRDRBTW, + RTF_BRDRBAR, + RTF_BOX, + RTF_BRSP, + RTF_BRDRW, + RTF_BRDRCF, + RTF_BRDRS, + RTF_BRDRTH, + RTF_BRDRSH, + RTF_BRDRDB, + RTF_BRDRDOT, + RTF_BRDRHAIR, + RTF_BRDRDASH, + RTF_BRDRFRAME, + + // Swg-Border-Tokens + RTF_BRDBOX = (RTF_BRDRDEF|RTF_SWGDEFS), + RTF_BRDLINE_COL, + RTF_BRDLINE_IN, + RTF_BRDLINE_OUT, + RTF_BRDLINE_DIST, + +/* */ + + RTF_PLAIN = RTF_CHRFMT, + RTF_B, + RTF_CAPS, + RTF_DN, + RTF_SUB, + RTF_NOSUPERSUB, + RTF_EXPND, + RTF_EXPNDTW, + RTF_KERNING, + RTF_F, + RTF_FS, + RTF_I, + RTF_OUTL, + RTF_SCAPS, + RTF_SHAD, + RTF_STRIKE, + RTF_UL, + RTF_ULD, + RTF_ULDB, + RTF_ULNONE, + RTF_ULW, + RTF_OL, + RTF_OLD, + RTF_OLDB, + RTF_OLNONE, + RTF_OLW, + RTF_UP, + RTF_SUPER, + RTF_V, + RTF_CF, + RTF_CB, + RTF_LANG, + RTF_CCHS, + RTF_CS, + RTF_LTRCH, + RTF_REVAUTH, + RTF_REVDTTM, + RTF_RTLCH, + + RTF_CHBGFDIAG, + RTF_CHBGDKVERT, + RTF_CHBGDKHORIZ, + RTF_CHBRDR, + RTF_CHBGVERT, + RTF_CHBGHORIZ, + RTF_CHBGDKFDIAG, + RTF_CHBGDCROSS, + RTF_CHBGCROSS, + RTF_CHBGBDIAG, + RTF_CHBGDKDCROSS, + RTF_CHBGDKCROSS, + RTF_CHBGDKBDIAG, + RTF_ULDASHD, + RTF_ULDASH, + RTF_ULDASHDD, + RTF_ULWAVE, + RTF_ULC, + RTF_ULTH, + RTF_OLDASHD, + RTF_OLDASH, + RTF_OLDASHDD, + RTF_OLWAVE, + RTF_OLC, + RTF_OLTH, + RTF_EMBO, + RTF_IMPR, + RTF_STRIKED, + RTF_CRDATE, + RTF_CRAUTH, + RTF_CHARSCALEX, + RTF_CHCBPAT, + RTF_CHCFPAT, + RTF_CHSHDNG, + RTF_REVAUTHDEL, + RTF_REVDTTMDEL, + RTF_CGRID, + RTF_GCW, + RTF_NOSECTEXPAND, + RTF_GRIDTBL, + RTF_G, + RTF_ANIMTEXT, + RTF_ULTHD, + RTF_ULTHDASH, + RTF_ULLDASH, + RTF_ULTHLDASH, + RTF_ULTHDASHD, + RTF_ULTHDASHDD, + RTF_ULHWAVE, + RTF_ULULDBWAVE, + RTF_OLTHD, + RTF_OLTHDASH, + RTF_OLLDASH, + RTF_OLTHLDASH, + RTF_OLTHDASHD, + RTF_OLTHDASHDD, + RTF_OLHWAVE, + RTF_OLOLDBWAVE, + + // association control words + RTF_AB, + RTF_ACAPS, + RTF_ACF, + RTF_ADN, + RTF_AEXPND, + RTF_AF, + RTF_AFS, + RTF_AI, + RTF_ALANG, + RTF_AOUTL, + RTF_ASCAPS, + RTF_ASHAD, + RTF_ASTRIKE, + RTF_AUL, + RTF_AULD, + RTF_AULDB, + RTF_AULNONE, + RTF_AULW, + RTF_AUP, + + RTF_LOCH, + RTF_HICH, + RTF_DBCH, + RTF_LANGFE, + RTF_ACCNONE, + RTF_ACCDOT, + RTF_ACCCOMMA, + RTF_TWOINONE, + RTF_HORZVERT, + + // Swg-Border-Tokens + RTF_SWG_ESCPROP = (RTF_CHRFMT|RTF_SWGDEFS), + RTF_HYPHEN, + RTF_HYPHLEAD, + RTF_HYPHTRAIL, + RTF_HYPHMAX, + + +/* */ + + RTF_CHDATE = RTF_SPECCHAR, + RTF_CHDATEL, + RTF_CHDATEA, + RTF_CHTIME, + RTF_CHPGN, + RTF_CHFTN, + RTF_CHATN, + RTF_CHFTNSEP, + RTF_CHFTNSEPC, + RTF_CELL, + RTF_ROW, + RTF_PAR, + RTF_SECT, + RTF_PAGE, + RTF_COLUM, + RTF_LINE, + RTF_TAB, + RTF_EMDASH, + RTF_ENDASH, + RTF_BULLET, + RTF_LQUOTE, + RTF_RQUOTE, + RTF_LDBLQUOTE, + RTF_RDBLQUOTE, + RTF_FORMULA, + RTF_NONBREAKINGSPACE, + RTF_OPTIONALHYPHEN, + RTF_NONBREAKINGHYPHEN, + RTF_SUBENTRYINDEX, + RTF_IGNOREFLAG, + RTF_HEX, + RTF_EMSPACE, + RTF_ENSPACE, + RTF_LTRMARK, + RTF_SECTNUM, + RTF_SOFTCOL, + RTF_SOFTLHEIGHT, + RTF_SOFTLINE, + RTF_SOFTPAGE, + RTF_ZWJ, + RTF_ZWNJ, + +/* */ + + RTF_ABSW = RTF_APOCTL, + RTF_ABSH, + RTF_NOWRAP, + RTF_DXFRTEXT, + RTF_DFRMTXTX, + RTF_DFRMTXTY, + RTF_DROPCAPLI, + RTF_DROPCAPT, + RTF_ABSNOOVRLP, + RTF_PHMRG, + RTF_PHPG, + RTF_PHCOL, + RTF_POSX, + RTF_POSNEGX, + RTF_POSXC, + RTF_POSXI, + RTF_POSXO, + RTF_POSXL, + RTF_POSXR, + RTF_PVMRG, + RTF_PVPG, + RTF_PVPARA, + RTF_POSY, + RTF_POSNEGY, + RTF_POSYT, + RTF_POSYIL, + RTF_POSYB, + RTF_POSYC, + RTF_ABSLOCK, + RTF_FRMTXLRTB, + RTF_FRMTXTBRL, + RTF_FRMTXBTLR, + RTF_FRMTXLRTBV, + RTF_FRMTXTBRLV, + + // Swg-Frame-Tokens + RTF_FLYPRINT = (RTF_APOCTL|RTF_SWGDEFS), + RTF_FLYOPAQUE, + RTF_FLYPRTCTD, + RTF_FLYMAINCNT, + RTF_FLYVERT, + RTF_FLYHORZ, + RTF_FLYOUTLEFT, + RTF_FLYOUTRIGHT, + RTF_FLYOUTUPPER, + RTF_FLYOUTLOWER, + RTF_FLYANCHOR, + RTF_FLY_CNTNT, + RTF_FLY_COLUMN, + RTF_FLY_PAGE, + RTF_FLY_INPARA, + + +/* */ + + RTF_SHADING = RTF_SHADINGDEF, + RTF_CFPAT, + RTF_CBPAT, + RTF_BGHORIZ, + RTF_BGVERT, + RTF_BGFDIAG, + RTF_BGBDIAG, + RTF_BGCROSS, + RTF_BGDCROSS, + RTF_BGDKHORIZ, + RTF_BGDKVERT, + RTF_BGDKFDIAG, + RTF_BGDKBDIAG, + RTF_BGDKCROSS, + RTF_BGDKDCROSS, + +/* */ + + RTF_TROWD = RTF_TABLEDEF, + RTF_TRGAPH, + RTF_TRLEFT, + RTF_TRRH, + + RTF_TRQL, + RTF_TRQR, + RTF_TRQC, + + RTF_CLMGF, + RTF_CLMRG, + RTF_CELLX, + RTF_LTRROW, + RTF_RTLROW, + RTF_TRBRDRB, + RTF_TRBRDRH, + RTF_TRBRDRL, + RTF_TRBRDRR, + RTF_TRBRDRT, + RTF_TRBRDRV, + RTF_TRHDR, + RTF_TRKEEP, + RTF_TRPADDB, + RTF_TRPADDL, + RTF_TRPADDR, + RTF_TRPADDT, + RTF_TRPADDFB, + RTF_TRPADDFL, + RTF_TRPADDFR, + RTF_TRPADDFT, + RTF_TCELLD, + RTF_CLTXTBRL, + RTF_CLTXLRTB, + RTF_CLVERTALB, + RTF_CLVERTALT, + RTF_CLVERTALC, + RTF_CLVMGF, + RTF_CLVMRG, + RTF_CLTXTBRLV, + RTF_CLTXBTLR, + RTF_CLTXLRTBV, + RTF_CLPADL, + RTF_CLPADT, + RTF_CLPADB, + RTF_CLPADR, + RTF_CLPADFL, + RTF_CLPADFT, + RTF_CLPADFB, + RTF_CLPADFR, + + + RTF_CLBRDRT = (RTF_BRDRDEF|RTF_TABLEDEF), + RTF_CLBRDRL, + RTF_CLBRDRB, + RTF_CLBRDRR, + + RTF_CLCFPAT = (RTF_SHADINGDEF|RTF_TABLEDEF), + RTF_CLCBPAT, + RTF_CLSHDNG, + RTF_CLBGHORIZ, + RTF_CLBGVERT, + RTF_CLBGFDIAG, + RTF_CLBGBDIAG, + RTF_CLBGCROSS, + RTF_CLBGDCROSS, + RTF_CLBGDKHOR, + RTF_CLBGDKVERT, + RTF_CLBGDKFDIAG, + RTF_CLBGDKBDIAG, + RTF_CLBGDKCROSS, + RTF_CLBGDKDCROSS, + +/* */ + + +/* */ + + RTF_DO = RTF_DRAWOBJECTS, + RTF_DOBXCOLUMN, + RTF_DOBXMARGIN, + RTF_DOBXPAGE, + RTF_DOBYMARGIN, + RTF_DOBYPAGE, + RTF_DOBYPARA, + RTF_DODHGT, + RTF_DOLOCK, + RTF_DPAENDHOL, + RTF_DPAENDL, + RTF_DPAENDSOL, + RTF_DPAENDW, + RTF_DPARC, + RTF_DPARCFLIPX, + RTF_DPARCFLIPY, + RTF_DPASTARTHOL, + RTF_DPASTARTL, + RTF_DPASTARTSOL, + RTF_DPASTARTW, + RTF_DPCALLOUT, + RTF_DPCOA, + RTF_DPCOACCENT, + RTF_DPCOBESTFIT, + RTF_DPCOBORDER, + RTF_DPCODABS, + RTF_DPCODBOTTOM, + RTF_DPCODCENTER, + RTF_DPCODTOP, + RTF_DPCOLENGTH, + RTF_DPCOMINUSX, + RTF_DPCOMINUSY, + RTF_DPCOOFFSET, + RTF_DPCOSMARTA, + RTF_DPCOTDOUBLE, + RTF_DPCOTRIGHT, + RTF_DPCOTSINGLE, + RTF_DPCOTTRIPLE, + RTF_DPCOUNT, + RTF_DPELLIPSE, + RTF_DPENDGROUP, + RTF_DPFILLBGCB, + RTF_DPFILLBGCG, + RTF_DPFILLBGCR, + RTF_DPFILLBGGRAY, + RTF_DPFILLBGPAL, + RTF_DPFILLFGCB, + RTF_DPFILLFGCG, + RTF_DPFILLFGCR, + RTF_DPFILLFGGRAY, + RTF_DPFILLFGPAL, + RTF_DPFILLPAT, + RTF_DPGROUP, + RTF_DPLINE, + RTF_DPLINECOB, + RTF_DPLINECOG, + RTF_DPLINECOR, + RTF_DPLINEDADO, + RTF_DPLINEDADODO, + RTF_DPLINEDASH, + RTF_DPLINEDOT, + RTF_DPLINEGRAY, + RTF_DPLINEHOLLOW, + RTF_DPLINEPAL, + RTF_DPLINESOLID, + RTF_DPLINEW, + RTF_DPPOLYCOUNT, + RTF_DPPOLYGON, + RTF_DPPOLYLINE, + RTF_DPPTX, + RTF_DPPTY, + RTF_DPRECT, + RTF_DPROUNDR, + RTF_DPSHADOW, + RTF_DPSHADX, + RTF_DPSHADY, + RTF_DPTXBX, + RTF_DPTXBXMAR, + RTF_DPTXBXTEXT, + RTF_DPX, + RTF_DPXSIZE, + RTF_DPY, + RTF_DPYSIZE, + + RTF_DPCODESCENT, + RTF_BACKGROUND, + RTF_SHPBYPAGE, + RTF_SHPBYPARA, + RTF_SHPBYMARGIN, + RTF_SHPBXCOLUMN, + RTF_SHPBXMARGIN, + RTF_SHPBXPAGE, + RTF_SHPLOCKANCHOR, + RTF_SHPWR, + RTF_HLLOC, + RTF_HLSRC, + RTF_SHPWRK, + RTF_SHPTOP, + RTF_SHPRSLT, + RTF_HLFR, + RTF_SHPTXT, + RTF_SHPFHDR, + RTF_SHPGRP, + RTF_SHPRIGHT, + RTF_SHPFBLWTXT, + RTF_SHPZ, + RTF_SHPBOTTOM, + RTF_SHPLEFT, + RTF_SHPLID, + +/* */ + + RTF_OBJALIAS = RTF_OBJECTS, + RTF_OBJALIGN, + RTF_OBJAUTLINK, + RTF_OBJCLASS, + RTF_OBJCROPB, + RTF_OBJCROPL, + RTF_OBJCROPR, + RTF_OBJCROPT, + RTF_OBJDATA, + RTF_OBJECT, + RTF_OBJEMB, + RTF_OBJH, + RTF_OBJICEMB, + RTF_OBJLINK, + RTF_OBJLOCK, + RTF_OBJNAME, + RTF_OBJPUB, + RTF_OBJSCALEX, + RTF_OBJSCALEY, + RTF_OBJSECT, + RTF_OBJSETSIZE, + RTF_OBJSUB, + RTF_OBJTIME, + RTF_OBJTRANSY, + RTF_OBJUPDATE, + RTF_OBJW, + RTF_RESULT, + RTF_RSLTBMP, + RTF_RSLTMERGE, + RTF_RSLTPICT, + RTF_RSLTRTF, + RTF_RSLTTXT, + RTF_OBJOCX, + RTF_OBJHTML, + RTF_OBJATTPH, + +/* */ + + RTF_PN = RTF_NUMBULLETS, + RTF_PNACROSS, + RTF_PNB, + RTF_PNCAPS, + RTF_PNCARD, + RTF_PNCF, + RTF_PNDEC, + RTF_PNF, + RTF_PNFS, + RTF_PNHANG, + RTF_PNI, + RTF_PNINDENT, + RTF_PNLCLTR, + RTF_PNLCRM, + RTF_PNLVL, + RTF_PNLVLBLT, + RTF_PNLVLBODY, + RTF_PNLVLCONT, + RTF_PNNUMONCE, + RTF_PNORD, + RTF_PNORDT, + RTF_PNPREV, + RTF_PNQC, + RTF_PNQL, + RTF_PNQR, + RTF_PNRESTART, + RTF_PNSCAPS, + RTF_PNSECLVL, + RTF_PNSP, + RTF_PNSTART, + RTF_PNSTRIKE, + RTF_PNTEXT, + RTF_PNTXTA, + RTF_PNTXTB, + RTF_PNUCLTR, + RTF_PNUCRM, + RTF_PNUL, + RTF_PNULD, + RTF_PNULDB, + RTF_PNULNONE, + RTF_PNULW, + RTF_LIST, + RTF_LISTLEVEL, + RTF_LISTOVERRIDE, + RTF_LISTOVERRIDETABLE, + RTF_LISTTABLE, + RTF_LISTNAME, + RTF_LEVELNUMBERS, + RTF_LEVELNORESTART, + RTF_LEVELNFC, + RTF_LEVELOLD, + RTF_LISTOVERRIDECOUNT, + RTF_LISTTEMPLATEID, + RTF_LEVELINDENT, + RTF_LEVELFOLLOW, + RTF_LEVELLEGAL, + RTF_LEVELJC, + RTF_LISTOVERRIDESTART, + RTF_LISTID, + RTF_LISTRESTARTHDN, + RTF_LEVELTEXT, + RTF_LISTOVERRIDEFORMAT, + RTF_LEVELPREVSPACE, + RTF_LEVELPREV, + RTF_LEVELSPACE, + RTF_LISTSIMPLE, + RTF_LEVELSTARTAT, + RTF_PNAIUEO, + RTF_PNAIUEOD, + RTF_PNCHOSUNG, + RTF_PNDBNUMD, + RTF_PNDBNUMK, + RTF_PNDBNUML, + RTF_PNDBNUMT, + RTF_PNGANADA, + RTF_PNGBNUM, + RTF_PNGBNUMD, + RTF_PNGBNUMK, + RTF_PNGBNUML, + RTF_PNZODIAC, + RTF_PNZODIACD, + RTF_PNZODIACL, + RTF_LFOLEVEL, + +/* */ + + RTF_GRF_ALIGNV= RTF_SWGDEFS, + RTF_GRF_ALIGNH, + RTF_GRF_MIRROR, + RTF_SWG_PRTDATA, + RTF_BKMK_KEY, + RTF_SHADOW, + RTF_SHDW_DIST, + RTF_SHDW_STYLE, + RTF_SHDW_COL, + RTF_SHDW_FCOL, + RTF_PGDSCTBL, + RTF_PGDSC, + RTF_PGDSCUSE, + RTF_PGDSCNXT, + RTF_PGDSCNO, + RTF_PGBRK, + RTF_SOUTLVL, + +// shapes + RTF_SHP, RTF_SN, RTF_SV, RTF_SP +/* + RTF_SHPLEFT, + RTF_SHPTOP, + RTF_SHPBOTTOM, + RTF_SHPRIGHT +*/ + +}; + +#endif // _RTFTOKEN_H + +/* vi:set tabstop=4 shiftwidth=4 expandtab: */ diff --git a/svtools/inc/svtools/ruler.hxx b/svtools/inc/svtools/ruler.hxx new file mode 100644 index 000000000000..c2649b298ba6 --- /dev/null +++ b/svtools/inc/svtools/ruler.hxx @@ -0,0 +1,874 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _RULER_HXX +#define _RULER_HXX + +#include "svtools/svtdllapi.h" +#include <tools/link.hxx> +#include <vcl/window.hxx> +#ifndef _VIRDEV_HXX +#include <vcl/virdev.hxx> +#endif +#include <vcl/field.hxx> + +class MouseEvent; +class TrackingEvent; +class DataChangedEvent; + +/************************************************************************* + +Beschreibung +============ + +class Ruler + +Diese Klasse dient zur Anzeige eines Lineals. Dabei kann diese Klasse nicht +nur als Anzeige-Control verwendet werden, sondern auch als aktives Control +zum Setzen/Verschieben von Tabulatoren und Raendern. + +-------------------------------------------------------------------------- + +WinBits + +WB_HORZ Lineal wird horizontal dargestellt +WB_VERT Lineal wird vertikal dargestellt +WB_3DLOOK 3D-Darstellung +WB_BORDER Border am unteren/rechten Rand +WB_EXTRAFIELD Feld in der linken/oberen Ecke zur Anzeige und + Auswahl von Tabs, Null-Punkt, ... +WB_RIGHT_ALIGNED Marks the vertical ruler as right aligned + +-------------------------------------------------------------------------- + +Beim Lineal werden alle Werte als Pixel-Werte eingestellt. Dadurch werden +doppelte Umrechnungen und Rundungsfehler vermieden und die Raender werden +im Lineal auch an der Position angezeigt, den Sie auch im Dokument haben. +Dadurch kann die Applikation zum Beispiel bei Tabellendarstellung auch +eigene Rundungen vornehmen und die Positionen im Lineal passen trotzdem noch +zu denen im Dokument. Damit aber das Lineal weiss, wie das Dokument auf dem +Bildschirm dargestellt wird, muessen noch ein paar zusaetzliche Werte +eingestellt werden. + +Mit SetWinPos() wird der Offset des Edit-Fenster zum Lineal eingestellt. +Dabei kann auch die Breite des Fensters eingestellt werden. Wenn bei den +Werten 0 uebergeben wird, wird die Position/Breite vom Fenster automatisch +so breit gesetzt, wie das Lineal breit ist. + +Mit SetPagePos() wird der Offset der Seite zum Edit-Fenster eingestellt und +die Breite der Seite eingestellt. Wenn bei den Werten 0 uebergeben wird, +wird die Position/Breite automatisch so gesetzt, als ob die Seite das ganze +Editfenster ausfuellen wuerde. + +Mit SetBorderPos() kann der Offset eingestellt werden, ab dem der +Border ausgegeben wird. Die Position bezieht sich auf die linke bzw. obere +Fensterkante. Dies wird gebraucht, wenn ein horizontales und vertikales +Lineal gleichzeitig sichtbar sind. Beispiel: + aHRuler.SetBorderPos( aVRuler.GetSizePixel().Width()-1 ); + +Mit SetNullOffset() wird der Null-Punkt bezogen auf die Seite gesetzt. + +Alle anderen Werte (Raender, Einzug, Tabs, ...) beziehen sich auf den 0 Punkt, +der mit SetNullOffset() eingestellt wird. + +Die Werte werden zum Beispiel folgendermassen berechnet: + +- WinPos (wenn beide Fenster den gleichen Parent haben) + + Point aHRulerPos = aHRuler.GetPosPixel(); + Point aEditWinPos = aEditWin.GetPosPixel(); + aHRuler.SetWinPos( aEditWinPos().X() - aHRulerPos.X() ); + +- PagePos + + Point aPagePos = aEditWin.LogicToPixel( aEditWin.GetPagePos() ); + aHRuler.SetPagePos( aPagePos().X() ); + +- Alle anderen Werte + + Die logischen Werte zusammenaddieren, als Position umrechnen und + die vorher gemerkten Pixel-Positionen (von PagePos und NullOffset) + entsprechend abziehen. + +-------------------------------------------------------------------------- + +Mit SetUnit() und SetZoom() wird eingestellt, in welcher Einheit das Lineal +die Werte anzeigt. Folgende Einheiten werden akzeptiert: + + FUNIT_MM + FUNIT_CM (Default) + FUNIT_M + FUNIT_KM + FUNIT_INCH + FUNIT_FOOT + FUNIT_MILE + FUNIT_POINT + FUNIT_PICA + +-------------------------------------------------------------------------- + +Mit SetMargin1() kann der linke/obere Rand und mit SetMargin2() kann +der rechte/untere Rand gesetzt werden. Falls diese Methoden ohne Parameter +aufgerufen werden, werden keine Raender angezeigt. Wenn SetMargin1() bzw. +SetMargin2() mit Parametern aufgerufen werden, kann bei diesen +folgendes angegeben werden: + + long nPos - Offset zum NullPunkt in Pixel + USHORT nStyle - Bit-Style: + RULER_MARGIN_SIZEABLE + Rand kann in der Groesse veraendert werden. + + Zu diesen Style's koennen folgende Style- + Bits dazugeodert werden: + RULER_STYLE_INVISIBLE (fuer nicht sichtbar) + + +Mit SetBorders() kann ein Array von Raendern gesetzt werden. Dabei muss +ein Array vom Typ RulerBorder uebergeben werden, wobei folgende Werte +initialisiert werden muessen: + + long nPos - Offset zum NullPunkt in Pixel + long nWidth - Breite des Spaltenabstands in Pixel (kann zum + Beispiel fuer Tabellenspalten auch 0 sein) + USHORT nStyle - Bit-Style: + RULER_BORDER_SIZEABLE + Spaltenabstand kann in der Groesse veraendert + werden. Dieses Flag sollte nur gesetzt werden, + wenn ein Abstand in der Groesse geaendert wird + und nicht die Groesse einer Zelle. + RULER_BORDER_MOVEABLE + Spaltenabstand/Begrenzung kann verschoben + werden. Wenn Tabellenbegrenzungen verschoben + werden, sollte dieses Flag gesetzt werden und + nicht Sizeable. Denn Sizeable gibt an, das + ein Abstand vergroessert werden kann und nicht + eine einzelne Zelle in der Groesse geaendert + werden kann. + RULER_BORDER_VARIABLE + Nicht alle Spaltenabstande sind gleich + RULER_BORDER_TABLE + Tabellenrahmen. Wenn dieser Style gesetzt + wird, muss die Spaltenbreite 0 sein. + RULER_BORDER_SNAP + Hilfslinie / Fanglinie. Wenn dieser Style + gesetzt wird, muss die Spaltenbreite 0 sein. + RULER_BORDER_MARGIN + Margin. Wenn dieser Style gesetzt wird, + muss die Spaltenbreite 0 sein. + + Zu diesen Style's koennen folgende Style- + Bits dazugeodert werden: + RULER_STYLE_INVISIBLE (fuer nicht sichtbar) + +Mit SetIndents() kann ein Array von Indents gesetzt werden. Diese Methode darf +nur angewendet werden, wenn es sich um ein horizontales Lineal handelt. Als +Parameter muss ein Array vom Typ RulerIndent uebergeben werden, wobei folgende +Werte initialisiert werden muessen: + + long nPos - Offset zum NullPunkt in Pixel + USHORT nStyle - Bit-Style: + RULER_INDENT_TOP (Erstzeileneinzug) + RULER_INDENT_BOTTOM (Linker/Rechter Einzug) + RULER_INDENT_BORDER (Verical line that shows the border distance) + Zu diesen Style's koennen folgende Style- + Bits dazugeodert werden: + RULER_STYLE_DONTKNOW (fuer alte Position oder + fuer Uneindeutigkeit) + RULER_STYLE_INVISIBLE (fuer nicht sichtbar) + +Mit SetTabs() kann ein Array von Tabs gesetzt werden. Diese Methode darf nur +angewendet werden, wenn es sich um ein horizontales Lineal handelt. Als +Parameter muss ein Array vom Typ RulerTab uebergeben werden, wobei folgende +Werte initialisiert werden muessen: + + long nPos - Offset zum NullPunkt in Pixel + USHORT nStyle - Bit-Style: + RULER_TAB_DEFAULT (kann nicht selektiert werden) + RULER_TAB_LEFT + RULER_TAB_CENTER + RULER_TAB_RIGHT + RULER_TAB_DECIMAL + Zu diesen Style's koennen folgende Style- + Bits dazugeodert werden: + RULER_STYLE_DONTKNOW (fuer alte Position oder + fuer Uneindeutigkeit) + RULER_STYLE_INVISIBLE (fuer nicht sichtbar) + +Mit SetLines() koennen Positionslinien im Lineal angezeigt werden. Dabei +muss ein Array vom Typ RulerLine uebergeben werden, wobei folgende Werte +initialisiert werden muessen: + + long nPos - Offset zum NullPunkt in Pixel + USHORT nStyle - Bit-Style (muss zur Zeit immer 0 sein) + +Mit SetArrows() koennen Bemassungspfeile im Lineal angezeigt werden. Wenn +Bemassungspfeile gesetzt werden, werden im Lineal auch keine Unterteilungen +mehr angezeigt. Deshalb sollten die Bemassungspfeile immer ueber die ganze +Linealbreite gesetzt werden. Dabei muss ein Array vom Typ RulerArrow +uebergeben werden, wobei folgende Werte initialisiert werden muessen: + + long nPos - Offset zum NullPunkt in Pixel + long nWidth - Breite des Pfeils + long nLogWidth - Breite des Pfeils in logischer Einheit + USHORT nStyle - Bit-Style (muss zur Zeit immer 0 sein) + +Mit SetSourceUnit() wird die Einheit eingestellt, in welcher die logischen +Werte vorliegen, die bei SetArrows() uebergeben werden. Dabei werden nur die +Einheiten MAP_TWIP und MAP_100TH_MM (default) akzeptiert. + +-------------------------------------------------------------------------- + +Wenn auch vom Benutzer die Raender, Tabs, Border, ... ueber das Lineal +geaendert werden koennen, muss etwas mehr Aufwand getrieben werden. Dazu +muessen die Methoden StartDrag(), Drag() und EndDrag() ueberlagert werden. +Bei der Methode StartDrag() besteht die Moeglichkeit durch das zurueckgeben +von FALSE das Draggen zu verhindern. Im Drag-Handler muss die Drag-Position +abgefragt werden und die Werte muessen an die neue Position verschoben werden. +Dazu ruft man einfach die einzelnen Set-Methoden auf. Solange man sich +im Drag-Handler befindet, werden sich die Werte nur gemerkt und erst +danach das Lineal neu ausgegeben. Alle Handler koennen auch als Links ueber +entsprechende Set..Hdl()-Methoden gesetzt werden. + + - StartDrag() + Wird gerufen, wenn das Draggen gestartet wird. Wenn FALSE + zurueckgegeben wird, wird das Draggen nicht ausgefuehrt. Bei TRUE + wird das Draggen zugelassen. Wenn der Handler nicht ueberlagert + wird, wird FALSE zurueckgegeben. + + - EndDrag() + Wird gerufen, wenn das Draggen beendet wird. + + - Drag() + Wird gerufen, wenn gedragt wird. + + - Click() + Dieser Handler wird gerufen, wenn kein Element angeklickt wurde. + Die Position kann mit GetClickPos() abgefragt werden. Dadurch + kann man zum Beispiel Tabs in das Lineal setzen. Nach Aufruf des + Click-Handlers wird gegebenenfalls das Drag sofort ausgeloest. Dadurch + ist es moeglich, einen neuen Tab im Click-Handler zu setzen und + danach gleich zu verschieben. + + - DoubleClick() + Dieser Handler wird gerufen, wenn ein DoubleClick ausserhalb des + Extrafeldes gemacht wurde. Was angeklickt wurde, kann mit + GetClickType(), GetClickAryPos() und GetClickPos() abgefragt werden. + Somit kann man zum Beispiel den Tab-Dialog anzeigen, wenn ein + Tab mit einem DoubleClick betaetigt wurde. + +Im Drag-Handler kann man abfragen, was und wohin gedragt wurde. Dazu gibt +es folgende Abfrage-Methoden. + + - GetDragType() + Liefert zurueck, was gedragt wird: + RULER_TYPE_MARGIN1 + RULER_TYPE_MARGIN2 + RULER_TYPE_BORDER + RULER_TYPE_INDENT + RULER_TYPE_TAB + + - GetDragPos() + Liefert die Pixel-Position bezogen auf den eingestellten Null-Offset + zurueck, wohin der Anwender die Maus bewegt hat. + + - GetDragAryPos() + Liefert den Index im Array zurueck, wenn ein Border, Indent oder ein + Tab gedragt wird. Achtung: Es wird die Array-Position waehrend des + gesammten Drag-Vorgangs von dem Item im Array was vor dem Drag gesetzt + war zurueckgeben. Dadurch ist es zum Beispiel auch moeglich, einen + Tab nicht mehr anzuzeigen, wenn die Maus nach unten/rechts aus dem + Lineal gezogen wird. + + - GetDragSize() + Wenn Borders gedragt werden, kann hierueber abgefragt werden, ob + die Groesse bzw. welche Seite oder die Position geaendert werden soll. + RULER_DRAGSIZE_MOVE oder 0 - Move + RULER_DRAGSIZE_1 - Linke/obere Kante + RULER_DRAGSIZE_2 - Rechte/untere Kante + + - IsDragDelete() + Mit dieser Methode kann abgefragt werden, ob beim Draggen die + Maus unten/rechts aus dem Fenster gezogen wurde. Damit kann + zum Beispiel festgestellt werden, ob der Benutzer einen Tab + loeschen will. + + - IsDragCanceled() + Mit dieser Methode kann im EndDrag-Handler abgefragt werden, + ob die Aktion abgebrochen wurde, indem der Anwender die + Maus oben/links vom Fenster losgelassen hat oder ESC gedrueckt + hat. In diesem Fall werden die Werte nicht uebernommen. Wird + waehrend des Draggings die Maus oben/links aus dem Fenster + gezogen, werden automatisch die alten Werte dargestellt, ohne das + der Drag-Handler gerufen wird. + Falls der Benutzer jedoch den Wert auf die alte Position + zurueckgeschoben hat, liefert die Methode trotzdem FALSE. Falls + dies vermieden werden soll, muss sich die Applikation im StartDrag- + Handler den alten Wert merken und im EndDrag-Handler den Wert + vergleichen. + + - GetDragScroll() + Mit dieser Methode kann abgefragt werden, ob gescrollt werden + soll. Es wird einer der folgenden Werte zurueckgegeben: + RULER_SCROLL_NO - Drag-Position befindet sich + an keinem Rand und somit + muss nicht gescrollt werden. + RULER_SCROLL_1 - Drag-Position befindet sich + am linken/oberen Rand und + somit sollte das Programm evt. + ein Srcoll ausloesen. + RULER_SCROLL_2 - Drag-Position befindet sich + am rechten/unteren Rand und + somit sollte das Programm evt. + ein Srcoll ausloesen. + + - GetDragModifier() + Liefert die Modifier-Tasten zurueck, die beim Starten des Drag- + Vorgangs gedrueckt waren. Siehe MouseEvent. + + - GetClickPos() + Liefert die Pixel-Position bezogen auf den eingestellten Null-Offset + zurueck, wo der Anwender die Maus gedrueckt hat. + + - GetClickType() + Liefert zurueck, was per DoubleClick betaetigt wird: + RULER_TYPE_DONTKNOW (kein Element im Linealbereich) + RULER_TYPE_OUTSIDE (ausserhalb des Linealbereichs) + RULER_TYPE_MARGIN1 (nur Margin1-Kante) + RULER_TYPE_MARGIN2 (nur Margin2-Kante) + RULER_TYPE_BORDER (Border: GetClickAryPos()) + RULER_TYPE_INDENT (Einzug: GetClickAryPos()) + RULER_TYPE_TAB (Tab: GetClickAryPos()) + + - GetClickAryPos() + Liefert den Index im Array zurueck, wenn ein Border, Indent oder ein + Tab per DoubleClick betaetigt wird. + + - GetType() + Mit dieser Methode kann man einen HitTest durchfuehren, um + gegebenenfalls ueber das Abfangen des MouseButtonDown-Handlers + auch ueber die rechte Maustaste etwas auf ein Item anzuwenden. Als + Paramter ueber gibt man die Fensterposition und gegebenenfalls + einen Pointer auf einen USHORT, um die Array-Position eines + Tabs, Indent oder Borders mitzubekommen. Als Type werden folgende + Werte zurueckgegeben: + RULER_TYPE_DONTKNOW (kein Element im Linealbereich) + RULER_TYPE_OUTSIDE (ausserhalb des Linealbereichs) + RULER_TYPE_MARGIN1 (nur Margin1-Kante) + RULER_TYPE_MARGIN2 (nur Margin2-Kante) + RULER_TYPE_BORDER (Border: GetClickAryPos()) + RULER_TYPE_INDENT (Einzug: GetClickAryPos()) + RULER_TYPE_TAB (Tab: GetClickAryPos()) + +Wenn der Drag-Vorgang abgebrochen werden soll, kann der Drag-Vorgang +mit CancelDrag() abgebrochen werden. Folgende Methoden gibt es fuer die +Drag-Steuerung: + + - IsDrag() + Liefert TRUE zurueck, wenn sich das Lineal im Drag-Vorgang befindet. + + - CancelDrag() + Bricht den Drag-Vorgang ab, falls einer durchgefuehrt wird. Dabei + werden die alten Werte wieder hergestellt und der Drag und der + EndDrag-Handler gerufen. + +Um vom Dokument ein Drag auszuloesen, gibt es folgende Methoden: + + - StartDocDrag() + Dieser Methode werden der MouseEvent vom Dokumentfenster und + was gedragt werden soll uebergeben. Wenn als DragType + RULER_TYPE_DONTKNOW uebergeben wird, bestimmt das Lineal, was + verschoben werden soll. Bei den anderen, wird der Drag nur dann + gestartet, wenn auch an der uebergebenen Position ein entsprechendes + Element gefunden wurde. Dies ist zun Beispiel dann notwendig, wenn + zum Beispiel Einzuege und Spalten an der gleichen X-Position liegen. + Der Rueckgabewert gibt an, ob der Drag ausgeloest wurde. Wenn ein + Drag ausgeloest wird, uebernimmt das Lineal die normale Drag-Steuerung + und verhaelt sich dann so, wie als wenn direkt in das Lineal geklickt + wurde. So captured das Lineal die Mouse und uebernimmt auch die + Steuerung des Cancel (ueber Tastatur, oder wenn die Mouse ueber + oder links vom Lineal ruasgeschoben wird). Auch alle Handler werden + gerufen (inkl. des StartDrag-Handlers). Wenn ein MouseEvent mit + Click-Count 2 uebergeben wird auch der DoubleClick-Handler + entsprechend gerufen. + + - GetDocType() + Dieser Methode wird die Position vom Dokumentfenster uebergeben und + testet, was sich unter der Position befindet. Dabei kann wie bei + StartDocDrag() der entsprechende Test auf ein bestimmtes Element + eingeschraenkt werden. Im Gegensatz zu GetType() liefert diese + Methode immer DontKnow zurueck, falls kein Element getroffen wurde. + Falls man den HitTest selber durchfuehren moechte, kann man + folgende Defines fuer die Toleranz benutzen (Werte gelten fuer + eine Richtung): + RULER_MOUSE_TABLEWIDTH - fuer Tabellenspalten + RULER_MOUSE_MARGINWIDTH - fuer Margins + +-------------------------------------------------------------------------- + +Fuer das Extra-Feld kann der Inhalt bestimmt werden und es gibt Handler, +womit man bestimmte Aktionen abfangen kann. + + - ExtraDown() + Dieser Handler wird gerufen, wenn im Extra-Feld die Maus + gedrueckt wird. + + - SetExtraType() + Mit dieser Methode kann festgelegt werden, was im ExtraFeld + dargestellt werden soll. + - ExtraType Was im Extrafeld dargestellt werden soll + RULER_EXTRA_DONTKNOW (Nichts) + RULER_EXTRA_NULLOFFSET (Koordinaaten-Kreuz) + RULER_EXTRA_TAB (Tab) + - USHORT nStyle Bitfeld als Style: + RULER_STYLE_HIGHLIGHT (selektiert) + RULER_TAB_... (ein Tab-Style) + + - GetExtraClick() + Liefert die Anzahl der Mausclicks zurueck. Dadurch ist es zum + Beispiel auch moeglich, auch durch einen DoubleClick im Extrafeld + eine Aktion auszuloesen. + + - GetExtraModifier() + Liefert die Modifier-Tasten zurueck, die beim Klicken in das Extra- + Feld gedrueckt waren. Siehe MouseEvent. + +-------------------------------------------------------------------------- + +Weitere Hilfsfunktionen: + +- static Ruler::DrawTab() + Mit dieser Methode kann ein Tab auf einem OutputDevice ausgegeben + werden. Dadurch ist es moeglich, auch in Dialogen die Tabs so + anzuzeigen, wie Sie im Lineal gemalt werden. + + Diese Methode gibt den Tab zentriert an der uebergebenen Position + aus. Die Groesse der Tabs kann ueber die Defines RULER_TAB_WIDTH und + RULER_TAB_HEIGHT bestimmt werden. + +-------------------------------------------------------------------------- + +Tips zur Benutzung des Lineals: + +- Bei dem Lineal muss weder im Drag-Modus noch sonst das Setzen der Werte + in SetUpdateMode() geklammert werden. Denn das Lineal sorgt von sich + aus dafuer, das wenn mehrere Werte gesetzt werden, diese automatisch + zusammengefast werden und flackerfrei ausgegeben werden. + +- Initial sollten beim Lineal zuerst die Groessen, Positionen und Werte + gesetzt werden, bevor es angezeigt wird. Dies ist deshalb wichtig, da + ansonsten viele Werte unnoetig berechnet werden. + +- Wenn das Dokumentfenster, in dem sich das Lineal befindet aktiv bzw. + deaktiv wird, sollten die Methoden Activate() und Deactivate() vom + Lineal gerufen werden. Denn je nach Einstellungen und System wird die + Anzeige entsprechend umgeschaltet. + +- Zum Beispiel sollte beim Drag von Tabs und Einzuegen nach Moeglichkeit die + alten Positionen noch mit angezeigt werden. Dazu sollte zusaetzlich beim + Setzen der Tabs und Einzuege als erstes im Array die alten Positionen + eingetragen werden und mit dem Style RULER_STYLE_DONTKNOW verknuepft + werden. Danach sollte im Array die restlichen Werte eingetragen werden. + +- Bei mehreren markierten Absaetzen und Tabellen-Zellen, sollten die Tabs + und Einzuege in grau von der ersten Zelle, bzw. vom ersten Absatz + angezeigt werden. Dies kann man auch ueber den Style RULER_STYLE_DONTKNOW + erreichen. + +- Die Bemassungspfeile sollten immer dann angezeigt, wenn beim Drag die + Alt-Taste (WW-Like) gedrueckt wird. Vielleicht sollte diese Einstellung + auch immer vornehmbar sein und vielleicht beim Drag immer die + Bemassungspfeile dargestellt werden. Bei allen Einstellung sollten die + Werte immer auf ein vielfaches eines Wertes gerundet werden, da die + Bildschirmausloesung sehr ungenau ist. + +- DoppelKlicks sollten folgendermassen behandelt werden (GetClickType()): + - RULER_TYPE_DONTKNOW + RULER_TYPE_MARGIN1 + RULER_TYPE_MARGIN2 + Wenn die Bedingunden GetClickPos() <= GetMargin1() oder + GetClickPos() >= GetMargin2() oder der Type gleich + RULER_TYPE_MARGIN1 oder RULER_TYPE_MARGIN2 ist, sollte + ein SeitenDialog angezeigt werden, wo der Focus auf dem + entsprechenden Rand steht + - RULER_TYPE_BORDER + Es sollte ein Spalten- oder Tabellen-Dialog angezeigt werden, + wo der Focus auf der entsprechenden Spalte steht, die mit + GetClickAryPos() abgefragt werden kann. + - RULER_TYPE_INDENT + Es sollte der Dialog angezeigt werden, wo die Einzuege eingestellt + werden koennen. Dabei sollte der Focus auf dem Einzug stehen, der + mit GetClickAryPos() ermittelt werden kann. + - RULER_TYPE_TAB + Es sollte ein TabDialog angezeigt werden, wo der Tab selektiert + sein sollte, der ueber GetClickAryPos() abgefragt werden kann. + +*************************************************************************/ + +// ----------- +// - WinBits - +// ----------- + +#define WB_EXTRAFIELD ((WinBits)0x00004000) +#define WB_RIGHT_ALIGNED ((WinBits)0x00008000) +#define WB_STDRULER WB_HORZ + +// --------------- +// - Ruler-Types - +// --------------- + +struct ImplRulerHitTest; + +// -------------- +// - Ruler-Type - +// -------------- + +enum RulerType { RULER_TYPE_DONTKNOW, RULER_TYPE_OUTSIDE, + RULER_TYPE_MARGIN1, RULER_TYPE_MARGIN2, + RULER_TYPE_BORDER, RULER_TYPE_INDENT, RULER_TYPE_TAB }; + +enum RulerExtra { RULER_EXTRA_DONTKNOW, + RULER_EXTRA_NULLOFFSET, RULER_EXTRA_TAB }; + +#define RULER_STYLE_HIGHLIGHT ((USHORT)0x8000) +#define RULER_STYLE_DONTKNOW ((USHORT)0x4000) +#define RULER_STYLE_INVISIBLE ((USHORT)0x2000) + +#define RULER_DRAGSIZE_MOVE 0 +#define RULER_DRAGSIZE_1 1 +#define RULER_DRAGSIZE_2 2 + +#define RULER_MOUSE_BORDERMOVE 5 +#define RULER_MOUSE_BORDERWIDTH 5 +#define RULER_MOUSE_TABLEWIDTH 1 +#define RULER_MOUSE_MARGINWIDTH 3 + +#define RULER_SCROLL_NO 0 +#define RULER_SCROLL_1 1 +#define RULER_SCROLL_2 2 + +// --------------- +// - RulerMargin - +// --------------- + +#define RULER_MARGIN_SIZEABLE ((USHORT)0x0001) + +// --------------- +// - RulerBorder - +// --------------- + +#define RULER_BORDER_SIZEABLE ((USHORT)0x0001) +#define RULER_BORDER_MOVEABLE ((USHORT)0x0002) +#define RULER_BORDER_VARIABLE ((USHORT)0x0004) +#define RULER_BORDER_TABLE ((USHORT)0x0008) +#define RULER_BORDER_SNAP ((USHORT)0x0010) +#define RULER_BORDER_MARGIN ((USHORT)0x0020) + +struct RulerBorder +{ + long nPos; + long nWidth; + USHORT nStyle; + //minimum/maximum position, supported for table borders/rows + long nMinPos; + long nMaxPos; +}; + +// --------------- +// - RulerIndent - +// --------------- + +#define RULER_INDENT_TOP ((USHORT)0x0000) +#define RULER_INDENT_BOTTOM ((USHORT)0x0001) +#define RULER_INDENT_BORDER ((USHORT)0x0002) +#define RULER_INDENT_STYLE ((USHORT)0x000F) + +struct RulerIndent +{ + long nPos; + USHORT nStyle; +}; + +// ------------ +// - RulerTab - +// ------------ + +#define RULER_TAB_LEFT ((USHORT)0x0000) +#define RULER_TAB_RIGHT ((USHORT)0x0001) +#define RULER_TAB_DECIMAL ((USHORT)0x0002) +#define RULER_TAB_CENTER ((USHORT)0x0003) +#define RULER_TAB_DEFAULT ((USHORT)0x0004) +#define RULER_TAB_STYLE ((USHORT)0x000F) +#define RULER_TAB_RTL ((USHORT)0x0010) + +struct RulerTab +{ + long nPos; + USHORT nStyle; +}; + +#define RULER_TAB_WIDTH 7 +#define RULER_TAB_HEIGHT 6 + +// ------------- +// - RulerLine - +// ------------- + +struct RulerLine +{ + long nPos; + USHORT nStyle; +}; + +// -------------- +// - RulerArrow - +// -------------- + +struct RulerArrow +{ + long nPos; + long nWidth; + long nLogWidth; + USHORT nStyle; +}; + +class ImplRulerData; +// --------- +// - Ruler - +// --------- + +class SVT_DLLPUBLIC Ruler : public Window +{ +private: + VirtualDevice maVirDev; + MapMode maMapMode; + long mnBorderOff; + long mnWinOff; + long mnWinWidth; + long mnWidth; + long mnHeight; + long mnVirOff; + long mnVirWidth; + long mnVirHeight; + long mnBorderWidth; + long mnStartDragPos; + long mnDragPos; + ULONG mnUpdateEvtId; + ImplRulerData* mpSaveData; + ImplRulerData* mpData; + ImplRulerData* mpDragData; + Rectangle maExtraRect; + WinBits mnWinStyle; + USHORT mnUnitIndex; + USHORT mnDragAryPos; + USHORT mnDragSize; + USHORT mnDragScroll; + USHORT mnDragModifier; + USHORT mnExtraStyle; + USHORT mnExtraClicks; + USHORT mnExtraModifier; + RulerExtra meExtraType; + RulerType meDragType; + MapUnit meSourceUnit; + FieldUnit meUnit; + Fraction maZoom; + BOOL mbCalc; + BOOL mbFormat; + BOOL mbDrag; + BOOL mbDragDelete; + BOOL mbDragCanceled; + BOOL mbAutoWinWidth; + BOOL mbActive; + BYTE mnUpdateFlags; + Link maStartDragHdl; + Link maDragHdl; + Link maEndDragHdl; + Link maClickHdl; + Link maDoubleClickHdl; + Link maExtraDownHdl; + +#ifdef _SV_RULER_CXX + SVT_DLLPRIVATE void ImplVDrawLine( long nX1, long nY1, long nX2, long nY2 ); + SVT_DLLPRIVATE void ImplVDrawRect( long nX1, long nY1, long nX2, long nY2 ); + SVT_DLLPRIVATE void ImplVDrawText( long nX, long nY, const String& rText ); + + SVT_DLLPRIVATE void ImplDrawTicks( long nMin, long nMax, long nStart, long nCenter ); + SVT_DLLPRIVATE void ImplDrawArrows( long nCenter ); + SVT_DLLPRIVATE void ImplDrawBorders( long nMin, long nMax, long nVirTop, long nVirBottom ); + SVT_DLLPRIVATE void ImplDrawIndent( const Polygon& rPoly, USHORT nStyle ); + SVT_DLLPRIVATE void ImplDrawIndents( long nMin, long nMax, long nVirTop, long nVirBottom ); + SVT_DLLPRIVATE void ImplDrawTab( OutputDevice* pDevice, const Point& rPos, USHORT nStyle ); + SVT_DLLPRIVATE void ImplDrawTabs( long nMin, long nMax, long nVirTop, long nVirBottom ); + using Window::ImplInit; + SVT_DLLPRIVATE void ImplInit( WinBits nWinBits ); + SVT_DLLPRIVATE void ImplInitSettings( BOOL bFont, BOOL bForeground, BOOL bBackground ); + SVT_DLLPRIVATE void ImplCalc(); + SVT_DLLPRIVATE void ImplFormat(); + SVT_DLLPRIVATE void ImplInitExtraField( BOOL bUpdate ); + SVT_DLLPRIVATE void ImplInvertLines( BOOL bErase = FALSE ); + SVT_DLLPRIVATE void ImplDraw(); + SVT_DLLPRIVATE void ImplDrawExtra( BOOL bPaint = FALSE ); + SVT_DLLPRIVATE void ImplUpdate( BOOL bMustCalc = FALSE ); + using Window::ImplHitTest; + SVT_DLLPRIVATE BOOL ImplHitTest( const Point& rPos, + ImplRulerHitTest* pHitTest, + BOOL bRequiredStyle = FALSE, + USHORT nRequiredStyle = 0 ) const; + SVT_DLLPRIVATE BOOL ImplDocHitTest( const Point& rPos, RulerType eDragType, ImplRulerHitTest* pHitTest ) const; + SVT_DLLPRIVATE BOOL ImplStartDrag( ImplRulerHitTest* pHitTest, USHORT nModifier ); + SVT_DLLPRIVATE void ImplDrag( const Point& rPos ); + SVT_DLLPRIVATE void ImplEndDrag(); + DECL_DLLPRIVATE_LINK( ImplUpdateHdl, void* ); +#endif + + // Forbidden and not implemented. + Ruler (const Ruler &); + Ruler & operator= (const Ruler &); + +public: + Ruler( Window* pParent, WinBits nWinStyle = WB_STDRULER ); + virtual ~Ruler(); + + virtual void MouseButtonDown( const MouseEvent& rMEvt ); + virtual void MouseMove( const MouseEvent& rMEvt ); + virtual void Tracking( const TrackingEvent& rTEvt ); + virtual void Paint( const Rectangle& rRect ); + virtual void Resize(); + virtual void StateChanged( StateChangedType nStateChange ); + virtual void DataChanged( const DataChangedEvent& rDCEvt ); + + virtual long StartDrag(); + virtual void Drag(); + virtual void EndDrag(); + virtual void Click(); + virtual void DoubleClick(); + virtual void ExtraDown(); + + void Activate(); + void Deactivate(); + BOOL IsActive() const { return mbActive; } + + void SetWinPos( long nOff = 0, long nWidth = 0 ); + long GetWinOffset() const { return mnWinOff; } + long GetWinWidth() const { return mnWinWidth; } + void SetPagePos( long nOff = 0, long nWidth = 0 ); + long GetPageOffset() const; + long GetPageWidth() const; + void SetBorderPos( long nOff = 0 ); + long GetBorderOffset() const { return mnBorderOff; } + Rectangle GetExtraRect() const { return maExtraRect; } + + void SetUnit( FieldUnit eNewUnit ); + FieldUnit GetUnit() const { return meUnit; } + void SetZoom( const Fraction& rNewZoom ); + Fraction GetZoom() const { return maZoom; } + + void SetSourceUnit( MapUnit eNewUnit ) { meSourceUnit = eNewUnit; } + MapUnit GetSourceUnit() const { return meSourceUnit; } + + void SetExtraType( RulerExtra eNewExtraType, USHORT nStyle = 0 ); + RulerExtra GetExtraType() const { return meExtraType; } + USHORT GetExtraStyle() const { return mnExtraStyle; } + USHORT GetExtraClicks() const { return mnExtraClicks; } + USHORT GetExtraModifier() const { return mnExtraModifier; } + + BOOL StartDocDrag( const MouseEvent& rMEvt, + RulerType eDragType = RULER_TYPE_DONTKNOW ); + RulerType GetDocType( const Point& rPos, + RulerType eDragType = RULER_TYPE_DONTKNOW, + USHORT* pAryPos = NULL ) const; + RulerType GetDragType() const { return meDragType; } + long GetDragPos() const { return mnDragPos; } + USHORT GetDragAryPos() const { return mnDragAryPos; } + USHORT GetDragSize() const { return mnDragSize; } + BOOL IsDragDelete() const { return mbDragDelete; } + BOOL IsDragCanceled() const { return mbDragCanceled; } + USHORT GetDragScroll() const { return mnDragScroll; } + USHORT GetDragModifier() const { return mnDragModifier; } + BOOL IsDrag() const { return mbDrag; } + void CancelDrag(); + long GetClickPos() const { return mnDragPos; } + RulerType GetClickType() const { return meDragType; } + USHORT GetClickAryPos() const { return mnDragAryPos; } + using Window::GetType; + RulerType GetType( const Point& rPos, + USHORT* pAryPos = NULL ) const; + + void SetNullOffset( long nPos ); + long GetNullOffset() const; + void SetMargin1() { SetMargin1( 0, RULER_STYLE_INVISIBLE ); } + void SetMargin1( long nPos, USHORT nMarginStyle = RULER_MARGIN_SIZEABLE ); + long GetMargin1() const; + USHORT GetMargin1Style() const; + void SetMargin2() { SetMargin2( 0, RULER_STYLE_INVISIBLE ); } + void SetMargin2( long nPos, USHORT nMarginStyle = RULER_MARGIN_SIZEABLE ); + long GetMargin2() const; + USHORT GetMargin2Style() const; + + void SetLines( USHORT n = 0, const RulerLine* pLineAry = NULL ); + USHORT GetLineCount() const; + const RulerLine* GetLines() const; + + void SetArrows( USHORT n = 0, const RulerArrow* pArrowAry = NULL ); + USHORT GetArrowCount() const; + const RulerArrow* GetArrows() const; + + void SetBorders( USHORT n = 0, const RulerBorder* pBrdAry = NULL ); + USHORT GetBorderCount() const; + const RulerBorder* GetBorders() const; + + void SetIndents( USHORT n = 0, const RulerIndent* pIndentAry = NULL ); + USHORT GetIndentCount() const; + const RulerIndent* GetIndents() const; + + void SetTabs( USHORT n = 0, const RulerTab* pTabAry = NULL ); + USHORT GetTabCount() const; + const RulerTab* GetTabs() const; + + static void DrawTab( OutputDevice* pDevice, + const Point& rPos, USHORT nStyle ); + + void SetStyle( WinBits nStyle ); + WinBits GetStyle() const { return mnWinStyle; } + + void SetStartDragHdl( const Link& rLink ) { maStartDragHdl = rLink; } + const Link& GetStartDragHdl() const { return maStartDragHdl; } + void SetDragHdl( const Link& rLink ) { maDragHdl = rLink; } + const Link& GetDragHdl() const { return maDragHdl; } + void SetEndDragHdl( const Link& rLink ) { maEndDragHdl = rLink; } + const Link& GetEndDragHdl() const { return maEndDragHdl; } + void SetClickHdl( const Link& rLink ) { maClickHdl = rLink; } + const Link& GetClickHdl() const { return maClickHdl; } + void SetDoubleClickHdl( const Link& rLink ) { maDoubleClickHdl = rLink; } + const Link& GetDoubleClickHdl() const { return maDoubleClickHdl; } + void SetExtraDownHdl( const Link& rLink ) { maExtraDownHdl = rLink; } + const Link& GetExtraDownHdl() const { return maExtraDownHdl; } + + //set text direction right-to-left + void SetTextRTL(BOOL bRTL); +}; + +#endif // _RULER_HXX diff --git a/svtools/inc/svtools/scriptedtext.hxx b/svtools/inc/svtools/scriptedtext.hxx new file mode 100644 index 000000000000..5bb89969785b --- /dev/null +++ b/svtools/inc/svtools/scriptedtext.hxx @@ -0,0 +1,129 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVTOOLS_SCRIPTEDTEXT_HXX +#define _SVTOOLS_SCRIPTEDTEXT_HXX + +#include "svtools/svtdllapi.h" +#include <tools/gen.hxx> +#include <com/sun/star/i18n/XBreakIterator.hpp> + + +namespace rtl { class OUString; } +class OutputDevice; +class Font; +class SvtScriptedTextHelper_Impl; + + +//_____________________________________________________________________________ + +/** +This class provides drawing text with different script types on any output devices. +*/ +class SVT_DLLPUBLIC SvtScriptedTextHelper +{ +private: + SvtScriptedTextHelper_Impl* mpImpl; /// Implementation of class functionality. + + /** Assignment operator not implemented to prevent usage. */ + SvtScriptedTextHelper& operator=( const SvtScriptedTextHelper& ); + +public: + /** Constructor sets an output device and no fonts. + @param _rOutDevice + A reference to an output device. */ + SvtScriptedTextHelper( OutputDevice& _rOutDevice ); + + /** Constructor sets an output device and fonts for all script types. + @param _rOutDevice + A reference to an output device. + @param _pLatinFont + The font for latin characters. + @param _pAsianFont + The font for asian characters. + @param _pCmplxFont + The font for complex text layout. */ + SvtScriptedTextHelper( + OutputDevice& _rOutDevice, + Font* _pLatinFont, + Font* _pAsianFont, + Font* _pCmplxFont ); + + /** Copy constructor. */ + SvtScriptedTextHelper( + const SvtScriptedTextHelper& _rCopy ); + + /** Destructor. */ + virtual ~SvtScriptedTextHelper(); + + /** Sets new fonts and recalculates the text width. + @param _pLatinFont + The font for latin characters. + @param _pAsianFont + The font for asian characters. + @param _pCmplxFont + The font for complex text layout. */ + void SetFonts( Font* _pLatinFont, Font* _pAsianFont, Font* _pCmplxFont ); + + /** Sets the default font of the current output device to all script types. */ + void SetDefaultFont(); + + /** Sets a new text and calculates all script breaks and the text width. + @param _rText + The new text. + @param _xBreakIter + The break iterator for iterating through the script portions. */ + void SetText( + const ::rtl::OUString& _rText, + const ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XBreakIterator >& _xBreakIter ); + + /** Returns the previously set text. + @return The current text. */ + const ::rtl::OUString& GetText() const; + + /** Returns the calculated width the text will take in the current output device. + @return The calculated text width. */ + sal_Int32 GetTextWidth() const; + + /** Returns the maximum height the text will take in the current output device. + @return The maximum text height. */ + sal_Int32 GetTextHeight() const; + + /** Returns a size struct containing the width and height of the text in the current output device. + @return A size struct with the text dimensions. */ + const Size& GetTextSize() const; + + /** Draws the text in the current output device. + @param _rPos + The position of the top left edge of the text. */ + void DrawText( const Point& _rPos ); +}; + +//_____________________________________________________________________________ + +#endif + diff --git a/svtools/inc/svtools/scrwin.hxx b/svtools/inc/svtools/scrwin.hxx new file mode 100644 index 000000000000..1542ed667133 --- /dev/null +++ b/svtools/inc/svtools/scrwin.hxx @@ -0,0 +1,112 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SCRWIN_HXX +#define _SCRWIN_HXX + +#include "svtools/svtdllapi.h" + +#ifndef _SCRBAR_HXX //autogen +#include <vcl/scrbar.hxx> +#endif + +class DataChangedEvent; + +// ------------------------- +// - ScrollableWindow-Type - +// ------------------------- + +typedef USHORT ScrollableWindowFlags; + +#define SCRWIN_THUMBDRAGGING 1 +#define SCRWIN_VCENTER 2 +#define SCRWIN_HCENTER 4 +#define SCRWIN_DEFAULT (SCRWIN_THUMBDRAGGING | SCRWIN_VCENTER | SCRWIN_HCENTER) + +// -------------------- +// - ScrollableWindow - +// -------------------- + +class SVT_DLLPUBLIC ScrollableWindow: public Window +{ +private: + Point aPixOffset; // offset to virtual window (pixel) + Size aTotPixSz; // total size of virtual window (pixel) + long nLinePixH; // size of a line/column (pixel) + long nColumnPixW; + + ScrollBar aVScroll; // the scrollbars + ScrollBar aHScroll; + ScrollBarBox aCornerWin; // window in the bottom right corner + BOOL bScrolling:1, // user controlled scrolling + bHandleDragging:1, // scroll window while dragging + bHCenter:1, + bVCenter:1; + +#ifdef _SVT_SCRWIN_CXX + SVT_DLLPRIVATE void ImpInitialize( ScrollableWindowFlags nFlags ); + DECL_DLLPRIVATE_LINK( ScrollHdl, ScrollBar * ); + DECL_DLLPRIVATE_LINK( EndScrollHdl, ScrollBar * ); +#endif + +public: + ScrollableWindow( Window* pParent, WinBits nBits = 0, + ScrollableWindowFlags = SCRWIN_DEFAULT ); + ScrollableWindow( Window* pParent, const ResId& rId, + ScrollableWindowFlags = SCRWIN_DEFAULT ); + + virtual void Resize(); + virtual void Command( const CommandEvent& rCEvt ); + virtual void DataChanged( const DataChangedEvent& rDEvt ); + + virtual void StartScroll(); + virtual void EndScroll( long nDeltaX, long nDeltaY ); + + using OutputDevice::SetMapMode; + virtual void SetMapMode( const MapMode& rNewMapMode ); + virtual MapMode GetMapMode() const; + + void SetTotalSize( const Size& rNewSize ); + Size GetTotalSize() { return PixelToLogic( aTotPixSz ); } + + void SetVisibleSize( const Size& rNewSize ); + BOOL MakeVisible( const Rectangle& rTarget, BOOL bSloppy = FALSE ); + Rectangle GetVisibleArea() const; + + void SetLineSize( ULONG nHorz, ULONG nVert ); + using Window::Scroll; + virtual void Scroll( long nDeltaX, long nDeltaY, USHORT nFlags = 0 ); + void ScrollLines( long nLinesX, long nLinesY ); + void ScrollPages( long nPagesX, ULONG nOverlapX, + long nPagesY, ULONG nOverlapY ); + +private: + SVT_DLLPRIVATE Size GetOutputSizePixel() const; + SVT_DLLPRIVATE Size GetOutputSize() const; +}; + +#endif diff --git a/svtools/inc/svtools/sfxecode.hxx b/svtools/inc/svtools/sfxecode.hxx new file mode 100644 index 000000000000..59611eb35844 --- /dev/null +++ b/svtools/inc/svtools/sfxecode.hxx @@ -0,0 +1,118 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SFXECODE_HXX +#define _SFXECODE_HXX + +#include <tools/errcode.hxx> + +#define ERRCODE_SFX_NOSTDTEMPLATE (ERRCODE_AREA_SFX|ERRCODE_CLASS_PATH|1) +#define ERRCODE_SFX_NOTATEMPLATE (ERRCODE_AREA_SFX|ERRCODE_CLASS_FORMAT|2) +#define ERRCODE_SFX_GENERAL (ERRCODE_AREA_SFX|ERRCODE_CLASS_GENERAL|3) +#define ERRCODE_SFX_DOLOADFAILED (ERRCODE_AREA_SFX|ERRCODE_CLASS_READ|4) +#define ERRCODE_SFX_DOSAVECOMPLETEDFAILED (ERRCODE_AREA_SFX|ERRCODE_CLASS_WRITE|5) +#define ERRCODE_SFX_COMMITFAILED (ERRCODE_AREA_SFX|ERRCODE_CLASS_WRITE|6) +#define ERRCODE_SFX_HANDSOFFFAILED (ERRCODE_AREA_SFX|ERRCODE_CLASS_GENERAL|7) +#define ERRCODE_SFX_DOINITNEWFAILED (ERRCODE_AREA_SFX|ERRCODE_CLASS_CREATE|8) +#define ERRCODE_SFX_CANTREADDOCINFO (ERRCODE_AREA_SFX|ERRCODE_CLASS_FORMAT|9) +#define ERRCODE_SFX_ALREADYOPEN (ERRCODE_AREA_SFX|ERRCODE_CLASS_ALREADYEXISTS|10) +#define ERRCODE_SFX_WRONGPASSWORD (ERRCODE_AREA_SFX|ERRCODE_CLASS_READ|11) +#define ERRCODE_SFX_DOCUMENTREADONLY (ERRCODE_AREA_SFX|ERRCODE_CLASS_WRITE|12) +#define ERRCODE_SFX_OLEGENERAL (ERRCODE_AREA_SFX|ERRCODE_CLASS_NONE|14) +#define ERRCODE_SFXMSG_STYLEREPLACE (ERRCODE_WARNING_MASK|ERRCODE_AREA_SFX|ERRCODE_CLASS_NONE|13) +#define ERRCODE_SFX_TEMPLATENOTFOUND (ERRCODE_AREA_SFX|ERRCODE_CLASS_NOTEXISTS|15) +#define ERRCODE_SFX_ISRELATIVE (ERRCODE_WARNING_MASK|ERRCODE_AREA_SFX|ERRCODE_CLASS_NOTEXISTS|16) +#define ERRCODE_SFX_FORCEDOCLOAD (ERRCODE_WARNING_MASK|ERRCODE_AREA_SFX|ERRCODE_CLASS_NONE|17) + +#define ERRCODE_SFX_CANTFINDORIGINAL (ERRCODE_AREA_SFX|ERRCODE_CLASS_GENERAL|19) +#define ERRCODE_SFX_RESTART (ERRCODE_AREA_SFX|ERRCODE_CLASS_GENERAL|20) +#define ERRCODE_SFX_CANTCREATECONTENT (ERRCODE_AREA_SFX|ERRCODE_CLASS_CREATE|21) +#define ERRCODE_SFX_CANTCREATELINK (ERRCODE_AREA_SFX|ERRCODE_CLASS_CREATE|22) +#define ERRCODE_SFX_WRONGBMKFORMAT (ERRCODE_AREA_SFX|ERRCODE_CLASS_FORMAT|23) +#define ERRCODE_SFX_WRONGICONFILE (ERRCODE_AREA_SFX|ERRCODE_CLASS_FORMAT|24) +#define ERRCODE_SFX_CANTDELICONFILE (ERRCODE_AREA_SFX|ERRCODE_CLASS_ACCESS|25) +#define ERRCODE_SFX_CANTWRITEICONFILE (ERRCODE_AREA_SFX|ERRCODE_CLASS_ACCESS|26) +#define ERRCODE_SFX_CANTRENAMECONTENT (ERRCODE_AREA_SFX|ERRCODE_CLASS_ACCESS|27) +#define ERRCODE_SFX_INVALIDBMKPATH (ERRCODE_AREA_SFX|ERRCODE_CLASS_PATH|28) +#define ERRCODE_SFX_CANTWRITEURLCFGFILE (ERRCODE_AREA_SFX|ERRCODE_CLASS_ACCESS|29) +#define ERRCODE_SFX_WRONGURLCFGFORMAT (ERRCODE_AREA_SFX|ERRCODE_CLASS_FORMAT|30) +#define ERRCODE_SFX_NODOCUMENT (ERRCODE_AREA_SFX|ERRCODE_CLASS_NOTEXISTS|31) +#define ERRCODE_SFX_INVALIDLINK (ERRCODE_AREA_SFX|ERRCODE_CLASS_NOTEXISTS|32) +#define ERRCODE_SFX_INVALIDTRASHPATH (ERRCODE_AREA_SFX|ERRCODE_CLASS_PATH|33) +#define ERRCODE_SFX_NOTRESTORABLE (ERRCODE_AREA_SFX|ERRCODE_CLASS_CREATE|34) +#define ERRCODE_SFX_NOTRASH (ERRCODE_AREA_SFX|ERRCODE_CLASS_NOTEXISTS|35) +#define ERRCODE_SFX_INVALIDSYNTAX (ERRCODE_AREA_SFX|ERRCODE_CLASS_PATH|36) +#define ERRCODE_SFX_CANTCREATEFOLDER (ERRCODE_AREA_SFX|ERRCODE_CLASS_CREATE|37) +#define ERRCODE_SFX_CANTRENAMEFOLDER (ERRCODE_AREA_SFX|ERRCODE_CLASS_PATH|38) +#define ERRCODE_SFX_WRONG_CDF_FORMAT (ERRCODE_AREA_SFX| ERRCODE_CLASS_READ | 39) +#define ERRCODE_SFX_EMPTY_SERVER (ERRCODE_AREA_SFX|ERRCODE_CLASS_NONE|40) +#define ERRCODE_SFX_NO_ABOBOX (ERRCODE_AREA_SFX| ERRCODE_CLASS_READ | 41) +#define ERRCODE_SFX_CANTGETPASSWD (ERRCODE_AREA_SFX| ERRCODE_CLASS_READ | 42) +#define ERRCODE_SFX_TARGETFILECORRUPTED (ERRCODE_AREA_SFX| ERRCODE_CLASS_READ | 43) +#define ERRCODE_SFX_NOMOREDOCUMENTSALLOWED (ERRCODE_WARNING_MASK | ERRCODE_AREA_SFX | ERRCODE_CLASS_NONE | 44) +#define ERRCODE_SFX_NOFILTER (ERRCODE_AREA_SFX|ERRCODE_CLASS_NOTEXISTS|45) +#define ERRCODE_SFX_FORCEQUIET (ERRCODE_WARNING_MASK|ERRCODE_AREA_SFX|ERRCODE_CLASS_NONE|47) +#define ERRCODE_SFX_CONSULTUSER (ERRCODE_WARNING_MASK|ERRCODE_AREA_SFX|ERRCODE_CLASS_NONE|48) +#define ERRCODE_SFX_NEVERCHECKCONTENT (ERRCODE_AREA_SFX|ERRCODE_CLASS_NONE|49) +#define ERRCODE_SFX_CANTCREATEBACKUP (ERRCODE_AREA_SFX | ERRCODE_CLASS_CREATE | 50) +#define ERRCODE_SFX_MACROS_SUPPORT_DISABLED (ERRCODE_WARNING_MASK | ERRCODE_AREA_SFX | ERRCODE_CLASS_NONE | 51) +#define ERRCODE_SFX_DOCUMENT_MACRO_DISABLED (ERRCODE_WARNING_MASK | ERRCODE_AREA_SFX | ERRCODE_CLASS_NONE | 52) +#define ERRCODE_SFX_BROKENSIGNATURE (ERRCODE_WARNING_MASK | ERRCODE_AREA_SFX | ERRCODE_CLASS_NONE | 53) +#define ERRCODE_SFX_SHARED_NOPASSWORDCHANGE (ERRCODE_WARNING_MASK | ERRCODE_AREA_SFX | ERRCODE_CLASS_NONE | 54) +#define ERRCODE_SFX_INCOMPLETE_ENCRYPTION (ERRCODE_WARNING_MASK | ERRCODE_AREA_SFX | ERRCODE_CLASS_NONE | 55) + + + +//Dies und das +#define ERRCTX_ERROR 21 +#define ERRCTX_WARNING 22 + +//Documentkontexte +#define ERRCTX_SFX_LOADTEMPLATE 1 +#define ERRCTX_SFX_SAVEDOC 2 +#define ERRCTX_SFX_SAVEASDOC 3 +#define ERRCTX_SFX_DOCINFO 4 +#define ERRCTX_SFX_DOCTEMPLATE 5 +#define ERRCTX_SFX_MOVEORCOPYCONTENTS 6 + +//Appkontexte +#define ERRCTX_SFX_DOCMANAGER 50 +#define ERRCTX_SFX_OPENDOC 51 +#define ERRCTX_SFX_NEWDOCDIRECT 52 +#define ERRCTX_SFX_NEWDOC 53 + +//Organizerkontexte +#define ERRCTX_SFX_CREATEOBJSH 70 + +//BASIC-Kontexte +#define ERRCTX_SFX_LOADBASIC 80 + +//Addressbook contexts +#define ERRCTX_SFX_SEARCHADDRESS 90 + +#endif // #ifndef _SFXECODE_HXX + + diff --git a/svtools/inc/svtools/soerr.hxx b/svtools/inc/svtools/soerr.hxx new file mode 100644 index 000000000000..41e488480039 --- /dev/null +++ b/svtools/inc/svtools/soerr.hxx @@ -0,0 +1,81 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SOERR_HXX +#define _SOERR_HXX + +#include <tools/errcode.hxx> + +// Fehler Codes +#define RID_SO_ERROR_HANDLER 32000 + +#define SO_ERR() (ERRCODE_AREA_SO | ERRCODE_CLASS_SO) +#define SO_WRN() (ERRCODE_AREA_SO | ERRCODE_CLASS_SO | ERRCODE_WARNING_MASK) + +#define ERRCODE_SO_GENERALERROR (SO_ERR() | 1) +#define ERRCODE_SO_CANT_BINDTOSOURCE (SO_ERR() | 2) +#define ERRCODE_SO_NOCACHE_UPDATED (SO_ERR() | 3) +#define ERRCODE_SO_SOMECACHES_NOTUPDATED (SO_WRN() | 4) +#define ERRCODE_SO_MK_UNAVAILABLE (SO_ERR() | 5) +#define ERRCODE_SO_E_CLASSDIFF (SO_ERR() | 6) +#define ERRCODE_SO_MK_NO_OBJECT (SO_ERR() | 7) +#define ERRCODE_SO_MK_EXCEEDED_DEADLINE (SO_ERR() | 8) +#define ERRCODE_SO_MK_CONNECT_MANUALLY (SO_ERR() | 9) +#define ERRCODE_SO_MK_INTERMEDIATE_INTERFACE_NOT_SUPPORTED (SO_ERR() | 10) +#define ERRCODE_SO_NO_INTERFACE (SO_ERR() | 11) +#define ERRCODE_SO_OUT_OF_MEMORY (SO_ERR() | 12) +#define ERRCODE_SO_MK_SYNTAX (SO_ERR() | 13) +#define ERRCODE_SO_MK_REDUCED_TO_SELF (SO_WRN() | 14) +#define ERRCODE_SO_MK_NO_INVERSE (SO_ERR() | 15) +#define ERRCODE_SO_MK_NO_PREFIX (SO_ERR() | 16) +#define ERRCODE_SO_MK_HIM (SO_WRN() | 17) +#define ERRCODE_SO_MK_US (SO_WRN() | 18) +#define ERRCODE_SO_MK_ME (SO_WRN() | 19) +#define ERRCODE_SO_MK_NOT_BINDABLE (SO_ERR() | 20) +#define ERRCODE_SO_NOT_IMPLEMENTED (SO_ERR() | 21) +#define ERRCODE_SO_MK_NO_STORAGE (SO_ERR() | 22) +#define ERRCODE_SO_FALSE (SO_WRN() | 23) +#define ERRCODE_SO_MK_NEED_GENERIC (SO_ERR() | 24) +#define ERRCODE_SO_PENDING (SO_ERR() | 25) +#define ERRCODE_SO_NOT_INPLACEACTIVE (SO_ERR() | 26) +#define ERRCODE_SO_LINDEX (SO_ERR() | 27) +#define ERRCODE_SO_CANNOT_DOVERB_NOW (SO_WRN() | 28) +#define ERRCODE_SO_OLEOBJ_INVALIDHWND (SO_WRN() | 29) +#define ERRCODE_SO_NOVERBS (SO_ERR() | 30) +#define ERRCODE_SO_INVALIDVERB (SO_WRN() | 31) +#define ERRCODE_SO_MK_CONNECT (SO_ERR() | 32) +#define ERRCODE_SO_NOTIMPL (SO_ERR() | 33) +#define ERRCODE_SO_MK_CANTOPENFILE (SO_ERR() | 34) + +// Fehler Contexte +#define RID_SO_ERRCTX 32001 + +#define ERRCTX_SO_DOVERB 1 + + + +#endif + diff --git a/svtools/inc/svtools/sores.hxx b/svtools/inc/svtools/sores.hxx new file mode 100644 index 000000000000..e5a7e51b54cf --- /dev/null +++ b/svtools/inc/svtools/sores.hxx @@ -0,0 +1,179 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +// Strings +#define STR_INS_OBJECT 32000 +#define STR_INS_OBJECT_ICON 32001 +#define STR_INS_FILE 32002 +#define STR_INS_FILE_ICON 32003 +#define STR_INS_FILE_LINK 32004 +#define STR_INS_FILE_ICON_LINK 32005 +#define STR_PASTE 32012 +#define STR_ERROR_DDE 32013 +#define STR_ERROR_OBJNOCREATE 32014 +#define STR_ERROR_OBJNOCREATE_FROM_FILE 32015 +#define STR_VERB_OPEN 32016 +#define STR_PLUGIN_CANT_SHOW 32017 +#define STR_ERROR_OBJNOCREATE_PLUGIN 32018 +#define STR_INS_PLUGIN 32019 +#define STR_CONVERT_TO 32010 +#define STR_ACTIVATE_AS 32021 +#define STR_QUERYUPDATELINKS 32022 +#define STR_INS_APPLET 32023 +#define STR_VERB_PROPS 32025 +#define STR_FURTHER_OBJECT 32026 +#define STR_EDIT_APPLET 32029 +#define STR_UNKNOWN_SOURCE 32027 + +#define BMP_PLUGIN 32000 +#define BMP_OLEOBJ 32001 +#define MB_PLUGIN 32000 +#define MI_PLUGIN 32000 +#define MI_PLUGIN_DEACTIVATE 1 + +// Sot Format Strings +#define STR_FORMAT_START 32100 +#define STR_FORMAT_STRING (STR_FORMAT_START + 1) +#define STR_FORMAT_BITMAP (STR_FORMAT_START + 2) +#define STR_FORMAT_GDIMETAFILE (STR_FORMAT_START + 3) + // #define STR_FORMAT_PRIVATE (STR_FORMAT_START + 4) + // #define STR_FORMAT_FILE (STR_FORMAT_START + 5) + // #define STR_FORMAT_FILE_LIST (STR_FORMAT_START + 6) +#define STR_FORMAT_RTF (STR_FORMAT_START + 7) +#define STR_FORMAT_ID_DRAWING (STR_FORMAT_START + 8) +#define STR_FORMAT_ID_SVXB (STR_FORMAT_START + 9) + // #define STR_FORMAT_ID_SVIM (STR_FORMAT_START + 10) + // #define STR_FORMAT_ID_XFA (STR_FORMAT_START + 11) + // #define STR_FORMAT_ID_EDITENGINE (STR_FORMAT_START + 12) +#define STR_FORMAT_ID_INTERNALLINK_STATE (STR_FORMAT_START + 13) +#define STR_FORMAT_ID_SOLK (STR_FORMAT_START + 14) +#define STR_FORMAT_ID_NETSCAPE_BOOKMARK (STR_FORMAT_START + 15) + // #define STR_FORMAT_ID_TREELISTBOX (STR_FORMAT_START + 16) + // #define STR_FORMAT_ID_NATIVE (STR_FORMAT_START + 17) + // #define STR_FORMAT_ID_OWNERLINK (STR_FORMAT_START + 18) +#define STR_FORMAT_ID_STARSERVER (STR_FORMAT_START + 19) +#define STR_FORMAT_ID_STAROBJECT (STR_FORMAT_START + 20) +#define STR_FORMAT_ID_APPLETOBJECT (STR_FORMAT_START + 21) +#define STR_FORMAT_ID_PLUGIN_OBJECT (STR_FORMAT_START + 22) +#define STR_FORMAT_ID_STARWRITER_30 (STR_FORMAT_START + 23) +#define STR_FORMAT_ID_STARWRITER_40 (STR_FORMAT_START + 24) +#define STR_FORMAT_ID_STARWRITER_50 (STR_FORMAT_START + 25) +#define STR_FORMAT_ID_STARWRITERWEB_40 (STR_FORMAT_START + 26) +#define STR_FORMAT_ID_STARWRITERWEB_50 (STR_FORMAT_START + 27) +#define STR_FORMAT_ID_STARWRITERGLOB_40 (STR_FORMAT_START + 28) +#define STR_FORMAT_ID_STARWRITERGLOB_50 (STR_FORMAT_START + 29) +#define STR_FORMAT_ID_STARDRAW (STR_FORMAT_START + 30) +#define STR_FORMAT_ID_STARDRAW_40 (STR_FORMAT_START + 31) +#define STR_FORMAT_ID_STARIMPRESS_50 (STR_FORMAT_START + 32) +#define STR_FORMAT_ID_STARDRAW_50 (STR_FORMAT_START + 33) +#define STR_FORMAT_ID_STARCALC (STR_FORMAT_START + 34) +#define STR_FORMAT_ID_STARCALC_40 (STR_FORMAT_START + 35) +#define STR_FORMAT_ID_STARCALC_50 (STR_FORMAT_START + 36) +#define STR_FORMAT_ID_STARCHART (STR_FORMAT_START + 37) +#define STR_FORMAT_ID_STARCHART_40 (STR_FORMAT_START + 38) +#define STR_FORMAT_ID_STARCHART_50 (STR_FORMAT_START + 39) +#define STR_FORMAT_ID_STARIMAGE (STR_FORMAT_START + 40) +#define STR_FORMAT_ID_STARIMAGE_40 (STR_FORMAT_START + 41) +#define STR_FORMAT_ID_STARIMAGE_50 (STR_FORMAT_START + 42) +#define STR_FORMAT_ID_STARMATH (STR_FORMAT_START + 43) +#define STR_FORMAT_ID_STARMATH_40 (STR_FORMAT_START + 44) +#define STR_FORMAT_ID_STARMATH_50 (STR_FORMAT_START + 45) +#define STR_FORMAT_ID_STAROBJECT_PAINTDOC (STR_FORMAT_START + 46) + // #define STR_FORMAT_ID_FILLED_AREA (STR_FORMAT_START + 47) +#define STR_FORMAT_ID_HTML (STR_FORMAT_START + 48) +#define STR_FORMAT_ID_HTML_SIMPLE (STR_FORMAT_START + 49) + // #define STR_FORMAT_ID_CHAOS (STR_FORMAT_START + 50) + // #define STR_FORMAT_ID_CNT_MSGATTACHFILE (STR_FORMAT_START + 51) +#define STR_FORMAT_ID_BIFF_5 (STR_FORMAT_START + 52) +#define STR_FORMAT_ID_BIFF_8 (STR_FORMAT_START + 53) +#define STR_FORMAT_ID_SYLK (STR_FORMAT_START + 54) + // #define STR_FORMAT_ID_SYLK_BIGCAPS (STR_FORMAT_START + 55) +#define STR_FORMAT_ID_LINK (STR_FORMAT_START + 56) +#define STR_FORMAT_ID_DIF (STR_FORMAT_START + 57) + // #define STR_FORMAT_ID_STARDRAW_TABBAR (STR_FORMAT_START + 58) + // #define STR_FORMAT_ID_SONLK (STR_FORMAT_START + 59) +#define STR_FORMAT_ID_MSWORD_DOC (STR_FORMAT_START + 60) +#define STR_FORMAT_ID_STAR_FRAMESET_DOC (STR_FORMAT_START + 61) +#define STR_FORMAT_ID_OFFICE_DOC (STR_FORMAT_START + 62) +#define STR_FORMAT_ID_NOTES_DOCINFO (STR_FORMAT_START + 63) + // #define STR_FORMAT_ID_NOTES_HNOTE (STR_FORMAT_START + 64) + // #define STR_FORMAT_ID_NOTES_NATIVE (STR_FORMAT_START + 65) +#define STR_FORMAT_ID_SFX_DOC (STR_FORMAT_START + 66) + // #define STR_FORMAT_ID_EVDF (STR_FORMAT_START + 67) + // #define STR_FORMAT_ID_ESDF (STR_FORMAT_START + 68) + // #define STR_FORMAT_ID_IDF (STR_FORMAT_START + 69) + // #define STR_FORMAT_ID_EFTP (STR_FORMAT_START + 70) + // #define STR_FORMAT_ID_EFD (STR_FORMAT_START + 71) + // #define STR_FORMAT_ID_SVX_FORMFIELDEXCH (STR_FORMAT_START + 72) + // #define STR_FORMAT_ID_EXTENDED_TABBAR (STR_FORMAT_START + 73) + // #define STR_FORMAT_ID_SBA_DATAEXCHANGE (STR_FORMAT_START + 74) + // #define STR_FORMAT_ID_SBA_FIELDDATAEXCHANGE (STR_FORMAT_START + 75) + // #define STR_FORMAT_ID_SBA_PRIVATE_URL (STR_FORMAT_START + 76) + // #define STR_FORMAT_ID_SBA_TABED (STR_FORMAT_START + 77) + // #define STR_FORMAT_ID_SBA_TABID (STR_FORMAT_START + 78) + // #define STR_FORMAT_ID_SBA_JOIN (STR_FORMAT_START + 79) + // #define STR_FORMAT_ID_OBJECTDESCRIPTOR (STR_FORMAT_START + 80) + // #define STR_FORMAT_ID_LINKSRCDESCRIPTOR (STR_FORMAT_START + 81) + // #define STR_FORMAT_ID_EMBED_SOURCE (STR_FORMAT_START + 82) + // #define STR_FORMAT_ID_LINK_SOURCE (STR_FORMAT_START + 83) + // #define STR_FORMAT_ID_EMBEDDED_OBJ (STR_FORMAT_START + 84) + // #define STR_FORMAT_ID_FILECONTENT (STR_FORMAT_START + 85) +#define STR_FORMAT_ID_FILEGRPDESCRIPTOR (STR_FORMAT_START + 86) + // #define STR_FORMAT_ID_FILENAME (STR_FORMAT_START + 87) + // #define STR_FORMAT_ID_SD_OLE (STR_FORMAT_START + 88) + // #define STR_FORMAT_ID_EMBEDDED_OBJ_OLE (STR_FORMAT_START + 89) + // #define STR_FORMAT_ID_EMBED_SOURCE_OLE (STR_FORMAT_START + 90) + // #define STR_FORMAT_ID_OBJECTDESCRIPTOR_OLE (STR_FORMAT_START + 91) + // #define STR_FORMAT_ID_LINKSRCDESCRIPTOR_OLE (STR_FORMAT_START + 92) + // #define STR_FORMAT_ID_LINK_SOURCE_OLE (STR_FORMAT_START + 93) + // #define STR_FORMAT_ID_SBA_CTRLDATAEXCHANGE (STR_FORMAT_START + 94) + // #define STR_FORMAT_ID_OUTPLACE_OBJ (STR_FORMAT_START + 95) + // #define STR_FORMAT_ID_CNT_OWN_CLIP (STR_FORMAT_START + 96) + // #define STR_FORMAT_ID_INET_IMAGE (STR_FORMAT_START + 97) + // #define STR_FORMAT_ID_NETSCAPE_IMAGE (STR_FORMAT_START + 98) + // #define STR_FORMAT_ID_SBA_FORMEXCHANGE (STR_FORMAT_START + 99) + // #define STR_FORMAT_ID_SBA_REPORTEXCHANGE (STR_FORMAT_START + 100) + // #define STR_FORMAT_ID_UNIFORMRESOURCELOCATOR (STR_FORMAT_START + 101) +#define STR_FORMAT_ID_STARCHARTDOCUMENT_50 (STR_FORMAT_START + 102) +#define STR_FORMAT_ID_GRAPHOBJ (STR_FORMAT_START + 103) +#define STR_FORMAT_ID_STARWRITER_60 (STR_FORMAT_START + 104) +#define STR_FORMAT_ID_STARWRITERWEB_60 (STR_FORMAT_START + 105) +#define STR_FORMAT_ID_STARWRITERGLOB_60 (STR_FORMAT_START + 106) +#define STR_FORMAT_ID_STARDRAW_60 (STR_FORMAT_START + 107) +#define STR_FORMAT_ID_STARIMPRESS_60 (STR_FORMAT_START + 108) +#define STR_FORMAT_ID_STARCALC_60 (STR_FORMAT_START + 109) +#define STR_FORMAT_ID_STARCHART_60 (STR_FORMAT_START + 110) +#define STR_FORMAT_ID_STARMATH_60 (STR_FORMAT_START + 111) +#define STR_FORMAT_ID_WMF (STR_FORMAT_START + 112) +#define STR_FORMAT_ID_DBACCESS_QUERY (STR_FORMAT_START + 113) +#define STR_FORMAT_ID_DBACCESS_TABLE (STR_FORMAT_START + 114) +#define STR_FORMAT_ID_DBACCESS_COMMAND (STR_FORMAT_START + 115) +#define STR_FORMAT_ID_DIALOG_60 (STR_FORMAT_START + 116) + // #define STR_FORMAT_ID_EMF (STR_FORMAT_START + 117) + // #define STR_FORMAT_ID_BIFF_8 (STR_FORMAT_START + 118) +#define STR_FORMAT_ID_HTML_NO_COMMENT (STR_FORMAT_START + 119) +#define STR_FORMAT_END (STR_FORMAT_ID_HTML_NO_COMMENT) diff --git a/svtools/inc/svtools/statusbarcontroller.hxx b/svtools/inc/svtools/statusbarcontroller.hxx new file mode 100644 index 000000000000..7856d96bcd77 --- /dev/null +++ b/svtools/inc/svtools/statusbarcontroller.hxx @@ -0,0 +1,158 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVTOOLS_STATUSBARCONTROLLER_HXX +#define _SVTOOLS_STATUSBARCONTROLLER_HXX + +#include "svtools/svtdllapi.h" +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <com/sun/star/lang/XInitialization.hpp> +#include <com/sun/star/util/XUpdatable.hpp> +#include <com/sun/star/frame/XFrame.hpp> +#include <com/sun/star/frame/XDispatch.hpp> +#include <com/sun/star/frame/XStatusListener.hpp> +#include <com/sun/star/frame/XStatusbarController.hpp> +#include <com/sun/star/util/XURLTransformer.hpp> +#include <com/sun/star/frame/XLayoutManager.hpp> +#include <cppuhelper/weak.hxx> +#include <cppuhelper/interfacecontainer.hxx> +#include <comphelper/broadcasthelper.hxx> + +#ifndef INCLUDED_HASH_MAP +#include <hash_map> +#define INCLUDED_HASH_MAP +#endif + +#include <tools/gen.hxx> + +namespace svt +{ + +class SVT_DLLPUBLIC StatusbarController : public ::com::sun::star::frame::XStatusListener, + public ::com::sun::star::frame::XStatusbarController, + public ::com::sun::star::lang::XInitialization, + public ::com::sun::star::util::XUpdatable, + public ::com::sun::star::lang::XComponent, + public ::comphelper::OBaseMutex, + public ::cppu::OWeakObject +{ + public: + StatusbarController( const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >& rServiceManager, + const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& xFrame, + const rtl::OUString& aCommandURL, + unsigned short nID ); + StatusbarController(); + virtual ~StatusbarController(); + + ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > getFrameInterface() const; + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > getServiceManager() const; + ::com::sun::star::uno::Reference< ::com::sun::star::frame::XLayoutManager > getLayoutManager() const; + ::com::sun::star::uno::Reference< ::com::sun::star::util::XURLTransformer > getURLTransformer() const; + + void updateStatus( const rtl::OUString aCommandURL ); + void updateStatus(); + + ::Rectangle getControlRect() const; + + // XInterface + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL acquire() throw (); + virtual void SAL_CALL release() throw (); + + // XInitialization + virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); + + // XUpdatable + virtual void SAL_CALL update() throw (::com::sun::star::uno::RuntimeException); + + // XComponent + virtual void SAL_CALL dispose() throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException); + + // XEventListener + virtual void SAL_CALL disposing( const com::sun::star::lang::EventObject& Source ) throw ( ::com::sun::star::uno::RuntimeException ); + + // XStatusListener + virtual void SAL_CALL statusChanged( const ::com::sun::star::frame::FeatureStateEvent& Event ) throw ( ::com::sun::star::uno::RuntimeException ); + + // XStatusbarController + virtual ::sal_Bool SAL_CALL mouseButtonDown( const ::com::sun::star::awt::MouseEvent& aMouseEvent ) throw (::com::sun::star::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL mouseMove( const ::com::sun::star::awt::MouseEvent& aMouseEvent ) throw (::com::sun::star::uno::RuntimeException); + virtual ::sal_Bool SAL_CALL mouseButtonUp( const ::com::sun::star::awt::MouseEvent& aMouseEvent ) throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL command( const ::com::sun::star::awt::Point& aPos, + ::sal_Int32 nCommand, + ::sal_Bool bMouseEvent, + const ::com::sun::star::uno::Any& aData ) throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL paint( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics >& xGraphics, + const ::com::sun::star::awt::Rectangle& rOutputRectangle, + ::sal_Int32 nItemId, ::sal_Int32 nStyle ) throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL click() throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL doubleClick() throw (::com::sun::star::uno::RuntimeException); + + protected: + struct Listener + { + Listener( const ::com::sun::star::util::URL& rURL, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch >& rDispatch ) : + aURL( rURL ), xDispatch( rDispatch ) {} + + ::com::sun::star::util::URL aURL; + ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch > xDispatch; + }; + + typedef ::std::hash_map< ::rtl::OUString, + com::sun::star::uno::Reference< com::sun::star::frame::XDispatch >, + ::rtl::OUStringHash, + ::std::equal_to< ::rtl::OUString > > URLToDispatchMap; + + // methods to support status forwarder, known by the old sfx2 toolbox controller implementation + void addStatusListener( const rtl::OUString& aCommandURL ); + void removeStatusListener( const rtl::OUString& aCommandURL ); + void bindListener(); + void unbindListener(); + sal_Bool isBound() const; + + // execute methods + // execute bound status bar controller command/execute various commands + void execute( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aArgs ); + void execute( const rtl::OUString& aCommand, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aArgs ); + + sal_Bool m_bInitialized : 1, + m_bDisposed : 1; + unsigned short m_nID; + ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > m_xFrame; + ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > m_xParentWindow; + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xServiceManager; + rtl::OUString m_aCommandURL; + URLToDispatchMap m_aListenerMap; + ::cppu::OMultiTypeInterfaceContainerHelper m_aListenerContainer; /// container for ALL Listener + mutable ::com::sun::star::uno::Reference< ::com::sun::star::util::XURLTransformer > m_xURLTransformer; +}; + +} + +#endif // _SVTOOLS_TOOLBOXCONTROLLER_HXX diff --git a/svtools/inc/svtools/stdmenu.hxx b/svtools/inc/svtools/stdmenu.hxx new file mode 100644 index 000000000000..1b7e9816a103 --- /dev/null +++ b/svtools/inc/svtools/stdmenu.hxx @@ -0,0 +1,241 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _STDMENU_HXX +#define _STDMENU_HXX + +#include "svtools/svtdllapi.h" +#include <tools/link.hxx> +#ifndef _MENU_HXX +#include <vcl/menu.hxx> +#endif + +class FontList; +class FontInfo; + +/************************************************************************* + +Beschreibung +============ + +class FontNameMenu + +Beschreibung + +Erlaubt die Auswahl von Fonts. Das Menu wird ueber Fill mit den FontNamen +gefuellt. Fill sortiert automatisch die FontNamen (inkl. aller Umlaute und +sprachabhaengig). Mit SetCurName()/GetCurName() kann der aktuelle Fontname +gesetzt/abgefragt werden. Wenn SetCurName() mit einem leeren String +aufgerufen wird, wird kein Eintrag als aktueller angezeigt (fuer DontKnow). +Vor dem Selectaufruf wird der ausgewaehlte Name automatisch als aktueller +gesetzt und wuerde beim naechsten Aufruf auch als aktueller Name angezeigt +werden. Deshalb sollte vor PopupMenu::Execute() gegebenenfalls mit +SetCurName() der aktuelle Fontname gesetzt werden. + +Da die Id's und der interne Aufbau des Menus nicht bekannt ist, muss ein +Select-Handler gesetzt werden, um die Auswahl eines Namens mitzubekommen. + +In dieses Menu koennen keine weiteren Items eingefuegt werden. + +Spaeter soll auch das Menu die gleichen Bitmaps anzeigen, wie die +FontNameBox. Auf den Systemen, wo Menues nicht automatisch scrollen, +wird spaeter wohl ein A-Z Menu ziwschengeschaltet. Da ein Menu bei vielen +installierten Fonts bisher schon immer lange gebraucht hat, sollte dieses +Menu schon jetzt nur einmal erzeugt werden (da sonst das Kontextmenu bis +zu 10-Sekunden fuer die Erzeugung brauchen koennte). + +Querverweise + +FontList; FontStyleMenu; FontSizeMenu; FontNameBox + +-------------------------------------------------------------------------- + +class FontStyleMenu + +Beschreibung + +Erlaubt die Auswahl eines FontStyles. Mit Fill wird das FontStyleMenu mit +den Styles zum uebergebenen Font gefuellt. Nachgebildete Styles werden +immer mit eingefuegt (kann sich aber noch aendern, da vielleicht +nicht alle Applikationen [StarDraw,Formel,FontWork] mit Syntetic-Fonts +umgehen koennen). Mit SetCurStyle()/GetCurStyle() kann der aktuelle Fontstyle +gesetzt/abgefragt werden. Der Stylename muss mit FontList::GetStyleName() +ermittelt werden. Wenn SetCurStyle() mit einem leeren String aufgerufen wird, +wird kein Eintrag als aktueller angezeigt (fuer DontKnow). Vor dem Selectaufruf +wird der ausgewaehlte Style automatisch als aktueller gesetzt und wuerde beim +naechsten Aufruf auch als aktueller Style angezeigt werden. Deshalb sollte vor +PopupMenu::Execute() gegebenenfalls mit SetCurStyle() der aktuelle Style +gesetzt werden. Da die Styles vom ausgewaehlten Font abhaengen, sollte +nach einer Aenderung des Fontnamen das Menu mit Fill mit den Styles des +Fonts neu gefuellt werden. + +Mit GetCurStyle() kann der ausgewaehlte Style abgefragt +werden. Mit Check wird der Style gecheckt/uncheckt, welcher aktiv +ist. Der Stylename muss mit FontList::GetStyleName() ermittelt werden. Vor +dem Selectaufruf wird der ausgewaehlte Style automatisch gecheckt. Mit +UncheckAllStyles() koennen alle Fontstyles geuncheckt werden (zum Beispiel +fuer DontKnow). + +Da die Id's und der interne Aufbau des Menus nicht bekannt ist, muss ein +Select-Handler gesetzt werden, um die Auswahl eines Styles mitzubekommen. + +An dieses Menu kann ueber MENU_APPEND weitere Items eingefuegt werden. +Bei Fill werden nur Items entfernt, die die Id zwischen FONTSTYLEMENU_FIRSTID +und FONTSTYLEMENU_LASTID haben. + +Querverweise + +FontList; FontNameMenu; FontSizeMenu; FontStyleBox + +-------------------------------------------------------------------------- + +class FontSizeMenu + +Beschreibung + +Erlaubt die Auswahl von Fontgroessen. Ueber Fill wird das FontSizeMenu +gefuellt und ueber GetCurHeight() kann die ausgewaehlte Fontgroesse +abgefragt werden. Mit SetCurHeight()/GetCurHeight() kann die aktuelle +Fontgroesse gesetzt/abgefragt werden. Wenn SetCurHeight() mit 0 aufgerufen +wird, wird kein Eintrag als aktueller angezeigt (fuer DontKnow). Vor dem +Selectaufruf wird die ausgewaehlte Groesse automatisch als aktuelle gesetzt +und wuerde beim naechsten Aufruf auch als aktuelle Groesse angezeigt werden. +Deshalb sollte vor PopupMenu::Execute() gegebenenfalls mit SetCurHeight() +die aktuelle Groesse gesetzt werden. Da die Groessen vom ausgewaehlten Font +abhaengen, sollte nach einer Aenderung des Fontnamen das Menu mit Fill mit +den Groessen des Fonts neu gefuellt werden. + +Da die Id's und der interne Aufbau des Menus nicht bekannt ist, muss ein +Select-Handler gesetzt werden, um die Auswahl einer Groesse mitzubekommen. + +Alle Groessen werden in 10tel Point angegeben. + +In dieses Menu koennen keine weiteren Items eingefuegt werden. + +Spaeter soll das Menu je nach System die Groessen anders darstelllen. Zum +Beispiel koennte der Mac spaeter vielleicht einmal die Groessen als Outline +darstellen, die als Bitmap-Fonts vorhanden sind. + +Querverweise + +FontList; FontNameMenu; FontStyleMenu; FontSizeBox + +*************************************************************************/ + +// ---------------- +// - FontNameMenu - +// ---------------- + +class SVT_DLLPUBLIC FontNameMenu : public PopupMenu +{ +private: + XubString maCurName; + Link maSelectHdl; + Link maHighlightHdl; + +public: + FontNameMenu(); + virtual ~FontNameMenu(); + + virtual void Select(); + virtual void Highlight(); + + void Fill( const FontList* pList ); + + void SetCurName( const XubString& rName ); + const XubString& GetCurName() const { return maCurName; } + + void SetSelectHdl( const Link& rLink ) { maSelectHdl = rLink; } + const Link& GetSelectHdl() const { return maSelectHdl; } + void SetHighlightHdl( const Link& rLink ) { maHighlightHdl = rLink; } + const Link& GetHighlightHdl() const { return maHighlightHdl; } +}; + +// ----------------- +// - FontStyleMenu - +// ----------------- + +#define FONTSTYLEMENU_FIRSTID 62000 +#define FONTSTYLEMENU_LASTID 62999 + +class SVT_DLLPUBLIC FontStyleMenu : public PopupMenu +{ +private: + XubString maCurStyle; + Link maSelectHdl; + Link maHighlightHdl; + + SVT_DLLPRIVATE BOOL ImplIsAlreadyInserted( const XubString& rStyleName, USHORT nCount ); + +public: + FontStyleMenu(); + virtual ~FontStyleMenu(); + + virtual void Select(); + virtual void Highlight(); + + void Fill( const XubString& rName, const FontList* pList ); + void SetCurStyle( const XubString& rStyle ); + const XubString& GetCurStyle() const { return maCurStyle; } + + void SetSelectHdl( const Link& rLink ) { maSelectHdl = rLink; } + const Link& GetSelectHdl() const { return maSelectHdl; } + void SetHighlightHdl( const Link& rLink ) { maHighlightHdl = rLink; } + const Link& GetHighlightHdl() const { return maHighlightHdl; } +}; + +// ---------------- +// - FontSizeMenu - +// ---------------- + +class SVT_DLLPUBLIC FontSizeMenu : public PopupMenu +{ +private: + long* mpHeightAry; + long mnCurHeight; + Link maSelectHdl; + Link maHighlightHdl; + +public: + FontSizeMenu(); + ~FontSizeMenu(); + + virtual void Select(); + virtual void Highlight(); + + void Fill( const FontInfo& rInfo, const FontList* pList ); + + void SetCurHeight( long nHeight ); + long GetCurHeight() const { return mnCurHeight; } + + void SetSelectHdl( const Link& rLink ) { maSelectHdl = rLink; } + const Link& GetSelectHdl() const { return maSelectHdl; } + void SetHighlightHdl( const Link& rLink ) { maHighlightHdl = rLink; } + const Link& GetHighlightHdl() const { return maHighlightHdl; } +}; + +#endif // _STDMENU_HXX diff --git a/svtools/inc/svtools/svtdata.hxx b/svtools/inc/svtools/svtdata.hxx index eb5c5dad1b75..ad7b60b3f2b7 100644 --- a/svtools/inc/svtools/svtdata.hxx +++ b/svtools/inc/svtools/svtdata.hxx @@ -28,6 +28,7 @@ #ifndef _SVTOOLS_SVTDATA_HXX #define _SVTOOLS_SVTDATA_HXX +#include "svtools/svtdllapi.h" #include <tools/resid.hxx> #include <com/sun/star/lang/Locale.hpp> @@ -56,13 +57,11 @@ public: }; //============================================================================ -class SvtResId: public ResId +class SVT_DLLPUBLIC SvtResId: public ResId { public: - SvtResId(USHORT nId, const ::com::sun::star::lang::Locale aLocale): - ResId(nId, *ImpSvtData::GetSvtData().GetResMgr(aLocale)) {} - - SvtResId(USHORT nId): ResId(nId, *ImpSvtData::GetSvtData().GetResMgr()) {} + SvtResId(USHORT nId, const ::com::sun::star::lang::Locale aLocale); + SvtResId(USHORT nId); // VCL dependant, only available in SVT, not in SVL! }; diff --git a/svtools/inc/svtools/svtools.hrc b/svtools/inc/svtools/svtools.hrc index 3dd2f0706a2e..0461064f7d96 100644 --- a/svtools/inc/svtools/svtools.hrc +++ b/svtools/inc/svtools/svtools.hrc @@ -89,6 +89,10 @@ #define STR_BASICKEY_FORMAT_TRUE (RID_SVTOOLS_START+107) #define STR_BASICKEY_FORMAT_FALSE (RID_SVTOOLS_START+108) #define CONFIG_BASIC_FORMAT_END (RID_SVTOOLS_START+109) +#define STR_UNDO (RID_SVTOOLS_START+110) +#define STR_REDO (RID_SVTOOLS_START+111) +#define STR_REPEAT (RID_SVTOOLS_START+112) + #define STR_INVALIDTRYBUY (RID_SVTOOLS_START+120) #define STR_OLDTRYBUY (RID_SVTOOLS_START+121) diff --git a/svtools/inc/svtools/sychconv.hxx b/svtools/inc/svtools/sychconv.hxx new file mode 100644 index 000000000000..4056556a2100 --- /dev/null +++ b/svtools/inc/svtools/sychconv.hxx @@ -0,0 +1,47 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SYCHCONV_HXX +#define _SYCHCONV_HXX + +#include <tools/string.hxx> +#include <vcl/font.hxx> + +// ---------------------- +// - CharacterConverter - +// ---------------------- + +class OutputDevice; + +class SymCharConverter +{ +public: + + static BOOL Convert( Font& rFont, UniString& rString, OutputDevice* pDev = NULL ); +}; + +#endif // _CHARCONV_HXX diff --git a/svtools/inc/svtools/tabbar.hxx b/svtools/inc/svtools/tabbar.hxx new file mode 100644 index 000000000000..2757811ba34e --- /dev/null +++ b/svtools/inc/svtools/tabbar.hxx @@ -0,0 +1,560 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _TABBAR_HXX +#define _TABBAR_HXX + +#include "svtools/svtdllapi.h" +#include <tools/link.hxx> +#include <vcl/window.hxx> + +class MouseEvent; +class TrackingEvent; +class DataChangedEvent; +class ImplTabBarList; +class ImplTabButton; +class ImplTabSizer; +class TabBarEdit; + +// ----------------- +// - Dokumentation - +// ----------------- + +/* + +Erlaubte StyleBits +------------------ + +WB_SCROLL - Die Tabs koennen ueber ein Extra-Feld gescrollt werden +WB_MINSCROLL - Die Tabs koennen ueber 2 zusaetzliche Buttons gescrollt werden +WB_RANGESELECT - Zusammenhaengende Bereiche koennen selektiert werden +WB_MULTISELECT - Einzelne Tabs koennen selektiert werden +WB_BORDER - Oben und unten wird ein Strich gezeichnet +WB_TOPBORDER - Oben wird ein Border gezeichnet +WB_3DTAB - Die Tabs und der Border werden in 3D gezeichnet +WB_DRAG - Vom TabBar wird ein StartDrag-Handler gerufen, wenn + Drag and Drop gestartet werden soll. Es wird ausserdem + im TabBar mit EnableDrop() Drag and Drop eingeschaltet. +WB_SIZEABLE - Vom TabBar wird ein Split-Handler gerufen, wenn der Anwender + den TabBar in der Breite aendern will +WB_STDTABBAR - WB_BORDER + +Wenn man den TabBar zum Beispiel als Property-Bar benutzen moechte, sollten +die WinBits WB_TOPBORDER und WB_3DTAB anstatt WB_BORDER gesetzt werden. + + +Erlaubte PageBits +----------------- + +TPB_SPECIAL - Andere Darstellung des TabTextes, zum Beispiel fuer + Szenario-Seiten. + + +Handler +------- + +Select - Wird gerufen, wenn eine Tab selektiert oder + deselektiert wird +DoubleClick - Wird gerufen, wenn ein DoubleClick im TabBar ausgeloest + wurde. Innerhalb des Handlers liefert GetCurPageId() die + angeklickte Tab zurueck oder 0, wenn keine Tab angeklickt + wurde +ActivatePage - Wird gerufen, wenn eine andere Seite aktiviert wird. + GetCurPageId() gibt die aktivierte Seite zurueck. +DeactivatePage - Wird gerufen, wenn eine Seite deaktiviert wird. Wenn + eine andere Seite aktiviert werden darf, muss TRUE + zurueckgegeben werden, wenn eine andere Seite von + der Aktivierung ausgeschlossen werden soll, muss + FALSE zurueckgegeben werden. GetCurPageId() gibt die + zu deaktivierende Seite zurueck. + + + +Drag and Drop +------------- + +Fuer Drag and Drop muss das WinBit WB_DRAG gesetzt werden. Ausserdem +muss der Command-, QueryDrop-Handler und der Drop-Handler ueberlagert +werden. Dabei muss in den Handlern folgendes implementiert werden: + +Command - Wenn in diesem Handler das Dragging gestartet werden + soll, muss StartDrag() gerufen werden. Diese Methode + selektiert dann den entsprechenden Eintrag oder gibt + FALSE zurueck, wenn das Dragging nicht durchgefuhert + werden kann. + +QueryDrop - Dieser Handler wird von StarView immer dann gerufen, wenn + bei einem Drag-Vorgang die Maus ueber das Fenster gezogen + wird (siehe dazu auch SV-Doku). In diesem Handler muss + festgestellt werden, ob ein Drop moeglich ist. Die + Drop-Position kann im TabBar mit ShowDropPos() angezeigt + werden. Beim Aufruf muss die Position vom Event uebergeben + werden. Wenn sich die Position am linken oder rechten + Rand befindet, wird automatisch im TabBar gescrollt. + Diese Methode gibt auch die entsprechende Drop-Position + zurueck, die auch fuer ein Drop gebraucht wird. Wenn das + Fenster beim Drag verlassen wird, kann mit HideDropPos() + die DropPosition wieder weggenommen werden. Es ist dadurch + auch moeglich, ein von ausserhalb des TabBars ausgeloestes + Drag zu verarbeiten. + +Drop - Im Drop-Handler muessen dann die Pages verschoben werden, + oder die neuen Pages eingefuegt werden. Die entsprechende + Drop-Postion kann mit ShowDropPos() ermittelt werden. + +Folgende Methoden werden fuer Drag and Drop gebraucht und muessen von +den Handlern gerufen werden: + +StartDrag - Muss aus dem Commnad-Handler gerufen werden. Als Parameter + muss der CommandEvent uebergeben werden und eine Referenz + auf eine Region. Diese Region muss dann bei ExecuteDrag() + uebergeben werden, wenn der Rueckgabewert sagt, das + ExecuteDrag durchgefuehrt werden soll. Falls der Eintrag + nicht selektiert ist, wird er vorher als aktueller + Eintrag gesetzt. Es ist daher darauf zu achten, das aus + dieser Methode heraus der Select-Handler gerufen werden + kann. + +ShowDropPos - Diese Methode muss vom QueryDrop-Handler gerufen werden, + damit der TabBar anzeigt, wo die Tabs eingefuegt werden. + Diese Methode kann auch im Drop-Handler benutzt werden, + um die Position zu ermitteln wo die Tabs eingefuegt werden + sollen. In der Methode muss die Position vom Event + uebergeben werden. Diese Methode gibt die Position zurueck, + wo die Tabs eingefuegt werden sollen. + +HideDropPos - Diese Methode nimmt die vorher mit ShowDropPos() angezeigte + DropPosition wieder zurueck. Diese Methode sollte dann + gerufen werden, wenn bei QueryDrop() das Fenster verlassen + wird oder der Dragvorgang beendet wurde. + +Folgende Methoden koennen eingesetzt werden, wenn bei D&D die Seiten +umgeschaltet werden sollen: + +SwitchPage - Diese Methode muss vom QueryDrop-Handler gerufen werden, + wenn die Seite ueber der sich der Mousepointer befindet, + umgeschaltet werden soll. Diese Methode sollte jedesmal + gerufen werden, wenn der QueryDrop-Handler gerufen wird. + Das umschalten der Seite passiert zeitverzoegert (500 ms) + und wird automatisch von dieser Methode verwaltet. + In der Methode muss die Position vom Event uebergeben + werden. Diese Methode gibt TRUE zurueck, wenn die Page + umgeschaltet wurde. + +EndSwitchPage - Diese Methode setzt die Daten fuer das umschalten der + Seiten zurueck. Diese Methode sollte dann gerufen werden, + wenn bei QueryDrop() das Fenster verlassen wird oder + der Dragvorgang beendet wurde. + +IsInSwitching - Mit dieser Methode kann im ActivatePage()/DeactivatePage() + abgefragt werden, ob dies durch SwitchPage() veranlasst + wurde. So kann dann beispielsweise in DeactivatePage() + das Umschalten ohne eine Fehlerbox verhindert werden. + + +Fenster-Resize +-------------- + +Wenn das Fenster vom Anwender in der Breite geaendert werden kann, dann +muss das WinBit WB_SIZEABLE gesetzt werden. In diesem Fall muss noch +folgender Handler ueberlagert werden: + +Split - Wenn dieser Handler gerufen wird, sollte das Fenster + auf die Breite angepasst werden, die von GetSplitSize() + zurueckgegeben wird. Dabei wird keine minimale und + maximale Breite beruecksichtig. Eine minimale Breite + kann mit GetMinSize() abgefragt werden und die maximale + Breite muss von der Anwendung selber berechnet werden. + Da nur Online-Resize unterstuetzt wird, muss das Fenster + innerhalb dieses Handlers in der Breite geaendert + werden und eventuell abhaengige Fenster ebenfalls. Fuer + diesen Handler kann auch mit SetSplitHdl() ein + Link gesetzt werden. + +Folgende Methoden liefern beim Splitten weitere Informationen: + +GetSplitSize() - Liefert die Breite des TabBars zurueck, auf die der + Anwender das Fenster resizen will. Dabei wird keine + minimale oder maximale Breite beruecksichtigt. Es wird + jedoch nie eine Breite < 5 zurueckgeliefert. Diese Methode + liefert nur solange richtige Werte, wie Splitten aktiv + ist. + +GetMinSize() - Mit dieser Methode kann eine minimale Fensterbreite + abgefragt werden, so das min. etwas eines Tabs sichtbar + ist. Jedoch kann der TabBar immer noch schmaler gesetzt + werden, als die Breite, die diese Methode zurueckliefert. + Diese Methode kann auch aufgerufen werden, wenn kein + Splitten aktiv ist. + + +Edit-Modus +---------- + +Der Tabbar bietet auch Moeglichkeiten, das der Anwender in den Tabreitern +die Namen aendern kann. + +EnableEditMode - Damit kann eingestellt werden, das bei Alt+LeftClick + StartEditMode() automatisch vom TabBar gerufen wird. + Im StartRenaming()-Handler kann dann das Umbenennen + noch abgelehnt werden. +StartEditMode - Mit dieser Methode wird der EditModus auf einem + Tab gestartet. FALSE wird zurueckgegeben, wenn + der Editmodus schon aktiv ist, mit StartRenaming() + der Modus abgelehnt wurde oder kein Platz zum + Editieren vorhanden ist. +EndEditMode - Mit dieser Methode wird der EditModus beendet. +SetEditText - Mit dieser Methode kann der Text im AllowRenaming()- + Handler noch durch einen anderen Text ersetzt werden. +GetEditText - Mit dieser Methode kann im AllowRenaming()-Handler + der Text abgefragt werden, den der Anwender eingegeben + hat. +IsInEditMode - Mit dieser Methode kann abgefragt werden, ob der + Editmodus aktiv ist. +IsEditModeCanceled - Mit dieser Methode kann im EndRenaming()- + Handler abgefragt werden, ob die Umbenenung + abgebrochen wurde. +GetEditPageId - Mit dieser Methode wird in den Renaming-Handlern + abgefragt, welcher Tab umbenannt wird/wurde. + +StartRenaming() - Dieser Handler wird gerufen, wenn ueber StartEditMode() + der Editmodus gestartet wurde. Mit GetEditPageId() + kann abgefragt werden, welcher Tab umbenannt werden + soll. FALSE sollte zurueckgegeben werden, wenn + der Editmodus nicht gestartet werden soll. +AllowRenaming() - Dieser Handler wird gerufen, wenn der Editmodus + beendet wird (nicht bei Cancel). In diesem Handler + kann dann getestet werden, ob der Text OK ist. + Mit GetEditPageId() kann abgefragt werden, welcher Tab + umbenannt wurde. + Es sollte einer der folgenden Werte zurueckgegeben + werden: + TAB_RENAMING_YES + Der Tab wird umbenannt. + TAB_RENAMING_NO + Der Tab wird nicht umbenannt, der Editmodus bleibt + jedoch aktiv, so das der Anwender den Namen + entsprechent anpassen kann. + TAB_RENAMING_CANCEL + Der Editmodus wird abgebrochen und der alte + Text wieder hergestellt. +EndRenaming() - Dieser Handler wird gerufen, wenn der Editmodus + beendet wurde. Mit GetEditPageId() kann abgefragt + werden, welcher Tab umbenannt wurde. Mit + IsEditModeCanceled() kann abgefragt werden, ob der + Modus abgebrochen wurde und der Name dadurch nicht + geaendert wurde. + + +Maximale Pagebreite +------------------- + +Die Pagebreite der Tabs kann begrenzt werden, damit ein einfacheres +Navigieren ueber diese moeglich ist. Wenn der Text dann nicht komplett +angezeigt werden kann, wird er mit ... abgekuerzt und in der Tip- +oder der aktiven Hilfe (wenn kein Hilfetext gesetzt ist) wird dann der +ganze Text angezeigt. Mit EnableAutoMaxPageWidth() kann eingestellt +werden, ob die maximale Pagebreite sich nach der gerade sichtbaren +Breite richten soll (ist der default). Ansonsten kann auch die +maximale Pagebreite mit SetMaxPageWidth() (in Pixeln) gesetzt werden +(die AutoMaxPageWidth wird dann ignoriert). + + +KontextMenu +----------- + +Wenn ein kontextsensitives PopupMenu anzeigt werden soll, muss der +Command-Handler ueberlagert werden. Mit GetPageId() und bei +Uebergabe der Mausposition kann ermittelt werden, ob der Mausclick +ueber einem bzw. ueber welchem Item durchgefuehrt wurde. +*/ + +// ----------- +// - WinBits - +// ----------- + +#define WB_RANGESELECT ((WinBits)0x00200000) +#define WB_MULTISELECT ((WinBits)0x00400000) +#define WB_TOPBORDER ((WinBits)0x04000000) +#define WB_3DTAB ((WinBits)0x08000000) +#define WB_MINSCROLL ((WinBits)0x20000000) +#define WB_STDTABBAR WB_BORDER + +// ------------------ +// - TabBarPageBits - +// ------------------ + +typedef USHORT TabBarPageBits; + +// ------------------------- +// - Bits fuer TabBarPages - +// ------------------------- + +#define TPB_SPECIAL ((TabBarPageBits)0x0001) + +// ---------------- +// - TabBar-Types - +// ---------------- + +#define TABBAR_RENAMING_YES ((long)TRUE) +#define TABBAR_RENAMING_NO ((long)FALSE) +#define TABBAR_RENAMING_CANCEL ((long)2) + +// ---------- +// - TabBar - +// ---------- +struct TabBar_Impl; + +class SVT_DLLPUBLIC TabBar : public Window +{ + friend class ImplTabButton; + friend class ImplTabSizer; + +private: + ImplTabBarList* mpItemList; + ImplTabButton* mpFirstBtn; + ImplTabButton* mpPrevBtn; + ImplTabButton* mpNextBtn; + ImplTabButton* mpLastBtn; + TabBar_Impl* mpImpl; + TabBarEdit* mpEdit; + XubString maEditText; + Color maSelColor; + Color maSelTextColor; + Size maWinSize; + long mnMaxPageWidth; + long mnCurMaxWidth; + long mnOffX; + long mnOffY; + long mnLastOffX; + long mnSplitSize; + ULONG mnSwitchTime; + WinBits mnWinStyle; + USHORT mnCurPageId; + USHORT mnFirstPos; + USHORT mnDropPos; + USHORT mnSwitchId; + USHORT mnEditId; + BOOL mbFormat; + BOOL mbFirstFormat; + BOOL mbSizeFormat; + BOOL mbAutoMaxWidth; + BOOL mbInSwitching; + BOOL mbAutoEditMode; + BOOL mbEditCanceled; + BOOL mbDropPos; + BOOL mbInSelect; + BOOL mbSelColor; + BOOL mbSelTextColor; + BOOL mbMirrored; + Link maSelectHdl; + Link maDoubleClickHdl; + Link maSplitHdl; + Link maActivatePageHdl; + Link maDeactivatePageHdl; + Link maStartRenamingHdl; + Link maAllowRenamingHdl; + Link maEndRenamingHdl; + + using Window::ImplInit; + SVT_DLLPRIVATE void ImplInit( WinBits nWinStyle ); + SVT_DLLPRIVATE void ImplInitSettings( BOOL bFont, BOOL bBackground ); + SVT_DLLPRIVATE void ImplGetColors( Color& rFaceColor, Color& rFaceTextColor, + Color& rSelectColor, Color& rSelectTextColor ); + SVT_DLLPRIVATE void ImplShowPage( USHORT nPos ); + SVT_DLLPRIVATE BOOL ImplCalcWidth(); + SVT_DLLPRIVATE void ImplFormat(); + SVT_DLLPRIVATE USHORT ImplGetLastFirstPos(); + SVT_DLLPRIVATE void ImplInitControls(); + SVT_DLLPRIVATE void ImplEnableControls(); + SVT_DLLPRIVATE void ImplSelect(); + SVT_DLLPRIVATE void ImplActivatePage(); + SVT_DLLPRIVATE long ImplDeactivatePage(); + DECL_DLLPRIVATE_LINK( ImplClickHdl, ImplTabButton* ); + +public: + static const sal_uInt16 APPEND; + static const sal_uInt16 PAGE_NOT_FOUND; + + TabBar( Window* pParent, WinBits nWinStyle = WB_STDTABBAR ); + virtual ~TabBar(); + + virtual void MouseMove( const MouseEvent& rMEvt ); + virtual void MouseButtonDown( const MouseEvent& rMEvt ); + virtual void MouseButtonUp( const MouseEvent& rMEvt ); + virtual void Paint( const Rectangle& rRect ); + virtual void Resize(); + virtual void RequestHelp( const HelpEvent& rHEvt ); + virtual void StateChanged( StateChangedType nStateChange ); + virtual void DataChanged( const DataChangedEvent& rDCEvt ); + + virtual void Select(); + virtual void DoubleClick(); + virtual void Split(); + virtual void ActivatePage(); + virtual long DeactivatePage(); + virtual long StartRenaming(); + virtual long AllowRenaming(); + virtual void EndRenaming(); + virtual void Mirror(); + + void InsertPage( USHORT nPageId, const XubString& rText, + TabBarPageBits nBits = 0, + USHORT nPos = TabBar::APPEND ); + void RemovePage( USHORT nPageId ); + void MovePage( USHORT nPageId, USHORT nNewPos ); + + Color GetTabBgColor( USHORT nPageId ) const; + void SetTabBgColor( USHORT nPageId, const Color& aTabBgColor ); + BOOL IsDefaultTabBgColor( USHORT nPageId ); + + void Clear(); + + void EnablePage( USHORT nPageId, BOOL bEnable = TRUE ); + BOOL IsPageEnabled( USHORT nPageId ) const; + + void SetPageBits( USHORT nPageId, TabBarPageBits nBits = 0 ); + TabBarPageBits GetPageBits( USHORT nPageId ) const; + + USHORT GetPageCount() const; + USHORT GetPageId( USHORT nPos ) const; + USHORT GetPagePos( USHORT nPageId ) const; + USHORT GetPageId( const Point& rPos ) const; + Rectangle GetPageRect( USHORT nPageId ) const; + // returns the rectangle in which page tabs are drawn + Rectangle GetPageArea() const; + + void SetCurPageId( USHORT nPageId ); + USHORT GetCurPageId() const { return mnCurPageId; } + + void SetFirstPageId( USHORT nPageId ); + USHORT GetFirstPageId() const { return GetPageId( mnFirstPos ); } + void MakeVisible( USHORT nPageId ); + + void SelectPage( USHORT nPageId, BOOL bSelect = TRUE ); + void SelectPageRange( BOOL bSelect = FALSE, + USHORT nStartPos = 0, + USHORT nEndPos = TabBar::APPEND ); + USHORT GetSelectPage( USHORT nSelIndex = 0 ) const; + USHORT GetSelectPageCount() const; + BOOL IsPageSelected( USHORT nPageId ) const; + + void EnableAutoMaxPageWidth( BOOL bEnable = TRUE ) { mbAutoMaxWidth = bEnable; } + BOOL IsAutoMaxPageWidthEnabled() const { return mbAutoMaxWidth; } + void SetMaxPageWidth( long nMaxWidth ); + long GetMaxPageWidth() const { return mnMaxPageWidth; } + void ResetMaxPageWidth() { SetMaxPageWidth( 0 ); } + BOOL IsMaxPageWidth() const { return mnMaxPageWidth != 0; } + + void EnableEditMode( BOOL bEnable = TRUE ) { mbAutoEditMode = bEnable; } + BOOL IsEditModeEnabled() const { return mbAutoEditMode; } + BOOL StartEditMode( USHORT nPageId ); + void EndEditMode( BOOL bCancel = FALSE ); + void SetEditText( const XubString& rText ) { maEditText = rText; } + const XubString& GetEditText() const { return maEditText; } + BOOL IsInEditMode() const { return (mpEdit != NULL); } + BOOL IsEditModeCanceled() const { return mbEditCanceled; } + USHORT GetEditPageId() const { return mnEditId; } + + /** Mirrors the entire control including position of buttons and splitter. + Mirroring is done relative to the current direction of the GUI. + @param bMirrored TRUE = the control will draw itself RTL in LTR GUI, + and vice versa; FALSE = the control behaves according to the + current direction of the GUI. */ + void SetMirrored( BOOL bMirrored = TRUE ); + /** Returns TRUE, if the control is set to mirrored mode (see SetMirrored()). */ + BOOL IsMirrored() const { return mbMirrored; } + + /** Sets the control to LTR or RTL mode regardless of the GUI direction. + @param bRTL FALSE = the control will draw from left to right; + TRUE = the control will draw from right to left. */ + void SetEffectiveRTL( BOOL bRTL ); + /** Returns TRUE, if the control draws from right to left (see SetEffectiveRTL()). */ + BOOL IsEffectiveRTL() const; + + BOOL StartDrag( const CommandEvent& rCEvt, Region& rRegion ); + USHORT ShowDropPos( const Point& rPos ); + void HideDropPos(); + BOOL SwitchPage( const Point& rPos ); + void EndSwitchPage(); + BOOL IsInSwitching() { return mbInSwitching; } + + void SetSelectColor(); + void SetSelectColor( const Color& rColor ); + const Color& GetSelectColor() const { return maSelColor; } + BOOL IsSelectColor() const { return mbSelColor; } + void SetSelectTextColor(); + void SetSelectTextColor( const Color& rColor ); + const Color& GetSelectTextColor() const { return maSelTextColor; } + BOOL IsSelectTextColor() const { return mbSelTextColor; } + + void SetPageText( USHORT nPageId, const XubString& rText ); + XubString GetPageText( USHORT nPageId ) const; + void SetHelpText( USHORT nPageId, const XubString& rText ); + XubString GetHelpText( USHORT nPageId ) const; + void SetHelpId( USHORT nPageId, const rtl::OString& nHelpId ); + rtl::OString GetHelpId( USHORT nPageId ) const; + + long GetSplitSize() const { return mnSplitSize; } + long GetMinSize() const; + + void SetHelpText( const XubString& rText ) + { Window::SetHelpText( rText ); } + XubString GetHelpText() const + { return Window::GetHelpText(); }; + void SetHelpId( const rtl::OString& rId ) + { Window::SetHelpId( rId ); } + const rtl::OString& GetHelpId() const + { return Window::GetHelpId(); } + + void SetStyle( WinBits nStyle ); + WinBits GetStyle() const { return mnWinStyle; } + + Size CalcWindowSizePixel() const; + + void SetSelectHdl( const Link& rLink ) { maSelectHdl = rLink; } + const Link& GetSelectHdl() const { return maSelectHdl; } + void SetDoubleClickHdl( const Link& rLink ) { maDoubleClickHdl = rLink; } + const Link& GetDoubleClickHdl() const { return maDoubleClickHdl; } + void SetSplitHdl( const Link& rLink ) { maSplitHdl = rLink; } + const Link& GetSplitHdl() const { return maSplitHdl; } + void SetActivatePageHdl( const Link& rLink ) { maActivatePageHdl = rLink; } + const Link& GetActivatePageHdl() const { return maActivatePageHdl; } + void SetDeactivatePageHdl( const Link& rLink ) { maDeactivatePageHdl = rLink; } + const Link& GetDeactivatePageHdl() const { return maDeactivatePageHdl; } + void SetStartRenamingHdl( const Link& rLink ) { maStartRenamingHdl = rLink; } + const Link& GetStartRenamingHdl() const { return maStartRenamingHdl; } + void SetAllowRenamingHdl( const Link& rLink ) { maAllowRenamingHdl = rLink; } + const Link& GetAllowRenamingHdl() const { return maAllowRenamingHdl; } + void SetEndRenamingHdl( const Link& rLink ) { maEndRenamingHdl = rLink; } + const Link& GetEndRenamingHdl() const { return maEndRenamingHdl; } + + // accessibility + virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > CreateAccessible(); +}; + +#endif // _TABBAR_HXX diff --git a/svtools/inc/svtools/taskbar.hxx b/svtools/inc/svtools/taskbar.hxx new file mode 100644 index 000000000000..d4a6699e2d5e --- /dev/null +++ b/svtools/inc/svtools/taskbar.hxx @@ -0,0 +1,490 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _TASKBAR_HXX +#define _TASKBAR_HXX + +#include "svtools/svtdllapi.h" +#include <tools/time.hxx> +#ifndef _TOOLS_LIST_HXX +#include <tools/list.hxx> +#endif +#include <vcl/timer.hxx> +#include <vcl/toolbox.hxx> +#include <vcl/status.hxx> + +class TaskBar; +class TaskStatusFieldItem; +class ImplTaskItemList; +class ImplTaskSBItemList; +class ImplTaskBarFloat; +struct ImplTaskSBFldItem; + +// ----------------- +// - Dokumentation - +// ----------------- + +/* + +TaskToolBox +=========== + +StartUpdateTask()/UpdateTask()/EndUpdateTask() +Diese muessen gerufen werden, wenn die Task upgedatet werden muessen. +Dann muss StartUpdateTask() gerufen werden, dann UpdateTask() fuer alle +Task's und danach EndUpdateTask() wo dann die TaskButtons entsprechend +neu angeordnet werden. + +ActivateTask() +Handler der gerufen wird, wenn ein Task aktiviert werden muss. Mit +GetTaskItem() kann abgefragt werden, welcher Task aktiviert werden muss. + +ContextMenu() +Dieser Handler wird gerufen, wenn ein ContextMenu angezeigt werden soll. +Mit GetTaskMode() kann abgefragt werden, ob fuer einen Task oder ein +Item. + +GetTaskItem() +Diese Methode liefert das Item zurueck, welches bei UpdateTask an der +entsprechenden Position eingefuegt wurde. + +GetContextMenuPos() +Liefert die Position zurueck, wo das Contextmenu angezeigt werden soll. + + +TaskStatusBar +============= + +InsertStatusField()/RemoveStatusField() +Fuegt ein Statusfeld ein, wo die aktuelle Uhrzeit angezeigt wird. In +dieses Feld koennen dann mit AddStatusFielItem(), ModifyStatusFielItem() +und RemoveStatusFielItem() Status-Items eingefuegt werden. Bei diesen +muss man ein Image angeben, welches dann angezeigt wird. Ausserdem kann +man bei diesen noch Hilfe-Texte angeben oder sagen, ob sie blinken +sollen und ein Notify-Object, worueber man informiert wird, wenn ein +Kontextmenu angezeigt wird oder das Item angeklickt wird. Am +TaskStatusBar kann auch ein Notify-Object gesetzt werden, wenn man +benachrichtigt werden will, wenn die Uhrzeit oder die TaskStatusBar +angeklickt wird. Wenn der Notify fuer die Uhrzeit kommt, ist die +Id TASKSTATUSBAR_CLOCKID, wenn er fuer die TaskStatusBar kommt, ist +die Id 0. Mit SetFieldFlags() kann am TaskStatusBar auch die Flags +hinterher umgesetzt werden, um zum Beispiel die Uhrzeit ein- und +auszuschalten. + + +TaskBar +======= + +Erlaubte StyleBits +------------------ + +WB_BORDER - Border an der oberen Kante +WB_SIZEABLE - Zwischen TaskToolBox und TaskStatusBar kann der Anwender + die Groesse aendern. + +Wenn WB_SIZEABLE gesetzt ist, kann die Breite des StatusBars gesetzt und +abgefragt werden. Dazu kann man SetStatusSize()/GetStatusSize() aufrufen. +0 steht dabei fuer optimale Groesse, was auch der Default ist. Bei einem +Doppelklick auf den Trenner kann der Anwender auch wieder die optimale +Groesse einstellen. + +Wichtige Methoden +------------------ + +virtual TaskToolBox* TaskBar::CreateButtonBar(); +virtual TaskToolBox* TaskBar::CreateTaskToolBox(); +virtual TaskStatusBar* TaskBar::CreateTaskStatusBar(); + +Diese Methoden muesste man ueberladen, wenn man eine eigene Klasse anlegen +will. + +void TaskBar::ShowStatusText( const String& rText ); +void TaskBar::HideStatusText(); + +Blendet den ButtonBar und die TaskBar ein bzw. aus um den Hilfetexte in der +gesammten Zeile anzuzeigen. +*/ + +// ----------------- +// - TaskButtonBar - +// ----------------- + +class TaskButtonBar : public ToolBox +{ + friend class TaskBar; + +private: + TaskBar* mpNotifyTaskBar; + void* mpDummy1; + void* mpDummy2; + void* mpDummy3; + void* mpDummy4; + +public: + TaskButtonBar( Window* pParent, WinBits nWinStyle = 0 ); + ~TaskButtonBar(); + + virtual void RequestHelp( const HelpEvent& rHEvt ); + + void InsertButton( USHORT nItemId, + const Image& rImage, const String& rText, + USHORT nPos = TOOLBOX_APPEND ) + { InsertItem( nItemId, rImage, rText, TIB_LEFT | TIB_AUTOSIZE, nPos ); } + void RemoveButton( USHORT nItemId ) + { RemoveItem( nItemId ); } +}; + +// --------------------- +// - TaskToolBox-Types - +// --------------------- + +#define TASKTOOLBOX_TASK_NOTFOUND ((USHORT)0xFFFF) + +// --------------- +// - TaskToolBox - +// --------------- + +class SVT_DLLPUBLIC TaskToolBox : public ToolBox +{ + friend class TaskBar; + +private: + ImplTaskItemList* mpItemList; + TaskBar* mpNotifyTaskBar; + Point maContextMenuPos; + ULONG mnOldItemCount; + long mnMaxTextWidth; + long mnDummy1; + USHORT mnUpdatePos; + USHORT mnUpdateNewPos; + USHORT mnActiveItemId; + USHORT mnNewActivePos; + USHORT mnTaskItem; + USHORT mnSmallItem; + USHORT mnDummy2; + BOOL mbMinActivate; + BOOL mbDummy1; + Link maActivateTaskHdl; + Link maContextMenuHdl; + +#ifdef _TASKBAR_CXX + SVT_DLLPRIVATE void ImplFormatTaskToolBox(); +#endif + + // Forbidden and not implemented. + TaskToolBox (const TaskToolBox &); + TaskToolBox & operator= (const TaskToolBox &); + +public: + TaskToolBox( Window* pParent, WinBits nWinStyle = 0 ); + ~TaskToolBox(); + + void ActivateTaskItem( USHORT nItemId, + BOOL bMinActivate = FALSE ); + USHORT GetTaskItem( const Point& rPos ) const; + + virtual void ActivateTask(); + virtual void ContextMenu(); + + virtual void Select(); + + virtual void MouseButtonDown( const MouseEvent& rMEvt ); + virtual void Resize(); + virtual void Command( const CommandEvent& rCEvt ); + virtual void RequestHelp( const HelpEvent& rHEvt ); + + void StartUpdateTask(); + void UpdateTask( const Image& rImage, const String& rText, + BOOL bActive = FALSE ); + void EndUpdateTask(); + + const Point& GetContextMenuPos() const { return maContextMenuPos; } + USHORT GetTaskItem() const { return mnTaskItem; } + BOOL IsMinActivate() const { return mbMinActivate; } + + void SetActivateTaskHdl( const Link& rLink ) { maActivateTaskHdl = rLink; } + const Link& GetActivateTaskHdl() const { return maActivateTaskHdl; } + void SetContextMenuHdl( const Link& rLink ) { maContextMenuHdl = rLink; } + const Link& GetContextMenuHdl() const { return maContextMenuHdl; } +}; + +inline USHORT TaskToolBox::GetTaskItem( const Point& rPos ) const +{ + USHORT nId = GetItemId( rPos ); + if ( nId ) + return nId-1; + else + return TASKTOOLBOX_TASK_NOTFOUND; +} + +// --------------------- +// - ITaskStatusNotify - +// --------------------- + +class ITaskStatusNotify +{ +public: + virtual BOOL MouseButtonDown( USHORT nItemd, const MouseEvent& rMEvt ); + virtual BOOL MouseButtonUp( USHORT nItemd, const MouseEvent& rMEvt ); + virtual BOOL MouseMove( USHORT nItemd, const MouseEvent& rMEvt ); + virtual BOOL Command( USHORT nItemd, const CommandEvent& rCEvt ); + virtual BOOL UpdateHelp( USHORT nItemd ); +}; + +// ----------------------- +// - TaskStatusFieldItem - +// ----------------------- + +#define TASKSTATUSFIELDITEM_FLASH ((USHORT)0x0001) + +class TaskStatusFieldItem +{ +private: + ITaskStatusNotify* mpNotify; + Image maImage; + XubString maQuickHelpText; + XubString maHelpText; + rtl::OString maHelpId; + USHORT mnFlags; + +public: + TaskStatusFieldItem(); + TaskStatusFieldItem( const TaskStatusFieldItem& rItem ); + TaskStatusFieldItem( ITaskStatusNotify* pNotify, + const Image& rImage, + const XubString& rQuickHelpText, + const XubString& rHelpText, + USHORT nFlags ); + ~TaskStatusFieldItem(); + + void SetNotifyObject( ITaskStatusNotify* pNotify ) { mpNotify = pNotify; } + ITaskStatusNotify* GetNotifyObject() const { return mpNotify; } + void SetImage( const Image& rImage ) { maImage = rImage; } + const Image& GetImage() const { return maImage; } + void SetQuickHelpText( const XubString& rStr ) { maQuickHelpText = rStr; } + const XubString& GetQuickHelpText() const { return maQuickHelpText; } + void SetHelpText( const XubString& rStr ) { maHelpText = rStr; } + const XubString& GetHelpText() const { return maHelpText; } + void SetHelpId( const rtl::OString& rHelpId ) { maHelpId = rHelpId; } + const rtl::OString& GetHelpId() const { return maHelpId; } + void SetFlags( USHORT nFlags ) { mnFlags = nFlags; } + USHORT GetFlags() const { return mnFlags; } + + const TaskStatusFieldItem& operator=( const TaskStatusFieldItem& rItem ); +}; + +// ----------------- +// - TaskStatusBar - +// ----------------- + +#define TASKSTATUSBAR_STATUSFIELDID ((USHORT)61000) + +#define TASKSTATUSBAR_CLOCKID ((USHORT)61000) +#define TASKSTATUSFIELD_CLOCK ((USHORT)0x0001) + +class SVT_DLLPUBLIC TaskStatusBar : public StatusBar +{ + friend class TaskBar; + +private: + ImplTaskSBItemList* mpFieldItemList; + TaskBar* mpNotifyTaskBar; + ITaskStatusNotify* mpNotify; + Time maTime; + XubString maTimeText; + AutoTimer maTimer; + long mnClockWidth; + long mnItemWidth; + long mnFieldWidth; + USHORT mnFieldFlags; + USHORT mnDummy1; + BOOL mbFlashItems; + BOOL mbOutInterval; + BOOL mbDummy1; + BOOL mbDummy2; + +#ifdef _TASKBAR_CXX + SVT_DLLPRIVATE ImplTaskSBFldItem* ImplGetFieldItem( USHORT nItemId ) const; + SVT_DLLPRIVATE ImplTaskSBFldItem* ImplGetFieldItem( const Point& rPos, BOOL& rFieldRect ) const; + SVT_DLLPRIVATE BOOL ImplUpdateClock(); + SVT_DLLPRIVATE BOOL ImplUpdateFlashItems(); + SVT_DLLPRIVATE void ImplUpdateField( BOOL bItems ); + DECL_DLLPRIVATE_LINK( ImplTimerHdl, Timer* ); +#endif + +public: + TaskStatusBar( Window* pParent, WinBits nWinStyle = WB_LEFT ); + ~TaskStatusBar(); + + virtual void MouseButtonDown( const MouseEvent& rMEvt ); + virtual void MouseButtonUp( const MouseEvent& rMEvt ); + virtual void MouseMove( const MouseEvent& rMEvt ); + virtual void Command( const CommandEvent& rCEvt ); + virtual void RequestHelp( const HelpEvent& rHEvt ); + virtual void UserDraw( const UserDrawEvent& rUDEvt ); + + void InsertStatusField( long nOffset = STATUSBAR_OFFSET, + USHORT nPos = STATUSBAR_APPEND, + USHORT nFlags = TASKSTATUSFIELD_CLOCK ); + void RemoveStatusField() + { maTimer.Stop(); RemoveItem( TASKSTATUSBAR_STATUSFIELDID ); } + void SetFieldFlags( USHORT nFlags ); + USHORT GetFieldFlags() const { return mnFieldFlags; } + void SetNotifyObject( ITaskStatusNotify* pNotify ) { mpNotify = pNotify; } + ITaskStatusNotify* GetNotifyObject() const { return mpNotify; } + + void AddStatusFieldItem( USHORT nItemId, const TaskStatusFieldItem& rItem, + USHORT nPos = 0xFFFF ); + void ModifyStatusFieldItem( USHORT nItemId, const TaskStatusFieldItem& rItem ); + void RemoveStatusFieldItem( USHORT nItemId ); + BOOL GetStatusFieldItem( USHORT nItemId, TaskStatusFieldItem& rItem ) const; +}; + +// ----------- +// - TaskBar - +// ----------- + +class SVT_DLLPUBLIC TaskBar : public Window +{ +private: + ImplTaskBarFloat* mpAutoHideBar; + TaskButtonBar* mpButtonBar; + TaskToolBox* mpTaskToolBox; + TaskStatusBar* mpStatusBar; + void* mpDummy1; + void* mpDummy2; + void* mpDummy3; + void* mpDummy4; + String maOldText; + long mnStatusWidth; + long mnMouseOff; + long mnOldStatusWidth; + long mnDummy1; + long mnDummy2; + long mnDummy3; + long mnDummy4; + WinBits mnWinBits; + USHORT mnLines; + BOOL mbStatusText; + BOOL mbShowItems; + BOOL mbAutoHide; + BOOL mbAlignDummy1; + BOOL mbDummy1; + BOOL mbDummy2; + BOOL mbDummy3; + BOOL mbDummy4; + Link maTaskResizeHdl; + +#ifdef _TASKBAR_CXX + SVT_DLLPRIVATE void ImplInitSettings(); + SVT_DLLPRIVATE void ImplNewHeight( long nNewHeight ); +#endif + +public: + TaskBar( Window* pParent, WinBits nWinStyle = WB_BORDER | WB_SIZEABLE ); + ~TaskBar(); + + virtual void TaskResize(); + + virtual TaskButtonBar* CreateButtonBar(); + virtual TaskToolBox* CreateTaskToolBox(); + virtual TaskStatusBar* CreateTaskStatusBar(); + + virtual void MouseMove( const MouseEvent& rMEvt ); + virtual void MouseButtonDown( const MouseEvent& rMEvt ); + virtual void Tracking( const TrackingEvent& rMEvt ); + virtual void Paint( const Rectangle& rRect ); + virtual void Resize(); + virtual void StateChanged( StateChangedType nType ); + virtual void DataChanged( const DataChangedEvent& rDCEvt ); + + void Format(); + + void SetLines( USHORT nLines ); + USHORT GetLines() const { return mnLines; } + void EnableAutoHide( BOOL bAutoHide = TRUE ); + BOOL IsAutoHideEnabled() const { return mbAutoHide; } + + void ShowStatusText( const String& rText ); + void HideStatusText(); + + void SetStatusSize( long nNewSize ) + { mnStatusWidth=nNewSize; Resize(); } + long GetStatusSize() const { return mnStatusWidth; } + + Size CalcWindowSizePixel() const; + + TaskButtonBar* GetButtonBar() const; + TaskToolBox* GetTaskToolBox() const; + TaskStatusBar* GetStatusBar() const; + + void SetTaskResizeHdl( const Link& rLink ) { maTaskResizeHdl = rLink; } + const Link& GetTaskResizeHdl() const { return maTaskResizeHdl; } +}; + +// ----------------------- +// - WindowArrange-Types - +// ----------------------- + +#define WINDOWARRANGE_TILE 1 +#define WINDOWARRANGE_HORZ 2 +#define WINDOWARRANGE_VERT 3 +#define WINDOWARRANGE_CASCADE 4 + +class ImplWindowArrangeList; + +// ----------------------- +// - class WindowArrange - +// ----------------------- + +class SVT_DLLPUBLIC WindowArrange +{ +private: + List* mpWinList; + void* mpDummy; + ULONG mnDummy; + +#ifdef _TASKBAR_CXX + SVT_DLLPRIVATE void ImplTile( const Rectangle& rRect ); + SVT_DLLPRIVATE void ImplHorz( const Rectangle& rRect ); + SVT_DLLPRIVATE void ImplVert( const Rectangle& rRect ); + SVT_DLLPRIVATE void ImplCascade( const Rectangle& rRect ); +#endif + +public: + WindowArrange(); + ~WindowArrange(); + + void AddWindow( Window* pWindow, ULONG nPos = LIST_APPEND ) + { mpWinList->Insert( (void*)pWindow, nPos ); } + void RemoveAllWindows() + { mpWinList->Clear(); } + + void Arrange( USHORT nType, const Rectangle& rRect ); +}; + +#endif // _TASKBAR_HXX diff --git a/svtools/inc/svtools/templatefoldercache.hxx b/svtools/inc/svtools/templatefoldercache.hxx new file mode 100644 index 000000000000..25d5080bd748 --- /dev/null +++ b/svtools/inc/svtools/templatefoldercache.hxx @@ -0,0 +1,108 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef SFX2_TEMPLATEFOLDERCACHE_HXX +#define SFX2_TEMPLATEFOLDERCACHE_HXX + +#include "svtools/svtdllapi.h" +#include <sal/types.h> + +//......................................................................... +namespace svt +{ +//......................................................................... + + //===================================================================== + //= TemplateFolderCache + //===================================================================== + class TemplateFolderCacheImpl; + /** allows to cache the state of the template directories of OOo + <p>Usually, this class is used together with an instance of a the + <service scope="com.sun.star.frame">DocumentTemplates</service> service. It allows to scan the template folders + of the Office, and updates the configuration so that it reflects the most recent state of the folders.<br/> + As this is an expensive, the TemplateFolderCache has been introduced. It caches the state of the template + folders, and allows to determine if the DocumentTemplates service needs to be invoked to do the (much more expensive) + update.</p> + @example C++ + <listing> + TemplateFolderCache aTemplateFolders; + if ( aTemplateFolders.needsUpdate() ) + { + // store the current state + aCache.storeState(); + + // create the DocumentTemplates instance + Reference< XDocumentTemplates > xTemplates = ...; + + // update the templates configuration + xTemplates->update(); + } + + // do anything which relies on a up-to-date template configuration + </listing> + */ + class SVT_DLLPUBLIC TemplateFolderCache + { + private: + TemplateFolderCacheImpl* m_pImpl; + + public: + /** ctor. + @param _bAutoStoreState + Set this to <TRUE/> if you want the instance to automatically store the state of the template folders upon + destruction.<br/> + If set to <FALSE/>, you would epplicitly need to call <method>storeState</method> to do this.<br/> + If the current state is not known (e.g. because you did not call needsUpdate, which retrieves it), + it is not retrieved in the dtor, regardless of the <arg>_bAutoStoreState</arg> flag. + */ + TemplateFolderCache( sal_Bool _bAutoStoreState = sal_False ); + ~TemplateFolderCache( ); + + /** determines whether or not the template configuration needs to be updated + @param _bForceCheck + set this to <TRUE/> if you want the object to rescan the template folders in every case. The default (<FALSE/>) + means that once the information has been retrieved in a first call, every second call returns the same result + as the first one, even if in the meantime the template folders changed. + @return + <TRUE/> if the template configuration needs to be updated + */ + sal_Bool needsUpdate( sal_Bool _bForceCheck = sal_False ); + + /** stores the current state of the template folders in the cache + @param _bForceRetrieval + if set to <TRUE/>, the current state of the template folders is retrieved again, even if it is already known. + Usually, you set this to <FALSE/>: After calling <method>needsUpdate</method>, the state is know and does not + need to be read again. + */ + void storeState( sal_Bool _bForceRetrieval = sal_False ); + }; + +//......................................................................... +} // namespace svt +//......................................................................... + +#endif // SFX2_TEMPLATEFOLDERCACHE_HXX diff --git a/svtools/inc/svtools/templdlg.hxx b/svtools/inc/svtools/templdlg.hxx new file mode 100644 index 000000000000..f08f7cc8770d --- /dev/null +++ b/svtools/inc/svtools/templdlg.hxx @@ -0,0 +1,92 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVTOOLS_TEMPLDLG_HXX +#define _SVTOOLS_TEMPLDLG_HXX + +#include "svtools/svtdllapi.h" + +#include <vcl/button.hxx> +#include <vcl/dialog.hxx> +#include <vcl/fixed.hxx> +#include <svtools/fixedhyper.hxx> + +struct SvtTmplDlg_Impl; + +// class SvtDocumentTemplateDialog --------------------------------------- + +class SvtTemplateWindow; + +class SVT_DLLPUBLIC SvtDocumentTemplateDialog : public ModalDialog +{ +private: + svt::FixedHyperlink aMoreTemplatesLink; + FixedLine aLine; + PushButton aManageBtn; + PushButton aEditBtn; + OKButton aOKBtn; + CancelButton aCancelBtn; + HelpButton aHelpBtn; + + SvtTmplDlg_Impl* pImpl; + + DECL_DLLPRIVATE_LINK( SelectHdl_Impl, SvtTemplateWindow* ); + DECL_DLLPRIVATE_LINK( DoubleClickHdl_Impl, SvtTemplateWindow* ); + DECL_DLLPRIVATE_LINK( NewFolderHdl_Impl, SvtTemplateWindow* ); + DECL_DLLPRIVATE_LINK( SendFocusHdl_Impl, SvtTemplateWindow* ); + DECL_DLLPRIVATE_LINK( OKHdl_Impl, PushButton* ); + DECL_DLLPRIVATE_LINK( OrganizerHdl_Impl, PushButton* ); + DECL_DLLPRIVATE_LINK( UpdateHdl_Impl, Timer* ); + DECL_DLLPRIVATE_LINK( OpenLinkHdl_Impl, svt::FixedHyperlink* ); + +public: + SvtDocumentTemplateDialog( Window* pParent ); + + /** ctor for calling the dialog for <em>selection</em> only, not for <em>opening</em> a document + <p>If you use this ctor, the dialog will behave differently in the following areas: + <ul><li>The <em>Edit</em> button will be hidden.</li> + <li>Upon pressing em>Open</em>, the selected file will not be opened. Instead, it's + URL is available (see <method>GetSelectedFileURL</method>).</li> + </ul> + + */ + struct SelectOnly { }; + SvtDocumentTemplateDialog( Window* _pParent, SelectOnly ); + + ~SvtDocumentTemplateDialog(); + + sal_Bool IsFileSelected( ) const; + String GetSelectedFileURL( ) const; + + void SelectTemplateFolder(); + +private: + SVT_DLLPRIVATE void InitImpl( ); + SVT_DLLPRIVATE sal_Bool CanEnableEditBtn() const; +}; + +#endif // _SVTOOLS_TEMPLDLG_HXX + diff --git a/svtools/inc/svtools/testtool.hxx b/svtools/inc/svtools/testtool.hxx new file mode 100644 index 000000000000..ea00fe33cdbf --- /dev/null +++ b/svtools/inc/svtools/testtool.hxx @@ -0,0 +1,75 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef SVTOOLS_TESTTOOL_HXX +#define SVTOOLS_TESTTOOL_HXX + +#include <tools/solar.h> +#include <tools/link.hxx> +#include <tools/string.hxx> + +class Application; +class SvStream; + +class StatementFlow; +class CommunicationManager; +class CommunicationLink; +#if OSL_DEBUG_LEVEL > 1 +class EditWindow; +#endif +class ImplRC; + +class RemoteControl +{ + friend class StatementFlow; + + BOOL m_bIdleInserted; +#if OSL_DEBUG_LEVEL > 1 + EditWindow *m_pDbgWin; +#endif + ImplRC* pImplRC; + +public: + RemoteControl(); + ~RemoteControl(); + BOOL QueCommands( ULONG nServiceId, SvStream *pIn ); + SvStream* GetReturnStream(); + + DECL_LINK( IdleHdl, Application* ); + DECL_LINK( CommandHdl, Application* ); + + DECL_LINK( QueCommandsEvent, CommunicationLink* ); + ULONG nStoredServiceId; + SvStream *pStoredStream; + + void ExecuteURL( String &aURL ); + +protected: + CommunicationManager *pServiceMgr; + SvStream *pRetStream; +}; + +#endif // SVTOOLS_TESTTOOL_HXX diff --git a/svtools/inc/svtools/tooltiplbox.hxx b/svtools/inc/svtools/tooltiplbox.hxx new file mode 100644 index 000000000000..e50d516f5aa1 --- /dev/null +++ b/svtools/inc/svtools/tooltiplbox.hxx @@ -0,0 +1,67 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef SVTOOLS_TOOLTIPLBOX_HXX +#define SVTOOLS_TOOLTIPLBOX_HXX + +#include "svtools/svtdllapi.h" +#include <vcl/lstbox.hxx> + +namespace svtools { + +// ============================================================================ + +/** ListBox with tool tips for long entries. */ +class ToolTipListBox : public ListBox +{ +public: + ToolTipListBox( Window* pParent, WinBits nStyle = WB_BORDER ); + ToolTipListBox( Window* pParent, const ResId& rResId ); + +protected: + virtual void RequestHelp( const HelpEvent& rHEvt ); +}; + +// ---------------------------------------------------------------------------- + +/** MultiListBox with tool tips for long entries. */ +class SVT_DLLPUBLIC ToolTipMultiListBox : public MultiListBox +{ +public: + ToolTipMultiListBox( Window* pParent, WinBits nStyle = WB_BORDER ); + ToolTipMultiListBox( Window* pParent, const ResId& rResId ); + +protected: + virtual void RequestHelp( const HelpEvent& rHEvt ); +}; + +// ============================================================================ + +} // namespace svtools + +#endif + diff --git a/svtools/inc/svtools/txtattr.hxx b/svtools/inc/svtools/txtattr.hxx new file mode 100644 index 000000000000..29723a38129b --- /dev/null +++ b/svtools/inc/svtools/txtattr.hxx @@ -0,0 +1,235 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _TXTATTR_HXX +#define _TXTATTR_HXX + +#include "svtools/svtdllapi.h" +#include <tools/color.hxx> +#include <vcl/vclenum.hxx> +#include <tools/string.hxx> +#include <tools/debug.hxx> + +class Font; + +#define TEXTATTR_INVALID 0 +#define TEXTATTR_FONTCOLOR 1 +#define TEXTATTR_HYPERLINK 2 +#define TEXTATTR_FONTWEIGHT 3 + +#define TEXTATTR_USER_START 1000 //start id for user defined text attributes +#define TEXTATTR_PROTECTED 4 + + +class SVT_DLLPUBLIC TextAttrib +{ +private: + USHORT mnWhich; + +protected: + TextAttrib( USHORT nWhich ) { mnWhich = nWhich; } + TextAttrib( const TextAttrib& rAttr ) { mnWhich = rAttr.mnWhich; } + +public: + + virtual ~TextAttrib(); + + USHORT Which() const { return mnWhich; } + + virtual void SetFont( Font& rFont ) const = 0; + virtual TextAttrib* Clone() const = 0; + virtual int operator==( const TextAttrib& rAttr ) const = 0; + int operator!=( const TextAttrib& rAttr ) const + { return !(*this == rAttr ); } +}; + + + +class SVT_DLLPUBLIC TextAttribFontColor : public TextAttrib +{ +private: + Color maColor; + +public: + TextAttribFontColor( const Color& rColor ); + TextAttribFontColor( const TextAttribFontColor& rAttr ); + ~TextAttribFontColor(); + + const Color& GetColor() const { return maColor; } + + virtual void SetFont( Font& rFont ) const; + virtual TextAttrib* Clone() const; + virtual int operator==( const TextAttrib& rAttr ) const; + +}; + +class SVT_DLLPUBLIC TextAttribFontWeight : public TextAttrib +{ +private: + FontWeight meWeight; + +public: + TextAttribFontWeight( FontWeight eWeight ); + TextAttribFontWeight( const TextAttribFontWeight& rAttr ); + ~TextAttribFontWeight(); + + virtual void SetFont( Font& rFont ) const; + virtual TextAttrib* Clone() const; + virtual int operator==( const TextAttrib& rAttr ) const; + + inline FontWeight getFontWeight() const { return meWeight; } +}; + + +class TextAttribHyperLink : public TextAttrib +{ +private: + XubString maURL; + XubString maDescription; + Color maColor; + +public: + TextAttribHyperLink( const XubString& rURL ); + TextAttribHyperLink( const XubString& rURL, const XubString& rDescription ); + TextAttribHyperLink( const TextAttribHyperLink& rAttr ); + ~TextAttribHyperLink(); + + void SetURL( const XubString& rURL ) { maURL = rURL; } + const XubString& GetURL() const { return maURL; } + + void SetDescription( const XubString& rDescr ) { maDescription = rDescr; } + const XubString& GetDescription() const { return maDescription; } + + void SetColor( const Color& rColor ) { maColor = rColor; } + const Color& GetColor() const { return maColor; } + + virtual void SetFont( Font& rFont ) const; + virtual TextAttrib* Clone() const; + virtual int operator==( const TextAttrib& rAttr ) const; +}; + +class SVT_DLLPUBLIC TextAttribProtect : public TextAttrib +{ +public: + TextAttribProtect(); + TextAttribProtect( const TextAttribProtect& rAttr ); + ~TextAttribProtect(); + + virtual void SetFont( Font& rFont ) const; + virtual TextAttrib* Clone() const; + virtual int operator==( const TextAttrib& rAttr ) const; + +}; + + +class TextCharAttrib +{ +private: + TextAttrib* mpAttr; + USHORT mnStart; + USHORT mnEnd; + +protected: + +public: + + TextCharAttrib( const TextAttrib& rAttr, USHORT nStart, USHORT nEnd ); + TextCharAttrib( const TextCharAttrib& rTextCharAttrib ); + ~TextCharAttrib(); + + const TextAttrib& GetAttr() const { return *mpAttr; } + + USHORT Which() const { return mpAttr->Which(); } + + USHORT GetStart() const { return mnStart; } + USHORT& GetStart() { return mnStart; } + + USHORT GetEnd() const { return mnEnd; } + USHORT& GetEnd() { return mnEnd; } + + inline USHORT GetLen() const; + + inline void MoveForward( USHORT nDiff ); + inline void MoveBackward( USHORT nDiff ); + + inline void Expand( USHORT nDiff ); + inline void Collaps( USHORT nDiff ); + + inline BOOL IsIn( USHORT nIndex ); + inline BOOL IsInside( USHORT nIndex ); + inline BOOL IsEmpty(); + +}; + +inline USHORT TextCharAttrib::GetLen() const +{ + DBG_ASSERT( mnEnd >= mnStart, "TextCharAttrib: nEnd < nStart!" ); + return mnEnd-mnStart; +} + +inline void TextCharAttrib::MoveForward( USHORT nDiff ) +{ + DBG_ASSERT( ((long)mnEnd + nDiff) <= 0xFFFF, "TextCharAttrib: MoveForward?!" ); + mnStart = mnStart + nDiff; + mnEnd = mnEnd + nDiff; +} + +inline void TextCharAttrib::MoveBackward( USHORT nDiff ) +{ + DBG_ASSERT( ((long)mnStart - nDiff) >= 0, "TextCharAttrib: MoveBackward?!" ); + mnStart = mnStart - nDiff; + mnEnd = mnEnd - nDiff; +} + +inline void TextCharAttrib::Expand( USHORT nDiff ) +{ + DBG_ASSERT( ( ((long)mnEnd + nDiff) <= (long)0xFFFF ), "TextCharAttrib: Expand?!" ); + mnEnd = mnEnd + nDiff; +} + +inline void TextCharAttrib::Collaps( USHORT nDiff ) +{ + DBG_ASSERT( (long)mnEnd - nDiff >= (long)mnStart, "TextCharAttrib: Collaps?!" ); + mnEnd = mnEnd - nDiff; +} + +inline BOOL TextCharAttrib::IsIn( USHORT nIndex ) +{ + return ( ( mnStart <= nIndex ) && ( mnEnd >= nIndex ) ); +} + +inline BOOL TextCharAttrib::IsInside( USHORT nIndex ) +{ + return ( ( mnStart < nIndex ) && ( mnEnd > nIndex ) ); +} + +inline BOOL TextCharAttrib::IsEmpty() +{ + return mnStart == mnEnd; +} + +#endif // _TXTATTR_HXX diff --git a/svtools/inc/svtools/txtcmp.hxx b/svtools/inc/svtools/txtcmp.hxx new file mode 100644 index 000000000000..7b30b76e69a7 --- /dev/null +++ b/svtools/inc/svtools/txtcmp.hxx @@ -0,0 +1,33 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _TXTCMP_HXX +#define _TXTCMP_HXX + +#include <unotools/textsearch.hxx> + +#endif + diff --git a/svtools/inc/svtools/unoevent.hxx b/svtools/inc/svtools/unoevent.hxx new file mode 100644 index 000000000000..5d5378bf909b --- /dev/null +++ b/svtools/inc/svtools/unoevent.hxx @@ -0,0 +1,329 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVTOOLS_UNOEVENT_HXX_ +#define _SVTOOLS_UNOEVENT_HXX_ + +#include "svtools/svtdllapi.h" +#include <com/sun/star/container/XNameReplace.hpp> +#include <com/sun/star/lang/XServiceInfo.hpp> +#include <com/sun/star/uno/XInterface.hpp> +#include <cppuhelper/implbase2.hxx> + +class SvxMacroTableDtor; +class SvxMacroItem; +class SvxMacro; + +/** SvEventDescription: Description of a single event. + mnEvent is the id used by SvxMacroItem + mpEventName is the api name for this event + + the last event in an array is indicated by mnEvent && mpEventName == 0 +*/ +struct SvEventDescription +{ + sal_uInt16 mnEvent; + const sal_Char* mpEventName; +}; + +/** + * SvBaseEventDescriptor: Abstract class that implements the basics + * of an XNameReplace that is delivered by the + * XEventsSupplier::getEvents() method. + * + * The functionality this class provides is: + * 1) Which elements are in the XNameReplace? + * 2) Mapping from Api names to item IDs. + * 3) conversion from SvxMacroItem to Any and vice versa. + * + * All details of how to actually get and set SvxMacroItem(s) have to + * be supplied by the base class. + */ +class SVT_DLLPUBLIC SvBaseEventDescriptor : public cppu::WeakImplHelper2 +< + ::com::sun::star::container::XNameReplace, + ::com::sun::star::lang::XServiceInfo +> +{ + const ::rtl::OUString sEventType; + const ::rtl::OUString sMacroName; + const ::rtl::OUString sLibrary; + const ::rtl::OUString sStarBasic; + const ::rtl::OUString sJavaScript; + const ::rtl::OUString sScript; + const ::rtl::OUString sNone; + + + /// name of own service + const ::rtl::OUString sServiceName; + +protected: + const ::rtl::OUString sEmpty; + + /// last element is 0, 0 + const SvEventDescription* mpSupportedMacroItems; + sal_Int16 mnMacroItems; + +public: + + SvBaseEventDescriptor(const SvEventDescription* pSupportedMacroItems); + + virtual ~SvBaseEventDescriptor(); + + + // XNameReplace + /// calls replaceByName(const sal_uInt16, const SvxMacro&) + virtual void SAL_CALL replaceByName( + const ::rtl::OUString& rName, /// API name of event + const ::com::sun::star::uno::Any& rElement ) /// event (PropertyValues) + throw( + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XNameAccess (via XNameReplace) + /// calls getByName(sal_uInt16) + virtual ::com::sun::star::uno::Any SAL_CALL getByName( + const ::rtl::OUString& rName ) /// API name of event + throw( + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + // XNameAxcess (via XNameReplace) + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL + getElementNames() + throw(::com::sun::star::uno::RuntimeException); + + // XNameAccess (via XNameReplace) + virtual sal_Bool SAL_CALL hasByName( + const ::rtl::OUString& rName ) + throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess (via XNameReplace) + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() + throw(::com::sun::star::uno::RuntimeException); + + // XElementAccess (via XNameReplace) + virtual sal_Bool SAL_CALL hasElements() + throw(::com::sun::star::uno::RuntimeException); + + // XServiceInfo + /// must be implemented in subclass + virtual rtl::OUString SAL_CALL getImplementationName(void) + throw( ::com::sun::star::uno::RuntimeException ) = 0; + + // XServiceInfo + virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName) + throw( ::com::sun::star::uno::RuntimeException ); + + // XServiceInfo + virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL + getSupportedServiceNames(void) + throw( ::com::sun::star::uno::RuntimeException ); + +protected: + + /// Must be implemented in subclass. + virtual void replaceByName( + const sal_uInt16 nEvent, /// item ID of event + const SvxMacro& rMacro) /// event (will be copied) + throw( + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException) = 0; + + /// Must be implemented in subclass. + virtual void getByName( + SvxMacro& rMacro, + const sal_uInt16 nEvent ) + throw( + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException) = 0; + + /// convert an API event name to the event ID as used by SvxMacroItem + sal_uInt16 mapNameToEventID(const ::rtl::OUString& rName) const; + + /// convert an event ID to an API event name + ::rtl::OUString mapEventIDToName(sal_uInt16 nPoolID) const; + + /// get the event ID for the name; return 0 if not supported + sal_uInt16 getMacroID(const ::rtl::OUString& rName) const; + + /// create PropertyValues and Any from macro + void getAnyFromMacro( + ::com::sun::star::uno::Any& aAny, // Any to be filled by Macro values + const SvxMacro& rMacro); + + /// create macro from PropertyValues (in an Any) + void getMacroFromAny( + SvxMacro& aMacro, // reference to be filled by Any + const ::com::sun::star::uno::Any& rAny) + throw ( + ::com::sun::star::lang::IllegalArgumentException); + +}; + + + + +/** + * SvEventDescriptor: Implement the XNameReplace that is delivered by + * the XEventsSupplier::getEvents() method. The SvEventDescriptor has + * to be subclassed to implement the events for a specific + * objects. The subclass has to + * 1) supply the super class constructor with a list of known events (item IDs) + * 2) supply the super class constructor with a reference of it's parent object + * (to prevent destruction) + * 3) implement getItem() and setItem(...) methods. + * + * If no object is available to which the SvEventDescriptor can attach itself, + * the class SvDetachedEventDescriptor should be used. + */ +class SVT_DLLPUBLIC SvEventDescriptor : public SvBaseEventDescriptor +{ + /// keep reference to parent to prevent it from being destroyed + ::com::sun::star::uno::Reference< + ::com::sun::star::uno::XInterface > xParentRef; + +public: + + SvEventDescriptor(::com::sun::star::uno::XInterface& rParent, + const SvEventDescription* pSupportedMacroItems); + + virtual ~SvEventDescriptor(); + + +protected: + + + using SvBaseEventDescriptor::replaceByName; + virtual void replaceByName( + const sal_uInt16 nEvent, /// item ID of event + const SvxMacro& rMacro) /// event (will be copied) + throw( + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + using SvBaseEventDescriptor::getByName; + virtual void getByName( + SvxMacro& rMacros, /// macro to be filled with values + const sal_uInt16 nEvent ) /// item ID of event + throw( + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + + /// Get the SvxMacroItem from the parent. + /// must be implemented by subclass + virtual const SvxMacroItem& getMacroItem() = 0; + + /// Set the SvxMacroItem at the parent. + /// must be implemented by subclass + virtual void setMacroItem(const SvxMacroItem& rItem) = 0; + + /// Get the SvxMacroItem Which Id needed for the current application + /// must be implemented by subclass + virtual sal_uInt16 getMacroItemWhich() const = 0; +}; + + +/** + * SvDetachedEventDescriptor: + */ +class SVT_DLLPUBLIC SvDetachedEventDescriptor : public SvBaseEventDescriptor +{ + // the macros; aMacros[i] is the value for aSupportedMacroItemIDs[i] + SvxMacro** aMacros; + + const ::rtl::OUString sImplName; + +public: + + SvDetachedEventDescriptor(const SvEventDescription* pSupportedMacroItems); + + virtual ~SvDetachedEventDescriptor(); + + //XServiceInfo + virtual rtl::OUString SAL_CALL getImplementationName(void) + throw( ::com::sun::star::uno::RuntimeException ); + +protected: + + sal_Int16 getIndex(const sal_uInt16 nID) const; + + using SvBaseEventDescriptor::replaceByName; + virtual void replaceByName( + const sal_uInt16 nEvent, /// item ID of event + const SvxMacro& rMacro) /// event (will be copied) + throw( + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + using SvBaseEventDescriptor::getByName; + virtual void getByName( + SvxMacro& rMacro, /// macro to be filled + const sal_uInt16 nEvent ) /// item ID of event + throw( + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::lang::WrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + /// do we have an event? + /// return sal_True: we have a macro for the event + /// return sal_False: no macro; getByName() will return an empty macro + /// IllegalArgumentException: the event is not supported + using SvBaseEventDescriptor::hasByName; + virtual sal_Bool hasByName( + const sal_uInt16 nEvent ) const /// item ID of event + throw( + ::com::sun::star::lang::IllegalArgumentException); + +}; + +class SVT_DLLPUBLIC SvMacroTableEventDescriptor : public SvDetachedEventDescriptor +{ +public: + + SvMacroTableEventDescriptor(const SvEventDescription* pSupportedMacroItems); + SvMacroTableEventDescriptor(const SvxMacroTableDtor& aFmt, + const SvEventDescription* pSupportedMacroItems); + + virtual ~SvMacroTableEventDescriptor(); + + void copyMacrosFromTable(const SvxMacroTableDtor& aFmt); + void copyMacrosIntoTable(SvxMacroTableDtor& aFmt); +}; + +#endif diff --git a/svtools/inc/svtools/unoimap.hxx b/svtools/inc/svtools/unoimap.hxx new file mode 100644 index 000000000000..9ed2afe8dc6c --- /dev/null +++ b/svtools/inc/svtools/unoimap.hxx @@ -0,0 +1,45 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVTOOLS_UNOIMAP_HXX +#define _SVTOOLS_UNOIMAP_HXX + +#include "svtools/svtdllapi.h" +#include <com/sun/star/uno/XInterface.hpp> + +class ImageMap; +struct SvEventDescription; + +SVT_DLLPUBLIC com::sun::star::uno::Reference< com::sun::star::uno::XInterface > SvUnoImageMapRectangleObject_createInstance( const SvEventDescription* pSupportedMacroItems ); +SVT_DLLPUBLIC com::sun::star::uno::Reference< com::sun::star::uno::XInterface > SvUnoImageMapCircleObject_createInstance( const SvEventDescription* pSupportedMacroItems ); +SVT_DLLPUBLIC com::sun::star::uno::Reference< com::sun::star::uno::XInterface > SvUnoImageMapPolygonObject_createInstance( const SvEventDescription* pSupportedMacroItems ); + +SVT_DLLPUBLIC com::sun::star::uno::Reference< com::sun::star::uno::XInterface > SvUnoImageMap_createInstance( const SvEventDescription* pSupportedMacroItems ); +SVT_DLLPUBLIC com::sun::star::uno::Reference< com::sun::star::uno::XInterface > SvUnoImageMap_createInstance( const ImageMap& rMap, const SvEventDescription* pSupportedMacroItems ); +SVT_DLLPUBLIC sal_Bool SvUnoImageMap_fillImageMap( com::sun::star::uno::Reference< com::sun::star::uno::XInterface > xImageMap, ImageMap& rMap ); + +#endif diff --git a/svtools/inc/svtools/wallitem.hxx b/svtools/inc/svtools/wallitem.hxx new file mode 100644 index 000000000000..533d5ae3f6d3 --- /dev/null +++ b/svtools/inc/svtools/wallitem.hxx @@ -0,0 +1,65 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _WALLITEM_HXX +#define _WALLITEM_HXX + +#ifndef SHL_HXX +#include <tools/shl.hxx> +#endif + +// ----------------------------------------------------------------------------------------- +// Hilfsklasse, um die Download-Funktionalitaet des SvxBrushItems unterhalb +// des SVX zu benutzen. Der Link wird im Konstruktor von SvxDialogDll gesetzt. +#ifndef _SFX_BRUSHITEMLINK_DECLARED +#define _SFX_BRUSHITEMLINK_DECLARED +#include <vcl/graph.hxx> + +#ifndef SHL_BRUSHITEM +#define SHL_BRUSHITEM SHL_SHL1 +#endif + +class Window; +class SfxItemSet; + +typedef void* (*CreateSvxBrushTabPage)(Window *pParent, const SfxItemSet &rAttrSet); +typedef USHORT* (*GetSvxBrushTabPageRanges)(); + +class Graphic; +class String; +class SfxBrushItemLink +{ +public: + virtual Graphic GetGraphic( const String& rLink, const String& rFilter) = 0; + virtual CreateSvxBrushTabPage GetBackgroundTabpageCreateFunc() = 0; + virtual GetSvxBrushTabPageRanges GetBackgroundTabpageRanges() = 0; + static SfxBrushItemLink* Get() { return *(SfxBrushItemLink**)GetAppData(SHL_BRUSHITEM); } + static void Set( SfxBrushItemLink* pLink ); +}; +#endif // _SFX_BRUSHITEMLINK_DECLARED + +#endif // _WALLITEM_HXX + |