From fd069bee7e57ad529c3c0974559fd2d84ec3151a Mon Sep 17 00:00:00 2001 From: Jens-Heiner Rechtien Date: Mon, 18 Sep 2000 16:07:07 +0000 Subject: initial import --- svx/source/inc/filtnav.hxx | 362 +++++++++++++++++ svx/source/inc/fmcontr.hxx | 310 ++++++++++++++ svx/source/inc/fmctrler.hxx | 592 +++++++++++++++++++++++++++ svx/source/inc/fmexch.hxx | 152 +++++++ svx/source/inc/fmexpl.hrc | 74 ++++ svx/source/inc/fmexpl.hxx | 600 +++++++++++++++++++++++++++ svx/source/inc/fmgroup.hxx | 154 +++++++ svx/source/inc/fmhlpids.hrc | 70 ++++ svx/source/inc/fmitems.hxx | 158 ++++++++ svx/source/inc/fmobj.hxx | 143 +++++++ svx/source/inc/fmpgeimp.hxx | 183 +++++++++ svx/source/inc/fmprop.hrc | 398 ++++++++++++++++++ svx/source/inc/fmresids.hrc | 492 +++++++++++++++++++++++ svx/source/inc/fmsearch.hrc | 100 +++++ svx/source/inc/fmservs.hxx | 264 ++++++++++++ svx/source/inc/fmshimp.hxx | 801 ++++++++++++++++++++++++++++++++++++ svx/source/inc/fmsrccfg.hxx | 167 ++++++++ svx/source/inc/fmsrcimp.hxx | 423 +++++++++++++++++++ svx/source/inc/fmstatic.hxx | 90 +++++ svx/source/inc/fmtools.hxx | 959 ++++++++++++++++++++++++++++++++++++++++++++ svx/source/inc/fmundo.hxx | 284 +++++++++++++ svx/source/inc/fmurl.hxx | 90 +++++ svx/source/inc/fmvwimp.hxx | 229 +++++++++++ svx/source/inc/gridcell.hxx | 758 ++++++++++++++++++++++++++++++++++ svx/source/inc/gridcols.hxx | 98 +++++ svx/source/inc/hlmarkwn.hrc | 68 ++++ svx/source/inc/hlmarkwn.hxx | 159 ++++++++ svx/source/inc/hyperdlg.hrc | 124 ++++++ svx/source/inc/linectrl.hrc | 62 +++ svx/source/inc/tabwin.hxx | 173 ++++++++ svx/source/inc/tbxform.hxx | 249 ++++++++++++ svx/source/inc/trace.hxx | 110 +++++ 32 files changed, 8896 insertions(+) create mode 100644 svx/source/inc/filtnav.hxx create mode 100644 svx/source/inc/fmcontr.hxx create mode 100644 svx/source/inc/fmctrler.hxx create mode 100644 svx/source/inc/fmexch.hxx create mode 100644 svx/source/inc/fmexpl.hrc create mode 100644 svx/source/inc/fmexpl.hxx create mode 100644 svx/source/inc/fmgroup.hxx create mode 100644 svx/source/inc/fmhlpids.hrc create mode 100644 svx/source/inc/fmitems.hxx create mode 100644 svx/source/inc/fmobj.hxx create mode 100644 svx/source/inc/fmpgeimp.hxx create mode 100644 svx/source/inc/fmprop.hrc create mode 100644 svx/source/inc/fmresids.hrc create mode 100644 svx/source/inc/fmsearch.hrc create mode 100644 svx/source/inc/fmservs.hxx create mode 100644 svx/source/inc/fmshimp.hxx create mode 100644 svx/source/inc/fmsrccfg.hxx create mode 100644 svx/source/inc/fmsrcimp.hxx create mode 100644 svx/source/inc/fmstatic.hxx create mode 100644 svx/source/inc/fmtools.hxx create mode 100644 svx/source/inc/fmundo.hxx create mode 100644 svx/source/inc/fmurl.hxx create mode 100644 svx/source/inc/fmvwimp.hxx create mode 100644 svx/source/inc/gridcell.hxx create mode 100644 svx/source/inc/gridcols.hxx create mode 100644 svx/source/inc/hlmarkwn.hrc create mode 100644 svx/source/inc/hlmarkwn.hxx create mode 100644 svx/source/inc/hyperdlg.hrc create mode 100644 svx/source/inc/linectrl.hrc create mode 100644 svx/source/inc/tabwin.hxx create mode 100644 svx/source/inc/tbxform.hxx create mode 100644 svx/source/inc/trace.hxx (limited to 'svx/source/inc') diff --git a/svx/source/inc/filtnav.hxx b/svx/source/inc/filtnav.hxx new file mode 100644 index 000000000000..dfb4c96a1430 --- /dev/null +++ b/svx/source/inc/filtnav.hxx @@ -0,0 +1,362 @@ +/************************************************************************* + * + * $RCSfile: filtnav.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:19 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _SVX_FILTNAV_HXX +#define _SVX_FILTNAV_HXX + +#ifndef _COM_SUN_STAR_AWT_XTEXTCOMPONENT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FORM_XFORM_HPP_ +#include +#endif + +#ifndef _SFXLSTNER_HXX //autogen +#include +#endif + +#ifndef _SFXBRDCST_HXX //autogen +#include +#endif + +#ifndef _SV_WINDOW_HXX //autogen +#include +#endif + +#ifndef _SFX_CHILDWIN_HXX //autogen +#include +#endif + +#ifndef _SFXPOOLITEM_HXX //autogen +#include +#endif + +#ifndef _SFX_BINDINGS_HXX //autogen +#include +#endif + +#ifndef _SFXDOCKWIN_HXX //autogen +#include +#endif + +#ifndef _DTRANS_HXX +#include +#endif + +#ifndef _SFXCTRLITEM_HXX //autogen +#include +#endif + +#ifndef _SV_IMAGE_HXX +#include +#endif + +#ifndef _SVTREEBOX_HXX //autogen +#include +#endif + +#ifndef _DIALOG_HXX //autogen +#include +#endif + +#ifndef _GROUP_HXX //autogen +#include +#endif + +#ifndef _SV_DOCKWIN_HXX //autogen +#include +#endif + +#ifndef _SVX_FMTOOLS_HXX +#include +#endif // _SVX_FMTOOLS_HXX + +class FmFormShell; +class FmFilterItem; +class FmFilterItems; +class FmParentData; +class FmFilterAdapter; + +//======================================================================== +// data structure for the filter model +//======================================================================== +class FmFilterData +{ + FmParentData* m_pParent; + ::rtl::OUString m_aText; + +public: + TYPEINFO(); + FmFilterData(FmParentData* pParent = NULL, const ::rtl::OUString& rText = ::rtl::OUString()) + :m_pParent(pParent), m_aText(rText){} + virtual ~FmFilterData(){} + + void SetText( const ::rtl::OUString& rText ){ m_aText = rText; } + ::rtl::OUString GetText() const { return m_aText; } + FmParentData* GetParent() const {return m_pParent;} + virtual Image GetImage() const; +}; + +//======================================================================== +class FmParentData : public FmFilterData +{ +protected: + vector m_aChilds; + +public: + TYPEINFO(); + FmParentData(FmParentData* pParent, const ::rtl::OUString& rText):FmFilterData(pParent, rText){} + virtual ~FmParentData(); + + vector& GetChilds() {return m_aChilds;} +}; + +//======================================================================== +// Item representing the forms and subforms +class FmFormItem : public FmParentData +{ + ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController > m_xController; + sal_Int32 m_nCurrent; + +public: + TYPEINFO(); + FmFormItem():FmParentData(NULL, ::rtl::OUString()){} + FmFormItem(FmParentData* _pParent, + const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController > & _xController, + const ::rtl::OUString& _rText):FmParentData(_pParent, _rText) + ,m_xController(_xController) + ,m_nCurrent(0){} + + const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController > & GetController(){return m_xController;} + void SetCurrentPosition(sal_Int32 nCurrent){m_nCurrent = nCurrent;} + sal_Int32 GetCurrentPosition() const {return m_nCurrent;} + virtual Image GetImage() const; +}; + +//======================================================================== +class FmFilterItems : public FmParentData +{ +public: + TYPEINFO(); + FmFilterItems():FmParentData(NULL, ::rtl::OUString()){} + FmFilterItems(FmFormItem* pParent, const ::rtl::OUString& rText ):FmParentData(pParent, rText){} + + FmFilterItem* Find(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent > & xText) const; + virtual Image GetImage() const; +}; + +//======================================================================== +class FmFilterItem : public FmFilterData +{ + ::rtl::OUString m_aFieldName; + ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent > m_xText; + +public: + TYPEINFO(); + FmFilterItem(FmFilterItems* pParent, + const ::rtl::OUString& aFieldName, + const ::rtl::OUString& aCondition, + const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent > & xText); + + const ::rtl::OUString& GetFieldName() const {return m_aFieldName;} + const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent > & GetTextComponent() const {return m_xText;} + + virtual Image GetImage() const; +}; + +//======================================================================== +class FmFilterModel : public FmParentData + ,public SfxBroadcaster +{ + friend class FmFilterAdapter; + + ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > m_xControllers; + ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController > m_xController; + FmFilterAdapter* m_pAdapter; + FmFilterItems* m_pCurrentItems; + +public: + TYPEINFO(); + FmFilterModel(); + virtual ~FmFilterModel(); + + void Update(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > & xControllers, const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController > & xCurrent); + void Clear(); + sal_Bool ValidateText(FmFilterItem* pItem, UniString& rText, UniString& rErrorMsg) const; + void Append(FmFilterItems* pItems, FmFilterItem* pFilterItem); + void SetText(FmFilterItem* pItem, const ::rtl::OUString& rText); + + FmFormItem* GetCurrentForm() const {return m_pCurrentItems ? (FmFormItem*)m_pCurrentItems->GetParent() : NULL;} + FmFilterItems* GetCurrentItems() const {return m_pCurrentItems;} + void SetCurrentItems(FmFilterItems* pCurrent); + + const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > & GetControllers() const {return m_xControllers;} + const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController > & GetCurrentController() const {return m_xController;} + void SetCurrentController(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController > & xController); + + void Remove(FmFilterData* pFilterItem); + void AppendFilterItems(FmFormItem* pItem); + void CheckIntegrity(FmParentData* pItem); + +protected: + void Insert(const vector::iterator& rPos, FmFilterData* pFilterItem); + void Remove(const vector::iterator& rPos, FmFilterData* pFilterItem); + FmFormItem* Find(const ::std::vector& rItems, const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController > & xController) const; + FmFormItem* Find(const ::std::vector& rItems, const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm >& xForm) const; + void Update(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > & xControllers, FmParentData* pParent); +}; + +//======================================================================== +class FmFilterNavigator : public SvTreeListBox, public SfxListener +{ + enum DROP_ACTION{ DA_SCROLLUP, DA_SCROLLDOWN, DA_EXPANDNODE }; + + FmFilterModel* m_pModel; + Timer m_aSelectTimer; + + AutoTimer m_aDropActionTimer; + unsigned short m_aTimerCounter; + Point m_aTimerTriggered; // die Position, an der der DropTimer angeschaltet wurde + DROP_ACTION m_aDropActionType; + +public: + FmFilterNavigator( Window* pParent ); + virtual ~FmFilterNavigator(); + + void Update(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > & xControllers, const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController > & xCurrent); + FmFilterModel* const GetFilterModel() const {return m_pModel;} + +protected: + virtual void KeyInput( const KeyEvent& rKEvt ); + virtual void Command( const CommandEvent& rEvt ); + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + virtual void InitEntry(SvLBoxEntry* pEntry, const XubString& rStr, const Image& rImg1, const Image& rImg2); + virtual sal_Bool Select( SvLBoxEntry* pEntry, sal_Bool bSelect=sal_True ); + virtual sal_Bool EditingEntry( SvLBoxEntry* pEntry, Selection& rSelection ); + virtual sal_Bool EditedEntry( SvLBoxEntry* pEntry, const XubString& rNewText ); + virtual sal_Bool QueryDrop( DropEvent& rDEvt ); + virtual sal_Bool Drop( const DropEvent& rDEvt ); + + void DeleteSelection(); + void Clear(); + SvLBoxEntry* FindEntry(FmFilterData* pItem); + void Insert(FmFilterData* pItem, sal_Int32 nPos); + void Remove(FmFilterData* pItem); + + DECL_LINK(OnRemove, SvLBoxEntry*); + DECL_LINK(OnEdited, SvLBoxEntry*); + DECL_LINK(OnSelect, void*); + DECL_LINK(OnDropActionTimer, void*); +}; + +//======================================================================== +class FmFilterNavigatorWin : public SfxDockingWindow, public SfxControllerItem +{ +private: + FmFilterNavigator* m_pNavigator; + +protected: + virtual void Resize(); + virtual sal_Bool Close(); + virtual Size CalcDockingSize( SfxChildAlignment ); + virtual SfxChildAlignment CheckAlignment( SfxChildAlignment, SfxChildAlignment ); + +public: + FmFilterNavigatorWin( SfxBindings *pBindings, SfxChildWindow *pMgr, + Window* pParent ); + virtual ~FmFilterNavigatorWin(); + + void Update( FmFormShell* pFormShell ); + void StateChanged( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ); + void FillInfo( SfxChildWinInfo& rInfo ) const; +}; + +//======================================================================== +class FmFilterNavigatorWinMgr : public SfxChildWindow +{ +public: + FmFilterNavigatorWinMgr( Window *pParent, sal_uInt16 nId, SfxBindings *pBindings, + SfxChildWinInfo *pInfo ); + SFX_DECL_CHILDWINDOW( FmFilterNavigatorWinMgr ); +}; + +//======================================================================== +class FmFormItem; +class FmFilterItem; +class SvxFmFilterExch : public SvDataObject +{ + SvDataTypeList m_aDataTypeList; + vector m_aDraggedEntries; + FmFormItem* m_pFormItem; // ensure that we drop on the same form + +public: + SvxFmFilterExch(FmFormItem* pFormItem, const vector& lstWhich ); + + virtual const SvDataTypeList& GetTypeList() const { return m_aDataTypeList; } + virtual sal_Bool GetData( SvData* ); + + const vector& GetDraggedEntries() const { return m_aDraggedEntries; } + FmFormItem* GetFormItem() const {return m_pFormItem;} +}; + +SV_DECL_IMPL_REF( SvxFmFilterExch ); + +#endif // _SVX_FILTNAV_HXX + diff --git a/svx/source/inc/fmcontr.hxx b/svx/source/inc/fmcontr.hxx new file mode 100644 index 000000000000..a2a394843988 --- /dev/null +++ b/svx/source/inc/fmcontr.hxx @@ -0,0 +1,310 @@ +/************************************************************************* + * + * $RCSfile: fmcontr.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:19 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _SVX_FMCONTR_HXX +#define _SVX_FMCONTR_HXX + +#include + +#ifndef _COM_SUN_STAR_FORM_XFORMCOMPONENT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYCHANGELISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_BEANS_PROPERTYCHANGEEVENT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SCRIPT_XEVENTATTACHERMANAGER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SCRIPT_SCRIPTEVENT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SCRIPT_SCRIPTEVENTDESCRIPTOR_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XCONTAINER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XINDEXCONTAINER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMEREPLACE_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XINDEXREPLACE_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMECONTAINER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_LANG_XEVENTLISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_LANG_EVENTOBJECT_HPP_ +#include +#endif + +typedef ::std::hash_multimap< ::rtl::OUString, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > , ::utl::UStringHash, ::utl::UStringEqual> OInterfaceMap; + +DECLARE_STL_VECTOR(::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > > ,InterfaceArray); + +class ::com::sun::star::uno::Reference< ::com::sun::star::io::XObjectOutputStream > ; +class ::com::sun::star::uno::Reference< ::com::sun::star::io::XObjectInputStream > ; + +//================================================================== +// FmForms +// Implementiert den UNO-::com::sun::star::sdbcx::Container fuer Formulare +// enthaelt alle zugeordneten ::com::sun::star::form::Forms +// dieses ::com::sun::star::sdbcx::Container kann selbst den Context fuer Formulare darstellen +// oder außen einen Context uebergeben bekommen +//================================================================== +class FmXInterfaceContainer : public ::com::sun::star::container::XNameContainer, + public ::com::sun::star::container::XIndexContainer, + public ::com::sun::star::container::XContainer, + public ::com::sun::star::container::XEnumerationAccess, + public ::com::sun::star::script::XEventAttacherManager, + public ::com::sun::star::beans::XPropertyChangeListener +{ +protected: + OInterfaceMap m_aMap; + OInterfaceArray m_aItems; + ::usr::OInterfaceContainerHelper + m_aContainerListeners; + + InterfaceReflection* m_pElementReflection; + ::VOS::IMutex& m_rMutex; + ::com::sun::star::uno::Uik m_aElementUik; + + + // EventManager + ::com::sun::star::uno::Reference< ::com::sun::star::script::XEventAttacherManager > m_xEventAttacher; + +public: + FmXInterfaceContainer(::VOS::IMutex& _rMutex, InterfaceReflection* pElementReflection, const ::com::sun::star::uno::Uik& rUik ); + +public: +// automatisch auskommentiert - [getIdlClass or queryInterface] - Bitte XTypeProvider benutzen! +// virtual sal_Bool queryInterface( ::com::sun::star::uno::Uik aUik, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > & rOut ); + + +// ::com::sun::star::io::XPersistObject + void write(const ::com::sun::star::uno::Reference< ::com::sun::star::io::XObjectOutputStream > & OutStream); + void read(const ::com::sun::star::uno::Reference< ::com::sun::star::io::XObjectInputStream > & InStream); + +// ::com::sun::star::lang::XEventListener + virtual void disposing(const ::com::sun::star::lang::EventObject& Source) throw( ::com::sun::star::uno::RuntimeException ); + +// ::com::sun::star::beans::XPropertyChangeListener + virtual void propertyChange(const ::com::sun::star::beans::PropertyChangeEvent& evt); + +// ::com::sun::star::container::XElementAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::reflection::XIdlClass > getElementType(void) const throw( ::com::sun::star::uno::RuntimeException ); + virtual sal_Bool hasElements(void) const throw( ::com::sun::star::uno::RuntimeException ); + +// ::com::sun::star::container::XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > createEnumeration(void) throw( ::com::sun::star::uno::RuntimeException ); + +// ::com::sun::star::container::XNameAccess + virtual ::com::sun::star::uno::Any getByName(const ::rtl::OUString& Name) const throw( ::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException ); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > getElementNames(void) const throw( ::com::sun::star::uno::RuntimeException ); + virtual sal_Bool hasByName(const ::rtl::OUString& Name) const throw( ::com::sun::star::uno::RuntimeException ); + +// ::com::sun::star::container::XNameReplace + virtual void replaceByName(const ::rtl::OUString& Name, const ::com::sun::star::uno::Any& Element) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException ); + +// ::com::sun::star::container::XNameContainer + virtual void insertByName(const ::rtl::OUString& Name, const ::com::sun::star::uno::Any& Element) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::container::ElementExistException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException ); + virtual void removeByName(const ::rtl::OUString& Name) throw( ::com::sun::star::container::NoSuchElementException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException ); + +// ::com::sun::star::container::XIndexAccess + virtual sal_Int32 getCount(void) const throw( ::com::sun::star::uno::RuntimeException ); + virtual ::com::sun::star::uno::Any getByIndex(sal_Int32 ::com::sun::star::sdbcx::Index) const throw( ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException ); + +// ::com::sun::star::container::XIndexReplace + virtual void replaceByIndex(sal_Int32 ::com::sun::star::sdbcx::Index, const ::com::sun::star::uno::Any& Element) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException ); + +// ::com::sun::star::container::XIndexContainer + virtual void insertByIndex(sal_Int32 ::com::sun::star::sdbcx::Index, const ::com::sun::star::uno::Any& Element) throw( ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException ); + virtual void removeByIndex(sal_Int32 ::com::sun::star::sdbcx::Index) throw( ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException ); + +// ::com::sun::star::container::XContainer + virtual void addContainerListener(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XContainerListener > & l) throw( ::com::sun::star::uno::RuntimeException ); + virtual void removeContainerListener(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XContainerListener > & l) throw( ::com::sun::star::uno::RuntimeException ); + +// ::com::sun::star::script::XEventAttacherManager + virtual void registerScriptEvent(sal_Int32 nIndex, const ::com::sun::star::script::ScriptEventDescriptor& ::com::sun::star::script::ScriptEvent); + virtual void registerScriptEvents(sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::com::sun::star::script::ScriptEventDescriptor >& ScriptEvents); + virtual void revokeScriptEvent(sal_Int32 nIndex, const ::rtl::OUString& ListenerType, const ::rtl::OUString& EventMethod, const ::rtl::OUString& rRemoveListenerParam); + virtual void revokeScriptEvents(sal_Int32 nIndex); + virtual void insertEntry(sal_Int32 nIndex); + virtual void removeEntry(sal_Int32 nIndex); + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::script::ScriptEventDescriptor > getScriptEvents(sal_Int32 nIndex); + virtual void attach(sal_Int32 nIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > & Object, const ::com::sun::star::uno::Any& Helper); + virtual void detach(sal_Int32 nIndex, const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > & xObject); + virtual void addScriptListener(const ::com::sun::star::uno::Reference< ::com::sun::star::script::XScriptListener > & aListener); + virtual void removeScriptListener(const ::com::sun::star::uno::Reference< ::com::sun::star::script::XScriptListener > & aListener); + + static ::com::sun::star::uno::Reference< ::com::sun::star::reflection::XIdlClass > getStaticIdlClass(); + +protected: + // helper + virtual void disposing(); + virtual void insert(sal_Int32 ::com::sun::star::sdbcx::Index, const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > & _Object, sal_Bool bEvents = sal_True) + throw( ::com::sun::star::lang::IllegalArgumentException ); + virtual void removeElementsNoEvents(sal_Int32 nIndex); + + // called after the object is inserted, but before the "real listeners" are notified + virtual void implInserted(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > & _rxObject) { } + // called after the object is removed, but before the "real listeners" are notified + virtual void implRemoved(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > & _rxObject) { } + + void writeEvents(const ::com::sun::star::uno::Reference< ::com::sun::star::io::XObjectOutputStream > & OutStream); + void readEvents(const ::com::sun::star::uno::Reference< ::com::sun::star::io::XObjectInputStream > & InStream, sal_Int32 nCount); +}; + +//================================================================== +// FmForms +// Implementiert den UNO-::com::sun::star::sdbcx::Container fuer Formulare +// enthaelt alle zugeordneten ::com::sun::star::form::Forms +// dieses ::com::sun::star::sdbcx::Container kann selbst den Context fuer Formulare darstellen +// oder außen einen Context uebergeben bekommen +//================================================================== +class FmXForms : public ::usr::OComponentHelper, + public FmXInterfaceContainer, + public ::com::sun::star::container::XChild + +{ + friend Reflection* ::getCppuType((const FmXForms*)0); + ::osl::Mutex m_aMutex; + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > m_xParent; // Parent + +public: + FmXForms(); + virtual ~FmXForms(); + +public: +// automatisch auskommentiert - [getIdlClass or queryInterface] - Bitte XTypeProvider benutzen! +// virtual sal_Bool queryInterface( ::com::sun::star::uno::Uik aUik, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > & rOut ) + +// automatisch auskommentiert - [getIdlClass or queryInterface] - Bitte XTypeProvider benutzen! +// { return OComponentHelper::queryInterface( aUik, rOut ); } + + virtual sal_Bool queryAggregation(::com::sun::star::uno::Uik aUik, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > & rOut); +// automatisch auskommentiert - [getIdlClass or queryInterface] - Bitte XTypeProvider benutzen! +// virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::reflection::XIdlClass > > getIdlClasses(void); + +// automatisch auskommentiert - [getImplementation] - Wird von OWeakObject nicht weiter unterstützt! +// virtual void* getImplementation(Reflection * pRef); + + virtual void acquire() { OComponentHelper::acquire(); } + virtual void release() { OComponentHelper::release(); } + +// OComponentHelper + virtual void disposing(); + +// ::com::sun::star::container::XChild + virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > getParent(void) const throw( ::com::sun::star::uno::RuntimeException ); + virtual void setParent(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > & Parent) throw( ::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException ); +}; + +//================================================================== +// FmForm +// Implementiert den UNO-::com::sun::star::sdbcx::Container fuer FormularControls +//================================================================== +class FmXFormComponents : public ::usr::OComponentHelper, + public FmXInterfaceContainer, + public ::com::sun::star::form::XFormComponent +{ +protected: + ::osl::Mutex m_aMutex; + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > m_xParent; // Parent + +public: + FmXFormComponents(); + virtual ~FmXFormComponents(); + + SMART_UNO_DECLARATION(FmXFormComponents, OComponentHelper); + +// automatisch auskommentiert - [getIdlClass or queryInterface] - Bitte XTypeProvider benutzen! +// virtual sal_Bool queryInterface( ::com::sun::star::uno::Uik aUik, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > & rOut ) + +// automatisch auskommentiert - [getIdlClass or queryInterface] - Bitte XTypeProvider benutzen! +// { return OComponentHelper::queryInterface( aUik, rOut ); } + + virtual sal_Bool queryAggregation(::com::sun::star::uno::Uik aUik, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > & rOut); +// automatisch auskommentiert - [getIdlClass or queryInterface] - Bitte XTypeProvider benutzen! +// virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::reflection::XIdlClass > > getIdlClasses(void); + + +// OComponentHelper + virtual void disposing(); + +// ::com::sun::star::form::XFormComponent + virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > getParent(void) const throw( ::com::sun::star::uno::RuntimeException ); + virtual void setParent(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > & Parent) throw( ::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException ); + + static ::com::sun::star::uno::Reference< ::com::sun::star::reflection::XIdlClass > getStaticIdlClass(); +}; + + +#endif // _SVX_FMCONTR_HXX + diff --git a/svx/source/inc/fmctrler.hxx b/svx/source/inc/fmctrler.hxx new file mode 100644 index 000000000000..d5396056b624 --- /dev/null +++ b/svx/source/inc/fmctrler.hxx @@ -0,0 +1,592 @@ +/************************************************************************* + * + * $RCSfile: fmctrler.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:19 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _SVX_FMCTRLER_HXX +#define _SVX_FMCTRLER_HXX + +#ifndef _UTL_STLTYPES_HXX_ +#include +#endif +#ifndef _COM_SUN_STAR_SDB_XSQLERRORBROADCASTER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SDB_XSQLERRORLISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SDB_XSQLQUERYCOMPOSERFACTORY_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SDB_XROWSETAPPROVEBROADCASTER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SDB_XROWSETAPPROVELISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SDBC_XROWSETLISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FORM_XRESETLISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FRAME_XMODEL_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XINDEXCONTAINER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_CONTAINEREVENT_HPP_ +#include +#endif +#include +#ifndef _COM_SUN_STAR_CONTAINER_XCONTAINER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XCHILD_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XCONTAINERLISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_XFOCUSLISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_FOCUSEVENT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FORM_XCONFIRMDELETEBROADCASTER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FORM_DATABASEPARAMETEREVENT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FORM_DATABASEDELETEEVENT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FORM_XDATABASEPARAMETERLISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FORM_XLOADLISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FORM_XCONFIRMDELETELISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FORM_ERROREVENT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FORM_XDATABASEPARAMETERBROADCASTER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FORM_XFORMCONTROLLER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FORM_XFORMCONTROLLERLISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FRAME_XDISPATCHPROVIDERINTERCEPTOR_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FRAME_XDISPATCH_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FRAME_XDISPATCHPROVIDER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FRAME_XDISPATCHPROVIDERINTERCEPTION_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FRAME_DISPATCHDESCRIPTOR_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_UTIL_XMODESELECTOR_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_UTIL_XMODIFYLISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_UTIL_XMODIFYBROADCASTER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSETINFO_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYCHANGELISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_BEANS_PROPERTYCHANGEEVENT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SCRIPT_XEVENTATTACHERMANAGER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_XTEXTLISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_XITEMLISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_XTEXTCOMPONENT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_XTABCONTROLLERMODEL_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_XCONTROLMODEL_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_XCONTROLCONTAINER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_XTABCONTROLLER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_XCONTROL_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_LANG_XUNOTUNNEL_HPP_ +#include +#endif + +#ifndef _SV_TIMER_HXX //autogen +#include +#endif + +#ifndef _SVX_FMTOOLS_HXX +#include "fmtools.hxx" +#endif + +#ifndef _CPPUHELPER_IMPLBASE2_HXX_ +#include +#endif +#ifndef _CPPUHELPER_PROPSHLP_HXX +#include +#endif +#ifndef _FM_IMPLEMENTATION_IDS_HXX_ +#include +#endif +#ifndef _UNOTOOLS_PROPERTY_ARRAY_HELPER_HXX_ +#include +#endif +#ifndef _TOOLS_DEBUG_HXX +#include +#endif + +struct FmXTextComponentLess : public binary_function< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent >, ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent> , sal_Bool> +{ + sal_Bool operator() (const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent >& x, const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent >& y) const + { + return reinterpret_cast(x.get()) < reinterpret_cast(y.get()); + } +}; + +typedef map< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent >, ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >, FmXTextComponentLess> FmFilterControls; +typedef map< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent >, ::rtl::OUString, FmXTextComponentLess> FmFilterRow; +typedef vector< FmFilterRow > FmFilterRows; +typedef vector< ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController > > FmFormControllers; + +struct FmFieldInfo; +class FmXFormController; +class FmFormView; +class Window; + +//================================================================== +// FmXFormController +//================================================================== +class FmXFormController :public ::cppu::OComponentHelper + ,public ::cppu::OPropertySetHelper + ,public ::com::sun::star::form::XFormController + ,public ::com::sun::star::container::XChild + ,public ::com::sun::star::container::XIndexAccess // zugriff auf child contoller + ,public ::com::sun::star::container::XEnumerationAccess + ,public ::com::sun::star::awt::XFocusListener + ,public ::com::sun::star::form::XLoadListener + ,public ::com::sun::star::beans::XPropertyChangeListener + ,public ::com::sun::star::awt::XTextListener + ,public ::com::sun::star::awt::XItemListener + ,public ::com::sun::star::container::XContainerListener + ,public ::com::sun::star::util::XModifyListener + ,public ::com::sun::star::util::XModifyBroadcaster + ,public ::com::sun::star::util::XModeSelector + ,public ::com::sun::star::form::XConfirmDeleteListener + ,public ::com::sun::star::form::XConfirmDeleteBroadcaster + ,public ::com::sun::star::sdb::XSQLErrorListener + ,public ::com::sun::star::sdb::XSQLErrorBroadcaster + ,public ::com::sun::star::sdbc::XRowSetListener + ,public ::com::sun::star::sdb::XRowSetApproveListener + ,public ::com::sun::star::sdb::XRowSetApproveBroadcaster + ,public ::com::sun::star::form::XDatabaseParameterListener + ,public ::com::sun::star::form::XDatabaseParameterBroadcaster + ,public ::com::sun::star::lang::XServiceInfo + ,public ::com::sun::star::form::XResetListener + ,public ::com::sun::star::lang::XUnoTunnel + ,public FmDispatchInterceptor + ,public ::utl::OAggregationArrayUsageHelper< FmXFormController> +{ + friend class FmXPageViewWinRec; + + // friend Reflection* FmXFormController_getReflection(); + + ::osl::Mutex m_aMutex; + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XAggregation> m_xAggregate; + ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabController> m_xTabController, m_xNavigationController; + ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> m_xActiveControl, m_xCurrentControl; + ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess> m_xModelAsIndex; + ::com::sun::star::uno::Reference< ::com::sun::star::script::XEventAttacherManager> m_xModelAsManager; + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> m_xParent; + // Composer used for checking filter conditions + ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSQLQueryComposer> m_xComposer; + + ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> > m_aControls; + ::cppu::OInterfaceContainerHelper + m_aActivateListeners, + m_aModifyListeners, + m_aErrorListeners, + m_aDeleteListeners, + m_aRowSetApproveListeners, + m_aParameterListeners; + + FmFormControllers m_aChilds; + FmFilterControls m_aFilterControls; + FmFilterRows m_aFilters; + ::form::OImplementationIdsRef m_aHoldImplIdHelper; + + Timer m_aInsertTimer; + + FmFormView* m_pView; + Window* m_pWindow; + + ::rtl::OUString m_aMode; + + sal_uInt32 m_nLoadEvent; + sal_uInt32 m_nUpdateDispatcherEvent; + sal_uInt32 m_nToggleEvent; + + sal_Int32 m_nCurrentFilterPosition; // current level for filtering (or-criteria) + ::rtl::OUString m_sDispatchPrefix; + + sal_Bool m_bCurrentRecordModified : 1; + sal_Bool m_bCurrentRecordNew : 1; + sal_Bool m_bLocked : 1; + sal_Bool m_bDBConnection : 1; // Focuslistener nur fuer Datenbankformulare + sal_Bool m_bCycle : 1; + sal_Bool m_bCanInsert : 1; + sal_Bool m_bCanUpdate : 1; + sal_Bool m_bCommitLock : 1; // lock the committing of controls see focusGained + sal_Bool m_bModified : 1; // ist der Inhalt eines Controls modifiziert ? + sal_Bool m_bControlsSorted : 1; + sal_Bool m_bFiltering : 1; + sal_Bool m_bAttachEvents : 1; + sal_Bool m_bDetachEvents : 1; + + // as we want to intercept dispatches of _all_ controls we're responsible for, and an object implementing + // the ::com::sun::star::frame::XDispatchProviderInterceptor interface can intercept only _one_ objects dispatches, we need a helper class + DECLARE_STL_VECTOR(FmXDispatchInterceptorImpl*, Interceptors); + Interceptors m_aControlDispatchInterceptors; + +public: + FmXFormController(FmFormView* _pView = NULL, Window* _pWindow = NULL, const UniString& _sDispatchPrefix = UniString()); + ~FmXFormController(); + + // UNO Anbindung + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& type) throw ( ::com::sun::star::uno::RuntimeException ) + { return OComponentHelper::queryInterface( type ); } + virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type& aType ) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL acquire() { OComponentHelper::acquire(); } + virtual void SAL_CALL release() { OComponentHelper::release(); } + +// XTypeProvider + virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw(::com::sun::star::uno::RuntimeException) + { + return ::form::OImplementationIds::getImplementationId(getTypes()); + } + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException); + +// XUnoTunnel + virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException); + static ::com::sun::star::uno::Sequence< sal_Int8 > getUnoTunnelImplementationId(); + + +// ::com::sun::star::container::XChild + virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> SAL_CALL getParent(void) throw( ::com::sun::star::uno::RuntimeException ) {return m_xParent;} + virtual void SAL_CALL setParent(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& Parent) throw( ::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException ) + {m_xParent = Parent;} + +// ::com::sun::star::lang::XEventListener + virtual void SAL_CALL disposing(const ::com::sun::star::lang::EventObject& Source) throw( ::com::sun::star::uno::RuntimeException ); + +// OComponentHelper + virtual void SAL_CALL disposing(); + +// OPropertySetHelper + virtual sal_Bool SAL_CALL convertFastPropertyValue( ::com::sun::star::uno::Any & rConvertedValue, ::com::sun::star::uno::Any & rOldValue, + sal_Int32 nHandle, const ::com::sun::star::uno::Any& rValue ) + throw( ::com::sun::star::lang::IllegalArgumentException ); + + virtual void SAL_CALL setFastPropertyValue_NoBroadcast( sal_Int32 nHandle, const ::com::sun::star::uno::Any& rValue ); + virtual void SAL_CALL getFastPropertyValue( ::com::sun::star::uno::Any& rValue, sal_Int32 nHandle ) const; + + virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo(); + virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper(); + +// XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType(void) throw( ::com::sun::star::uno::RuntimeException ); + virtual sal_Bool SAL_CALL hasElements(void) throw( ::com::sun::star::uno::RuntimeException ); + +// ::com::sun::star::container::XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration> SAL_CALL createEnumeration(void) throw( ::com::sun::star::uno::RuntimeException ); + +// ::com::sun::star::container::XContainerListener + virtual void SAL_CALL elementInserted(const ::com::sun::star::container::ContainerEvent& rEvent); + virtual void SAL_CALL elementReplaced(const ::com::sun::star::container::ContainerEvent& rEvent); + virtual void SAL_CALL elementRemoved(const ::com::sun::star::container::ContainerEvent& rEvent); + +// XLoadListener + virtual void SAL_CALL loaded(const ::com::sun::star::lang::EventObject& rEvent); + virtual void SAL_CALL unloaded(const ::com::sun::star::lang::EventObject& rEvent); + virtual void SAL_CALL unloading(const ::com::sun::star::lang::EventObject& aEvent) throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL reloading(const ::com::sun::star::lang::EventObject& aEvent) throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL reloaded(const ::com::sun::star::lang::EventObject& aEvent) throw( ::com::sun::star::uno::RuntimeException ); + +// XModeSelector + virtual void SAL_CALL setMode(const ::rtl::OUString& Mode) throw( ::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException ); + virtual ::rtl::OUString SAL_CALL getMode(void) throw( ::com::sun::star::uno::RuntimeException ); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedModes(void) throw( ::com::sun::star::uno::RuntimeException ); + virtual sal_Bool SAL_CALL supportsMode(const ::rtl::OUString& Mode) throw( ::com::sun::star::uno::RuntimeException ); + +// ::com::sun::star::container::XIndexAccess + virtual sal_Int32 SAL_CALL getCount(void) throw( ::com::sun::star::uno::RuntimeException ); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex(sal_Int32 Index) throw( ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException ); + +// XModifyBroadcaster + virtual void SAL_CALL addModifyListener(const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener>& l); + virtual void SAL_CALL removeModifyListener(const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener>& l); + +// XFocusListener + virtual void SAL_CALL focusGained(const ::com::sun::star::awt::FocusEvent& e); + virtual void SAL_CALL focusLost(const ::com::sun::star::awt::FocusEvent& e); + +// ::com::sun::star::beans::XPropertyChangeListener -> aenderung der stati + virtual void SAL_CALL propertyChange(const ::com::sun::star::beans::PropertyChangeEvent& evt); + +// XTextListener -> modify setzen + virtual void SAL_CALL textChanged(const ::com::sun::star::awt::TextEvent& rEvent); + +// XItemListener -> modify setzen + virtual void SAL_CALL itemStateChanged(const ::com::sun::star::awt::ItemEvent& rEvent); + +// XModifyListener -> modify setzen + virtual void SAL_CALL modified(const ::com::sun::star::lang::EventObject& rEvent); + +// XFormController + virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> SAL_CALL getCurrentControl(void) {return m_xCurrentControl;} + virtual void SAL_CALL addActivateListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormControllerListener>& l); + virtual void SAL_CALL removeActivateListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormControllerListener>& l); + +// XTabController + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> > SAL_CALL getControls(void); + + virtual void SAL_CALL setModel(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabControllerModel>& Model); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabControllerModel> SAL_CALL getModel(); + + virtual void SAL_CALL setContainer(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer>& Container); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer> SAL_CALL getContainer(); + + virtual void SAL_CALL autoTabOrder(); + virtual void SAL_CALL activateTabOrder(); + + virtual void SAL_CALL activateFirst(); + virtual void SAL_CALL activateLast(); + +// com::sun::star::sdbc::XRowSetListener + virtual void SAL_CALL cursorMoved(const ::com::sun::star::lang::EventObject& event) throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL rowChanged(const ::com::sun::star::lang::EventObject& event) throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL rowSetChanged(const ::com::sun::star::lang::EventObject& event) throw( ::com::sun::star::uno::RuntimeException ); + +// XRowSetApproveListener + virtual sal_Bool SAL_CALL approveCursorMove(const ::com::sun::star::lang::EventObject& event) throw( ::com::sun::star::uno::RuntimeException ); + virtual sal_Bool SAL_CALL approveRowChange(const ::com::sun::star::sdb::RowChangeEvent& event) throw( ::com::sun::star::uno::RuntimeException ); + virtual sal_Bool SAL_CALL approveRowSetChange(const ::com::sun::star::lang::EventObject& event) throw( ::com::sun::star::uno::RuntimeException ); + +// XRowSetApproveBroadcaster + virtual void SAL_CALL addRowSetApproveListener(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XRowSetApproveListener>& listener) throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL removeRowSetApproveListener(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XRowSetApproveListener>& listener) throw( ::com::sun::star::uno::RuntimeException ); + +// XSQLErrorBroadcaster + virtual void SAL_CALL errorOccured(const ::com::sun::star::sdb::SQLErrorEvent& aEvent) throw( ::com::sun::star::uno::RuntimeException ); + +// XSQLErrorListener + virtual void SAL_CALL addSQLErrorListener(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSQLErrorListener>& _rListener) throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL removeSQLErrorListener(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSQLErrorListener>& _rListener) throw( ::com::sun::star::uno::RuntimeException ); + +// XDatabaseParameterBroadcaster + virtual void SAL_CALL addParameterListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XDatabaseParameterListener>& aListener) throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL removeParameterListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XDatabaseParameterListener>& aListener) throw( ::com::sun::star::uno::RuntimeException ); + +// XDatabaseParameterListener + virtual sal_Bool SAL_CALL approveParameter(const ::com::sun::star::form::DatabaseParameterEvent& aEvent) throw( ::com::sun::star::uno::RuntimeException ); + +// XConfirmDeleteBroadcaster + virtual void SAL_CALL addConfirmDeleteListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XConfirmDeleteListener>& aListener) throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL removeConfirmDeleteListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XConfirmDeleteListener>& aListener) throw( ::com::sun::star::uno::RuntimeException ); + +// XConfirmDeleteListener + virtual sal_Bool SAL_CALL confirmDelete(const ::com::sun::star::sdb::RowChangeEvent& aEvent) throw( ::com::sun::star::uno::RuntimeException ); + +// XServiceInfo + virtual sal_Bool SAL_CALL supportsService(const ::rtl::OUString& ServiceName) throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(void) throw(::com::sun::star::uno::RuntimeException); + +// XResetListener + virtual sal_Bool SAL_CALL approveReset(const ::com::sun::star::lang::EventObject& rEvent) throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL resetted(const ::com::sun::star::lang::EventObject& rEvent) throw( ::com::sun::star::uno::RuntimeException ); + +// method for registration + static ::com::sun::star::uno::Sequence< ::rtl::OUString > static_getSupportedServiceNames(void); + + // utl::OPropertyArrayUsageHelper + virtual void fillProperties( + ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property >& /* [out] */ _rProps, + ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property >& /* [out] */ _rAggregateProps + ) const; + +// access to the controls for filtering + const FmFilterControls& getFilterControls() const {return m_aFilterControls;} + +// access to the current filter rows + const FmFilterRows& getFilterRows() const {return m_aFilters;} + FmFilterRows& getFilterRows() {return m_aFilters;} + + // just decr. the positions no notifications for the view + void decrementCurrentFilterPosition() + { + DBG_ASSERT(m_nCurrentFilterPosition, "Invalid Position"); + --m_nCurrentFilterPosition; + } + + void setCurrentFilterPosition(sal_Int32 nPos); + sal_Int32 getCurrentFilterPosition() const {return m_nCurrentFilterPosition;} + +protected: + // FmDispatchInterceptor + virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch> + interceptedQueryDispatch(sal_uInt16 _nId,const ::com::sun::star::util::URL& aURL, + const ::rtl::OUString& aTargetFrameName, sal_Int32 nSearchFlags) + throw( ::com::sun::star::uno::RuntimeException ); + + virtual ::osl::Mutex* getInterceptorMutex() { return &m_aMutex; } + + void startFiltering(); + void stopFiltering(); + void setFilter(vector&); + void startListening(); + void stopListening(); + void startControlListening(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl); + void stopControlListening(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl); + void setLocks(); + void setControlLock(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl); + void addToEventAttacher(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl); + void removeFromEventAttacher(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl); + void toggleAutoFields(sal_Bool bAutoFields); + void unload() throw( ::com::sun::star::uno::RuntimeException ); + + ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> findControl(::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> >& rCtrls, const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel>& rxCtrlModel ) const; + + void insertControl(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl); + void removeControl(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl); + + void onModify(); + void onActivate(); + + sal_Bool isLocked() const {return m_bLocked;} + sal_Bool determineLockState() const; + + Window* getDialogParentWindow(); + // returns m_pWindow or - if m_pWindow is NULL - the window of the currently set container + + ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProviderInterceptor> createInterceptor(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProviderInterception>& _xInterception); + // create a new interceptor, register it on the given object + void deleteInterceptor(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProviderInterception>& _xInterception); + // if createInterceptor was called for the given object the according interceptor will be removed + // from the objects interceptor chain and released + + // in filter mode we do not listen for changes + sal_Bool isListeningForChanges() const {return m_bDBConnection && !m_bFiltering && !isLocked();} + void addChild(FmXFormController* pChild); + ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> isInList(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer>& xPeer) const; + + DECL_LINK( OnTimeout, void* ); + DECL_LINK( OnLoad, void* ); + DECL_LINK( OnToggleAutoFields, void* ); + DECL_LINK( OnUpdateDispatchers, void* ); +}; + + +#endif // _SVX_FMCTRLER_HXX + diff --git a/svx/source/inc/fmexch.hxx b/svx/source/inc/fmexch.hxx new file mode 100644 index 000000000000..d8ce356ebdd3 --- /dev/null +++ b/svx/source/inc/fmexch.hxx @@ -0,0 +1,152 @@ +/************************************************************************* + * + * $RCSfile: fmexch.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:19 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _SVX_FMEXCH_HXX +#define _SVX_FMEXCH_HXX + +#include + +#ifndef _SOT_DTRANS_HXX //autogen +#include +#endif + +#ifndef _DTRANS_HXX //autogen +#include +#endif + +#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_ +#include +#endif + +class FmFormShell; +class FmFormPage; +class SvLBoxEntry; + +//======================================================================== +// Exchange types +#define SVX_FM_FIELD_EXCH String("SvxFormFieldExch", sizeof("SvxFormFieldExch")) +#define SVX_FM_CONTROL_EXCH String("SvxFormExplCtrlExch", sizeof("SvxFormExplCtrlExch")) +#define SVX_FM_CONTROLS_AS_PATH String("SvxFormControlsAsPathExchange", sizeof("SvxFormControlsAsPathExchange")) +#define SVX_FM_HIDDEN_CONTROLS String("SvxFormHiddenControlsExchange", sizeof("SvxFormHiddenControlsExchange")) +#define SVX_FM_FILTER_FIELDS String("SvxFilterFieldExchange", sizeof("SvxFilterFieldExchange")) + +//======================================================================== + +typedef ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence > FmControlPaths; + +//======================================================================== +class SvTreeListBox; +class SvxFmExplCtrlExch : public SvDataObject +{ + FmFormShell* m_pShell; + FmFormPage* m_pPage; + + SvDataTypeList m_aDataTypeList; + + std::vector m_aDraggedEntries; + FmControlPaths m_aControlPaths; + ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > > m_seqControls; + +public: + SvxFmExplCtrlExch( const std::vector& lstWhich, FmFormShell* pShell, FmFormPage* pPage ); + SvxFmExplCtrlExch( SvLBoxEntry* pEntry ); + + virtual const SvDataTypeList& GetTypeList() const { return m_aDataTypeList; } + virtual sal_Bool GetData( SvData* ); + + SvLBoxEntry* GetDragEntry() const { return m_aDraggedEntries.front(); } + void AddItem(SvLBoxEntry* pNew) { m_aDraggedEntries.push_back( pNew ); } + + FmFormShell* GetShell() const { return m_pShell; } + FmFormPage* GetPage() const { return m_pPage; } + const ::std::vector& GetDraggedEntries() const { return m_aDraggedEntries; } + const FmControlPaths GetControlPaths() { return m_aControlPaths; } + const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > > GetHiddenControls() { return m_seqControls; } + + void BuildPathFormat(SvTreeListBox* pTreeBox, SvLBoxEntry* pRoot); + // baut aus m_aDraggedEntries m_aControlPaths auf + // (es wird davon ausgegangen, dass die Eintraege in m_aDraggedEntries sortiert sind in Bezug auf die Nachbar-Beziehung) + void BuildListFromPath(SvTreeListBox* pTreeBox, SvLBoxEntry* pRoot); + // der umgekehrte Weg : wirft alles aus m_aDraggedEntries weg und baut es mittels m_aControlPaths neu auf + + void AddHiddenControlsFormat(const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > > seqInterfaces); + // fuegt ein SVX_FML_HIDDEN_CONTROLS-Format hinzu und merk sich dafuer die uebergebenen Interfaces + // (es erfolgt KEINE Ueberpruefung, ob dadurch auch tatsaechlich nur hidden Controls bezeichnet werden, dass muss der + // Aufrufer sicherstellen) +}; + +SV_DECL_IMPL_REF( SvxFmExplCtrlExch ); + +//======================================================================== +class SvxFmFieldExch : public SotDataObject +{ + String aFieldDesc; + SvDataTypeList aDataTypeList; + +public: + SvxFmFieldExch(const String& rFieldDesc); + + virtual const SvDataTypeList& GetTypeList() const { return aDataTypeList; } + virtual sal_Bool GetData( SvData* ); +}; + +SV_DECL_IMPL_REF( SvxFmFieldExch ); +#endif + diff --git a/svx/source/inc/fmexpl.hrc b/svx/source/inc/fmexpl.hrc new file mode 100644 index 000000000000..23a9c8210f1c --- /dev/null +++ b/svx/source/inc/fmexpl.hrc @@ -0,0 +1,74 @@ +/************************************************************************* + * + * $RCSfile: fmexpl.hrc,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:19 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef _SVX_FMEXPL_HRC +#define _SVX_FMEXPL_HRC + +#define FT_PATH 1 + +#define GB_PATH 1 + +#define PB_OK 1 +#define PB_CANCEL 2 +#define PB_HELP 3 + +#endif //_SVX_FMEXPL_HRC + diff --git a/svx/source/inc/fmexpl.hxx b/svx/source/inc/fmexpl.hxx new file mode 100644 index 000000000000..4cdc0cb9ff97 --- /dev/null +++ b/svx/source/inc/fmexpl.hxx @@ -0,0 +1,600 @@ +/************************************************************************* + * + * $RCSfile: fmexpl.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:19 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _SVX_FMEXPL_HXX +#define _SVX_FMEXPL_HXX + +#ifndef _SFXLSTNER_HXX //autogen +#include +#endif + +#ifndef _SFXBRDCST_HXX //autogen +#include +#endif + +#ifndef _SV_WINDOW_HXX //autogen +#include +#endif + +#ifndef _SFX_CHILDWIN_HXX //autogen +#include +#endif + +#ifndef _SFXPOOLITEM_HXX //autogen +#include +#endif + +#ifndef _SFX_BINDINGS_HXX //autogen +#include +#endif + +#ifndef _SFXDOCKWIN_HXX //autogen +#include +#endif + +#ifndef _SFXCTRLITEM_HXX //autogen +#include +#endif + +#ifndef _SV_IMAGE_HXX +#include +#endif + +#ifndef _COM_SUN_STAR_CONTAINER_XNAMECONTAINER_HPP_ +#include +#endif + +#ifndef _COM_SUN_STAR_FORM_XFORMCOMPONENT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_BEANS_PROPERTYCHANGEEVENT_HPP_ +#include +#endif + + +#ifndef _SVTREEBOX_HXX //autogen +#include +#endif + +#ifndef _DIALOG_HXX //autogen +#include +#endif + +#ifndef _GROUP_HXX //autogen +#include +#endif + +#ifndef _BUTTON_HXX //autogen +#include +#endif + +#ifndef _FIXED_HXX //autogen +#include +#endif + +#ifndef _EDIT_HXX //autogen +#include +#endif + +#ifndef _SV_DOCKWIN_HXX //autogen +#include +#endif + +#ifndef _SVX_FMVIEW_HXX +#include "fmview.hxx" +#endif + +#ifndef _SVX_FMTOOLS_HXX +#include +#endif + +class SdrObjListIter; +//======================================================================== +class FmEntryData; +class FmExplInsertedHint : public SfxHint +{ + FmEntryData* pEntryData; + sal_uInt32 nPos; + +public: + TYPEINFO(); + FmExplInsertedHint( FmEntryData* pInsertedEntryData, sal_uInt32 nRelPos ); + virtual ~FmExplInsertedHint(); + + FmEntryData* GetEntryData() const { return pEntryData; } + sal_uInt32 GetRelPos() const { return nPos; } +}; + +//======================================================================== +class FmExplModelReplacedHint : public SfxHint +{ + FmEntryData* pEntryData; // die Daten des Eintrages, der ein neues Model bekommen hat + +public: + TYPEINFO(); + FmExplModelReplacedHint( FmEntryData* pAffectedEntryData ); + virtual ~FmExplModelReplacedHint(); + + FmEntryData* GetEntryData() const { return pEntryData; } +}; + +//======================================================================== +class FmExplRemovedHint : public SfxHint +{ + FmEntryData* pEntryData; + +public: + TYPEINFO(); + FmExplRemovedHint( FmEntryData* pInsertedEntryData ); + virtual ~FmExplRemovedHint(); + + FmEntryData* GetEntryData() const { return pEntryData; } +}; + +//======================================================================== +class FmExplNameChangedHint : public SfxHint +{ + FmEntryData* pEntryData; + ::rtl::OUString aNewName; + +public: + TYPEINFO(); + FmExplNameChangedHint( FmEntryData* pData, const ::rtl::OUString& rNewName ); + virtual ~FmExplNameChangedHint(); + + FmEntryData* GetEntryData() const { return pEntryData; } + ::rtl::OUString GetNewName() const { return aNewName; } +}; + +//======================================================================== +class FmExplClearedHint : public SfxHint +{ +public: + TYPEINFO(); + FmExplClearedHint(); + virtual ~FmExplClearedHint(); +}; + +//======================================================================== +class FmExplViewMarksChanged : public SfxHint +{ + FmFormView* pView; +public: + TYPEINFO(); + FmExplViewMarksChanged(FmFormView* pWhichView) { pView = pWhichView; } + virtual ~FmExplViewMarksChanged() {} + + FmFormView* GetAffectedView() { return pView; } +}; + +//======================================================================== +class FmEntryDataList; +class FmEntryData +{ +protected: + Image aCollapsedImage; + Image aExpandedImage; + ::rtl::OUString aText; + + FmEntryDataList* pChildList; + FmEntryData* pParent; + +public: + TYPEINFO(); + + FmEntryData( FmEntryData* pParentData ); + FmEntryData( const FmEntryData& rEntryData ); + virtual ~FmEntryData(); + + void Clear(); + void SetText( const ::rtl::OUString& rText ){ aText = rText; } + void SetParent( FmEntryData* pParentData ){ pParent = pParentData; } + + Image GetCollapsedImage() const { return aCollapsedImage; } + Image GetExpandedImage() const { return aExpandedImage; } + ::rtl::OUString GetText() const { return aText; } + FmEntryData* GetParent() const { return pParent; } + FmEntryDataList* GetChildList() const { return pChildList; } + + virtual sal_Bool IsEqualWithoutChilds( FmEntryData* pEntryData ); + virtual FmEntryData* Clone() = 0; + + virtual const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& GetElement() const = 0; +}; + +//======================================================================== +DECLARE_LIST( FmEntryDataBaseList, FmEntryData* ); + +class FmEntryDataList : public FmEntryDataBaseList +{ +public: + FmEntryDataList(); + virtual ~FmEntryDataList(); +}; + +//======================================================================== +// FmExplRequestSelectHint - jemand teilt dem FmExplorer mit, dass er bestimmte Eintraege selektieren soll + +typedef FmEntryData* FmEntryDataPtr; +SV_DECL_PTRARR_SORT( FmEntryDataArray, FmEntryDataPtr, 16, 16 ) + +class FmExplRequestSelectHint : public SfxHint +{ + FmEntryDataArray m_arredToSelect; + sal_Bool m_bMixedSelection; +public: + TYPEINFO(); + FmExplRequestSelectHint() { } + virtual ~FmExplRequestSelectHint() {} + + void SetMixedSelection(sal_Bool bMixedSelection) { m_bMixedSelection = bMixedSelection; } + sal_Bool IsMixedSelection() { return m_bMixedSelection; } + void AddItem(FmEntryData* pEntry) { m_arredToSelect.Insert(pEntry); } + void ClearItems() { m_arredToSelect.Remove(sal_uInt16(0), m_arredToSelect.Count()); } + FmEntryDataArray& GetItems() { return m_arredToSelect; } +}; + +//======================================================================== +class FmFormData : public FmEntryData +{ + ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm > m_xForm; + +public: + TYPEINFO(); + + FmFormData( ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm > xForm, const ImageList& ilNavigatorImages, FmFormData* pParent=NULL ); + FmFormData( const FmFormData& rFormData ); + virtual ~FmFormData(); + + void SetForm( const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm >& xForm ){ m_xForm = xForm; } + + const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm >& GetFormIface() const { return m_xForm; } + virtual sal_Bool IsEqualWithoutChilds( FmEntryData* pEntryData ); + virtual FmEntryData* Clone(); + + virtual const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& GetElement() const { return m_xForm;} +}; + + +//======================================================================== +class FmControlData : public FmEntryData +{ + ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormComponent > m_xFormComponent; + + Image GetImage(const ImageList& ilNavigatorImages) const; + +public: + TYPEINFO(); + + FmControlData( ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormComponent > xFormComponent, const ImageList& ilNavigatorImages, FmFormData* pParent ); + FmControlData( const FmControlData& rControlData ); + virtual ~FmControlData(); + + const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormComponent >& GetFormComponent() const { return m_xFormComponent; } + virtual sal_Bool IsEqualWithoutChilds( FmEntryData* pEntryData ); + virtual FmEntryData* Clone(); + virtual const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& GetElement() const { return m_xFormComponent;} + + void ModelReplaced(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormComponent >& xNew, const ImageList& ilNavigatorImages); +}; + +//======================================================================== +class FmExplorerModel; +class FmXExplPropertyChangeList : public ::cppu::WeakImplHelper2< ::com::sun::star::beans::XPropertyChangeListener, + ::com::sun::star::container::XContainerListener> +{ + FmExplorerModel* m_pExplModel; + sal_uInt32 m_nLocks; + sal_Bool m_bCanUndo; + +public: + FmXExplPropertyChangeList(FmExplorerModel* pModel); + + // UNO-Anbindung + // DECLARE_UNO3_AGG_DEFAULTS( FmXExplPropertyChangeList, UsrObject ); + // virtual sal_Bool queryInterface(::com::sun::star::uno::Uik aUik, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rOut); + +// XEventListenerListener + virtual void SAL_CALL disposing(const ::com::sun::star::lang::EventObject& Source) throw(::com::sun::star::uno::RuntimeException); + +// ::com::sun::star::beans::XPropertyChangeListener + virtual void SAL_CALL propertyChange(const ::com::sun::star::beans::PropertyChangeEvent& evt); + +// ::com::sun::star::container::XContainerListener + + virtual void SAL_CALL elementInserted(const ::com::sun::star::container::ContainerEvent& rEvent); + virtual void SAL_CALL elementReplaced(const ::com::sun::star::container::ContainerEvent& rEvent); + virtual void SAL_CALL elementRemoved(const ::com::sun::star::container::ContainerEvent& rEvent); + + void Lock() { m_nLocks++; } + void UnLock() { m_nLocks--; } + sal_Bool IsLocked() const { return m_nLocks != 0; } + sal_Bool CanUndo() const { return m_bCanUndo; } + void ReleaseModel() { m_pExplModel = NULL; } +protected: + void Insert(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xIface, sal_Int32 nIndex); +}; + +//======================================================================== +class FmFormShell; +class SdrObject; +class FmFormModel; +class FmExplorerModel : public SfxBroadcaster + ,public SfxListener +{ + friend class FmExplorer; + friend class FmXExplPropertyChangeList; + + FmEntryDataList* m_pRootList; + FmFormShell* m_pFormShell; + FmFormPage* m_pFormPage; + FmFormModel* m_pFormModel; + FmXExplPropertyChangeList* m_pPropChangeList; + + const ImageList m_ilNavigatorImages; + + void Update( const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& xForms ); + FmControlData* CreateControlData( ::com::sun::star::form::XFormComponent* pFormComponent ); + + void InsertForm(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm >& xForm, sal_uInt32 nRelPos); + void RemoveForm(FmFormData* pFormData); + + void InsertFormComponent(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormComponent >& xComp, sal_uInt32 nRelPos); + void RemoveFormComponent(FmControlData* pControlData); + void InsertSdrObj(const SdrObject* pSdrObj); + void RemoveSdrObj(const SdrObject* pSdrObj); + + void ReplaceFormComponent(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormComponent >& xOld, const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormComponent >& xNew); + + void BroadcastMarkedObjects(const SdrMarkList& mlMarked); + // einen RequestSelectHint mit den aktuell markierten Objekten broadcasten + sal_Bool InsertFormComponent(FmExplRequestSelectHint& rHint, SdrObject* pObject); + // ist ein Helper fuer vorherige, managet das Abteigen in SdrObjGroups + // Rueckgabe sal_True, wenn das Objekt eine FormComponent ist (oder rekursiv nur aus solchen besteht) + +public: + FmExplorerModel(const ImageList& ilNavigatorImages); + virtual ~FmExplorerModel(); + + void FillBranch( FmFormData* pParentData ); + void ClearBranch( FmFormData* pParentData ); + void Update( FmFormShell* pNewShell ); + + void Insert( FmEntryData* pEntryData, sal_uInt32 nRelPos = LIST_APPEND, + sal_Bool bAlterModel = sal_False ); + void Remove( FmEntryData* pEntryData, sal_Bool bAlterModel = sal_False ); + + sal_Bool Rename( FmEntryData* pEntryData, const ::rtl::OUString& rNewText ); + sal_Bool IsNameAlreadyDefined( const ::rtl::OUString& rName, FmFormData* pParentData ); + void Clear(); + sal_Bool CheckEntry( FmEntryData* pEntryData ); + void SetModified( sal_Bool bMod=sal_True ); + + ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > GetForms() const; + FmFormShell* GetFormShell() const { return m_pFormShell; } + FmFormPage* GetFormPage() const { return m_pFormPage; } + FmEntryData* FindData( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xElement, FmEntryDataList* pDataList, sal_Bool bRecurs=sal_True ); + FmEntryData* FindData( const ::rtl::OUString& rText, FmFormData* pParentData, sal_Bool bRecurs=sal_True ); + FmEntryDataList* GetRootList() const { return m_pRootList; } + ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer > GetFormComponents( FmFormData* pParentFormData ); + SdrObject* GetSdrObj( FmControlData* pControlData ); + SdrObject* Search(SdrObjListIter& rIter, const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormComponent >& xComp); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); +}; + + +//======================================================================== +typedef SvLBoxEntry* SvLBoxEntryPtr; +SV_DECL_PTRARR_SORT( SvLBoxEntrySortedArray, SvLBoxEntryPtr, 16, 16 ) + +class FmExplorer : public SvTreeListBox, public SfxListener +{ + enum DROP_ACTION { DA_SCROLLUP, DA_SCROLLDOWN, DA_EXPANDNODE }; + enum SELDATA_ITEMS { SDI_DIRTY, SDI_ALL, SDI_NORMALIZED, SDI_NORMALIZED_FORMARK }; + + // beim Droppen will ich scrollen und Folder aufklappen koennen, dafuer : + AutoTimer m_aDropActionTimer; + Timer m_aSynchronizeTimer; + // die Meta-Daten ueber meine aktuelle Selektion + SvLBoxEntrySortedArray m_arrCurrentSelection; + // die Images, die ich brauche (und an FormDatas und EntryDatas weiterreiche) + ImageList m_ilNavigatorImages; + + FmExplorerModel* m_pExplModel; + SvLBoxEntry* m_pRootEntry; + SvLBoxEntry* m_pEditEntry; + + sal_uInt32 nEditEvent; + + Image m_aCollapsedNodeImg; + Image m_aExpandedNodeImg; + Image m_aRootImg; + + SELDATA_ITEMS m_sdiState; + Point m_aTimerTriggered; // die Position, an der der DropTimer angeschaltet wurde + DROP_ACTION m_aDropActionType; + + sal_uInt16 m_nSelectLock; + sal_uInt16 m_nFormsSelected; + sal_uInt16 m_nControlsSelected; + sal_uInt16 m_nHiddenControls; // (die Zahl geht in m_nControlsSelected mit ein) + + unsigned short m_aTimerCounter; + + sal_Bool m_bShellOrPageChanged:1; // wird in jedem Update(FmFormShell*) auf sal_True gesetzt + sal_Bool m_bDragDataDirty:1; // dito + sal_Bool m_bPrevSelectionMixed:1; + sal_Bool m_bMarkingObjects:1; // wenn das sal_True ist, brauche ich auf die RequestSelectHints nicht reagieren + sal_Bool m_bRootSelected:1; + sal_Bool m_bInitialUpdate:1; // bin ich das erste Mal im Update ? + + + void Update(); + sal_Bool IsDeleteAllowed(); + FmControlData* NewControl( const ::rtl::OUString& rServiceName, SvLBoxEntry* pParentEntry, sal_Bool bEditName = sal_True ); + void NewForm( SvLBoxEntry* pParentEntry ); + SvLBoxEntry* Insert( FmEntryData* pEntryData, sal_uInt32 nRelPos=LIST_APPEND ); + void Remove( FmEntryData* pEntryData ); + + + void CollectSelectionData(SELDATA_ITEMS sdiHow); + // sammelt in m_arrCurrentSelection die aktuell selektierten Eintraege, normalisiert die Liste wenn verlangt + // SDI_NORMALIZED bedeutet einfach, dass alle Eintraege, die schon einen selektierten Vorfahren haben, nicht mit gesammelt + // werden. + // SDI_NORMALIZED_FORMARK bedeutet, dass wie bei SDI_NORMALIZED verfahren wird, aber Eintraege, deren direktes Elter nicht + // selektiert ist, aufgenommen werden (unabhaengig vom Status weiterer Vorfahren), desgleichen Formulare, die selektiert sind, + // unabhaengig vom Status irgendwelcher Vorfahren + // Bei beiden Normalized-Modi enthalten die m_nFormsSelected, ... die richtige Anzahl, auch wenn nicht alle dieser Eintraege + // in m_arrCurrentSelection landen. + // SDI_DIRTY ist natuerlich nicht erlaubt als Parameter + + // ein einziges Interface fuer alle selektierten Eintraege zusammensetzen + void ShowSelectionProperties(sal_Bool bForce = sal_False); + // alle selektierten Elemnte loeschen + void DeleteSelection(); + + void SynchronizeSelection(FmEntryDataArray& arredToSelect); + // nach dem Aufruf dieser Methode sind genau die Eintraege selektiert, die in dem Array bezeichnet sind + void SynchronizeSelection(); + // macht das selbe, nimmt die MarkList der ::com::sun::star::sdbcx::View + void SynchronizeMarkList(); + // umgekehrte Richtung von SynchronizeMarkList : markiert in der ::com::sun::star::sdbcx::View alle der aktuellen Selektion entsprechenden Controls + + // im Select aktualisiere ich normalerweise die Marklist der zugehoerigen ::com::sun::star::sdbcx::View, mit folgenden Funktionen + // kann ich das Locking dieses Verhaltens steuern + void LockSelectionHandling() { ++m_nSelectLock; } + void UnlockSelectionHandling() { --m_nSelectLock; } + sal_Bool IsSelectionHandlingLocked() const { return m_nSelectLock>0; } + + sal_Bool IsHiddenControl(FmEntryData* pEntryData); + + DECL_LINK( OnEdit, void* ); + DECL_LINK( OnDropActionTimer, void* ); + + DECL_LINK(OnEntrySelDesel, FmExplorer*); + DECL_LINK(OnSynchronizeTimer, void*); + +protected: + virtual void Command( const CommandEvent& rEvt ); + +public: + FmExplorer( Window* pParent ); + virtual ~FmExplorer(); + + void Clear(); + void Update( FmFormShell* pFormShell ); + void MarkViewObj( FmFormData* pFormData, sal_Bool bMark, sal_Bool bDeep = sal_False ); + void MarkViewObj( FmControlData* pControlData, sal_Bool bMarkHandles, sal_Bool bMark ); + void UnmarkAllViewObj(); + + sal_Bool IsFormEntry( SvLBoxEntry* pEntry ); + sal_Bool IsFormComponentEntry( SvLBoxEntry* pEntry ); + + ::rtl::OUString GenerateName( FmEntryData* pEntryData ); + + FmExplorerModel* GetExplModel() const { return m_pExplModel; } + SvLBoxEntry* FindEntry( FmEntryData* pEntryData ); + + virtual sal_Bool EditedEntry( SvLBoxEntry* pEntry, const XubString& rNewText ); + virtual sal_Bool Select( SvLBoxEntry* pEntry, sal_Bool bSelect=sal_True ); + virtual sal_Bool QueryDrop( DropEvent& rDEvt ); + virtual sal_Bool Drop( const DropEvent& rDEvt ); + virtual sal_Bool EditingEntry( SvLBoxEntry* pEntry, Selection& ); + virtual void MouseButtonUp( const MouseEvent& rMEvt ); + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + virtual void KeyInput( const KeyEvent& rKEvt ); +}; + + +//======================================================================== +class FmFormShell; +class FmExplorerWin : public SfxDockingWindow, public SfxControllerItem +{ +private: + FmExplorer* m_pFmExplorer; + +protected: + virtual void Resize(); + virtual sal_Bool Close(); + virtual Size CalcDockingSize( SfxChildAlignment ); + virtual SfxChildAlignment CheckAlignment( SfxChildAlignment, SfxChildAlignment ); + +public: + FmExplorerWin( SfxBindings *pBindings, SfxChildWindow *pMgr, + Window* pParent ); + virtual ~FmExplorerWin(); + + void Update( FmFormShell* pFormShell ); + void StateChanged( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ); + void FillInfo( SfxChildWinInfo& rInfo ) const; +}; + +//======================================================================== +class FmExplorerWinMgr : public SfxChildWindow +{ +public: + FmExplorerWinMgr( Window *pParent, sal_uInt16 nId, SfxBindings *pBindings, + SfxChildWinInfo *pInfo ); + SFX_DECL_CHILDWINDOW( FmExplorerWinMgr ); +}; + +#endif // _SVX_FMEXPL_HXX + diff --git a/svx/source/inc/fmgroup.hxx b/svx/source/inc/fmgroup.hxx new file mode 100644 index 000000000000..e1ca44adc434 --- /dev/null +++ b/svx/source/inc/fmgroup.hxx @@ -0,0 +1,154 @@ +/************************************************************************* + * + * $RCSfile: fmgroup.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:19 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _SVX_FMGROUP_HXX +#define _SVX_FMGROUP_HXX + +#ifndef _SVX_FMCPONT_HXX +#include "fmcpont.hxx" +#endif + +#ifndef __DBFORM_HXX +#include +#endif + +DECLARE_LIST( FmCtrlModelList, XInterface* ); + +struct FmXGroupModel_Impl; + +//================================================================== +// FmXGroupModel +//================================================================== +class FmXGroupModel : public XBoundControl, + public XLoadListener, + public XPropertyChangeListener, + public XGroup, + public FmXControlModel +{ + FmFormControlMap aControlMap; + + friend Reflection* FmXGroupModel_getReflection(); + FmXGroupModel_Impl* pGroupModelData; // Properties + +public: + FmXGroupModel(); + virtual ~FmXGroupModel(); + + // UNO Anbindung + SMART_UNO_DECLARATION( FmXGroupModel, FmXControlModel ); + virtual XInterface* queryInterface(UsrUik); + virtual XIdlClassRef getIdlClass(); + + // XGroup + virtual INT32 getFormControlCount(); + virtual XFormControlRef getFormControlByName( const XubString& sName ) const; + virtual XFormControlRef getFormControlByIndex( INT32 Index ) const; + virtual void appendFormControl( const XFormControlRef& FormControl ); + virtual XFormControlRef removeFormControl( const XFormControlRef& FormControl ); + + // XFormControl + virtual void setParent( const XFormRef& Parent ); + + // XEventListener + virtual void disposing( const EventObject& Source ); + + // XPropertiesChangeListener + virtual void propertyChange( const PropertyChangeEvent& evt ); + + // XLoadListener + virtual void loaded( const EventObject& rEvent ); + virtual void unloaded( const EventObject& rEvent ); + + // XBoundControl + virtual void addBoundControlListener( const XBoundControlListenerRef& l ); + virtual void removeBoundControlListener( const XBoundControlListenerRef& l ); + + // XPersistObject + virtual XubString getServiceName( void ) const; + virtual void write( const XObjectOutputStreamRef& OutStream ); + virtual void read( const XObjectInputStreamRef& InStream ); + + // PropertySetInterface + virtual FmXPropertySetInfo* createPropertySetInfo() const; + virtual BOOL setPropertyValue( UINT16 nId, const XubString& aPropertyName, + const UsrAny& aValue, + PropertyChangeEventSequence* pSeq, + INT32 nIndex ); + virtual UsrAny getPropertyValue( UINT16 nId, const XubString& aPropertyName ) const; + virtual void addPropertyChangeListener( const XubString& aPropertyName, const XPropertyChangeListenerRef& aListener ); + virtual void removePropertyChangeListener( const XubString& aPropertyName, const XPropertyChangeListenerRef& aListener ); +}; + +//================================================================== +// FmXGroupModelInfo +// Properties: +//================================================================== +class FmXGroupModelInfo : public FmXControlModelInfo +{ + friend class FmXGroupModel; + +protected: + FmXGroupModelInfo( const FmXGroupModel* pCp ); + virtual void fillProperties( UINT32& nIndex, PropertySequence& aSeq ) const; +}; + + +#endif // _SVX_FMGROUP_HXX + diff --git a/svx/source/inc/fmhlpids.hrc b/svx/source/inc/fmhlpids.hrc new file mode 100644 index 000000000000..f5b6b78630cc --- /dev/null +++ b/svx/source/inc/fmhlpids.hrc @@ -0,0 +1,70 @@ +/************************************************************************* + * + * $RCSfile: fmhlpids.hrc,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:19 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _SVX_FMHLPIDS_HRC +#define _SVX_FMHLPIDS_HRC + +// include ----------------------------------------------------------- +#ifndef _SVX_FMHELP_HRC +#include "fmhelp.hrc" +#endif + +#endif + diff --git a/svx/source/inc/fmitems.hxx b/svx/source/inc/fmitems.hxx new file mode 100644 index 000000000000..4fa1ae07e09b --- /dev/null +++ b/svx/source/inc/fmitems.hxx @@ -0,0 +1,158 @@ +/************************************************************************* + * + * $RCSfile: fmitems.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:19 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _SVX_FMITEMS_HXX +#define _SVX_FMITEMS_HXX + + +#ifndef _SFXPOOLITEM_HXX //autogen +#include +#endif + +#include +// FORWARD_DECLARE_INTERFACE(awt,XControlContainer) +FORWARD_DECLARE_INTERFACE(uno,Any) +// class ::com::sun::star::uno::Any; + +struct FmFormInfo +{ + sal_Int32 Pos; + sal_Int32 Count; + sal_Bool ReadOnly; + FmFormInfo(sal_Int32 _Pos = 0, sal_Int32 _Count = -1, sal_Bool _ReadOnly = sal_False) + :Pos(_Pos) + ,Count(_Count) + ,ReadOnly(_ReadOnly){} + sal_Bool operator == (const FmFormInfo& rInfo) const + {return Pos == rInfo.Pos && Count == rInfo.Count && ReadOnly==rInfo.ReadOnly;} +}; + +//================================================================== +class FmFormInfoItem : public SfxPoolItem +{ + FmFormInfo aInfo; + +public: + TYPEINFO(); + + FmFormInfoItem(const sal_uInt16 nId, const FmFormInfo& rInfo = FmFormInfo()) + :SfxPoolItem(nId) + ,aInfo(rInfo){} + + inline FmFormInfoItem& operator=( const FmFormInfoItem &rCpy ); + + // "pure virtual Methoden" vom SfxPoolItem + virtual int operator==( const SfxPoolItem& ) const; + virtual sal_Bool QueryValue( ::com::sun::star::uno::Any& rVal, sal_Int8 nMemberId = 0 ) const; + virtual sal_Bool SetValue( const ::com::sun::star::uno::Any& rVal, sal_Int8 nMemberId = 0 ); + + virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; + virtual SfxPoolItem* Create(SvStream &, sal_uInt16) const; + virtual SvStream& Store(SvStream &, sal_uInt16 nItemVersion ) const; + + const FmFormInfo& GetInfo() const { return aInfo; } + void SetInfo(const FmFormInfo& rInfo) { aInfo = rInfo; } +}; + +inline FmFormInfoItem& FmFormInfoItem::operator=( const FmFormInfoItem &rCpy ) +{ + aInfo = rCpy.aInfo; + return *this; +} + + +//================================================================== +class FmInterfaceItem : public SfxPoolItem +{ + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xInterface; + +public: + TYPEINFO(); + + FmInterfaceItem( const sal_uInt16 nId, const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rxInterface ) + :SfxPoolItem( nId ) + ,xInterface( rxInterface ) + {} + + inline FmInterfaceItem& operator=( const FmInterfaceItem &rCpy ); + + // "pure virtual Methoden" vom SfxPoolItem + virtual int operator==( const SfxPoolItem& ) const; + virtual sal_Bool QueryValue( ::com::sun::star::uno::Any& rVal, sal_Int8 nMemberId = 0 ) const; + virtual sal_Bool SetValue( const ::com::sun::star::uno::Any& rVal, sal_Int8 nMemberId = 0 ); + + virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; + virtual SfxPoolItem* Create(SvStream &, sal_uInt16) const; + virtual SvStream& Store(SvStream &, sal_uInt16 nItemVersion ) const; + + const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > GetInterface() const { return xInterface; } +}; + +inline FmInterfaceItem& FmInterfaceItem::operator=( const FmInterfaceItem &rCpy ) +{ + xInterface = rCpy.xInterface; + + return *this; +} + + + +#endif // _SVX_FMITEMS_HXX + diff --git a/svx/source/inc/fmobj.hxx b/svx/source/inc/fmobj.hxx new file mode 100644 index 000000000000..1c5c01e6d6a4 --- /dev/null +++ b/svx/source/inc/fmobj.hxx @@ -0,0 +1,143 @@ +/************************************************************************* + * + * $RCSfile: fmobj.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:19 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _SVX_FMOBJ_HXX +#define _SVX_FMOBJ_HXX + +#ifndef _SVDOUNO_HXX +#include "svdouno.hxx" +#endif + +#ifndef _COM_SUN_STAR_SCRIPT_SCRIPTEVENTDESCRIPTOR_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XINDEXCONTAINER_HPP_ +#include +#endif + +class FmFormView; + +//================================================================== +// FmFormObj +//================================================================== +class FmXForms; +class FmFormObj: public SdrUnoObj +{ + friend class FmForm; + friend class FmFormPage; + friend class FmFormPageImpl; + friend class FmFormObjFactory; + friend class FmXUndoEnvironment; + friend class SvxFmDrawPage; + friend class SvxFmMSFactory; + + ::com::sun::star::uno::Sequence< ::com::sun::star::script::ScriptEventDescriptor > aEvts; // events des Objects + ::com::sun::star::uno::Sequence< ::com::sun::star::script::ScriptEventDescriptor> m_aEventsHistory; + // valid if and only if m_pEnvironmentHistory != NULL, this are the events which we're set when + // m_pEnvironmentHistory was created + + FmFormView* pTempView; + sal_uInt32 nEvent; + + // Informationen fuer die Controlumgebung + // werden nur vorgehalten, wenn ein Object sich nicht in einer Objectliste befindet + ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer> xParent; + ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer > m_xEnvironmentHistory; + sal_Int32 nPos; + +public: + TYPEINFO(); + +protected: + FmFormObj(const ::rtl::OUString& rModelName); + FmFormObj(); + + const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer>& GetParent() const {return xParent;} + void SetObjEnv(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer>& xForm, sal_Int32 nIdx = -1, + const ::com::sun::star::uno::Sequence< ::com::sun::star::script::ScriptEventDescriptor >& rEvts= ::com::sun::star::uno::Sequence< ::com::sun::star::script::ScriptEventDescriptor >()); + const ::com::sun::star::uno::Sequence< ::com::sun::star::script::ScriptEventDescriptor >& GetEvents() const {return aEvts;} + sal_Int32 GetPos() const {return nPos;} + +public: + virtual ~FmFormObj(); + virtual void SetPage(SdrPage* pNewPage); + + virtual sal_uInt32 GetObjInventor() const; + virtual sal_uInt16 GetObjIdentifier() const; + + virtual SdrObject* Clone() const; + virtual SdrObject* Clone(SdrPage* pPage, SdrModel* pModel) const; + virtual void operator= (const SdrObject& rObj); + + virtual void clonedFrom(const FmFormObj* _pSource); + + static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> ensureModelEnv(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& _rSourceContainer, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer> _rTopLevelDestContainer); + +protected: + virtual void WriteData(SvStream& rOut) const; + virtual void ReadData(const SdrObjIOHeader& rHead, SvStream& rIn); + virtual FASTBOOL EndCreate(SdrDragStat& rStat, SdrCreateCmd eCmd); + + DECL_LINK(OnCreate, void* ); +}; + + +#endif // _FM_FMOBJ_HXX + diff --git a/svx/source/inc/fmpgeimp.hxx b/svx/source/inc/fmpgeimp.hxx new file mode 100644 index 000000000000..ac547590e97d --- /dev/null +++ b/svx/source/inc/fmpgeimp.hxx @@ -0,0 +1,183 @@ +/************************************************************************* + * + * $RCSfile: fmpgeimp.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:19 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _SVX_FMUNOPGE_HXX +#define _SVX_FMUNOPGE_HXX + +#ifndef _COM_SUN_STAR_SDB_XDATABASEACCESS_HPP_ +#include +#endif + +#ifndef _COM_SUN_STAR_CONTAINER_XNAMEACCESS_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FORM_XFORMCOMPONENT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FORM_XFORM_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMECONTAINER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FRAME_XMODEL_HPP_ +#include +#endif + + +#ifndef _LIST_HXX //autogen +#include +#endif + +#ifndef _UTL_UNO3_HXX_ +#include +#endif + +class SvStream; +class SdrIOHeader; +class FmFormObj; +class SdrObject; + +//FORWARD_DECLARE_INTERFACE(uno,Reference) +FORWARD_DECLARE_INTERFACE(io,XObjectOutputStream) +FORWARD_DECLARE_INTERFACE(io,XObjectInputStream) +FORWARD_DECLARE_INTERFACE(container,XIndexContainer) + +class SdrObjList; + +DECLARE_LIST(FmObjectList, FmFormObj*); + +//================================================================== +// FmFormPageImpl +// lauscht an allen Containern, um festzustellen, wann Objecte +// eingefuegt worden sind und wann diese entfernt wurden +//================================================================== + +class FmFormPageImpl +{ + friend class FmFormPage; + friend class FmFormObj; + friend class FmXFormShell; + + ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm> xCurrentForm; // aktuelles Formular + + ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer> xForms; // Liste aller Forms + + FmFormPage* pPage; + ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel> xModel; + + UniString m_sPageId; + +protected: + FmFormPageImpl(FmFormPage* _pPage); + FmFormPageImpl(FmFormPage* _pPage, const FmFormPageImpl& rImpl); + ~FmFormPageImpl(); + + void Init(); + +public: + // nur wichtig fuer den DesignMode + void setCurForm(::com::sun::star::uno::Reference< ::com::sun::star::form::XForm> xForm); + const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm>& getCurForm() {return xCurrentForm;} + ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm> getDefaultForm(); + + // Defaults fuer ein Object setzen + // Eindeutigen Namen, Zuordnen zu einer Form falls noch nicht erfolgt + ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm> SetDefaults(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormComponent>& rContent, + const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XDatabaseAccess>& rDatabase = ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XDatabaseAccess>(), + const ::rtl::OUString& rDBTitle = ::rtl::OUString(), + const ::rtl::OUString& rCursorSource = ::rtl::OUString(), + sal_Int32 nCommandType = 0); + + UniString GetPageId() const { return m_sPageId; } + +protected: + // lesen und schreiben der Objecte + void WriteData(SvStream& rOut) const; // + void ReadData(const SdrIOHeader& rHead, SvStream& rIn); // + + void write(const ::com::sun::star::uno::Reference< ::com::sun::star::io::XObjectOutputStream>& OutStream) const; + void read(const ::com::sun::star::uno::Reference< ::com::sun::star::io::XObjectInputStream>& InStream); + + const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer>& getForms() {return xForms;} + + void fillList(FmObjectList& rList, const SdrObjList& rObjList, sal_Bool bConnected) const; + + ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm> FindForm(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm>& rForm, + const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XDatabaseAccess>& rDatabase, + const ::rtl::OUString& rCursorSource, + sal_Int32 nCommandType); + + ::rtl::OUString getDefaultName(sal_Int16 nClassId, const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm>& xControls) const; + +public: + + static UniString getDefaultName(sal_Int16 nClassId); + + ::rtl::OUString setUniqueName(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormComponent>& xFormComponent, const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm>& xControls); + ::rtl::OUString getUniqueName(const ::rtl::OUString& rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess>& xNamedSet) const; +}; + +#define GET_DEFNAME(Id) \ + FmFormPageImpl::getDefaultName(Id) + + +#endif // _SVX_FMUNOPGE_HXX + diff --git a/svx/source/inc/fmprop.hrc b/svx/source/inc/fmprop.hrc new file mode 100644 index 000000000000..7d7f18d545ec --- /dev/null +++ b/svx/source/inc/fmprop.hrc @@ -0,0 +1,398 @@ +/************************************************************************* + * + * $RCSfile: fmprop.hrc,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:19 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _SVX_FMPROP_HRC +#define _SVX_FMPROP_HRC + +#ifndef _FM_STATIC_HXX_ +#include "fmstatic.hxx" +#endif +// PropertyId's, welche eine Zuordnung zu einen PropertyName haben, das koennten +// auch in Zukunft WhichIds sein -> Itemset +#define FM_ATTR_START 0 + +#define FM_ATTR_NAME (FM_ATTR_START + 1) +#define FM_ATTR_TABINDEX (FM_ATTR_START + 2) +#define FM_ATTR_CONTROLSOURCE (FM_ATTR_START + 3) +#define FM_ATTR_MASTERFIELDS (FM_ATTR_START + 4) +#define FM_ATTR_DATASOURCE (FM_ATTR_START + 6) +#define FM_ATTR_CLASSID (FM_ATTR_START + 9) +#define FM_ATTR_CURSORTYPE (FM_ATTR_START + 10) +#define FM_ATTR_READONLY (FM_ATTR_START + 11) +#define FM_ATTR_NAVIGATION (FM_ATTR_START + 13) +#define FM_ATTR_CYCLE (FM_ATTR_START + 14) +#define FM_ATTR_ALLOWADDITIONS (FM_ATTR_START + 15) +#define FM_ATTR_ALLOWEDITS (FM_ATTR_START + 16) +#define FM_ATTR_ALLOWDELETIONS (FM_ATTR_START + 17) +#define FM_ATTR_CACHESIZE (FM_ATTR_START + 19) +#define FM_ATTR_LASTDIRTY (FM_ATTR_START + 24) +#define FM_ATTR_VALUE (FM_ATTR_START + 31) // sal_Int32 +#define FM_ATTR_FORMATKEY (FM_ATTR_START + 33) // sal_uInt32 +#define FM_ATTR_SIZE (FM_ATTR_START + 37) // sal_uInt32 +#define FM_ATTR_HEIGHT (FM_ATTR_START + 41) // sal_uInt16 +#define FM_ATTR_WIDTH (FM_ATTR_START + 42) // sal_uInt16 +#define FM_ATTR_DEFAULTCONTROL (FM_ATTR_START + 43) // string +#define FM_ATTR_BOUNDCOLUMN (FM_ATTR_START + 44) // sal_uInt16 may be null +#define FM_ATTR_LISTSOURCETYPE (FM_ATTR_START + 45) // sal_uInt16 +#define FM_ATTR_LISTSOURCE (FM_ATTR_START + 46) // string +#define FM_ATTR_LISTINDEX (FM_ATTR_START + 47) // sal_uInt32 +#define FM_ATTR_TEXT (FM_ATTR_START + 48) // string +#define FM_ATTR_STRINGITEMLIST (FM_ATTR_START + 49) // wsstringsequence +#define FM_ATTR_LABEL (FM_ATTR_START + 50) // string +#define FM_ATTR_STATE (FM_ATTR_START + 52) // sal_uInt16 +#define FM_ATTR_GROUPBOX (FM_ATTR_START + 53) // string +#define FM_ATTR_FONT (FM_ATTR_START + 54) // font +#define FM_ATTR_HASNAVIGATION (FM_ATTR_START + 55) +#define FM_ATTR_ROWHEIGHT (FM_ATTR_START + 57) // sal_uInt16 +#define FM_ATTR_BACKGROUNDCOLOR (FM_ATTR_START + 58) // sal_uInt32 +#define FM_ATTR_FILLCOLOR (FM_ATTR_START + 59) // sal_uInt32 +#define FM_ATTR_TEXTCOLOR (FM_ATTR_START + 60) // sal_uInt32 +#define FM_ATTR_LINECOLOR (FM_ATTR_START + 61) // sal_uInt32 +#define FM_ATTR_BORDER (FM_ATTR_START + 62) // sal_uInt16 +#define FM_ATTR_ALIGN (FM_ATTR_START + 63) // sal_uInt16 +#define FM_ATTR_DROPDOWN (FM_ATTR_START + 64) // sal_Bool +#define FM_ATTR_MULTI (FM_ATTR_START + 65) // sal_Bool +#define FM_ATTR_HSCROLL (FM_ATTR_START + 66) // sal_Bool +#define FM_ATTR_VSCROLL (FM_ATTR_START + 67) // sal_Bool +#define FM_ATTR_TABSTOP (FM_ATTR_START + 68) // sal_Bool +#define FM_ATTR_REFVALUE (FM_ATTR_START + 69) // ::rtl::OUString +#define FM_ATTR_BUTTONTYPE (FM_ATTR_START + 70) // sal_uInt16 +#define FM_ATTR_DEFAULT_TEXT (FM_ATTR_START + 71) // ::rtl::OUString +#define FM_ATTR_SUBMIT_ACTION (FM_ATTR_START + 72) // string +#define FM_ATTR_SUBMIT_METHOD (FM_ATTR_START + 73) // FmSubmitMethod +#define FM_ATTR_SUBMIT_ENCODING (FM_ATTR_START + 74) // FmSubmitEncoding +#define FM_ATTR_DEFAULT_VALUE (FM_ATTR_START + 75) // ::rtl::OUString +#define FM_ATTR_SUBMIT_TARGET (FM_ATTR_START + 76) // ::rtl::OUString +#define FM_ATTR_DEFAULT_CHECKED (FM_ATTR_START + 77) // sal_uInt16 +#define FM_ATTR_VALUE_SEQ (FM_ATTR_START + 78) // StringSeq +#define FM_ATTR_IMAGE_URL (FM_ATTR_START + 79) // ::rtl::OUString +#define FM_ATTR_SELECT_SEQ (FM_ATTR_START + 91) // INT16Seq +#define FM_ATTR_DEFAULT_SELECT_SEQ (FM_ATTR_START + 92) // INT16Seq +#define FM_ATTR_MULTISELECTION (FM_ATTR_START + 93) // sal_Bool +#define FM_ATTR_MULTILINE (FM_ATTR_START + 94) // sal_Bool +#define FM_ATTR_DATE (FM_ATTR_START + 95) // sal_uInt32 +#define FM_ATTR_DATEMIN (FM_ATTR_START + 96) // sal_uInt32 +#define FM_ATTR_DATEMAX (FM_ATTR_START + 97) // sal_uInt32 +#define FM_ATTR_DATEFORMAT (FM_ATTR_START + 98) // sal_uInt16 +#define FM_ATTR_TIME (FM_ATTR_START + 99) // sal_uInt32 +#define FM_ATTR_TIMEMIN (FM_ATTR_START +100) // sal_uInt32 +#define FM_ATTR_TIMEMAX (FM_ATTR_START +101) // sal_uInt32 +#define FM_ATTR_TIMEFORMAT (FM_ATTR_START +102) // sal_uInt16 +#define FM_ATTR_VALUEMIN (FM_ATTR_START +103) // sal_Int32 +#define FM_ATTR_VALUEMAX (FM_ATTR_START +104) // sal_Int32 +#define FM_ATTR_VALUESTEP (FM_ATTR_START +105) // sal_Int32 +#define FM_ATTR_CURRENCYSYMBOL (FM_ATTR_START +106) // ::rtl::OUString +#define FM_ATTR_EDITMASK (FM_ATTR_START +107) // ::rtl::OUString +#define FM_ATTR_LITERALMASK (FM_ATTR_START +108) // ::rtl::OUString +#define FM_ATTR_ENABLED (FM_ATTR_START +109) // sal_Bool +#define FM_ATTR_AUTOCOMPLETE (FM_ATTR_START +110) // sal_Bool +#define FM_ATTR_LINECOUNT (FM_ATTR_START +111) // sal_uInt16 +#define FM_ATTR_MAXTEXTLEN (FM_ATTR_START +112) // sal_uInt16 +#define FM_ATTR_SPIN (FM_ATTR_START +113) // sal_Bool +#define FM_ATTR_STRICTFORMAT (FM_ATTR_START +114) // sal_Bool +#define FM_ATTR_SHOWTHOUSANDSEP (FM_ATTR_START +115) // sal_Bool +#define FM_ATTR_HARDLINEBREAKS (FM_ATTR_START +116) // sal_Bool +#define FM_ATTR_PRINTABLE (FM_ATTR_START +117) // sal_Bool +#define FM_ATTR_TARGET_URL (FM_ATTR_START +118) // ::rtl::OUString +#define FM_ATTR_TARGET_FRAME (FM_ATTR_START +119) // ::rtl::OUString +#define FM_ATTR_TAG (FM_ATTR_START +120) // ::rtl::OUString +#define FM_ATTR_ECHO_CHAR (FM_ATTR_START +121) // sal_uInt16 +#define FM_ATTR_EMPTY_IS_NULL (FM_ATTR_START +126) // Bool +#define FM_ATTR_DECIMAL_ACCURACY (FM_ATTR_START +127) // sal_uInt16 +#define FM_ATTR_DATE_SHOW_CENTURY (FM_ATTR_START +128) // Bool +#define FM_ATTR_TRISTATE (FM_ATTR_START +129) // Bool +#define FM_ATTR_DEFAULT_BUTTON (FM_ATTR_START +130) // Bool +#define FM_ATTR_HIDDEN_VALUE (FM_ATTR_START +131) // ::rtl::OUString +#define FM_ATTR_DECIMALS (FM_ATTR_START +132) // sal_uInt16 +#define FM_ATTR_AUTOINCREMENT (FM_ATTR_START +133) // sal_uInt16 +#define FM_ATTR_FILTER_CRITERIA (FM_ATTR_START +135) // ::rtl::OUString +#define FM_ATTR_QUERY (FM_ATTR_START +137) // ::rtl::OUString +#define FM_ATTR_DEFAULT_LONG_VALUE (FM_ATTR_START +138) // Double +#define FM_ATTR_DEFAULT_DATE (FM_ATTR_START +139) // sal_uInt32 +#define FM_ATTR_DEFAULT_TIME (FM_ATTR_START +140) +#define FM_ATTR_HELPTEXT (FM_ATTR_START +141) +#define FM_ATTR_FONT_NAME (FM_ATTR_START +142) +#define FM_ATTR_FONT_STYLENAME (FM_ATTR_START +143) +#define FM_ATTR_FONT_FAMILY (FM_ATTR_START +144) +#define FM_ATTR_FONT_CHARSET (FM_ATTR_START +145) +#define FM_ATTR_FONT_HEIGHT (FM_ATTR_START +146) +#define FM_ATTR_FONT_WEIGHT (FM_ATTR_START +147) +#define FM_ATTR_FONT_SLANT (FM_ATTR_START +148) +#define FM_ATTR_FONT_UNDERLINE (FM_ATTR_START +149) +#define FM_ATTR_FONT_STRIKEOUT (FM_ATTR_START +150) +#define FM_ATTR_ISPASSTHROUGH (FM_ATTR_START +151) +#define FM_ATTR_HELPURL (FM_ATTR_START +152) // ::rtl::OUString +#define FM_ATTR_RECORDMARKER (FM_ATTR_START +153) +#define FM_ATTR_BOUNDFIELD (FM_ATTR_START +154) +#define FM_ATTR_FORMATSSUPPLIER (FM_ATTR_START +155) // ::com::sun::star::util::XNumberFormatsSupplier +#define FM_ATTR_TREATASNUMERIC (FM_ATTR_START +156) // sal_Bool +#define FM_ATTR_EFFECTIVE_VALUE (FM_ATTR_START +157) // ANY (string or double) +#define FM_ATTR_EFFECTIVE_DEFAULT (FM_ATTR_START +158) // dito +#define FM_ATTR_EFFECTIVE_MIN (FM_ATTR_START +159) // dito +#define FM_ATTR_EFFECTIVE_MAX (FM_ATTR_START +160) // dito +#define FM_ATTR_HIDDEN (FM_ATTR_START +161) // sal_Bool +#define FM_ATTR_FILTERPROPOSAL (FM_ATTR_START +162) // sal_Bool +#define FM_ATTR_FIELDSOURCE (FM_ATTR_START +163) // String +#define FM_ATTR_TABLENAME (FM_ATTR_START +164) // String +#define FM_ATTR_FILTERSUPPLIER (FM_ATTR_START +165) // ::com::sun::star::container::XIndexAccess +#define FM_ATTR_CURRENTFILTER (FM_ATTR_START +166) // sal_Int32 +#define FM_ATTR_SELECTED_FIELDS (FM_ATTR_START +167) +#define FM_ATTR_SELECTED_TABLES (FM_ATTR_START +168) +#define FM_ATTR_THREADSAFE (FM_ATTR_START +169) // sal_Bool +#define FM_ATTR_CONTROLLABEL (FM_ATTR_START +171) // ::com::sun::star::beans::XPropertySet +#define FM_ATTR_CURRSYM_POSITION (FM_ATTR_START +172) // String +#define FM_ATTR_SOURCE (FM_ATTR_START +173) // ::com::sun::star::uno::XInterface +#define FM_ATTR_CURSORCOLOR (FM_ATTR_START +174) // sal_Int32 +#define FM_ATTR_ALWAYSSHOWCURSOR (FM_ATTR_START +175) // sal_Bool +#define FM_ATTR_DISPLAYSYNCHRON (FM_ATTR_START +176) // sal_Bool + +#define FM_ATTR_ISMODIFIED (FM_ATTR_START +177) // sal_Bool +#define FM_ATTR_ISNEW (FM_ATTR_START +178) // sal_Bool +#define FM_ATTR_PRIVILEGES (FM_ATTR_START +179) // sal_Int32 +#define FM_ATTR_DETAILFIELDS (FM_ATTR_START +180) // ::com::sun::star::uno::Sequence<::rtl::OUString> +#define FM_ATTR_COMMAND (FM_ATTR_START +181) // String +#define FM_ATTR_COMMANDTYPE (FM_ATTR_START +182) // sal_Int32 (com::sun::star::sdb::CommandType) +#define FM_ATTR_RESULTSET_CONCURRENCY (FM_ATTR_START +183)// sal_Int32 (com::sun::star::sdbc::ResultSetConcurrency) +#define FM_ATTR_INSERTONLY (FM_ATTR_START +184) // sal_Bool +#define FM_ATTR_RESULTSET_TYPE (FM_ATTR_START +185) // sal_Int32 (com::sun::star::sdbc::ResultSetType) +#define FM_ATTR_ESCAPE_PROCESSING (FM_ATTR_START +186) // sal_Bool +#define FM_ATTR_APPLYFILTER (FM_ATTR_START +187) // sal_Bool + +#define FM_ATTR_ISNULLABLE (FM_ATTR_START +188) // sal_Bool +#define FM_ATTR_ACTIVECOMMAND (FM_ATTR_START +189) // String +#define FM_ATTR_ISCURRENCY (FM_ATTR_START +190) // sal_Bool +#define FM_ATTR_NUMBER_FORMATS_SUPPLIER (FM_ATTR_START +191)// sal_Bool +#define FM_ATTR_URL (FM_ATTR_START +192) // String +#define FM_ATTR_TITLE (FM_ATTR_START +193) // String +#define FM_ATTR_ACTIVE_CONNECTION (FM_ATTR_START +194) // com::sun::star::sdbc::::com::sun::star::sdbc::XConnection +#define FM_ATTR_SCALE (FM_ATTR_START +195) // sal_Int32 +#define FM_ATTR_SORT (FM_ATTR_START +196) // String +#define FM_ATTR_CONTROLSOURCEPROPERTY (FM_ATTR_START +197) +#define FM_ATTR_REALNAME (FM_ATTR_START +198) // String + + +// start ID fuer aggregierte Properties +#define FM_ATTR_AGGREGATE_ID (FM_ATTR_START + 10000) + +// extern declaration fuer vordefinierte Strings, laengst nicht vollstaendig +DECLARE_CONSTASCII_USTRING(FM_PROP_NAME); +DECLARE_CONSTASCII_USTRING(FM_PROP_TAG); +DECLARE_CONSTASCII_USTRING(FM_PROP_TABINDEX); +DECLARE_CONSTASCII_USTRING(FM_PROP_CLASSID); +DECLARE_CONSTASCII_USTRING(FM_PROP_ALIGN); +DECLARE_CONSTASCII_USTRING(FM_PROP_ROWCOUNT); +DECLARE_CONSTASCII_USTRING(FM_PROP_ROWCOUNTFINAL); +DECLARE_CONSTASCII_USTRING(FM_PROP_FETCHSIZE); +DECLARE_CONSTASCII_USTRING(FM_PROP_VALUE); +DECLARE_CONSTASCII_USTRING(FM_PROP_VALUEMIN); +DECLARE_CONSTASCII_USTRING(FM_PROP_VALUEMAX); +DECLARE_CONSTASCII_USTRING(FM_PROP_VALUESTEP); +DECLARE_CONSTASCII_USTRING(FM_PROP_TEXT); +DECLARE_CONSTASCII_USTRING(FM_PROP_LABEL); +DECLARE_CONSTASCII_USTRING(FM_PROP_NAVIGATION); +DECLARE_CONSTASCII_USTRING(FM_PROP_CYCLE); +DECLARE_CONSTASCII_USTRING(FM_PROP_CONTROLSOURCE); +DECLARE_CONSTASCII_USTRING(FM_PROP_ENABLED); +DECLARE_CONSTASCII_USTRING(FM_PROP_SPIN); +DECLARE_CONSTASCII_USTRING(FM_PROP_READONLY); +DECLARE_CONSTASCII_USTRING(FM_PROP_FILTER_CRITERIA); +DECLARE_CONSTASCII_USTRING(FM_PROP_AUTOINCREMENT); +DECLARE_CONSTASCII_USTRING(FM_PROP_CACHESIZE); +DECLARE_CONSTASCII_USTRING(FM_PROP_LASTDIRTY); +DECLARE_CONSTASCII_USTRING(FM_PROP_STATEMENT); +DECLARE_CONSTASCII_USTRING(FM_PROP_WIDTH); +DECLARE_CONSTASCII_USTRING(FM_PROP_SEARCHABLE); +DECLARE_CONSTASCII_USTRING(FM_PROP_MULTILINE); +DECLARE_CONSTASCII_USTRING(FM_PROP_TARGET_URL); +DECLARE_CONSTASCII_USTRING(FM_PROP_DEFAULTCONTROL); +DECLARE_CONSTASCII_USTRING(FM_PROP_MAXTEXTLEN); +DECLARE_CONSTASCII_USTRING(FM_PROP_SIZE); +DECLARE_CONSTASCII_USTRING(FM_PROP_DATE); +DECLARE_CONSTASCII_USTRING(FM_PROP_TIME); +DECLARE_CONSTASCII_USTRING(FM_PROP_STATE); +DECLARE_CONSTASCII_USTRING(FM_PROP_TRISTATE); +DECLARE_CONSTASCII_USTRING(FM_PROP_HIDDEN_VALUE); +DECLARE_CONSTASCII_USTRING(FM_PROP_TARGET_FRAME); +DECLARE_CONSTASCII_USTRING(FM_PROP_BUTTONTYPE); +DECLARE_CONSTASCII_USTRING(FM_PROP_STRINGITEMLIST); +DECLARE_CONSTASCII_USTRING(FM_PROP_DEFAULT_TEXT); +DECLARE_CONSTASCII_USTRING(FM_PROP_DEFAULTCHECKED); +DECLARE_CONSTASCII_USTRING(FM_PROP_DEFAULT_DATE); +DECLARE_CONSTASCII_USTRING(FM_PROP_DEFAULT_TIME); +DECLARE_CONSTASCII_USTRING(FM_PROP_DEFAULT_VALUE); +DECLARE_CONSTASCII_USTRING(FM_PROP_FORMATKEY); +DECLARE_CONSTASCII_USTRING(FM_PROP_FORMATSSUPPLIER); +DECLARE_CONSTASCII_USTRING(FM_PROP_SUBMIT_ACTION); +DECLARE_CONSTASCII_USTRING(FM_PROP_SUBMIT_TARGET); +DECLARE_CONSTASCII_USTRING(FM_PROP_SUBMIT_METHOD); +DECLARE_CONSTASCII_USTRING(FM_PROP_SUBMIT_ENCODING); +DECLARE_CONSTASCII_USTRING(FM_PROP_IMAGE_URL); +DECLARE_CONSTASCII_USTRING(FM_PROP_EMPTY_IS_NULL); +DECLARE_CONSTASCII_USTRING(FM_PROP_LISTSOURCETYPE); +DECLARE_CONSTASCII_USTRING(FM_PROP_LISTSOURCE); +DECLARE_CONSTASCII_USTRING(FM_PROP_SELECT_SEQ); +DECLARE_CONSTASCII_USTRING(FM_PROP_VALUE_SEQ); +DECLARE_CONSTASCII_USTRING(FM_PROP_DEFAULT_SELECT_SEQ); +DECLARE_CONSTASCII_USTRING(FM_PROP_MULTISELECTION); +DECLARE_CONSTASCII_USTRING(FM_PROP_DECIMAL_ACCURACY); +DECLARE_CONSTASCII_USTRING(FM_PROP_EDITMASK); +DECLARE_CONSTASCII_USTRING(FM_PROP_ISREADONLY); +DECLARE_CONSTASCII_USTRING(FM_PROP_ISREQUIRED); +DECLARE_CONSTASCII_USTRING(FM_PROP_FIELDTYPE); +DECLARE_CONSTASCII_USTRING(FM_PROP_DECIMALS); +DECLARE_CONSTASCII_USTRING(FM_PROP_REFVALUE); +DECLARE_CONSTASCII_USTRING(FM_PROP_STRICTFORMAT); +DECLARE_CONSTASCII_USTRING(FM_PROP_DATASOURCE); +DECLARE_CONSTASCII_USTRING(FM_PROP_ALLOWADDITIONS); +DECLARE_CONSTASCII_USTRING(FM_PROP_ALLOWEDITS); +DECLARE_CONSTASCII_USTRING(FM_PROP_ALLOWDELETIONS); +DECLARE_CONSTASCII_USTRING(FM_PROP_MASTERFIELDS); +DECLARE_CONSTASCII_USTRING(FM_PROP_ISPASSTHROUGH); +DECLARE_CONSTASCII_USTRING(FM_PROP_QUERY); +DECLARE_CONSTASCII_USTRING(FM_PROP_LITERALMASK); +DECLARE_CONSTASCII_USTRING(FM_PROP_SHOWTHOUSANDSEP); +DECLARE_CONSTASCII_USTRING(FM_PROP_CURRENCYSYMBOL); +DECLARE_CONSTASCII_USTRING(FM_PROP_DATEFORMAT); +DECLARE_CONSTASCII_USTRING(FM_PROP_DATEMIN); +DECLARE_CONSTASCII_USTRING(FM_PROP_DATEMAX); +DECLARE_CONSTASCII_USTRING(FM_PROP_DATE_SHOW_CENTURY); +DECLARE_CONSTASCII_USTRING(FM_PROP_TIMEFORMAT); +DECLARE_CONSTASCII_USTRING(FM_PROP_TIMEMIN); +DECLARE_CONSTASCII_USTRING(FM_PROP_TIMEMAX); +DECLARE_CONSTASCII_USTRING(FM_PROP_LINECOUNT); +DECLARE_CONSTASCII_USTRING(FM_PROP_BOUNDCOLUMN); +DECLARE_CONSTASCII_USTRING(FM_PROP_HASNAVIGATION); +DECLARE_CONSTASCII_USTRING(FM_PROP_FONT); +DECLARE_CONSTASCII_USTRING(FM_PROP_BACKGROUNDCOLOR); +DECLARE_CONSTASCII_USTRING(FM_PROP_FILLCOLOR); +DECLARE_CONSTASCII_USTRING(FM_PROP_TEXTCOLOR); +DECLARE_CONSTASCII_USTRING(FM_PROP_LINECOLOR); +DECLARE_CONSTASCII_USTRING(FM_PROP_BORDER); +DECLARE_CONSTASCII_USTRING(FM_PROP_DROPDOWN); +DECLARE_CONSTASCII_USTRING(FM_PROP_MULTI); +DECLARE_CONSTASCII_USTRING(FM_PROP_HSCROLL); +DECLARE_CONSTASCII_USTRING(FM_PROP_VSCROLL); +DECLARE_CONSTASCII_USTRING(FM_PROP_TABSTOP); +DECLARE_CONSTASCII_USTRING(FM_PROP_AUTOCOMPLETE); +DECLARE_CONSTASCII_USTRING(FM_PROP_HARDLINEBREAKS); +DECLARE_CONSTASCII_USTRING(FM_PROP_PRINTABLE); +DECLARE_CONSTASCII_USTRING(FM_PROP_ECHO_CHAR); +DECLARE_CONSTASCII_USTRING(FM_PROP_ROWHEIGHT); +DECLARE_CONSTASCII_USTRING(FM_PROP_HELPTEXT); +DECLARE_CONSTASCII_USTRING(FM_PROP_FONT_NAME); +DECLARE_CONSTASCII_USTRING(FM_PROP_FONT_STYLENAME); +DECLARE_CONSTASCII_USTRING(FM_PROP_FONT_FAMILY); +DECLARE_CONSTASCII_USTRING(FM_PROP_FONT_CHARSET); +DECLARE_CONSTASCII_USTRING(FM_PROP_FONT_HEIGHT); +DECLARE_CONSTASCII_USTRING(FM_PROP_FONT_WEIGHT); +DECLARE_CONSTASCII_USTRING(FM_PROP_FONT_SLANT); +DECLARE_CONSTASCII_USTRING(FM_PROP_FONT_UNDERLINE); +DECLARE_CONSTASCII_USTRING(FM_PROP_FONT_STRIKEOUT); +DECLARE_CONSTASCII_USTRING(FM_PROP_HELPURL); +DECLARE_CONSTASCII_USTRING(FM_PROP_RECORDMARKER); +DECLARE_CONSTASCII_USTRING(FM_PROP_BOUNDFIELD); +DECLARE_CONSTASCII_USTRING(FM_PROP_TREATASNUMERIC); +DECLARE_CONSTASCII_USTRING(FM_PROP_EFFECTIVE_VALUE); +DECLARE_CONSTASCII_USTRING(FM_PROP_EFFECTIVE_DEFAULT); +DECLARE_CONSTASCII_USTRING(FM_PROP_EFFECTIVE_MIN); +DECLARE_CONSTASCII_USTRING(FM_PROP_EFFECTIVE_MAX); +DECLARE_CONSTASCII_USTRING(FM_PROP_HIDDEN); +DECLARE_CONSTASCII_USTRING(FM_PROP_FILTERPROPOSAL); +DECLARE_CONSTASCII_USTRING(FM_PROP_FIELDSOURCE); +DECLARE_CONSTASCII_USTRING(FM_PROP_TABLENAME); +DECLARE_CONSTASCII_USTRING(FM_PROP_FILTERSUPPLIER); +DECLARE_CONSTASCII_USTRING(FM_PROP_CURRENTFILTER); +DECLARE_CONSTASCII_USTRING(FM_PROP_SELECTED_FIELDS); +DECLARE_CONSTASCII_USTRING(FM_PROP_SELECTED_TABLES); +DECLARE_CONSTASCII_USTRING(FM_PROP_THREADSAFE); +DECLARE_CONSTASCII_USTRING(FM_PROP_CONTROLLABEL); +DECLARE_CONSTASCII_USTRING(FM_PROP_CURRSYM_POSITION); +DECLARE_CONSTASCII_USTRING(FM_PROP_SOURCE); +DECLARE_CONSTASCII_USTRING(FM_PROP_CURSORCOLOR); +DECLARE_CONSTASCII_USTRING(FM_PROP_ALWAYSSHOWCURSOR); +DECLARE_CONSTASCII_USTRING(FM_PROP_DISPLAYSYNCHRON); + +DECLARE_CONSTASCII_USTRING(FM_PROP_ISMODIFIED); +DECLARE_CONSTASCII_USTRING(FM_PROP_ISNEW); +DECLARE_CONSTASCII_USTRING(FM_PROP_PRIVILEGES); +DECLARE_CONSTASCII_USTRING(FM_PROP_DETAILFIELDS); +DECLARE_CONSTASCII_USTRING(FM_PROP_COMMAND); +DECLARE_CONSTASCII_USTRING(FM_PROP_COMMANDTYPE); +DECLARE_CONSTASCII_USTRING(FM_PROP_RESULTSET_CONCURRENCY); +DECLARE_CONSTASCII_USTRING(FM_PROP_INSERTONLY); +DECLARE_CONSTASCII_USTRING(FM_PROP_RESULTSET_TYPE); +DECLARE_CONSTASCII_USTRING(FM_PROP_ESCAPE_PROCESSING); +DECLARE_CONSTASCII_USTRING(FM_PROP_APPLYFILTER); + +DECLARE_CONSTASCII_USTRING(FM_PROP_ISNULLABLE); +DECLARE_CONSTASCII_USTRING(FM_PROP_ACTIVECOMMAND); +DECLARE_CONSTASCII_USTRING(FM_PROP_ISCURRENCY); +DECLARE_CONSTASCII_USTRING(FM_PROP_NUMBER_FORMATS_SUPPLIER); +DECLARE_CONSTASCII_USTRING(FM_PROP_URL); +DECLARE_CONSTASCII_USTRING(FM_PROP_TITLE); +DECLARE_CONSTASCII_USTRING(FM_PROP_ACTIVE_CONNECTION); +DECLARE_CONSTASCII_USTRING(FM_PROP_SCALE); +DECLARE_CONSTASCII_USTRING(FM_PROP_SORT); +DECLARE_CONSTASCII_USTRING(FM_PROP_CONTROLSOURCEPROPERTY); +DECLARE_CONSTASCII_USTRING(FM_PROP_REALNAME); + + +#endif // _SVX_FMPROP_HRC + diff --git a/svx/source/inc/fmresids.hrc b/svx/source/inc/fmresids.hrc new file mode 100644 index 000000000000..5d8337273e85 --- /dev/null +++ b/svx/source/inc/fmresids.hrc @@ -0,0 +1,492 @@ +/************************************************************************* + * + * $RCSfile: fmresids.hrc,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:19 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _SVX_FMRESIDS_HRC +#define _SVX_FMRESIDS_HRC + +// include ----------------------------------------------------------- +#include + +// unnamed ressources ------------------------------------------------------- +#define RID_RES_CONTROL_WIZARDS_ERROR_CONTEXTS (RID_FORMS_START + 0) +// sub ressources ..................... +#define RID_SUB_GRIDCONTROL_WIZARD 1 +#define RID_SUB_LISTBOX_WIZARD 2 +#define RID_SUB_COMBOBOX_WIZARD 3 +#define RID_SUB_GROUPBOX_WIZARD 4 + +// ImageList-Id's ----------------------------------------------------------- +#define RID_SVXIMGLIST_FMEXPL (RID_FORMS_START + 0) +#define RID_SVXIMGLIST_DBBRW (RID_FORMS_START + 1) + +// Image-Id's ----------------------------------------------------------- +#define RID_SVXIMG_FORM SID_FM_CONFIG +#define RID_SVXIMG_CONTROL SID_CHOOSE_CONTROLS +#define RID_SVXIMG_COLLAPSEDNODE (RID_FORMS_START + 2) +#define RID_SVXIMG_EXPANDEDNODE (RID_FORMS_START + 3) +#define RID_SVXIMG_BUTTON SID_FM_PUSHBUTTON +#define RID_SVXIMG_RADIOBUTTON SID_FM_RADIOBUTTON +#define RID_SVXIMG_CHECKBOX SID_FM_CHECKBOX +#define RID_SVXIMG_FIXEDTEXT SID_FM_FIXEDTEXT +#define RID_SVXIMG_GROUPBOX SID_FM_GROUPBOX +#define RID_SVXIMG_EDIT SID_FM_EDIT +#define RID_SVXIMG_LISTBOX SID_FM_LISTBOX +#define RID_SVXIMG_COMBOBOX SID_FM_COMBOBOX +#define RID_SVXIMG_URLBUTTON SID_FM_URLBUTTON +#define RID_SVXIMG_FORMS (RID_FORMS_START +13) +#define RID_SVXIMG_IMAGEBUTTON SID_FM_IMAGEBUTTON +#define RID_SVXIMG_IMAGECONTROL SID_FM_IMAGECONTROL +#define RID_SVXIMG_FILECONTROL SID_FM_FILECONTROL +#define RID_SVXIMG_DATEFIELD SID_FM_DATEFIELD +#define RID_SVXIMG_TIMEFIELD SID_FM_TIMEFIELD +#define RID_SVXIMG_NUMERICFIELD SID_FM_NUMERICFIELD +#define RID_SVXIMG_CURRENCYFIELD SID_FM_CURRENCYFIELD +#define RID_SVXIMG_PATTERNFIELD SID_FM_PATTERNFIELD +#define RID_SVXIMG_HIDDEN (RID_FORMS_START +22) +#define RID_SVXIMG_GRID SID_FM_DBGRID +#define RID_SVXIMG_FORMATTEDFIELD SID_FM_FORMATTEDFIELD +#define RID_SVXIMG_FILTER SID_FM_FILTERCRIT +#define RID_SVXIMG_DATE_N_TIME_FIELDS SID_FM_TWOFIELDS_DATE_N_TIME +#define RID_SVXIMG_FIELD (RID_FORMS_START +27) +#define RID_SVXIMG_ERROR (RID_FORMS_START +28) +#define RID_SVXIMG_WARNING (RID_FORMS_START +29) +#define RID_SVXIMG_INFO (RID_FORMS_START +30) + +// Dialog-Id's ----------------------------------------------------------- +#define RID_SVXTBX_FORM (RID_FORMS_START + 1) +#define TBX_FORM (RID_FORMS_START + 2) +#define RID_SVXTBX_FORM_NAVIGATION (RID_FORMS_START + 3) +#define RID_SVXTBX_FORM_FILTER (RID_FORMS_START + 4) +#define RID_SVXDLG_ADD_TABLE (RID_FORMS_START + 5) +#define RID_SVXDLG_TAB_ORDER (RID_FORMS_START + 6) +#define RID_SVXDLG_PROPBRW (RID_FORMS_START + 7) +#define RID_SVX_PROPBRW (RID_FORMS_START + 8) +#define RID_SVXDLG_SETFORM (RID_FORMS_START + 9) +#define RID_SVX_FMEXPLORER (RID_FORMS_START + 10) +#define RID_SVXDLG_DBINFO (RID_FORMS_START + 11) +#define RID_SVXDLG_FMMACRO (RID_FORMS_START + 12) +#define RID_SVXDLG_FMFONT (RID_FORMS_START + 13) +#define RID_SVXDLG_SEARCHFORM (RID_FORMS_START + 14) +#define RID_SVXERR_SEARCH_NORECORD (RID_FORMS_START + 15) +#define RID_SVXERR_SEARCH_GENERAL_ERROR (RID_FORMS_START + 16) +#define RID_SVX_DLG_INPUTRECORDNO (RID_FORMS_START + 17) +#define RID_SVX_DLG_SHOWGRIDCOLUMNS (RID_FORMS_START + 18) +#define RID_SVX_DLG_QUERYPARAMS (RID_FORMS_START + 19) +#define RID_SVX_DLG_LABELCONTROL (RID_FORMS_START + 20) +#define RID_SVX_DLG_SQLEXCEPTIONDETAILS (RID_FORMS_START + 21) + +// Menu-Id's ----------------------------------------------------------- +#define RID_FMEXPLORER_POPUPMENU (RID_FORMS_START + 0) +#define RID_SVXMNU_ROWS (RID_FORMS_START + 1) +#define RID_SVXMNU_COLS (RID_FORMS_START + 2) +#define RID_SVXMNU_CELL (RID_FORMS_START + 3) +#define RID_FMSHELL_CONVERSIONMENU (RID_FORMS_START + 4) +#define RID_FM_FILTER_MENU (RID_FORMS_START + 5) + + +// QueryBox-Id's ----------------------------------------------------------- +#define RID_QRY_SAVEMODIFIED (RID_FORMS_START + 1) + +// String-Id's ----------------------------------------------------------- +#define RID_STR_FORMSHELL (RID_FORMS_START + 10) +#define RID_STR_STDFORMNAME (RID_FORMS_START + 11) +#define RID_STR_REC_TEXT (RID_FORMS_START + 12) +#define RID_STR_REC_FROM_TEXT (RID_FORMS_START + 13) +#define RID_STR_FORM_FILTERED (RID_FORMS_START + 14) + +// Undo Strings +#define RID_STR_UNDO_PROPERTY (RID_FORMS_START + 17) +#define RID_STR_UNDO_CONTAINER_INSERT (RID_FORMS_START + 18) +#define RID_STR_UNDO_CONTAINER_REMOVE (RID_FORMS_START + 19) +#define RID_STR_UNDO_CONTAINER_REMOVE_MULTIPLE (RID_FORMS_START + 20) +#define RID_STR_UNDO_CONTAINER_REPLACE (RID_FORMS_START + 21) +#define RID_STR_UNDO_TABORDER (RID_FORMS_START + 22) +#define RID_STR_UNDO_DELETE_LOGICAL (RID_FORMS_START + 23) +#define RID_STR_UNDO_MODEL_REPLACE (RID_FORMS_START + 24) + +// ErrorStrings +#define RID_STR_ERR_CONNECTLOST (RID_FORMS_START + 30) + +#define RID_STR_FILTER_CRITERIA (RID_FORMS_START + 36) +#define RID_STR_SORT_CRITERIA (RID_FORMS_START + 37) +#define RID_STR_NAVIGATIONBAR (RID_FORMS_START + 38) +#define RID_STR_ALIGN (RID_FORMS_START + 39) +#define RID_STR_BACKGROUNDCOLOR (RID_FORMS_START + 40) +#define RID_STR_BORDER (RID_FORMS_START + 41) +#define RID_STR_DEFAULT_CONTROL (RID_FORMS_START + 42) +#define RID_STR_HSCROLL (RID_FORMS_START + 43) +#define RID_STR_VSCROLL (RID_FORMS_START + 44) +#define RID_STR_MULTILINE (RID_FORMS_START + 45) +#define RID_STR_NAME (RID_FORMS_START + 46) +#define RID_STR_TABSTOP (RID_FORMS_START + 47) +#define RID_STR_TEXT (RID_FORMS_START + 48) +#define RID_STR_CONTROLSOURCE (RID_FORMS_START + 49) +#define RID_STR_DROPDOWN (RID_FORMS_START + 50) +#define RID_STR_BOUNDCOLUMN (RID_FORMS_START + 51) +#define RID_STR_LISTSOURCE (RID_FORMS_START + 52) +#define RID_STR_LISTSOURCETYPE (RID_FORMS_START + 53) +#define RID_STR_CURSORSOURCE (RID_FORMS_START + 54) +#define RID_STR_CURSORSOURCETYPE (RID_FORMS_START + 55) +#define RID_STR_ALLOW_ADDITIONS (RID_FORMS_START + 56) +#define RID_STR_ALLOW_DELETIONS (RID_FORMS_START + 57) +#define RID_STR_ALLOW_EDITS (RID_FORMS_START + 58) +#define RID_STR_DATAENTRY (RID_FORMS_START + 59) +#define RID_STR_DATASOURCE (RID_FORMS_START + 60) +#define RID_STR_LOCKED (RID_FORMS_START + 61) +#define RID_STR_MASTERFIELDS (RID_FORMS_START + 62) +#define RID_STR_SLAVEFIELDS (RID_FORMS_START + 63) +#define RID_STR_FONT (RID_FORMS_START + 64) +#define RID_STR_SEARCHING (RID_FORMS_START + 65) +#define RID_STR_SEARCH_TYPE (RID_FORMS_START + 66) +#define RID_STR_CURSORTYPE (RID_FORMS_START + 67) +#define RID_STR_LABEL (RID_FORMS_START + 68) +#define RID_STR_ALIGNMENT (RID_FORMS_START + 69) +#define RID_STR_NEW_FORM (RID_FORMS_START + 70) +#define RID_STR_TABWIN_PREFIX (RID_FORMS_START + 71) +#define RID_STR_FORM (RID_FORMS_START + 72) +#define RID_STR_PROPPAGE_FORMCTL_TITLE (RID_FORMS_START + 73) +#define RID_STR_PROPPAGE_UNOCTL_TITLE (RID_FORMS_START + 74) +#define RID_STR_PROPPAGE_DEFAULT_TITLE (RID_FORMS_START + 75) +#define RID_STR_CURSORSOURCE_TYPE (RID_FORMS_START + 76) +#define RID_STR_BOOL (RID_FORMS_START + 77) +#define RID_STR_FIELDSELECTION (RID_FORMS_START + 78) +#define RID_STR_FIELDNULL (RID_FORMS_START + 79) +#define RID_STR_NO_PROPERTIES (RID_FORMS_START + 80) +#define RID_STR_PROPERTIES_CONTROL (RID_FORMS_START + 81) +#define RID_STR_PROPERTIES_FORM (RID_FORMS_START + 82) +#define RID_STR_FMEXPLORER (RID_FORMS_START + 83) +#define RID_STR_FORMS (RID_FORMS_START + 84) +#define RID_STR_LISTSOURCE_TYPE (RID_FORMS_START + 85) +#define RID_STR_EVENTS (RID_FORMS_START + 86) +#define RID_STR_CURSOR_TYPE (RID_FORMS_START + 87) + +#define RID_STR_READERROR (RID_FORMS_START + 88) +#define RID_STR_WRITEERROR (RID_FORMS_START + 89) +#define RID_STR_DELETEERROR (RID_FORMS_START + 90) +#define RID_STR_WARNING (RID_FORMS_START + 91) +#define RID_STR_CONNECTERROR (RID_FORMS_START + 92) +#define RID_STR_DELETECONFIRM_RECORD (RID_FORMS_START + 93) +#define RID_STR_DELETECONFIRM (RID_FORMS_START + 94) +#define RID_STR_PROPERTIES_COLUMN (RID_FORMS_START + 95) + +#define RID_STR_READONLY (RID_FORMS_START + 96) +#define RID_STR_GROUPBOX (RID_FORMS_START + 97) +#define RID_STR_TABINDEX (RID_FORMS_START + 98) +#define RID_STR_NAVIGATION (RID_FORMS_START + 99) +#define RID_STR_CYCLE (RID_FORMS_START +100) +#define RID_STR_DIRTY (RID_FORMS_START +101) +#define RID_STR_OLDVALUE (RID_FORMS_START +102) +#define RID_STR_VALUE (RID_FORMS_START +103) +#define RID_STR_FORMATKEY (RID_FORMS_START +104) +#define RID_STR_REQUIRED (RID_FORMS_START +105) +#define RID_STR_SCALE (RID_FORMS_START +106) +#define RID_STR_SIZE (RID_FORMS_START +107) +#define RID_STR_UNIQUE (RID_FORMS_START +108) +#define RID_STR_CLASSID (RID_FORMS_START +109) +#define RID_STR_LEFT (RID_FORMS_START +110) +#define RID_STR_RIGHT (RID_FORMS_START +111) +#define RID_STR_HEIGHT (RID_FORMS_START +112) +#define RID_STR_WIDTH (RID_FORMS_START +113) +#define RID_STR_LISTINDEX (RID_FORMS_START +114) +#define RID_STR_ROWHEIGHT (RID_FORMS_START +115) +#define RID_STR_FILLCOLOR (RID_FORMS_START +116) +#define RID_STR_TEXTCOLOR (RID_FORMS_START +117) +#define RID_STR_LINECOLOR (RID_FORMS_START +118) +#define RID_STR_REFVALUE (RID_FORMS_START +119) +#define RID_STR_STRINGITEMLIST (RID_FORMS_START +120) +#define RID_STR_COLUMN (RID_FORMS_START +121) +#define RID_STR_BUTTONTYPE (RID_FORMS_START +122) +#define RID_STR_SUBMIT_ACTION (RID_FORMS_START +123) +#define RID_STR_SUBMIT_METHOD (RID_FORMS_START +124) +#define RID_STR_SUBMIT_ENCODING (RID_FORMS_START +125) +#define RID_STR_DEFAULTVALUE (RID_FORMS_START +126) +#define RID_STR_SUBMIT_TARGET (RID_FORMS_START +127) +#define RID_STR_ENUM_BUTTONTYPE (RID_FORMS_START +128) +#define RID_STR_ENUM_SUBMIT_METHOD (RID_FORMS_START +129) +#define RID_STR_ENUM_SUBMIT_ENCODING (RID_FORMS_START +130) +#define RID_STR_DEFAULT_CHECKED (RID_FORMS_START +131) +#define RID_STR_ENUM_SUBMIT_TARGET (RID_FORMS_START +132) +#define RID_STR_IMAGE_URL (RID_FORMS_START +133) +#define RID_STR_STRING_ITEM_LIST (RID_FORMS_START +134) +#define RID_STR_DEFAULT_SELECT_SEQ (RID_FORMS_START +135) +#define RID_STR_DEFAULT_FORM_NAME (RID_FORMS_START +136) +#define RID_STR_DEFAULT_CONTROL_NAME (RID_FORMS_START +137) +#define RID_STR_STANDARD (RID_FORMS_START +138) +#define RID_STR_MULTISELECTION (RID_FORMS_START +139) + +#define RID_STR_DATE (RID_FORMS_START +140) +#define RID_STR_DATEMIN (RID_FORMS_START +141) +#define RID_STR_DATEMAX (RID_FORMS_START +142) +#define RID_STR_DATEFORMAT (RID_FORMS_START +143) +#define RID_STR_TIME (RID_FORMS_START +144) +#define RID_STR_TIMEMIN (RID_FORMS_START +145) +#define RID_STR_TIMEMAX (RID_FORMS_START +146) +#define RID_STR_TIMEFORMAT (RID_FORMS_START +147) +#define RID_STR_VALUEMIN (RID_FORMS_START +148) +#define RID_STR_VALUEMAX (RID_FORMS_START +149) +#define RID_STR_VALUESTEP (RID_FORMS_START +150) +#define RID_STR_CURRENCYSYMBOL (RID_FORMS_START +151) +#define RID_STR_EDITMASK (RID_FORMS_START +152) +#define RID_STR_LITERALMASK (RID_FORMS_START +153) +#define RID_STR_ENABLED (RID_FORMS_START +154) +#define RID_STR_AUTOCOMPLETE (RID_FORMS_START +155) +#define RID_STR_LINECOUNT (RID_FORMS_START +156) +#define RID_STR_MAXTEXTLEN (RID_FORMS_START +157) +#define RID_STR_SPIN (RID_FORMS_START +158) +#define RID_STR_STRICTFORMAT (RID_FORMS_START +159) +#define RID_STR_SHOWTHOUSANDSEP (RID_FORMS_START +160) +#define RID_STR_HARDLINEBREAKS (RID_FORMS_START +161) +#define RID_STR_PRINTABLE (RID_FORMS_START +162) +#define RID_STR_TARGET_URL (RID_FORMS_START +163) +#define RID_STR_TARGET_FRAME (RID_FORMS_START +164) +#define RID_STR_IMPORT_GRAPHIC (RID_FORMS_START +165) +#define RID_STR_DATEFORMAT_LIST (RID_FORMS_START +166) +#define RID_STR_TIMEFORMAT_LIST (RID_FORMS_START +167) +#define RID_STR_TAG (RID_FORMS_START +168) +#define RID_STR_ECHO_CHAR (RID_FORMS_START +169) +#define RID_STR_EMPTY_IS_NULL (RID_FORMS_START +170) +#define RID_STR_DECIMAL_ACCURACY (RID_FORMS_START +171) +#define RID_STR_DATE_SHOW_CENTURY (RID_FORMS_START +172) +#define RID_STR_BORDER_TYPE (RID_FORMS_START +173) +#define RID_STR_ENUM_CHECKED (RID_FORMS_START +174) +#define RID_STR_DEFAULT_BUTTON (RID_FORMS_START +175) +#define RID_STR_ENUM_CYCLE (RID_FORMS_START +176) + +#define RID_STR_PROPTITLE_PUSHBUTTON (RID_FORMS_START +177) +#define RID_STR_PROPTITLE_RADIOBUTTON (RID_FORMS_START +178) +#define RID_STR_PROPTITLE_CHECKBOX (RID_FORMS_START +179) +#define RID_STR_PROPTITLE_FIXEDTEXT (RID_FORMS_START +180) +#define RID_STR_PROPTITLE_GROUPBOX (RID_FORMS_START +181) +#define RID_STR_PROPTITLE_EDIT (RID_FORMS_START +182) +#define RID_STR_PROPTITLE_LISTBOX (RID_FORMS_START +183) +#define RID_STR_PROPTITLE_COMBOBOX (RID_FORMS_START +184) +#define RID_STR_PROPTITLE_IMAGEBUTTON (RID_FORMS_START +185) +#define RID_STR_PROPTITLE_IMAGECONTROL (RID_FORMS_START +186) +#define RID_STR_PROPTITLE_FILECONTROL (RID_FORMS_START +187) +#define RID_STR_PROPTITLE_DATEFIELD (RID_FORMS_START +188) +#define RID_STR_PROPTITLE_TIMEFIELD (RID_FORMS_START +189) +#define RID_STR_PROPTITLE_NUMERICFIELD (RID_FORMS_START +190) +#define RID_STR_PROPTITLE_CURRENCYFIELD (RID_FORMS_START +191) +#define RID_STR_PROPTITLE_PATTERNFIELD (RID_FORMS_START +192) +#define RID_STR_PROPTITLE_DBGRID (RID_FORMS_START +193) +#define RID_STR_PROPTITLE_MULTISELECT (RID_FORMS_START +194) + +#define RID_STR_DELETECONFIRM_RECORDS (RID_FORMS_START +195) +#define RID_STR_TRISTATE (RID_FORMS_START +196) +#define RID_STR_CONTROL (RID_FORMS_START +197) +#define RID_STR_NO_FORM_CONNECT (RID_FORMS_START +198) +#define RID_STR_FIELD_NOT_FOUND (RID_FORMS_START +199) +#define RID_STR_TABLE_NOT_FOUND (RID_FORMS_START +200) +#define RID_STR_QUERY_NOT_FOUND (RID_FORMS_START +201) +#define RID_STR_ENUM_NAVIGATION (RID_FORMS_START +202) + +#define RID_STR_RECORDSEARCH_DIRECTIONS (RID_FORMS_START +203) +#define RID_STR_RECORDSEARCH_METHODS (RID_FORMS_START +204) +#define RID_STR_RECORDSEARCH_BUTTONS (RID_FORMS_START +205) +#define RID_STR_SEARCH_OVERFLOW (RID_FORMS_START +206) +#define RID_STR_SEARCH_COUNTING (RID_FORMS_START +207) + +#define RID_STR_NODATACONTROLS (RID_FORMS_START +208) +#define RID_STR_HELPTEXT (RID_FORMS_START +209) +#define RID_STR_HELPURL (RID_FORMS_START +210) +#define RID_STR_RECORDMARKER (RID_FORMS_START +211) +#define RID_STR_DATETIME_LABELPOSTFIX (RID_FORMS_START +212) +#define RID_STR_FILTERPROPOSAL (RID_FORMS_START +213) +#define RID_STR_FILTER_NAVIGATOR (RID_FORMS_START +214) +#define RID_STR_FILTER_FILTER_FOR (RID_FORMS_START +215) +#define RID_STR_FILTER_FILTER_OR (RID_FORMS_START +216) + +#define RID_STR_PROPTITLE_FORMATTED (RID_FORMS_START +217) +#define RID_STR_SYNTAXERROR (RID_FORMS_START +218) +#define RID_STR_INSERTING_ALLOWED_ERROR (RID_FORMS_START +219) +#define RID_STR_UPDATING_ALLOWED_ERROR (RID_FORMS_START +220) +#define RID_STR_DELETING_ALLOWED_ERROR (RID_FORMS_START +221) +#define RID_STR_MOVING_CURSOR (RID_FORMS_START +222) + +#define RID_STR_NOCONTROLS_FOR_EXTERNALDISPLAY (RID_FORMS_START +223) + +#define RID_STR_LABELCONTROL (RID_FORMS_START +224) +#define RID_STR_VETO_DATASOURCE (RID_FORMS_START +225) + +#define RID_STR_CURRSYM_POSITION (RID_FORMS_START +226) +#define RID_STR_LIST_N_COMBO_FILLLIST (RID_FORMS_START +227) +#define RID_STR_COMMAND_TYPE (RID_FORMS_START +228) +#define RID_STR_ESCAPE_PROCESSING (RID_FORMS_START +229) +#define RID_STR_COULDNOTSETORDER (RID_FORMS_START +230) +#define RID_STR_COULDNOTSETFILTER (RID_FORMS_START +231) +#define RID_STR_SQLEXCEPTIONTYPES (RID_FORMS_START +232) +#define RID_STR_ERR_INSERTRECORD (RID_FORMS_START +233) +#define RID_STR_ERR_UPDATERECORD (RID_FORMS_START +234) +#define RID_STR_ERR_DELETERECORD (RID_FORMS_START +235) +#define RID_STR_ERR_DELETERECORDS (RID_FORMS_START +236) +#define RID_STR_AUTOFIELD (RID_FORMS_START +237) +#define RID_STR_CONTROL_SUBSTITUTED_NAME (RID_FORMS_START +238) +#define RID_STR_CONTROL_SUBSTITUTED_EPXPLAIN (RID_FORMS_START +239) +#define RID_STR_CREATECONTROLS_INVALIDSOURCE (RID_FORMS_START +240) + +// ClassNames +#define RID_CLASSNAMES_START (RID_FORMS_START + 300) + +#define RID_STR_EDIT_CLASSNAME (RID_CLASSNAMES_START + 0) +#define RID_STR_BUTTON_CLASSNAME (RID_CLASSNAMES_START + 1) +#define RID_STR_FIXEDTEXT_CLASSNAME (RID_CLASSNAMES_START + 2) +#define RID_STR_CHECKBOX_CLASSNAME (RID_CLASSNAMES_START + 3) +#define RID_STR_RADIOBUTTON_CLASSNAME (RID_CLASSNAMES_START + 4) +#define RID_STR_LISTBOX_CLASSNAME (RID_CLASSNAMES_START + 5) +#define RID_STR_COMBOBOX_CLASSNAME (RID_CLASSNAMES_START + 6) +#define RID_STR_URLBUTTON_CLASSNAME (RID_CLASSNAMES_START + 7) +#define RID_STR_GROUPBOX_CLASSNAME (RID_CLASSNAMES_START + 8) +#define RID_STR_CONTROL_CLASSNAME (RID_CLASSNAMES_START + 9) +#define RID_STR_IMAGE_CLASSNAME (RID_CLASSNAMES_START + 10) +#define RID_STR_GRID_CLASSNAME (RID_CLASSNAMES_START + 11) +#define RID_STR_FILECONTROL_CLASSNAME (RID_CLASSNAMES_START + 12) + +#define RID_STR_DATEFIELD_CLASSNAME (RID_CLASSNAMES_START + 13) +#define RID_STR_TIMEFIELD_CLASSNAME (RID_CLASSNAMES_START + 14) +#define RID_STR_NUMERICFIELD_CLASSNAME (RID_CLASSNAMES_START + 15) +#define RID_STR_CURRENCYFIELD_CLASSNAME (RID_CLASSNAMES_START + 16) +#define RID_STR_PATTERNFIELD_CLASSNAME (RID_CLASSNAMES_START + 17) +#define RID_STR_IMAGECONTROL_CLASSNAME (RID_CLASSNAMES_START + 18) +#define RID_STR_HIDDEN_CLASSNAME (RID_CLASSNAMES_START + 19) + +// Events +#define RID_STR_EVT_START (RID_FORMS_START +400) + +#define RID_STR_EVT_ACTIONPERFORMED (RID_STR_EVT_START + 0) +#define RID_STR_EVT_AFTERDELETE (RID_STR_EVT_START + 1) +#define RID_STR_EVT_AFTERINSERT (RID_STR_EVT_START + 2) +#define RID_STR_EVT_AFTERUPDATE (RID_STR_EVT_START + 3) +#define RID_STR_EVT_BEFOREDELETE (RID_STR_EVT_START + 4) +#define RID_STR_EVT_BEFOREINSERT (RID_STR_EVT_START + 5) +#define RID_STR_EVT_BEFOREUPDATE (RID_STR_EVT_START + 6) +#define RID_STR_EVT_COMPONENTHIDDEN (RID_STR_EVT_START + 7) +#define RID_STR_EVT_COMPONENTMOVED (RID_STR_EVT_START + 8) +#define RID_STR_EVT_COMPONENTPAINT (RID_STR_EVT_START + 9) +#define RID_STR_EVT_COMPONENTRESIZED (RID_STR_EVT_START + 10) +#define RID_STR_EVT_COMPONENTSHOWN (RID_STR_EVT_START + 11) +#define RID_STR_EVT_CONFIRMDELETE (RID_STR_EVT_START + 12) +#define RID_STR_EVT_ELEMENTINSERTED (RID_STR_EVT_START + 13) +#define RID_STR_EVT_ELEMENTREMOVED (RID_STR_EVT_START + 14) +#define RID_STR_EVT_ELEMENTREPLACED (RID_STR_EVT_START + 15) +#define RID_STR_EVT_ERROROCCURED (RID_STR_EVT_START + 16) +#define RID_STR_EVT_FIRING (RID_STR_EVT_START + 17) +#define RID_STR_EVT_FOCUSGAINED (RID_STR_EVT_START + 18) +#define RID_STR_EVT_FOCUSLOST (RID_STR_EVT_START + 19) +#define RID_STR_EVT_ITEMSTATECHANGED (RID_STR_EVT_START + 20) +#define RID_STR_EVT_KEYTYPED (RID_STR_EVT_START + 21) +#define RID_STR_EVT_LOADED (RID_STR_EVT_START + 22) +#define RID_STR_EVT_MOUSEDRAGGED (RID_STR_EVT_START + 23) +#define RID_STR_EVT_MOUSEENTERED (RID_STR_EVT_START + 24) +#define RID_STR_EVT_MOUSEEXITED (RID_STR_EVT_START + 25) +#define RID_STR_EVT_MOUSEMOVED (RID_STR_EVT_START + 26) +#define RID_STR_EVT_MOUSEPRESSED (RID_STR_EVT_START + 27) +#define RID_STR_EVT_MOUSERELEASED (RID_STR_EVT_START + 28) +#define RID_STR_EVT_POSITIONED (RID_STR_EVT_START + 29) +#define RID_STR_EVT_PROPERTIESCHANGE (RID_STR_EVT_START + 30) +#define RID_STR_EVT_PROPERTYCHANGE (RID_STR_EVT_START + 31) +#define RID_STR_EVT_PROPERTYSTATECHANGE (RID_STR_EVT_START + 32) +#define RID_STR_EVT_RESETTED (RID_STR_EVT_START + 33) +#define RID_STR_EVT_SUBMITTED (RID_STR_EVT_START + 34) +#define RID_STR_EVT_TEXTCHANGED (RID_STR_EVT_START + 35) +#define RID_STR_EVT_UNLOADED (RID_STR_EVT_START + 36) +#define RID_STR_EVT_UPDATECANCELED (RID_STR_EVT_START + 37) +#define RID_STR_EVT_VETOABLECHANGE (RID_STR_EVT_START + 38) +#define RID_STR_EVT_CHANGED (RID_STR_EVT_START + 39) +#define RID_STR_EVT_APPROVERESETTED (RID_STR_EVT_START + 40) +#define RID_STR_EVT_APPROVEACTIONPERFORMED (RID_STR_EVT_START + 41) +#define RID_STR_EVT_KEYUP (RID_STR_EVT_START + 42) +#define RID_STR_EVT_APPROVEPARAMETER (RID_STR_EVT_START + 43) +#define RID_STR_EVT_POSITIONING (RID_STR_EVT_START + 44) +#define RID_STR_EVT_APPROVEROWCHANGE (RID_STR_EVT_START + 45) +#define RID_STR_EVT_ROWCHANGE (RID_STR_EVT_START + 46) +#define RID_STR_EVT_RELOADED (RID_STR_EVT_START + 47) + +// Error-String-Id's ----------------------------------------------------------- +#define RID_ERR_START (RID_FORMS_START + 600) +#define RID_ERR_CONTEXT_ADDFORM (RID_ERR_START + 0) +#define RID_ERR_DUPLICATE_NAME (RID_ERR_START + 1) +#define RID_ERR_FIELDREQUIRED (RID_ERR_START + 2) +#define RID_ERR_NO_ELEMENT_TITLE (RID_ERR_START + 3) +#define RID_ERR_NO_ELEMENT (RID_ERR_START + 4) +#define RID_ERR_COULD_NOT_CONVERT_PARAM (RID_ERR_START + 5) +#define RID_ERR_REFRESHING_SUB_FORM (RID_ERR_START + 6) +#define RID_ERR_LOADING_FORM (RID_ERR_START + 7) +#define RID_ERR_REFRESHING_FORM (RID_ERR_START + 8) + +// Error-Id's ----------------------------------------------------------- + + +// Ueberlaufpruefung ----------------------------------------------------- + +// Dialog-Id's +#define ACTFRM_RID_END RID_SVXDLG_DBINFO +#if ACTFRM_RID_END > RID_FORMS_END +#error Resource-Ueberlauf in #line, #file +#endif + +// Strings +#define ACTFRM_RID_STREND RID_ERR_FIELDREQUIRED +#if ACTFRM_RID_STREND > RID_FORMS_END +#error Resource-Ueberlauf in #line, #file +#endif + + +#endif // _FM_FMPAGE_HXX + diff --git a/svx/source/inc/fmsearch.hrc b/svx/source/inc/fmsearch.hrc new file mode 100644 index 000000000000..e6e05534a5cf --- /dev/null +++ b/svx/source/inc/fmsearch.hrc @@ -0,0 +1,100 @@ +/************************************************************************* + * + * $RCSfile: fmsearch.hrc,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:19 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _FMSEARCH_HRC +#define _FMSEARCH_HRC + +#define FT_SEARCHTEXT 1 +#define FT_FORM 2 +#define FT_POSITION 3 +#define FT_RECORDLABEL 4 +#define FT_RECORD 5 +#define FT_HINT 6 + + +#define CMB_SEARCHTEXT 1 + +#define RB_ALLFIELDS 1 +#define RB_SINGLEFIELD 2 +#define RB_SEARCHFORTEXT 3 +#define RB_SEARCHFORNULL 4 +#define RB_SEARCHFORNOTNULL 5 + +#define LB_FORM 1 +#define LB_FIELD 2 +#define LB_POSITION 3 + +#define PB_APPROXSETTINGS 1 +#define PB_SEARCH 2 + +#define GB_SEARCHFOR 1 +#define GB_WHERE 2 +#define GB_OPTIONS 3 +#define GB_STATE 4 + +#define CB_USEFORMATTER 1 +#define CB_BACKWARD 2 +#define CB_STARTOVER 3 +#define CB_CASE 4 +#define CB_WILDCARD 5 +#define CB_REGULAR 6 +#define CB_APPROX 7 + +#endif // _FMSEARCH_HRC diff --git a/svx/source/inc/fmservs.hxx b/svx/source/inc/fmservs.hxx new file mode 100644 index 000000000000..bc4965a734c0 --- /dev/null +++ b/svx/source/inc/fmservs.hxx @@ -0,0 +1,264 @@ +/************************************************************************* + * + * $RCSfile: fmservs.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:19 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _SVX_FMSERVS_HXX +#define _SVX_FMSERVS_HXX + +#ifndef _FM_STATIC_HXX_ +#include "fmstatic.hxx" +#endif +// alle serviceNamen +DECLARE_CONSTASCII_USTRING(FM_NUMBER_FORMATTER); + +DECLARE_CONSTASCII_USTRING(VCL_CONTROL_EDIT); +DECLARE_CONSTASCII_USTRING(VCL_CONTROL_LISTBOX); +DECLARE_CONSTASCII_USTRING(VCL_CONTROL_COMBOBOX); +DECLARE_CONSTASCII_USTRING(VCL_CONTROL_RADIOBUTTON); +DECLARE_CONSTASCII_USTRING(VCL_CONTROL_GROUPBOX); +DECLARE_CONSTASCII_USTRING(VCL_CONTROL_FIXEDTEXT); +DECLARE_CONSTASCII_USTRING(VCL_CONTROL_COMMANDBUTTON); +DECLARE_CONSTASCII_USTRING(VCL_CONTROL_CHECKBOX); +DECLARE_CONSTASCII_USTRING(VCL_CONTROL_IMAGEBUTTON); +DECLARE_CONSTASCII_USTRING(VCL_CONTROL_FILECONTROL); +DECLARE_CONSTASCII_USTRING(VCL_CONTROL_TIMEFIELD); +DECLARE_CONSTASCII_USTRING(VCL_CONTROL_DATEFIELD); +DECLARE_CONSTASCII_USTRING(VCL_CONTROL_NUMERICFIELD); +DECLARE_CONSTASCII_USTRING(VCL_CONTROL_CURRENCYFIELD); +DECLARE_CONSTASCII_USTRING(VCL_CONTROL_PATTERNFIELD); +DECLARE_CONSTASCII_USTRING(VCL_CONTROL_FORMATTEDFIELD); +DECLARE_CONSTASCII_USTRING(VCL_CONTROL_IMAGECONTROL); + +DECLARE_CONSTASCII_USTRING(VCL_CONTROLMODEL_EDIT); +DECLARE_CONSTASCII_USTRING(VCL_CONTROLMODEL_LISTBOX); +DECLARE_CONSTASCII_USTRING(VCL_CONTROLMODEL_COMBOBOX); +DECLARE_CONSTASCII_USTRING(VCL_CONTROLMODEL_RADIOBUTTON); +DECLARE_CONSTASCII_USTRING(VCL_CONTROLMODEL_GROUPBOX); +DECLARE_CONSTASCII_USTRING(VCL_CONTROLMODEL_FIXEDTEXT); +DECLARE_CONSTASCII_USTRING(VCL_CONTROLMODEL_COMMANDBUTTON); +DECLARE_CONSTASCII_USTRING(VCL_CONTROLMODEL_CHECKBOX); +DECLARE_CONSTASCII_USTRING(VCL_CONTROLMODEL_IMAGEBUTTON); +DECLARE_CONSTASCII_USTRING(VCL_CONTROLMODEL_FILECONTROL); +DECLARE_CONSTASCII_USTRING(VCL_CONTROLMODEL_TIMEFIELD); +DECLARE_CONSTASCII_USTRING(VCL_CONTROLMODEL_DATEFIELD); +DECLARE_CONSTASCII_USTRING(VCL_CONTROLMODEL_NUMERICFIELD); +DECLARE_CONSTASCII_USTRING(VCL_CONTROLMODEL_CURRENCYFIELD); +DECLARE_CONSTASCII_USTRING(VCL_CONTROLMODEL_PATTERNFIELD); +DECLARE_CONSTASCII_USTRING(VCL_CONTROLMODEL_FORMATTEDFIELD); +DECLARE_CONSTASCII_USTRING(VCL_CONTROLMODEL_IMAGECONTROL); + +DECLARE_CONSTASCII_USTRING(AWT_CONTROL_TEXTFIELD); + +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_FORM); + +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_EDIT); // alter service name (5.0) +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_TEXTFIELD); + +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_LISTBOX); +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_COMBOBOX); +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_RADIOBUTTON); +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_GROUPBOX); +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_FIXEDTEXT); +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_COMMANDBUTTON); +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_CHECKBOX); + +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_GRID); // alter service name (5.0) +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_GRIDCONTROL); + +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_IMAGEBUTTON); +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_FILECONTROL); +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_TIMEFIELD); +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_DATEFIELD); +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_NUMERICFIELD); +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_CURRENCYFIELD); +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_PATTERNFIELD); +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_FORMATTEDFIELD); + +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_HIDDEN); // alter service name (5.0) +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_HIDDENCONTROL); + +DECLARE_CONSTASCII_USTRING(FM_COMPONENT_IMAGECONTROL); + +DECLARE_CONSTASCII_USTRING(FM_CONTROL_LISTBOX); +DECLARE_CONSTASCII_USTRING(FM_CONTROL_RADIOBUTTON); +DECLARE_CONSTASCII_USTRING(FM_CONTROL_COMBOBOX); +DECLARE_CONSTASCII_USTRING(FM_CONTROL_GROUPBOX); +DECLARE_CONSTASCII_USTRING(FM_CONTROL_CHECKBOX); +DECLARE_CONSTASCII_USTRING(FM_CONTROL_FIXEDTEXT); +DECLARE_CONSTASCII_USTRING(FM_CONTROL_COMMANDBUTTON); + +DECLARE_CONSTASCII_USTRING(FM_CONTROL_GRID); +DECLARE_CONSTASCII_USTRING(FM_CONTROL_GRIDCONTROL); + +DECLARE_CONSTASCII_USTRING(FM_CONTROL_IMAGEBUTTON); + +DECLARE_CONSTASCII_USTRING(FM_CONTROL_EDIT); // alt +DECLARE_CONSTASCII_USTRING(FM_CONTROL_TEXTFIELD); + +DECLARE_CONSTASCII_USTRING(FM_CONTROL_TIMEFIELD); +DECLARE_CONSTASCII_USTRING(FM_CONTROL_DATEFIELD); +DECLARE_CONSTASCII_USTRING(FM_CONTROL_NUMERICFIELD); +DECLARE_CONSTASCII_USTRING(FM_CONTROL_CURRENCYFIELD); +DECLARE_CONSTASCII_USTRING(FM_CONTROL_PATTERNFIELD); +DECLARE_CONSTASCII_USTRING(FM_CONTROL_FILECONTROL); +DECLARE_CONSTASCII_USTRING(FM_CONTROL_IMAGECONTROL); +DECLARE_CONSTASCII_USTRING(FM_CONTROL_FORMATTEDFIELD); + +DECLARE_CONSTASCII_USTRING(FM_FORM_CONTROLLER); +DECLARE_CONSTASCII_USTRING(SRV_SDB_ROWSET); +DECLARE_CONSTASCII_USTRING(SRV_SDB_CONNECTION); +DECLARE_CONSTASCII_USTRING(SRV_SDBC_STATEMENT); +DECLARE_CONSTASCII_USTRING(SRV_SDB_DATABASE_ENVIRONMENT); +DECLARE_CONSTASCII_USTRING(SRV_SDB_DATABASE_ACCESS_CONNECTION); +DECLARE_CONSTASCII_USTRING(SRV_SDB_DATABASE_ACCESS_CONTEXT); + + + +DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_FORM); +DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_TEXTFIELD); +DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_LISTBOX); +DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_COMBOBOX); +DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_RADIOBUTTON); +DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_GROUPBOX); +DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_FIXEDTEXT); +DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_COMMANDBUTTON); +DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_CHECKBOX); +DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_GRIDCONTROL); +DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_IMAGEBUTTON); +DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_FILECONTROL); +DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_TIMEFIELD); +DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_DATEFIELD); +DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_NUMERICFIELD); +DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_CURRENCYFIELD); +DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_PATTERNFIELD); +DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_HIDDENCONTROL); +DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_IMAGECONTROL); +DECLARE_CONSTASCII_USTRING(FM_SUN_COMPONENT_FORMATTEDFIELD); + +DECLARE_CONSTASCII_USTRING(FM_SUN_CONTROL_TEXTFIELD); +DECLARE_CONSTASCII_USTRING(FM_SUN_CONTROL_LISTBOX); +DECLARE_CONSTASCII_USTRING(FM_SUN_CONTROL_COMBOBOX); +DECLARE_CONSTASCII_USTRING(FM_SUN_CONTROL_RADIOBUTTON); +DECLARE_CONSTASCII_USTRING(FM_SUN_CONTROL_GROUPBOX); +DECLARE_CONSTASCII_USTRING(FM_SUN_CONTROL_FIXEDTEXT); +DECLARE_CONSTASCII_USTRING(FM_SUN_CONTROL_COMMANDBUTTON); +DECLARE_CONSTASCII_USTRING(FM_SUN_CONTROL_CHECKBOX); +DECLARE_CONSTASCII_USTRING(FM_SUN_CONTROL_GRIDCONTROL); +DECLARE_CONSTASCII_USTRING(FM_SUN_CONTROL_IMAGEBUTTON); +DECLARE_CONSTASCII_USTRING(FM_SUN_CONTROL_TIMEFIELD); +DECLARE_CONSTASCII_USTRING(FM_SUN_CONTROL_DATEFIELD); +DECLARE_CONSTASCII_USTRING(FM_SUN_CONTROL_NUMERICFIELD); +DECLARE_CONSTASCII_USTRING(FM_SUN_CONTROL_CURRENCYFIELD); +DECLARE_CONSTASCII_USTRING(FM_SUN_CONTROL_PATTERNFIELD); +DECLARE_CONSTASCII_USTRING(FM_SUN_CONTROL_IMAGECONTROL); +DECLARE_CONSTASCII_USTRING(FM_SUN_CONTROL_FORMATTEDFIELD); + +// alle Reflections +// Components +//Reflection* FmXDatabaseForm_getReflection(); +//Reflection* FmXGridControlModel_getReflection(); +//Reflection * FmXEditModel_getReflection(); +//Reflection* FmXTextModel_getReflection(); +//Reflection* FmXCheckBoxModel_getReflection(); +//Reflection* FmXRadioButtonModel_getReflection(); +//Reflection* FmXImageButtonModel_getReflection(); +//Reflection* FmXComboBoxModel_getReflection(); +//Reflection* FmXGroupBoxModel_getReflection(); +//Reflection* FmXButtonModel_getReflection(); +//Reflection* FmXListBoxModel_getReflection(); +//Reflection* FmXFileControlModel_getReflection(); +//Reflection* FmXDateModel_getReflection(); +//Reflection* FmXTimeModel_getReflection(); +//Reflection* FmXNumericModel_getReflection(); +//Reflection* FmXCurrencyModel_getReflection(); +//Reflection* FmXPatternModel_getReflection(); +//Reflection* FmXHiddenModel_getReflection(); +//Reflection* FmXImageControlModel_getReflection(); + +// Controls +//Reflection* FmXGridControl_getReflection(); +//Reflection * FmXEditControl_getReflection(); +//Reflection* FmXImageButtonControl_getReflection(); +//Reflection* FmXRadioButtonControl_getReflection(); +//Reflection* FmXComboBoxControl_getReflection(); +//Reflection* FmXCheckBoxControl_getReflection(); +//Reflection* FmXGroupBoxControl_getReflection(); +//Reflection* FmXButtonControl_getReflection(); +//Reflection* FmXListBoxControl_getReflection(); +//Reflection* FmXDateControl_getReflection(); +//Reflection* FmXTimeControl_getReflection(); +//Reflection* FmXNumericControl_getReflection(); +//Reflection* FmXCurrencyControl_getReflection(); +//Reflection* FmXPatternControl_getReflection(); +//Reflection* FmXFileControlControl_getReflection(); +//Reflection* FmXImageControlControl_getReflection(); + +// Peers +// Reflection* FmXGridPeer_getReflection(); + +// other internal objects +// Reflection* FmXFilterControl_getReflection(); +// Reflection* FmXFilterCell_getReflection(); + +void ImplSmartRegisterUnoServices(); + + + +#endif // _SVX_FMSERVS_HXX + diff --git a/svx/source/inc/fmshimp.hxx b/svx/source/inc/fmshimp.hxx new file mode 100644 index 000000000000..d9fa94a00175 --- /dev/null +++ b/svx/source/inc/fmshimp.hxx @@ -0,0 +1,801 @@ +/************************************************************************* + * + * $RCSfile: fmshimp.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:19 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _SVX_FMSHIMP_HXX +#define _SVX_FMSHIMP_HXX + +#ifndef _COM_SUN_STAR_SDBC_XROWSETLISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMECONTAINER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SDBC_XRESULTSET_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SDB_XSQLQUERYCOMPOSER_HPP_ +#include +#endif + +#ifndef _COM_SUN_STAR_FRAME_XSTATUSLISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_CONTAINEREVENT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XCONTAINERLISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_XCONTROL_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_UTIL_XMODIFYLISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FORM_XFORM_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FORM_XFORMCONTROLLER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FORM_XFORMCOMPONENT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FORM_NAVIGATIONBARMODE_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FRAME_XFRAME_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_VIEW_XSELECTIONCHANGELISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_BEANS_XFASTPROPERTYSET_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYCHANGELISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_BEANS_PROPERTYCHANGEEVENT_HPP_ +#include +#endif + +#ifndef _SV_TIMER_HXX //autogen +#include +#endif + +#ifndef _SFXAPP_HXX //autogen wg. SFX_APP +#include +#endif + +#ifndef _SVDMARK_HXX +#include "svdmark.hxx" +#endif + +#ifndef _SVX_SVXIDS_HRC +#include "svxids.hrc" +#endif + +#ifndef _SVARRAY_HXX //autogen +#include +#endif + +#ifndef _SFXLSTNER_HXX //autogen +#include +#endif + +#define _SVSTDARR_BOOLS +#define _SVSTDARR_BYTES +#define _SVSTDARR_LONGS +#define _SVSTDARR_ULONGS +#define _SVSTDARR_USHORTS +#include + +#ifndef _SFXMNUITEM_HXX //autogen +#include +#endif + +#ifndef _SVX_FMTOOLS_HXX +#include "fmtools.hxx" +#endif + +#ifndef _FMSEARCH_HXX +#include "fmsearch.hxx" +#endif + +#ifndef _FMSRCCF_HXX_ +#include "fmsrccfg.hxx" +#endif + +#include + +#ifndef _VOS_THREAD_HXX_ //autogen +#include +#endif + +#ifndef _SFXCANCEL_HXX //autogen +#include +#endif + +#ifndef _TOOLS_DEBUG_HXX //autogen wg. DBG_WARNING +#include +#endif + +#ifndef _CPPUHELPER_COMPONENT_HXX_ +#include +#endif +#ifndef _UTL_STLTYPES_HXX_ +#include "unotools/stl_types.hxx" +#endif +#ifndef _UTL_CONTAINER_HXX_ +#include "unotools/container.hxx" +#endif +#ifndef _FM_IMPLEMENTATION_IDS_HXX_ +#include "fmimplids.hxx" +#endif + + +SV_DECL_PTRARR(SdrObjArray, SdrObject*, 32, 16); +// SV_DECL_OBJARR(FmFormArray, ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm>, 32, 16); +DECLARE_STL_VECTOR( ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm > ,FmFormArray); + +// catch databse exceptions if occur +#define DO_SAFE(statement) try { statement; } catch(...) { DBG_WARNING("unhandled exception (I tried to move a cursor (or something like that).)"); } + +#define GA_DISABLE_SYNC 1 +#define GA_FORCE_SYNC 2 +#define GA_ENABLE_SYNC 3 +#define GA_SYNC_MASK 3 +#define GA_DISABLE_ROCTRLR 4 +#define GA_ENABLE_ROCTRLR 8 + +//============================================================================== +// FmFormNavigationDispatcher - a dispatcher responsible for a form navigation slot +//============================================================================== + +class FmFormNavigationDispatcher : public FmSlotDispatch +{ + ::com::sun::star::frame::FeatureStateEvent m_aNonActiveState; // the state to report to the listeners if we're inactive + ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet> m_xCursor; // the cursor we're responsible for + sal_Bool m_bActive; // forward the StateChanged as statusChanged to our listeners ? + UniString m_sAccessPath; // the access path of m_xCursor (redundant but more performant) + +public: + ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet> getForm() const { return m_xCursor; } + UniString getFormAccessPath() const { return m_sAccessPath; } + +public: + FmFormNavigationDispatcher(const ::com::sun::star::util::URL& _rUrl, sal_Int16 _nSlotId, SfxBindings& _rBindings, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _xForm, const UniString& _rAccessPath); + + void SetActive(sal_Bool bEnable); + sal_Bool IsActive() const { return m_bActive; } + + // set a specific state which will be broadcasted to the listeners (no matter if we are active or not) + void SetStatus(SfxItemState eState, const SfxPoolItem* pState); + + // XComponent + virtual void SAL_CALL dispose( ) throw(::com::sun::star::uno::RuntimeException); + +protected: + // SfxControllerItem + virtual void StateChanged(sal_Int16 nSID, SfxItemState eState, const SfxPoolItem* pState); + + virtual void NotifyState(SfxItemState eState, const SfxPoolItem* pState, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XStatusListener>& rListener = ::com::sun::star::uno::Reference< ::com::sun::star::frame::XStatusListener>()); +}; + +//============================================================================== +// a class iterating through all fields of a form which are bound to a field +// sub forms are ignored, grid columns (where the grid is a direct child of the form) are included +class FmXBoundFormFieldIterator : public ::utl::IndexAccessIterator +{ +public: + FmXBoundFormFieldIterator(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& _rStartingPoint) : ::utl::IndexAccessIterator(_rStartingPoint) { } + +protected: + virtual sal_Bool ShouldHandleElement(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& _rElement); + virtual sal_Bool ShouldStepInto(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& _rContainer) const; +}; + +//======================================================================== +// I would prefer this to be a struct local to FmXFormShell but unfortunately local structs/classes +// are somewhat difficult with some of our compilers +class FmCursorActionThread; +struct CursorActionDescription +{ + FmCursorActionThread* pThread; + sal_uInt32 nFinishedEvent; + // we want to do the cleanup of the thread in the main thread so we post an event to ourself + sal_Bool bCanceling; + // this thread is being canceled + + CursorActionDescription() : pThread(NULL), nFinishedEvent(0), bCanceling(sal_False) { } +}; + +//======================================================================== +class SfxViewFrame; +class FmXFormShell : public ::com::sun::star::sdbc::XRowSetListener, + public ::com::sun::star::beans::XPropertyChangeListener, + public ::com::sun::star::util::XModifyListener, + public ::com::sun::star::container::XContainerListener, + public ::com::sun::star::view::XSelectionChangeListener, + public ::com::sun::star::form::XFormControllerListener, + public ::cppu::OComponentHelper, + public FmDispatchInterceptor + // public ::cppu::OWeakObject +{ + friend class FmFormShell; + friend class FmFormView; + + // Timer um verzoegerte Markierung vorzunehmen + Timer m_aMarkTimer; + SdrObjArray m_arrSearchedControls; + // We enable a permanent cursor for the grid we found a searched text, it's disabled in the next "found" event. + FmFormArray m_arrSearchContexts; + + // Liste der markierten Object, dient zur Restauration beim Umschalten von Alive in DesignMode + SdrMarkList m_aMark; + + // some typedefs : + // all dispatchers belonging to a form + DECLARE_STL_VECTOR(FmFormNavigationDispatcher*, SingleFormDispatchers); + + // a map from a form access path (like "1/4/2") to the dispatchers array for this form + DECLARE_STL_USTRINGACCESS_MAP(SingleFormDispatchers, FormsDispatchers); + FormsDispatchers m_aNavigationDispatcher; + + FmSearchConfigAdmin m_aConfigDummy; + // das sorgt dafuer, das das SearchConfigItem (ein singleton) aufgeraeumt wird, sobald die letzte FormShell + // geschlossen wird. Benutzt man keine Suche, dann wird auch kein ConfigItem angezogen (so schlau ist der + // ConfigAdmin schon ;)), so dass dieses Member hier nicht weiter stoert + + ::form::OImplementationIdsRef m_aHoldImplIdHelper; + + SvUShorts m_arrInvalidSlots; + SvBytes m_arrInvalidSlots_Flags; + // we explicitly switch off the propbrw before leaving the design mode + // this flag tells us if we have to switch it on again when reentering + + DECLARE_STL_USTRINGACCESS_MAP(CursorActionDescription, CursorActions); + CursorActions m_aCursorActions; + // all actions on async cursors + + SvBools m_aControlLocks; + // while doing a async cursor action we have to lock all controls of the active controller. + // m_aControlLocks remembers the previous lock states to be restored afterwards. + ::osl::Mutex m_aAsyncSafety; + // secure the access to our thread related members + ::osl::Mutex m_aInvalidationSafety; + // secure the access to all our slot invalidation related members + + ::com::sun::star::form::NavigationBarMode m_eNavigate; // Art der Navigation + + // da ich beim Suchen fuer die Behandlung des "gefunden" ein SdrObject markieren will, besorge ich mir vor dem + // Hochreissen des Suchen-Dialoges alle relevanten Objekte + // (das Array ist damit auch nur waehrend des Suchvorganges gueltig) + SvLongs m_arrRelativeGridColumn; + + ::osl::Mutex m_aMutex; + sal_uInt32 m_nInvalidationEvent; + + FmFormShell* m_pShell; + + // aktuelle Form, Controller + // nur im alive mode verfuegbar + ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController> m_xActiveController; + ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController> m_xNavigationController; + ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm> m_xActiveForm; + ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSQLQueryComposer> m_xParser; + + // Aktueller container einer Page + // nur im designmode verfuegbar + ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess> m_xForms; + + // aktuell selektiertes Object (Form oder Control) + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> m_xSelObject; + + // aktuelles Control, keine Form + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> m_xCurControl; + + // aktuelle Form + ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm> m_xCurForm; + + + // und das ist ebenfalls fuer's 'gefunden' : Beim Finden in GridControls brauche ich die Spalte, bekomme aber + // nur die Nummer des Feldes, die entspricht der Nummer der Spalte + , wobei der Offset von der Position + // des GridControls im Formular abhaengt. Also hier eine Umrechnung. + ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel> m_aLastGridFound; + // we want to be a DispatchInterceptor within our frame + ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame> m_xAttachedFrame; + // Administration of external form views (see the SID_FM_VIEW_AS_GRID-slot) + ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController> m_xExternalViewController; // the controller for the external form view + ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController> m_xExtViewTriggerController; // the nav controller at the time the external display was triggered + ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet> m_xExternalDisplayedForm; // the form which the external view is based on + + FmXDispatchInterceptorImpl* m_pMainFrameInterceptor; + FmXDispatchInterceptorImpl* m_pExternalViewInterceptor; + + sal_Int16 m_nLockSlotInvalidation; + sal_Bool m_bHadPropBrw:1; + + sal_Bool m_bUseWizards : 1; + + sal_Bool m_bTrackProperties : 1; + // soll ich (bzw. der Owner diese Impl-Klasse) mich um die Aktualisierung des ::com::sun::star::beans::Property-Browsers kuemmern ? + + sal_Bool m_bActiveModified : 1; // Controller modifiziert + sal_Bool m_bDatabaseBar : 1; // Gibt es eine Datenbankleiste + sal_Bool m_bInActivate : 1; // Wird ein Controller aktiviert + sal_Bool m_bSetFocus : 1; // Darf der Focus umgesetzt werden + sal_Bool m_bFilterMode : 1; // Wird gerade ein Filter auf die Controls angesetzt + sal_Bool m_bChangingDesignMode:1; // sal_True within SetDesignMode + +public: + FmXFormShell(FmFormShell* _pShell, SfxViewFrame* _pViewFrame); + ~FmXFormShell(); + + // UNO Anbindung + DECLARE_UNO3_DEFAULTS(FmXFormShell, OComponentHelper); + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& type) throw ( ::com::sun::star::uno::RuntimeException ); + virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw(::com::sun::star::uno::RuntimeException); + ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException); + +// EventListener + virtual void SAL_CALL disposing(const ::com::sun::star::lang::EventObject& Source) throw( ::com::sun::star::uno::RuntimeException ); + +// ::com::sun::star::container::XContainerListener + virtual void SAL_CALL elementInserted(const ::com::sun::star::container::ContainerEvent& rEvent); + virtual void SAL_CALL elementReplaced(const ::com::sun::star::container::ContainerEvent& rEvent); + virtual void SAL_CALL elementRemoved(const ::com::sun::star::container::ContainerEvent& rEvent); + +// XSelectionChangeListener + virtual void SAL_CALL selectionChanged(const ::com::sun::star::lang::EventObject& rEvent); + +// ::com::sun::star::beans::XPropertyChangeListener + virtual void SAL_CALL propertyChange(const ::com::sun::star::beans::PropertyChangeEvent& evt); + +// ::com::sun::star::sdbc::XRowSetListener + virtual void SAL_CALL cursorMoved(const ::com::sun::star::lang::EventObject& event) throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL rowChanged(const ::com::sun::star::lang::EventObject& event) throw( ::com::sun::star::uno::RuntimeException ) { } + virtual void SAL_CALL rowSetChanged(const ::com::sun::star::lang::EventObject& event) throw( ::com::sun::star::uno::RuntimeException ) { } + +// ::com::sun::star::util::XModifyListener -> modify setzen + virtual void SAL_CALL modified(const ::com::sun::star::lang::EventObject& Source); + +// ::com::sun::star::frame::XDispatchProviderInterceptor + virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch> interceptedQueryDispatch(sal_uInt16 _nId, + const ::com::sun::star::util::URL& aURL, const ::rtl::OUString& aTargetFrameName, sal_Int32 nSearchFlags) throw( ::com::sun::star::uno::RuntimeException ); + virtual ::osl::Mutex* getInterceptorMutex() { return &m_aAsyncSafety; } + +// ::com::sun::star::form::XFormControllerListener + virtual void SAL_CALL formActivated(const ::com::sun::star::lang::EventObject& rEvent) throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL formDeactivated(const ::com::sun::star::lang::EventObject& rEvent) throw( ::com::sun::star::uno::RuntimeException ); + +// OComponentHelper + virtual void SAL_CALL disposing(); + + void EnableTrackProperties( sal_Bool bEnable) { m_bTrackProperties = bEnable; } + sal_Bool IsTrackPropertiesEnabled() {return m_bTrackProperties;} + +protected: + void ResetForms(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess>& _xForms = ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess>(), sal_Bool bInvalidate = sal_False); + void AddElement(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& Element); + void RemoveElement(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& Element); + + void startListening(); + void stopListening(); + + void ExecuteSearch(); // execute SID_FM_SEARCH + + void CreateExternalView(); // execute SID_FM_VIEW_AS_GRID + + sal_Bool GetY2KState(sal_uInt16& n); + void SetY2KState(sal_uInt16 n); + + ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet> GetBoundField(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& _xControl, const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm>& _xForm) const; + + void ObjectRemovedInAliveMode(const SdrObject* pObject); + + ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> GetControlFromModel(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel>& xModel); + // liefert das Control, welches das angegebene Model hat + void CollectFormContexts(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& xStartingPoint, const UniString& strCurrentLevelPrefix, UniString& strNames); + // sammelt in strNames die Namen aller Formulare, fuegt die entsprechenden XFormRefs in m_arrSearchContexts ein + + static sal_Bool CanMoveRight(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _xControllerModel); + static sal_Bool CanMoveLeft(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _xControllerModel); + static sal_Bool SaveModified(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetUpdate>& _xCursor, ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _xSet, sal_Bool& _rRecordInserted); + static sal_Bool MoveRight(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetUpdate>& _xCursor); + static sal_Bool MoveLeft(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetUpdate>& _xCursor); + +public: + static sal_Bool CanMoveRight(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController>& xController); + static sal_Bool CanMoveLeft(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController>& xController); + static sal_Bool MoveRight(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController>& xController); + static sal_Bool MoveLeft(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController>& xController); + static sal_Bool CommitCurrent(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController>& _xController); + static sal_Bool IsModified(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController>& xController); + static void ResetCurrent(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController>& _xController); + void ResetAll(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm>& _xForm); + static sal_Bool SaveModified(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController>& xController, sal_Bool bCommit = sal_True); + + // methode fuer nicht designmode (alive mode) + void setActiveController(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController>& _xController = ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController>()); + const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController>& getActiveController() const {return m_xActiveController;} + const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController>& getActiveInternalController() const { return m_xActiveController == m_xExternalViewController ? m_xExtViewTriggerController : m_xActiveController; } + const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm>& getActiveForm() const {return m_xActiveForm;} + const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController>& getNavController() const {return m_xNavigationController;} + ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSQLQueryComposer> getParser() const { return m_xParser; } + + // nur im design mode verwenden, aktuell selektiertes Formular oder Control + void setCurForm(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm>& xF); + void setCurControl(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& xObj); + void setCurControl(const SdrMarkList& rMarkList); + void setSelObject(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& xObj); + + const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm>& getCurForm() const {return m_xCurForm;} + const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& getCurControl() const {return m_xCurControl;} + const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& getSelObject() const {return m_xSelObject;} + + sal_Bool hasForms() const {return m_xForms.is() && m_xForms->getCount() != 0;} + sal_Bool isActiveModified() const {return m_bActiveModified;} + sal_Bool hasDatabaseBar() const {return m_bDatabaseBar;} + sal_Bool canNavigate() const {return m_xNavigationController.is();} + sal_Bool isParsable() const {return m_xParser.is() && m_xParser->getQuery().len();} + sal_Bool hasFilter() const { return isParsable() && + (m_xParser->getFilter().len() || m_xParser->getOrder().len()); } + + void ShowProperties( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& rxObject, sal_Bool bShow=sal_True ); + sal_Bool IsPropBrwOpen() const; + + void DetermineSelection(const SdrMarkList& rMarkList); + ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm> DetermineCurForm(const SdrMarkList& rMarkList, sal_Bool&); + void SetSelection(const SdrMarkList& rMarkList); + void SetSelectionDelayed(FmFormView* pView); + + void SaveMarkList(const FmFormView* pView); + void RestoreMarkList(FmFormView* pView); + + void SetDesignMode(sal_Bool bDesign); + + sal_Bool GetWizardUsing() const { return m_bUseWizards; } + void SetWizardUsing(sal_Bool bUseThem); + + // Setzen des Filtermodus + sal_Bool isInFilterMode() const {return m_bFilterMode;} + void startFiltering(); + void stopFiltering(sal_Bool bSave); + void clearFilter(); + + static PopupMenu* GetConversionMenu(); + // ein Menue, das alle ControlConversion-Eintraege enthaelt + sal_Bool ConvertControlTo(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormComponent>& xModel, sal_uInt16 nTargetObjectId); + // umwandeln eines Controls + static sal_Bool IsControlConversionSlot(sal_uInt16 nSlotId); + // ein gueltiger ControlConversionSlot + static sal_Bool IsConversionPossible(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& xContext, sal_Int16 nConversionSlot); + // Konvertierung der Komponente mit geg. Slot moeglich + static void CheckControlConversionSlots(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& xContext, Menu& rMenu); + // iteriertes IsConversionPossible + sal_Bool ExecuteControlConversionSlot(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormComponent>& xContext, sal_uInt16 nSlotId); + // verkapptes ConvertControlTo + +private: + static sal_Bool SaveModified(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController>& xController, + ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSetUpdate>& xCursor, + ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& xSet, + sal_Bool& rRecordInserted); + + + DECL_LINK(OnFoundData, FmFoundRecordInformation*); + DECL_LINK(OnCanceledNotFound, FmFoundRecordInformation*); + DECL_LINK(OnSearchContextRequest, FmSearchContext*); + DECL_LINK(OnTimeOut, void*); + + class ObjectRemoveListener : public SfxListener + { + FmXFormShell* m_pParent; + public: + ObjectRemoveListener(FmXFormShell* pParent); + virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint); + }; + ObjectRemoveListener* m_pCheckForRemoval; + friend class ObjectRemoveListener; + + void LoopGrids(sal_Int16 nWhat); + + // das Setzen des curObject/selObject/curForm erfolgt verzoegert (SetSelectionDelayed), mit den folgenden + // Funktionen laesst sich das abfragen/erzwingen + inline sal_Bool IsSelectionUpdatePending(); + void ForceUpdateSelection(sal_Bool bLockInvalidation); + + // Invalidierung von Slots + void InvalidateSlot(sal_Int16 nId, sal_Bool bWithItem = sal_True, sal_Bool bWithId = sal_False); + // Locking der Invalidierung - wenn der interne Locking-Counter auf 0 geht, werden alle aufgelaufenen Slots + // (asynchron) invalidiert + void LockSlotInvalidation(sal_Bool bLock); + + DECL_LINK(OnInvalidateSlots, void*); + + ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm> getInternalForm(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm>& _xForm) const; + ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet> getInternalForm(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _xForm) const; + // if the form belongs to the controller (extern) displaying a grid, the according internal form will + // be displayed, _xForm else + + void CloseExternalFormViewer(); + // closes the task-local beamer displaying a grid view for a form + + // --------------------------------------------------- + // asyncronous cursor actions/navigation slot handling + + void ActivateDispatchers(const UniString& sNavFormAccess, sal_Bool bActivate); + // (de)activate all dispatchers belonging to the form with the given access path + DECL_LINK(OnExecuteNavSlot, FmFormNavigationDispatcher*); + + UniString GetAccessPathFromForm(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _xForm, const UniString& rAssumedPagePrefix = UniString()) const; + // return the access path of the given form (if rAssumedPagePrefix the current page's id is taken as page prefix) + ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer> GetPageForms(const UniString sPageId) const; + // return the forms collection of the page with the given id + UniString GetPageId(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _xForm) const; + // get the id of the page to which's forms collection _xForms belongs + + sal_Bool PathsInterfere(const UniString& _rPathLeft, const UniString& _rPathRight) const; + + void UpdateFormDispatcher(FmFormNavigationDispatcher* _pDisp); + void UpdateAllFormDispatchers(const UniString& _rPath); + + void setControlLocks(); // lock all controls of the active controller + void restoreControlLocks(); // restore the lock state of all controls of the active controller + + enum CURSOR_ACTION { CA_MOVE_TO_LAST, CA_MOVE_ABSOLUTE }; + void DoAsyncCursorAction(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController>& _xController, CURSOR_ACTION _eWhat); + void DoAsyncCursorAction(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _xForm, CURSOR_ACTION _eWhat); + + sal_Bool HasAnyPendingCursorAction() const; + void CancelAnyPendingCursorAction(); + + sal_Bool HasPendingCursorAction(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController>& _xController) const; + sal_Bool HasPendingCursorAction(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _xForm) const; + sal_Bool HasPendingCursorAction(const UniString& _rAccessPath) const; + + DECL_LINK(OnCursorActionDone, FmCursorActionThread*); + DECL_LINK(OnCursorActionDoneMainThread, FmCursorActionThread*); +}; + +//------------------------------------------------------------------------------ +inline sal_Bool FmXFormShell::IsSelectionUpdatePending() +{ + return m_aMarkTimer.IsActive(); +} + +// ======================================================================== +// = ein Iterator, der ausgehend von einem Interface ein Objekt sucht, dessen +// = ::com::sun::star::beans::Property-Set eine ControlSource- sowie eine BoundField-Eigenschaft hat, +// = wobei letztere einen Wert ungleich NULL haben muss. +// = Wenn das Interface selber diese Bedingung nicht erfuellt, wird getestet, +// = ob es ein Container ist (also ueber eine ::com::sun::star::container::XIndexAccess verfuegt), dann +// = wird dort abgestiegen und fuer jedes Element des Containers das selbe +// = versucht (wiederum eventuell mit Abstieg). +// = Wenn irgendein Objekt dabei die geforderte Eigenschaft hat, entfaellt +// = der Teil mit dem Container-Test fuer dieses Objekt. +// = + +class SearchableControlIterator : public ::utl::IndexAccessIterator +{ + ::rtl::OUString m_sCurrentValue; + // der aktuelle Wert der ControlSource-::com::sun::star::beans::Property + +public: + ::rtl::OUString getCurrentValue() const { return m_sCurrentValue; } + +public: + SearchableControlIterator(::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> xStartingPoint); + + virtual sal_Bool ShouldHandleElement(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& rElement); + virtual sal_Bool ShouldStepInto(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& xContainer) const; + virtual void Invalidate() { IndexAccessIterator::Invalidate(); m_sCurrentValue = ::rtl::OUString(); } +}; + +// ======================================================================== +SV_DECL_PTRARR_DEL(StatusForwarderArray, SfxStatusForwarder*, 16, 0) +class ControlConversionMenuController : public SfxMenuControl +{ +protected: + StatusForwarderArray m_aStatusForwarders; + Menu* m_pMainMenu; + PopupMenu* m_pConversionMenu; + +public: + ControlConversionMenuController(sal_uInt16 nId, Menu& rMenu, SfxBindings& rBindings); + virtual ~ControlConversionMenuController(); + SFX_DECL_MENU_CONTROL(); + + virtual void StateChanged(sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState); +}; + +//================================================================== +// FmCursorActionThread +//================================================================== + +class FmCursorActionThread : public ::vos::OThread +{ + Link m_aTerminationHandler; // the handler to be called upon termination + ::com::sun::star::sdbc::SQLException m_aRunException; // the database exception thrown by RunImpl + ::osl::Mutex m_aAccessSafety; // for securing the multi-thread access + ::osl::Mutex m_aFinalExitControl; // see StopItWait + +protected: + ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet> m_xDataSource; // the cursor which we work with + UniString m_sAccessPath; + +private: + + UniString m_sStopperCaption; // the caption for the ThreadStopper + sal_Bool m_bCanceled:1; // StopIt has been called ? + sal_Bool m_bDeleteMyself:1; // delete the thread upon termination (defaults to sal_False) ? + sal_Bool m_bDisposeCursor:1; // dispose the cursor upon termination (defaults to sal_False) ? + sal_Bool m_bTerminated:1; // onTerminated already called ? + sal_Bool m_bRunFailed:1; // a database execption occured in RunImpl ? + + // a ThreadStopper will be instantiated so that the open can be canceled via the UI + class ThreadStopper : protected SfxCancellable + { + FmCursorActionThread* m_pOwner; + + virtual ~ThreadStopper() { } + + public: + ThreadStopper(FmCursorActionThread* pOwner, const UniString& rTitle); + + virtual void Cancel(); + + virtual void OwnerTerminated(); + // Normally the Owner (a FmCursorActionThread) would delete the stopper when terminated. + // Unfortunally the application doesn't remove the 'red light' when a SfxCancellable is deleted + // if it (the app) can't acquire the solar mutex. The deletion is IGNORED then. So we have make + // sure that a) the stopper is deleted from inside the main thread (where the solar mutex is locked) + // and b) that in the time between the termination of the thread and the deletion of the stopper + // the latter doesn't access the former. + // The OwnerTerminated cares for both aspects. + // SO DON'T DELETE THE STOPPER EXPLICITLY ! + + protected: + // HACK HACK HACK HACK HACK : this should be private, but MSVC doesn't accept the LINK-macro then .... + DECL_LINK(OnDeleteInMainThread, ThreadStopper*); + }; + friend class FmCursorActionThread::ThreadStopper; + + +public: + ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet> getDataSource() const { return m_xDataSource; } + UniString getAccessPath() const { return m_sAccessPath; } + +private: + sal_Bool Terminated() { ::osl::MutexGuard aGuard(m_aAccessSafety); return m_bTerminated; } + +public: + FmCursorActionThread(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _xDataSource, const UniString& _rStopperCaption, const UniString& _rPath); + virtual ~FmCursorActionThread() {} + + // control of self-deletion + sal_Bool IsSelfDeleteEnabled() { ::osl::MutexGuard aGuard(m_aAccessSafety); return m_bDeleteMyself; } + void EnableSelfDelete(sal_Bool bEnable) { ::osl::MutexGuard aGuard(m_aAccessSafety); m_bDeleteMyself = bEnable; } + + // control of cursor-dipose + sal_Bool IsCursorDisposeEnabled() { ::osl::MutexGuard aGuard(m_aAccessSafety); return m_bDisposeCursor; } + void EnableCursorDispose(sal_Bool bEnable) { ::osl::MutexGuard aGuard(m_aAccessSafety); m_bDisposeCursor = bEnable; } + + // error-access + sal_Bool RunFailed() { ::osl::MutexGuard aGuard(m_aAccessSafety); return m_bRunFailed; } + ::com::sun::star::sdbc::SQLException GetRunException() { ::osl::MutexGuard aGuard(m_aAccessSafety); return m_aRunException; } + + /// the excution (within the method "run") was canceled ? + sal_Bool WasCanceled(sal_Bool bEnable) { ::osl::MutexGuard aGuard(m_aAccessSafety); return m_bCanceled; } + + /// the handler will be called synchronously (the parameter is a pointer to the thread) + void SetTerminationHdl(const Link& aTermHdl) { ::osl::MutexGuard aGuard(m_aAccessSafety); m_aTerminationHandler = aTermHdl; } + + /// cancels the process. returns to the caller immediately. to be called from another thread (of course ;) + void StopIt(); + + /// cancels the process. does not return to the caller until the thread is terminated. + void StopItWait(); + +protected: + virtual void SAL_CALL run(); + virtual void SAL_CALL onTerminated(); + + /// called from within run. run itself handles (de)initialisation of the cancel handling. + virtual void RunImpl() = 0; +}; + +//------------------------------------------------------------------------------ + +#define DECL_CURSOR_ACTION_THREAD(classname) \ + \ +class classname : public FmCursorActionThread \ +{ \ +public: \ + classname(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _xDataSource, \ + const UniString& _rPath); \ +protected: \ + virtual void RunImpl(); \ +}; \ + + +//------------------------------------------------------------------------------ + +#define IMPL_CURSOR_ACTION_THREAD(classname, caption, action) \ + \ +classname::classname(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _xDataSource, \ + const UniString& _rPath) \ + :FmCursorActionThread(_xDataSource, caption, _rPath) \ +{ \ +} \ + \ +void classname::RunImpl() \ +{ \ + m_xDataSource->action; \ +} \ + + + +#endif // _SVX_FMSHIMP_HXX diff --git a/svx/source/inc/fmsrccfg.hxx b/svx/source/inc/fmsrccfg.hxx new file mode 100644 index 000000000000..4e4951e842e7 --- /dev/null +++ b/svx/source/inc/fmsrccfg.hxx @@ -0,0 +1,167 @@ +/************************************************************************* + * + * $RCSfile: fmsrccfg.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:19 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef _FMSRCCF_HXX_ +#define _FMSRCCF_HXX_ + +#ifndef _STRING_HXX //autogen +#include +#endif + +#ifndef _SFXCFGITEM_HXX //autogen +#include +#endif + +// =================================================================================================== + +#define MATCHING_ANYWHERE 0 +#define MATCHING_BEGINNING 1 +#define MATCHING_END 2 +#define MATCHING_WHOLETEXT 3 + +// diese Konstanten duerfen NICHT einfach geaendert werden, da der SearchDialog aus den Einstellungen seiner ListBox +// keine Umrechnungen vornimmt, sondern die einfach in die entsprechenden Methoden der SearchEngine steckt +// (wenn man also die Konstanten oder die Reihenfolge der Listbox-Eintraege im Dialog aendert, muss das jeweils andere +// angepasst werden) + + +// =================================================================================================== +// = struct FmSearchParams - Parameter einer Suche +// =================================================================================================== + +struct FmSearchParams +{ +public: + String strHistory; + // der Dialog haelt maximal MAX_HISTORY_ENTRIES Eintraege + String strSingleSearchField; + INT16 nSearchForType : 2; + UINT16 nPosition : 2; + INT16 nLevOther; + INT16 nLevShorter; + INT16 nLevLonger; + + BOOL bAllFields : 1; + BOOL bUseFormatter : 1; + BOOL bCaseSensitive : 1; + BOOL bBackwards : 1; + BOOL bWildcard : 1; + BOOL bRegular : 1; + BOOL bApproxSearch : 1; + // die letzten 3 schliessen sich gegenseitig aus ! + // fuer Levenshtein-Suche : + BOOL bLevRelaxed : 1; + +public: + // Vergleich nur unter Beachtung der persistenten Eigenschaften ! + BOOL operator ==(const FmSearchParams& rComp) const; + BOOL operator !=(const FmSearchParams& rComp) const { return !(*this == rComp); } +}; + +// =================================================================================================== +// = class FmSearchConfigItem - ein ConfigItem, dass sich Suchparameter merkt +// =================================================================================================== + +class FmSearchConfigItem : public SfxConfigItem +{ + friend class FmSearchConfigAdmin; + +private: + FmSearchParams m_aParams; + +private: + FmSearchConfigItem(); + +public: + virtual int Load(SvStream&); + virtual BOOL Store(SvStream&); + virtual void UseDefault(); + +protected: + INT32 CalcCheckSum(const FmSearchParams&, short); +}; + +// =================================================================================================== +// = class FmSearchConfigAdmin - verwaltet den Zugriff auf das einzige FmSearchConfigItem, das es gibt +// =================================================================================================== + +class FmSearchConfigAdmin +{ +private: + static FmSearchConfigItem* s_pItem; + static INT32 s_nUsageCounter; + +public: + FmSearchConfigAdmin(); + ~FmSearchConfigAdmin(); + +public: + FmSearchParams GetParams() const { return GetItem()->m_aParams; } + void PutParams(const FmSearchParams& rParams); + +protected: + FmSearchConfigItem* GetItem() const; +}; + +// =================================================================================================== + +#endif // _FMSRCCF_HXX_ + diff --git a/svx/source/inc/fmsrcimp.hxx b/svx/source/inc/fmsrcimp.hxx new file mode 100644 index 000000000000..cc9330f8b860 --- /dev/null +++ b/svx/source/inc/fmsrcimp.hxx @@ -0,0 +1,423 @@ +/************************************************************************* + * + * $RCSfile: fmsrcimp.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:19 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef _FMSRCIMP_HXX +#define _FMSRCIMP_HXX + +#ifndef _SVX_FMTOOLS_HXX +#include "fmtools.hxx" +#endif // _SVX_FMTOOLS_HXX + +#ifndef _VOS_THREAD_HXX_ //autogen +#include +#endif + +#ifndef _OSL_MUTEX_HXX_ //autogen +#include +#endif + +#ifndef _FMSEARCH_HXX +#include "fmsearch.hxx" +#endif // _FMSEARCH_HXX + +#ifndef _COM_SUN_STAR_AWT_XTEXTCOMPONENT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_XCHECKBOX_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_XLISTBOX_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATSSUPPLIER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATTER_HPP_ +#include +#endif + +#include +#include + +// =================================================================================================== +// Hilfsstrukturen + +SV_DECL_OBJARR(SvInt32Array, sal_Int32, 16, 16); + +// =================================================================================================== +// = class FmSearchThread - wie der Name schon sagt +// =================================================================================================== + +class FmSearchThread : public ::vos::OThread +{ + FmSearchEngine* m_pEngine; + Link m_aTerminationHdl; + + virtual void SAL_CALL run(); + virtual void SAL_CALL onTerminated(); + +public: + FmSearchThread(FmSearchEngine* pEngine) : m_pEngine(pEngine) { } + void setTerminationHandler(Link aHdl) { m_aTerminationHdl = aHdl; } +}; + +// =================================================================================================== +// = struct FmSearchProgress - diese Struktur bekommt der Owner der SearchEngine fuer Status-Updates +// = (und am Ende der Suche) +// =================================================================================================== + +struct FmSearchProgress +{ + enum STATE { STATE_PROGRESS, STATE_PROGRESS_COUNTING, STATE_CANCELED, STATE_SUCCESSFULL, STATE_NOTHINGFOUND, STATE_ERROR }; + // (Bewegung auf neuen Datensatz; Fortschritt beim Zaehlen von Datensaetzen; abgebrochen; Datensatz gefunden; + // nichts gefunden, irgendein nicht zu handelnder Fehler) + STATE aSearchState; + + // aktueller Datensatz - immer gueltig (ist zum Beispiel bei Abbrechen auch fuer das Weitersuchen interesant) + sal_uInt32 nCurrentRecord; + // Ueberlauf - nur gueltig bei STATE_PROGRESS + sal_Bool bOverflow; + + // die Position des Such-Cursors - bei STATE_SUCCESSFULL, STATE_CANCELED und STATE_NOTHING_FOUND gueltig + ::com::sun::star::uno::Any aBookmark; + // das Feld, in dem der Text gefunden wurde - bei STATE_SUCCESSFULL gueltig + sal_Int32 nFieldIndex; +}; + +// =================================================================================================== +// = class FmRecordCountListener - Hilfsklasse fuer FmSearchEngine, lauscht an einem Cursor und teilt +// = Aenderungem im RecordCount mit +// =================================================================================================== + +class FmRecordCountListener : public ::cppu::WeakImplHelper1< ::com::sun::star::beans::XPropertyChangeListener> +{ +// Atribute + Link m_lnkWhoWantsToKnow; + ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > m_xListening; + +// Attribut-Zugriff +public: + Link SetPropChangeHandler(const Link& lnk); + +// Oprationen +public: + FmRecordCountListener(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet >& dbcCursor); + // the set has to support the sdb::ResultSet service + virtual ~FmRecordCountListener(); + + // DECLARE_UNO3_AGG_DEFAULTS(FmPropertyListener, UsrObject); + // virtual sal_Bool queryInterface(::com::sun::star::uno::Uik aUik, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rOut); + +// ::com::sun::star::lang::XEventListener + virtual void SAL_CALL disposing(const ::com::sun::star::lang::EventObject& Source) throw(::com::sun::star::uno::RuntimeException); + +// ::com::sun::star::beans::XPropertyChangeListener + virtual void SAL_CALL propertyChange(const ::com::sun::star::beans::PropertyChangeEvent& evt); + + void DisConnect(); + +private: + void NotifyCurrentCount(); + +}; + +// =================================================================================================== +// = class FmSearchEngine - Impl-Klasse fuer FmSearchDialog +// =================================================================================================== + +class FmSearchEngine +{ + friend class FmSearchThread; + + enum SEARCH_RESULT { SR_FOUND, SR_NOTFOUND, SR_ERROR, SR_CANCELED }; + enum SEARCHFOR_TYPE { SEARCHFOR_STRING, SEARCHFOR_NULL, SEARCHFOR_NOTNULL }; + + // zugrundeliegende Daten + CursorWrapper m_xSearchCursor; + SvInt32Array m_arrFieldMapping; + // da der Iterator durchaus mehr Spalten haben kann, als ich eigentlich verwalte (in meiner Feld-Listbox), + // muss ich mir hier ein Mapping dieser ::com::sun::star::form-Schluessel auf die Indizies der entsprechenden Spalten im Iterator halten + + // der Formatter + ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatsSupplier > m_xFormatSupplier; + ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter > m_xFormatter; + + // die Sammlung aller interesanten Felder (bzw. ihre ::com::sun::star::data::XDatabaseVariant-Interfaces und ihre FormatKeys) + struct FieldInfo + { + ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn > xContents; + sal_uInt32 nFormatKey; + sal_Bool bDoubleHandling; + }; + + DECLARE_STL_VECTOR(FieldInfo, FieldCollection); + FieldCollection m_arrUsedFields; + sal_Int32 m_nCurrentFieldIndex; // der letzte Parameter von RebuildUsedFields, ermoeglicht mir Checks in FormatField + + // We have three possible control types we may search in, determined by the supported interfaces : ::com::sun::star::awt::XTextComponent, ::com::sun::star::awt::XListBox, ::com::sun::star::awt::XCheckBox. + // While searching we don't want to do this distinction for every control in every round. So we need some helpers. + class ControlTextWrapper + { + // attributes + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > m_xControl; + // attribute access + public: + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > getControl() const{ return m_xControl; } + public: + ControlTextWrapper(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _xControl) { m_xControl = _xControl; } + virtual ~ControlTextWrapper() { } + + virtual ::rtl::OUString getCurrentText() const = 0; + }; + class SimpleTextWrapper : public ControlTextWrapper + { + ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent > m_xText; + public: + SimpleTextWrapper(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent >& _xText); + virtual ::rtl::OUString getCurrentText() const; + }; + class ListBoxWrapper : public ControlTextWrapper + { + ::com::sun::star::uno::Reference< ::com::sun::star::awt::XListBox > m_xBox; + public: + ListBoxWrapper(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XListBox >& _xBox); + virtual ::rtl::OUString getCurrentText() const; + }; + class CheckBoxWrapper : public ControlTextWrapper + { + ::com::sun::star::uno::Reference< ::com::sun::star::awt::XCheckBox > m_xBox; + public: + CheckBoxWrapper(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XCheckBox >& _xBox); + virtual ::rtl::OUString getCurrentText() const; + }; + DECLARE_STL_VECTOR(ControlTextWrapper*, ControlTextSuppliers); + ControlTextSuppliers m_aControlTexts; + + sal_Bool m_bUsingTextComponents; + CursorWrapper m_xOriginalIterator; + CursorWrapper m_xClonedIterator; + + // Daten fuer Entscheidung, in welchem Feld ich ein "Found" akzeptiere + ::com::sun::star::uno::Any m_aPreviousLocBookmark; // Position, an der ich zuletzt fuendig war + FieldCollectionIterator m_iterPreviousLocField; // dito Feld + // Kommunikation mit dem Thread, der die eigentliche Suche durchfuehrt + ::rtl::OUString m_strSearchExpression; // Hinrichtung + SEARCHFOR_TYPE m_eSearchForType; // dito + SEARCH_RESULT m_srResult; // Rueckrichtung + + // der Link, dem ich Fortschritte und Ergebnisse mitteile + Link m_aProgressHandler; + sal_Bool m_bSearchingCurrently; // laeuft gerade eine (asynchrone) Suche ? + sal_Bool m_bCancelAsynchRequest : 1; // soll abgebrochen werden ? + ::osl::Mutex m_aCancelAsynchAccess; // Zugriff auf m_bCancelAsynchRequest (eigentlich nur bei + // m_eMode == SM_USETHREAD interesant) + FmSearchDialog::SEARCH_MODE m_eMode; // der aktuelle Modus + + // Parameter fuer die Suche + sal_Bool m_bCase : 1; // case-sensitive + sal_Bool m_bFormatter : 1; // Feldformatierung benutzen + sal_Bool m_bForward : 1; // Richtung + sal_Bool m_bWildcard : 1; // Platzhalter-Suche ? + sal_Bool m_bRegular : 1; // regulaerer Ausdruck + sal_Bool m_bLevenshtein : 1; // Levenshtein-Suche + + sal_Bool m_bLevRelaxed : 1; // Parameter fuer Levenshtein-Suche + sal_uInt16 m_nLevOther; + sal_uInt16 m_nLevShorter; + sal_uInt16 m_nLevLonger; + + sal_uInt16 m_nPosition; // wenn nicht regulaer oder lev, dann einer der MATCHING_...-Werte + +// ------------- +// Memberzugriff +private: + sal_Bool CancelRequested(); // liefert eine durch m_aCancelAsynchAccess gesicherte Auswertung von m_bCancelAsynchRequest + +public: + void SetCaseSensitive(sal_Bool bSet) { m_bCase = bSet; } + sal_Bool GetCaseSensitive() const { return m_bCase; } + + void SetFormatterUsing(sal_Bool bSet); // das ist etwas umfangreicher, deshalb kein hier inline .... + sal_Bool GetFormatterUsing() const { return m_bFormatter; } + + void SetDirection(sal_Bool bForward) { m_bForward = bForward; } + sal_Bool GetDirection() const { return m_bForward; } + + void SetWildcard(sal_Bool bSet) { m_bWildcard = bSet; } + sal_Bool GetWildcard() const { return m_bWildcard; } + + void SetRegular(sal_Bool bSet) { m_bRegular = bSet; } + sal_Bool GetRegular() const { return m_bRegular; } + + void SetLevenshtein(sal_Bool bSet) { m_bLevenshtein = bSet; } + sal_Bool GetLevenshtein() const { return m_bLevenshtein; } + + void SetLevRelaxed(sal_Bool bSet) { m_bLevRelaxed = bSet; } + sal_Bool GetLevRelaxed() const { return m_bLevRelaxed; } + void SetLevOther(sal_uInt16 nHowMuch) { m_nLevOther = nHowMuch; } + sal_uInt16 GetLevOther() const { return m_nLevOther; } + void SetLevShorter(sal_uInt16 nHowMuch) { m_nLevShorter = nHowMuch; } + sal_uInt16 GetLevShorter() const { return m_nLevShorter; } + void SetLevLonger(sal_uInt16 nHowMuch) { m_nLevLonger = nHowMuch; } + sal_uInt16 GetLevLonger() const { return m_nLevLonger; } + // die ganzen Lev-Werte werden nur bei m_bLevenshtein==sal_True beachtet + + void SetPosition(sal_uInt16 nValue) { m_nPosition = nValue; } + sal_uInt16 GetPosition() const { return m_nPosition; } + // Position wird bei m_bWildCard==sal_True nicht beachtet + + sal_Bool GetSearchMode() const { return m_eMode; } + +public: + /** zwei Constructoren, beide analog zu denen des FmSearchDialog, Erklaerung siehe also dort .... + xCursor muss jeweils den ::com::sun::star::data::DatabaseCursor-Service implementieren. + wenn eMode == SM_USETHREAD, sollte ein ProgressHandler gesetzt sein, da dann die Ergebnisuebermittlung ueber diesen + Handler erfolgt. + Ist eMode != SM_USETHREAD, kehren SearchNext und StarOver nicht zurueck, bevor die Suche (erfolgreich oder nicht) beendet + wurde, dann kann man das Ergebnis danach abfragen. Ist zusaetzlich der ProgressHandler gesetzt, wird dieser fuer jeden neuen + Datensatz sowie am Ende der Suche aufgerufen. + */ + FmSearchEngine(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet >& xCursor, const ::rtl::OUString& strVisibleFields, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatsSupplier >& xFormat, + FmSearchDialog::SEARCH_MODE eMode); + FmSearchEngine(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet >& xCursor, const ::rtl::OUString& strVisibleFields, const InterfaceArray& arrFields, + FmSearchDialog::SEARCH_MODE eMode); + + virtual ~FmSearchEngine(); + + /** der Link wird fuer jeden Datensatz und nach Beendigung der Suche aufgerufen, Parameter ist ein Zeiger auf + eine FmSearchProgress-Struktur + der Handler sollte auf jeden Fall Thread-sicher sein + */ + void SetProgressHandler(Link aHdl) { m_aProgressHandler = aHdl; } + + /// das naechste Vorkommen suchen (Werte fuer nDirection siehe DIRECTION_*-defines) + void SearchNext(const ::rtl::OUString& strExpression); + /// analogous, search for "NULL" (_bSearchForNull==sal_True) or "not NULL" + void SearchNextSpecial(sal_Bool _bSearchForNull); + /// das naechste Vorkommen suchen, abhaengig von nDirection wird dabei am Anfang oder am Ende neu begonnen + void StartOver(const ::rtl::OUString& strExpression); + /// analogous, search for "NULL" (_bSearchForNull==sal_True) or "not NULL" + void StartOverSpecial(sal_Bool _bSearchForNull); + /// die Angaben ueber letzte Fundstelle invalidieren + void InvalidatePreviousLoc(); + + /** baut m_arrUsedFields neu auf (nFieldIndex==-1 bedeutet alle Felder, ansonsten gibt es den Feldindex an) + wenn bForce nicht gesetzt ist, passiert bei nFieldIndex == m_nCurrentFieldIndex nichts + (ruft InvalidatePreviousLoc auf) + */ + void RebuildUsedFields(sal_Int32 nFieldIndex, sal_Bool bForce = sal_False); + ::rtl::OUString FormatField(sal_Int32 nWhich); + + /// kehrt sofort zurueck; nachdem wirklich abgebrochen wurde, wird der ProgressHandler mit STATE_CANCELED aufgerufen + void CancelSearch(); + + /** nur gueltig, wenn nicht gerade eine (asynchrone) Suche laeuft, die naechste Suche wird dann auf dem neuen Iterator + mit den neuen Parametern durchgefuehrt + */ + sal_Bool SwitchToContext(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet >& xCursor, const ::rtl::OUString& strVisibleFields, const InterfaceArray& arrFields, + sal_Int32 nFieldIndex); + +protected: + void Init(const ::rtl::OUString& strVisibleFields); + + void SearchNextImpl(); + // diese Impl-Methode laeuft im SearchThread + + // start a thread-search (or call SearchNextImpl directly, depending on the search mode) + void ImplStartNextSearch(); + +private: + void clearControlTexts(); + void fillControlTexts(const InterfaceArray& arrFields); + + // three methods implementing a complete search loop (null/not null, wildcard, SearchText) + // (they all have some code in common, but with this solution we have do do a distinction only once per search (before + // starting the loop), not in every loop step + SEARCH_RESULT SearchSpecial(sal_Bool _bSearchForNull, sal_Int32& nFieldPos, FieldCollectionIterator& iterFieldLoop, + const FieldCollectionIterator& iterBegin, const FieldCollectionIterator& iterEnd); + SEARCH_RESULT SearchWildcard(const ::rtl::OUString& strExpression, sal_Int32& nFieldPos, FieldCollectionIterator& iterFieldLoop, + const FieldCollectionIterator& iterBegin, const FieldCollectionIterator& iterEnd); + SEARCH_RESULT SearchRegularApprox(const ::rtl::OUString& strExpression, sal_Int32& nFieldPos, FieldCollectionIterator& iterFieldLoop, + const FieldCollectionIterator& iterBegin, const FieldCollectionIterator& iterEnd); + + void PropagateProgress(sal_Bool _bDontPropagateOverflow); + // ruft den ProgressHandler mit STATE_PROGRESS und der aktuellen Position des SearchIterators auf + + // helpers, die ich mehrmals brauche + sal_Bool MoveCursor(); + // bewegt m_xSearchIterator unter Beachtung von Richtung/Ueberlauf Cursor + sal_Bool MoveField(sal_Int32& nPos, FieldCollectionIterator& iter, const FieldCollectionIterator& iterBegin, const FieldCollectionIterator& iterEnd); + // bewegt den Iterator unter Beachtung von Richtung/Ueberlauf Iterator/Ueberlauf Cursor + void BuildAndInsertFieldInfo(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >& xAllFields, sal_Int32 nField); + // baut eine FieldInfo zum Feld Nummer nField (in xAllFields) auf und fuegt sie zu m_arrUsedFields hinzu + // xAllFields muss den DatabaseRecord-Service unterstuetzen + ::rtl::OUString FormatField(const FieldInfo& rField); + // formatiert das Feld mit dem NumberFormatter + + sal_Bool HasPreviousLoc() { return m_aPreviousLocBookmark.getValue() != NULL; } + + DECL_LINK(OnSearchTerminated, FmSearchThread*); + // wird vom SuchThread benutzt, nach Rueckkehr aus diesem Handler loescht sich der Thread selber + DECL_LINK(OnNewRecordCount, void*); +}; + +#endif // _FMSRCIMP_HXX + diff --git a/svx/source/inc/fmstatic.hxx b/svx/source/inc/fmstatic.hxx new file mode 100644 index 000000000000..b62964076b9f --- /dev/null +++ b/svx/source/inc/fmstatic.hxx @@ -0,0 +1,90 @@ +/************************************************************************* + * + * $RCSfile: fmstatic.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:19 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef _FM_STATIC_HXX_ +#define _FM_STATIC_HXX_ +#ifndef _STRING_HXX +#include +#endif + +struct UStringDescription +{ + const sal_Char* pZeroTerminatedName; + + UStringDescription(sal_Char* _pName) { pZeroTerminatedName = _pName; } + operator ::rtl::OUString() const { return ::rtl::OUString::createFromAscii(pZeroTerminatedName); } + operator UniString() const { return UniString::CreateFromAscii(pZeroTerminatedName); } +private: + UStringDescription(); +}; + +#define DECLARE_CONSTASCII_USTRING(name) \ + extern UStringDescription name + +#define IMPLEMENT_CONSTASCII_USTRING(name, asciivalue) \ + UStringDescription name(asciivalue) + +//#define DECLARE_CONSTASCII_USTRING(name) extern ::rtl::OUString name; +//#define IMPLEMENT_CONSTASCII_USTRING(name, asciivalue) ::rtl::OUString name = ::rtl::OUString::createFromAscii(asciivalue) + + +#endif _FM_STATIC_HXX_ + diff --git a/svx/source/inc/fmtools.hxx b/svx/source/inc/fmtools.hxx new file mode 100644 index 000000000000..ac501560ed4b --- /dev/null +++ b/svx/source/inc/fmtools.hxx @@ -0,0 +1,959 @@ +/************************************************************************* + * + * $RCSfile: fmtools.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:19 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _SVX_FMTOOLS_HXX +#define _SVX_FMTOOLS_HXX + +#ifndef _COM_SUN_STAR_SDB_SQLCONTEXT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SDB_XSQLQUERYCOMPOSERFACTORY_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SDBCX_PRIVILEGE_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SDBCX_XCOLUMNSSUPPLIER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SDBCX_XDATADESCRIPTORFACTORY_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SDBC_XROWSET_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SDBC_XDATABASEMETADATA_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SDB_XCOLUMN_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SDB_XCOLUMNUPDATE_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SDBC_SQLERROREVENT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SDBC_XCONNECTION_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SDBC_XRESULTSET_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SDBC_XRESULTSETUPDATE_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SDBCX_XROWLOCATE_HPP_ +#include +#endif + +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FRAME_XDISPATCHPROVIDERINTERCEPTION_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FRAME_XDISPATCHPROVIDERINTERCEPTOR_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XINDEXCONTAINER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FRAME_XDISPATCH_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FRAME_XSTATUSLISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FRAME_FEATURESTATEEVENT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FRAME_XMODEL_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SCRIPT_SCRIPTEVENTDESCRIPTOR_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMEACCESS_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XENUMERATION_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XINDEXACCESS_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_XCONTROLMODEL_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_XCONTROL_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_FONTSLANT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_FONTDESCRIPTOR_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_FONTUNDERLINE_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_FONTSTRIKEOUT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATSSUPPLIER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_ +#include +#endif +#ifndef _SV_WINTYPES_HXX //autogen +#include +#endif + +#ifndef _VOS_MUTEX_HXX_ //autogen +#include +#endif + +#ifndef _SVSTDARR_ULONGS +#define _SVSTDARR_ULONGS +#include +#endif + +#ifndef _SFXCTRLITEM_HXX //autogen wg. SfxControllerItem +#include +#endif + +// #ifndef _USR_ITERHLP_HXX //autogen wg. OInterfaceContainerHelper +// #include +// #endif + +#ifndef _LINK_HXX +#include +#endif + +#ifndef _DATE_HXX +#include +#endif +#ifndef _TOOLS_TIME_HXX +#include +#endif +#ifndef _DATETIME_HXX +#include +#endif + +#ifndef _SVX_FMPROP_HRC +#include "fmprop.hrc" +#endif +#ifndef _COM_SUN_STAR_IO_XOBJECTINPUTSTREAM_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_IO_XOBJECTOUTPUTSTREAM_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_IO_XPERSISTOBJECT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATTER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATS_HPP_ +#include +#endif +#ifndef _CPPUHELPER_INTERFACECONTAINER_H_ +#include +#endif +#ifndef _UTL_UNO3_HXX_ +#include +#endif +#ifndef _CPPUHELPER_IMPLBASE1_HXX_ +#include +#endif +#ifndef _CPPUHELPER_IMPLBASE2_HXX_ +#include +#endif +#ifndef _CPPUHELPER_COMPONENT_HXX_ +#include +#endif + +#ifndef _FM_IMPLEMENTATION_IDS_HXX_ +#include "fmimplids.hxx" +#endif + +#ifndef _FM_STATIC_HXX_ +#include "fmstatic.hxx" +#endif + + +class SdbSqlParser; + +// one SQLParser for the form layer +SdbSqlParser& getSQLParser(); + +//================================================================== +// allgemeine Typen +//================================================================== +// displaying a database exception for the user +// display info about a simple ::com::sun::star::sdbc::SQLException +void displayException(const ::com::sun::star::sdbc::SQLException&, WinBits nStyle = WB_OK | WB_DEF_OK); +// display info about chained SQLExceptions +void displayException(const ::com::sun::star::sdb::SQLErrorEvent&, WinBits nStyle = WB_OK | WB_DEF_OK); + + +// StringConversion +#define U(x) \ + ::rtl::OStringToOUString( x, RTL_TEXTENCODING_ASCII_US ) +#define S(aUniCode) \ + ::rtl::OUStringToOString(aUniCode, RTL_TEXTENCODING_ASCII_US) + +// modes for the XModeSelector +DECLARE_CONSTASCII_USTRING(DATA_MODE); +DECLARE_CONSTASCII_USTRING(FILTER_MODE); + + +// Kopieren von Persistenten Objecten +::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> clone(const ::com::sun::star::uno::Reference< ::com::sun::star::io::XPersistObject>& _xObj); +::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> cloneUsingProperties(const ::com::sun::star::uno::Reference< ::com::sun::star::io::XPersistObject>& _xObj); +void CloneForms(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer>& _xSource, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer>& _xDest); + +// Suchen eines Wertes in einer StringListe +// Fehler 0xFFFFFFFF (LIST_ENTRY_NOTFOUND) +//------------------------------------------------------------------------------ +sal_uInt32 findValue(const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any>& rList, const ::com::sun::star::uno::Any& rValue); + +::com::sun::star::uno::Sequence findValueINT16(const ::com::sun::star::uno::Sequence< ::rtl::OUString>& rList, const ::rtl::OUString& rValue, sal_Bool bOnlyFirst=sal_False ); +::com::sun::star::uno::Sequence findValue(const ::com::sun::star::uno::Sequence< ::rtl::OUString>& rList, const ::rtl::OUString& rValue, sal_Bool bOnlyFirst=sal_False ); + +sal_uInt32 findValue1(const ::com::sun::star::uno::Sequence< ::rtl::OUString>& rList, const ::rtl::OUString& rValue); + +// geht von einer sortierten !!! sequence aus +sal_Bool hasString(const ::rtl::OUString& aStr, const ::com::sun::star::uno::Sequence< ::rtl::OUString>& rList); + +sal_Int32 findPos(const ::rtl::OUString& aStr, const ::com::sun::star::uno::Sequence< ::rtl::OUString>& rList); + +// void checkArg(const ::com::sun::star::uno::Any& Element, Reflection* pRefl) throw( ::com::sun::star::lang::IllegalArgumentException ); + +// Suchen in einer Indexliste nach einem Element +sal_Bool searchElement(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess>& xCont, const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& xElement); + +sal_Int32 getElementPos(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess>& xCont, const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& xElement); +String getFormComponentAccessPath(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& _xElement); +String getFormComponentAccessPath(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& _xElement, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& _rTopLevelElement); +::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> getElementFromAccessPath(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess>& _xParent, const String& _rRelativePath); + + +::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel> getXModel(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& xIface); + +::rtl::OUString getLabelName(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& xControlModel); +::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection> findConnection(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& xParent); + +// date conversion +extern Date STANDARD_DATE; +double ToStandardDate(const Date& rNullDate, double rVal); +double ToNullDate(const Date& rNullDate, double rVal); + + +// =================================================================================================== +// = class CursorWrapper - eine Hilfsklasse, die parallel mit je einem ::com::sun::star::uno::Reference, +// XDatabaseBookmarkCursor und XDatabaseDirectCursor arbeitet +// =================================================================================================== + +class CursorWrapper +{ +private: + ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet> m_xMoveOperations; + ::com::sun::star::uno::Reference< ::com::sun::star::sdbcx::XRowLocate> m_xBookmarkOperations; + ::com::sun::star::uno::Reference< ::com::sun::star::sdbcx::XColumnsSupplier> m_xColumnsSupplier; + +public: + // Construction/Destruction + CursorWrapper() { } + CursorWrapper(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet>& _rxCursor, sal_Bool bUseCloned = sal_False); + CursorWrapper(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _rxCursor, sal_Bool bUseCloned = sal_False); + // bei bUseCloned == sal_True wird der Cursor ueber das XCloneable-Interface (dass er besitzen muss) gedoubled und + // erst dann benutzt + + sal_Bool is() const { return m_xMoveOperations.is(); } + sal_Bool Is() const { return m_xMoveOperations.is(); } + + CursorWrapper* operator ->() { return this; } + operator ::com::sun::star::uno::XInterface* () const { return (::com::sun::star::uno::XInterface *)m_xMoveOperations.get(); } + operator ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> () const{ return (::com::sun::star::uno::XInterface *)m_xMoveOperations.get(); } + + // 'Konvertierungen' + const CursorWrapper& operator=(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet>& xCursor); + operator const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& () const { return m_xMoveOperations; } + operator const ::com::sun::star::uno::Reference< ::com::sun::star::sdbcx::XRowLocate>& () const { return m_xBookmarkOperations; } + operator const ::com::sun::star::uno::Reference< ::com::sun::star::sdbcx::XColumnsSupplier>& () const { return m_xColumnsSupplier; } + + // das normale queryInterface + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& type) throw ( ::com::sun::star::uno::RuntimeException ) + { return m_xMoveOperations->queryInterface(type); } + + // ::com::sun::star::uno::Reference< ::com::sun::star::sdbcx::XRowLocate> + ::com::sun::star::uno::Any getBookmark(void) + throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) + { return m_xBookmarkOperations->getBookmark(); } + sal_Bool moveToBookmark(const ::com::sun::star::uno::Any& bookmark) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) { return m_xBookmarkOperations->moveToBookmark(bookmark); } + sal_Bool moveRelativeToBookmark(const ::com::sun::star::uno::Any& bookmark, sal_Int32 rows) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) { return m_xBookmarkOperations->moveRelativeToBookmark(bookmark, rows); } + sal_Int32 compareBookmarks(const ::com::sun::star::uno::Any& first, const ::com::sun::star::uno::Any& second) const throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) { return m_xBookmarkOperations->compareBookmarks(first, second); } + sal_Int32 hasOrderedBookmarks(void) const throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) { return m_xBookmarkOperations->hasOrderedBookmarks(); } + sal_Int32 hashBookmark(const ::com::sun::star::uno::Any& bookmark) const throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) { return m_xBookmarkOperations->hashBookmark(bookmark); } + + // ::com::sun::star::sdbc::XResultSet + sal_Bool isBeforeFirst() const { return m_xMoveOperations->isBeforeFirst(); } + sal_Bool isAfterLast() const { return m_xMoveOperations->isAfterLast(); } + sal_Bool isFirst() const { return m_xMoveOperations->isFirst(); } + sal_Bool isLast() const { return m_xMoveOperations->isLast(); } +// void moveBeforeFirst() { m_xMoveOperations->moveBeforeFirst(); } +// void moveAfterLast() { m_xMoveOperations->moveAfterLast(); } + sal_Bool first() { return m_xMoveOperations->first(); } + sal_Bool last() { return m_xMoveOperations->last(); } + sal_Int32 getRow() const { return m_xMoveOperations->getRow(); } + sal_Bool absolute(sal_Int32 nPosition) { return m_xMoveOperations->absolute(nPosition); } + sal_Bool relative(sal_Int32 nCount) { return m_xMoveOperations->relative(nCount); } + sal_Bool previous() { return m_xMoveOperations->previous(); } + sal_Bool next() { return m_xMoveOperations->next(); } + void refreshRow() { m_xMoveOperations->refreshRow(); } + sal_Bool rowUpdated() { return m_xMoveOperations->rowUpdated(); } + sal_Bool rowInserted() { return m_xMoveOperations->rowInserted(); } + sal_Bool rowDeleted() { return m_xMoveOperations->rowDeleted(); } + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> getStatement() { return m_xMoveOperations->getStatement(); } + // ::com::sun::star::sdbcx::XColumnsSupplier + ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess> getColumns() const throw( ::com::sun::star::uno::RuntimeException ) { return m_xColumnsSupplier->getColumns(); } +private: + void ImplConstruct(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet>& _rxCursor, sal_Bool bUseCloned); +}; + + +//================================================================== +// FmXSequenceIndexAccess - a class which wraps a ::com::sun::star::uno::Sequence so it's +// elements may be accessed via XIndexAccess-methods +//================================================================== + +template +class FmXSequenceIndexAccess : public ::cppu::WeakImplHelper1< ::com::sun::star::container::XIndexAccess> +{ + ::com::sun::star::uno::Sequence m_aElements; + +public: + FmXSequenceIndexAccess(const ::com::sun::star::uno::Sequence& _rElements) : m_aElements(_rElements) { } + + // UNO + DECLARE_UNO3_DEFAULTS(FmXSequenceIndexAccess, cppu::WeakImplHelper1< ::com::sun::star::container::XIndexAccess> ); + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& type) throw ( ::com::sun::star::uno::RuntimeException ); + + // XIndexAccess + virtual sal_Int32 getCount(void) const throw( ::com::sun::star::uno::RuntimeException ) { return m_aElements.getLength(); } + virtual ::com::sun::star::uno::Any getByIndex(sal_Int32 Index) const throw( ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException ) + { // we implement this in-place as MSVC41 doesn't like a non-in-place template implementation with a throw-clause + if ((Index < 0) || (Index >= getCount())) + { + throw ::com::sun::star::lang::IndexOutOfBoundsException(); + } + + return ::com::sun::star::uno::Any(m_aElements.getConstArray() + Index, ::getReflection((ElementType*)NULL)); + } + + // XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType( ) throw(::com::sun::star::uno::RuntimeException) + { return ::getCppuType((ElementType*)NULL); } + virtual sal_Bool SAL_CALL hasElements( ) throw(::com::sun::star::uno::RuntimeException) + { return m_aElements.getLength() > 0; } + +protected: + ~FmXSequenceIndexAccess() { } +}; + +//------------------------------------------------------------------ +template +::com::sun::star::uno::Any SAL_CALL FmXSequenceIndexAccess::queryInterface( const ::com::sun::star::uno::Type& type) throw ( ::com::sun::star::uno::RuntimeException ) +{ + return cppu::WeakImplHelper1< ::com::sun::star::container::XIndexAccess >::queryInterface(type); +} + +//================================================================== +// Einfacher Adapter fuer Components +//================================================================== +class FmXDisposeMultiplexer; +class FmXDisposeListener +{ + friend class FmXDisposeMultiplexer; + + FmXDisposeMultiplexer* m_pAdapter; + ::osl::Mutex& m_rMutex; + +public: + FmXDisposeListener(::osl::Mutex& _rMutex) : m_pAdapter(NULL), m_rMutex(_rMutex) { } + virtual ~FmXDisposeListener(); + + virtual void disposing(const ::com::sun::star::lang::EventObject& _rEvent, sal_Int16 _nId) throw( ::com::sun::star::uno::RuntimeException ) = 0; + +protected: + void setAdapter(FmXDisposeMultiplexer* pAdapter); +}; + +typedef ::cppu::WeakImplHelper1< ::com::sun::star::lang::XEventListener> FmXDisposeMultiplexer_x; +//============================================================================== + + +class FmXDisposeMultiplexer :public ::cppu::WeakImplHelper1< ::com::sun::star::lang::XEventListener> +{ + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent> m_xObject; + FmXDisposeListener* m_pListener; + sal_Int16 m_nId; + + virtual ~FmXDisposeMultiplexer(); +public: + FmXDisposeMultiplexer(FmXDisposeListener* _pListener, const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent>& _rxObject, sal_Int16 _nId = -1); + +// ::com::sun::star::lang::XEventListener + virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw(::com::sun::star::uno::RuntimeException); + + void dispose(); +}; + +// ================================================================== + +//============================================================================== +// FmSlotDispatch - some kind of translator between the Sfx-Slots and the UNO-dispatchers +//============================================================================== + +typedef ::cppu::WeakImplHelper1< ::com::sun::star::frame::XDispatch > FmSlotDispatch_x; +class FmSlotDispatch + :public SfxControllerItem + ,public ::cppu::WeakImplHelper2< ::com::sun::star::frame::XDispatch, ::com::sun::star::lang::XComponent> + // ,public XComponent +{ +protected: + ::cppu::OInterfaceContainerHelper m_aDisposeListeners; + ::cppu::OInterfaceContainerHelper m_aStatusListeners; + + Link m_aExecutor; + ::com::sun::star::util::URL m_aUrl; // the URL we're responsible for + ::osl::Mutex m_aAccessSafety; + sal_Int16 m_nSlot; // the slot 'translation' of the URL + +public: + const ::com::sun::star::util::URL& getUrl() const { return m_aUrl; } + sal_Int16 getSlot() const { return m_nSlot; } + + void setExecutor(const Link& aExecutor) { m_aExecutor = aExecutor; } + Link getExecutor() const { return m_aExecutor; } + +public: + FmSlotDispatch(const ::com::sun::star::util::URL& rUrl, sal_Int16 nSlotId, SfxBindings& rBindings); + virtual ~FmSlotDispatch(); + + // ::com::sun::star::frame::XDispatch + virtual void SAL_CALL dispatch( const ::com::sun::star::util::URL& aURL, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aArgs ) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addStatusListener( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XStatusListener >& xControl, const ::com::sun::star::util::URL& aURL ) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeStatusListener( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XStatusListener >& xControl, const ::com::sun::star::util::URL& aURL ) 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); + +protected: + // SfxControllerItem + virtual void StateChanged(sal_Int16 nSID, SfxItemState eState, const SfxPoolItem* pState); + + ::com::sun::star::frame::FeatureStateEvent BuildEvent(SfxItemState eState, const SfxPoolItem* pState); + + virtual void NotifyState(SfxItemState eState, const SfxPoolItem* pState, const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XStatusListener>& rListener = ::com::sun::star::uno::Reference< ::com::sun::star::frame::XStatusListener>()); + // the default implementations notifies the given listeners (or all available listeners) with a statusChanged +}; + +//======================================================================== +//= dispatch interception helper classes +//======================================================================== + +//------------------------------------------------------------------------ +//- FmDispatchInterceptor +//------------------------------------------------------------------------ +class FmDispatchInterceptor +{ +public: + FmDispatchInterceptor() { } + + virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch> interceptedQueryDispatch(sal_uInt16 _nId, + const ::com::sun::star::util::URL& aURL, const ::rtl::OUString& aTargetFrameName, sal_Int32 nSearchFlags) throw( ::com::sun::star::uno::RuntimeException ) = 0; + + virtual ::osl::Mutex* getInterceptorMutex() = 0; +}; + +//------------------------------------------------------------------------ +//- FmXDispatchInterceptorImpl +//------------------------------------------------------------------------ +class FmXDispatchInterceptorImpl + :public ::com::sun::star::frame::XDispatchProviderInterceptor + ,public ::com::sun::star::lang::XEventListener + ,public ::cppu::OComponentHelper + +{ + ::osl::Mutex m_aFallback; + ::form::OImplementationIdsRef m_aHoldImplIdHelper; + + // the component which's dispatches we're intercepting + ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProviderInterception> m_xIntercepted; + // the real interceptor + FmDispatchInterceptor* m_pMaster; + + // chaining + ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProvider> m_xSlaveDispatcher; + ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProvider> m_xMasterDispatcher; + // our id + sal_Int16 m_nId; + + virtual ~FmXDispatchInterceptorImpl(); + +public: + ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProviderInterception> getIntercepted() const { return m_xIntercepted; } + +public: + FmXDispatchInterceptorImpl(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProviderInterception>& _rToIntercept, FmDispatchInterceptor* _pMaster, sal_Int16 _nId); + + // StarOne + DECLARE_UNO3_DEFAULTS(FmXDispatchInterceptorImpl, OComponentHelper); + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& type) throw ( ::com::sun::star::uno::RuntimeException ); + virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw(::com::sun::star::uno::RuntimeException); + ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException); + + + // ::com::sun::star::frame::XDispatchProvider + virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch > SAL_CALL queryDispatch( const ::com::sun::star::util::URL& aURL, const ::rtl::OUString& aTargetFrameName, sal_Int32 nSearchFlags ) throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch > > SAL_CALL queryDispatches( const ::com::sun::star::uno::Sequence< ::com::sun::star::frame::DispatchDescriptor >& aDescripts ) throw(::com::sun::star::uno::RuntimeException); + + // ::com::sun::star::frame::XDispatchProviderInterceptor + virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProvider > SAL_CALL getSlaveDispatchProvider( ) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setSlaveDispatchProvider( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProvider >& xNewDispatchProvider ) throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProvider > SAL_CALL getMasterDispatchProvider( ) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setMasterDispatchProvider( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProvider >& xNewSupplier ) throw(::com::sun::star::uno::RuntimeException); + + // ::com::sun::star::lang::XEventListener + virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw(::com::sun::star::uno::RuntimeException); + + // OComponentHelper + virtual void SAL_CALL disposing(); + +protected: + void ImplDetach(); + + ::osl::Mutex& getAccessSafety() + { + if (m_pMaster && m_pMaster->getInterceptorMutex()) + return *m_pMaster->getInterceptorMutex(); + return m_aFallback; + } +}; + +//================================================================== +// Stringkonvertierung +//================================================================== +::rtl::OUString AnyToStr( const ::com::sun::star::uno::Any& aValue); +::com::sun::star::uno::Any StringToAny( ::rtl::OUString aStr, ::com::sun::star::uno::TypeClass eTargetType ); +::com::sun::star::uno::Sequence< ::rtl::OUString> getEventMethods(const ::com::sun::star::uno::Type& type); + +//================================================================== +// ... +//================================================================== +//sal_Int16 getControlTypeByModelName(const ::rtl::OUString& rModel); +//::rtl::OUString getModelNameByControlType(sal_Int16 nType); +::rtl::OUString getServiceNameByControlType(sal_Int16 nType); + // get a service name to create a model of the given type (OBJ_FM_...) +sal_Int16 getControlTypeByObject(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XServiceInfo>& _rxObject); + // get the object type (OBJ_FM_...) from the services the object supports + +// void TransferFormComponentProperties(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& xOld, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& xNew); +void TransferEventScripts(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel>& xModel, const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl, + const ::com::sun::star::uno::Sequence< ::com::sun::star::script::ScriptEventDescriptor>& rTransferIfAvailable); + +sal_Int16 GridModel2ViewPos(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess>& rColumns, sal_Int16 nModelPos); +sal_Int16 GridView2ModelPos(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess>& rColumns, sal_Int16 nViewPos); +sal_Int16 GridViewColumnCount(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess>& rColumns); + +//================================================================== +UniString quoteName(const UniString& rQuote, const UniString& rName); +UniString quoteTableName(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData>& xMeta, const UniString& rName); + +//================================================================== +//::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess> getTableFields(const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _rxConn, const ::rtl::OUString& _rsName); +sal_Bool isLoadable(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& xLoad); +sal_Bool isRowSetAlive(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& _rxRowSet); + // checks if the ::com::sun::star::sdbcx::XColumnsSupplier provided by _rxRowSet supllies any columns + + +//================================================================== +//= a class wrapping an object implementing a sdb::DataColumn service +//================================================================== +class DataColumn +{ + // interfaces needed for sddb::Column + ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet> m_xPropertySet; + // interfaces needed for sdb::DataColumn + ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn> m_xColumn; + ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumnUpdate> m_xColumnUpdate; + +public: + DataColumn() { }; + DataColumn(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxIFace); + // if the object behind _rxIFace doesn't fully support the DataColumn service, + // (which is checked via the supported interfaces) _all_ members will be set to + // void !, even if the object has some of the needed interfaces. + + sal_Bool is() const { return m_xColumn.is(); } + sal_Bool Is() const { return m_xColumn.is(); } + + DataColumn* operator ->() { return this; } + // operator ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> () const { return ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> m_xColumn; } + operator ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> () const{ return m_xColumn;; } + + // 'conversions' + operator const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>&() const { return m_xPropertySet; } + operator const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn>&() const { return m_xColumn; } + operator const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumnUpdate>&() const + { + DBG_ASSERT(m_xColumnUpdate.is() , "operator XColumnUpdate(): is NULL!"); + return m_xColumnUpdate; + } + + // das normale queryInterface + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& type) throw ( ::com::sun::star::uno::RuntimeException ) + { return m_xColumn->queryInterface(type); } + + // ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet> + inline ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo> getPropertySetInfo() const throw( ::com::sun::star::uno::RuntimeException ); + inline void setPropertyValue(const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue) throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException ); + inline ::com::sun::star::uno::Any getPropertyValue(const ::rtl::OUString& PropertyName) const throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException ); + inline void addPropertyChangeListener(const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener>& xListener) throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException ); + inline void removePropertyChangeListener(const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener>& aListener) throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException ); + inline void addVetoableChangeListener(const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener>& aListener) throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException ); + inline void removeVetoableChangeListener(const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener>& aListener) throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException ); + + // ::com::sun::star::sdb::XColumn + inline sal_Bool wasNull() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline ::rtl::OUString getString() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline sal_Bool getBoolean() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline sal_Int8 getByte() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline sal_Int16 getShort() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline sal_Int32 getInt() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline sal_Int64 getLong() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline float getFloat() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline double getDouble() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline ::com::sun::star::uno::Sequence< sal_Int8 > getBytes() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline ::com::sun::star::util::Date getDate() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline ::com::sun::star::util::Time getTime() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline ::com::sun::star::util::DateTime getTimestamp() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream> getBinaryStream() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream> getCharacterStream() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline ::com::sun::star::uno::Any getObject(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess>& typeMap) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRef> getRef() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XBlob> getBlob() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XClob> getClob() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XArray> getArray() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + + // XColumnUpdate + inline void updateNull(void) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline void updateBoolean(sal_Bool x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline void updateByte(sal_Int8 x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline void updateShort(sal_Int16 x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline void updateInt(sal_Int32 x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline void updateLong(sal_Int64 x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline void updateFloat(float x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline void updateDouble(double x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline void updateString(const ::rtl::OUString& x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline void updateBytes(const ::com::sun::star::uno::Sequence< sal_Int8 >& x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline void updateDate(const com::sun::star::util::Date& x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline void updateTime(const ::com::sun::star::util::Time& x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline void updateTimestamp(const ::com::sun::star::util::DateTime& x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline void updateBinaryStream(const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream>& x, sal_Int32 length) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline void updateCharacterStream(const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream>& x, sal_Int32 length) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline void updateObject(const ::com::sun::star::uno::Any& x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); + inline void updateNumericObject(const ::com::sun::star::uno::Any& x, sal_Int32 scale) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ); +}; + +// ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet> +::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo> DataColumn::getPropertySetInfo() const throw( ::com::sun::star::uno::RuntimeException ) +{ + return m_xPropertySet->getPropertySetInfo(); +} + +void DataColumn::setPropertyValue(const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue) throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException ) +{ + m_xPropertySet->setPropertyValue(aPropertyName, aValue); +} + +::com::sun::star::uno::Any DataColumn::getPropertyValue(const ::rtl::OUString& PropertyName) const throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException ) +{ + return m_xPropertySet->getPropertyValue(PropertyName); +} + +void DataColumn::addPropertyChangeListener(const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener>& xListener) throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException ) +{ + m_xPropertySet->addPropertyChangeListener(aPropertyName, xListener); +} + +void DataColumn::removePropertyChangeListener(const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener>& aListener) throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException ) +{ + m_xPropertySet->removePropertyChangeListener(aPropertyName, aListener); +} + +void DataColumn::addVetoableChangeListener(const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener>& aListener) throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException ) +{ + m_xPropertySet->addVetoableChangeListener(PropertyName, aListener); +} + +void DataColumn::removeVetoableChangeListener(const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener>& aListener) throw( ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException ) +{ + m_xPropertySet->removeVetoableChangeListener(PropertyName, aListener); +} + +// ::com::sun::star::sdb::XColumn +sal_Bool DataColumn::wasNull() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + return m_xColumn->wasNull(); +} + +::rtl::OUString DataColumn::getString() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + return m_xColumn->getString(); +} + +sal_Bool DataColumn::getBoolean() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + return m_xColumn->getBoolean(); +} + +sal_Int8 DataColumn::getByte() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + return m_xColumn->getByte(); +} + +sal_Int16 DataColumn::getShort() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + return m_xColumn->getShort(); +} + +sal_Int32 DataColumn::getInt() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + return m_xColumn->getInt(); +} + +sal_Int64 DataColumn::getLong() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + return m_xColumn->getLong(); +} + +float DataColumn::getFloat() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + return m_xColumn->getFloat(); +} + +double DataColumn::getDouble() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + return m_xColumn->getDouble(); +} + +::com::sun::star::uno::Sequence< sal_Int8 > DataColumn::getBytes() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + return m_xColumn->getBytes(); +} + +::com::sun::star::util::Date DataColumn::getDate() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + return m_xColumn->getDate(); +} + +::com::sun::star::util::Time DataColumn::getTime() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + return m_xColumn->getTime(); +} + +::com::sun::star::util::DateTime DataColumn::getTimestamp() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + return m_xColumn->getTimestamp(); +} + +::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream> DataColumn::getBinaryStream() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + return m_xColumn->getBinaryStream(); +} + +::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream> DataColumn::getCharacterStream() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + return m_xColumn->getCharacterStream(); +} + +::com::sun::star::uno::Any DataColumn::getObject(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess>& typeMap) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + return m_xColumn->getObject(typeMap); +} + +::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRef> DataColumn::getRef() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + return m_xColumn->getRef(); +} + +::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XBlob> DataColumn::getBlob() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + return m_xColumn->getBlob(); +} + +::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XClob> DataColumn::getClob() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + return m_xColumn->getClob(); +} + +::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XArray> DataColumn::getArray() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + return m_xColumn->getArray(); +} + +// XColumnUpdate +void DataColumn::updateNull() throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + m_xColumnUpdate->updateNull(); +} + +void DataColumn::updateBoolean(sal_Bool x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + m_xColumnUpdate->updateBoolean(x); +} + +void DataColumn::updateByte(sal_Int8 x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + m_xColumnUpdate->updateByte(x); +} + +void DataColumn::updateShort(sal_Int16 x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + m_xColumnUpdate->updateShort(x); +} + +void DataColumn::updateInt(sal_Int32 x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + m_xColumnUpdate->updateInt(x); +} + +void DataColumn::updateLong(sal_Int64 x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + m_xColumnUpdate->updateLong(x); +} + +void DataColumn::updateFloat(float x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + m_xColumnUpdate->updateFloat(x); +} + +void DataColumn::updateDouble(double x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + m_xColumnUpdate->updateDouble(x); +} + +void DataColumn::updateString(const ::rtl::OUString& x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + m_xColumnUpdate->updateString(x); +} + +void DataColumn::updateBytes(const ::com::sun::star::uno::Sequence< sal_Int8 >& x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + m_xColumnUpdate->updateBytes(x); +} + +void DataColumn::updateDate(const com::sun::star::util::Date& x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + m_xColumnUpdate->updateDate(x); +} + +void DataColumn::updateTime(const ::com::sun::star::util::Time& x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + m_xColumnUpdate->updateTime(x); +} + +void DataColumn::updateTimestamp(const ::com::sun::star::util::DateTime& x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + m_xColumnUpdate->updateTimestamp(x); +} + +void DataColumn::updateBinaryStream(const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream>& x, sal_Int32 length) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + m_xColumnUpdate->updateBinaryStream(x, length); +} + +void DataColumn::updateCharacterStream(const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream>& x, sal_Int32 length) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + m_xColumnUpdate->updateCharacterStream(x, length); +} + +void DataColumn::updateObject(const ::com::sun::star::uno::Any& x) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + m_xColumnUpdate->updateObject(x); +} + +void DataColumn::updateNumericObject(const ::com::sun::star::uno::Any& x, sal_Int32 scale) throw( ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException ) +{ + m_xColumnUpdate->updateNumericObject(x, scale); +} + + + +#endif // _SVX_FMTOOLS_HXX + diff --git a/svx/source/inc/fmundo.hxx b/svx/source/inc/fmundo.hxx new file mode 100644 index 000000000000..f59eccd38707 --- /dev/null +++ b/svx/source/inc/fmundo.hxx @@ -0,0 +1,284 @@ +/************************************************************************* + * + * $RCSfile: fmundo.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:19 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _SVX_FMUNDO_HXX +#define _SVX_FMUNDO_HXX + +#ifndef _SVDUNDO_HXX +#include "svdundo.hxx" +#endif + +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_BEANS_XVETOABLECHANGELISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_BEANS_XPROPERTYCHANGELISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_BEANS_PROPERTYCHANGEEVENT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SCRIPT_SCRIPTEVENT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SCRIPT_XSCRIPTLISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_SCRIPT_SCRIPTEVENTDESCRIPTOR_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XINDEXCONTAINER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XCONTAINERLISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_CONTAINEREVENT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XNAMECONTAINER_HPP_ +#include +#endif + +#include + + + +#ifndef _SFXLSTNER_HXX //autogen +#include +#endif + +#ifndef _SVDOUNO_HXX //autogen wg. SdrUnoObj +#include "svdouno.hxx" +#endif + +#include + +class FmFormModel; +class FmFormObj; +class SdrObject; +class FmXFormView; + +FORWARD_DECLARE_INTERFACE(awt,XControl) +FORWARD_DECLARE_INTERFACE(awt,XControlContainer) +//FORWARD_DECLARE_INTERFACE(uno,Reference) + +//================================================================== +// FmUndoPropertyAction +//================================================================== +class FmUndoPropertyAction: public SdrUndoAction +{ + ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet> xObj; + ::rtl::OUString aPropertyName; + ::com::sun::star::uno::Any aNewValue; + ::com::sun::star::uno::Any aOldValue; + +public: + FmUndoPropertyAction(FmFormModel& rMod, const ::com::sun::star::beans::PropertyChangeEvent& evt); + + virtual void Undo(); + virtual void Redo(); + +#ifndef ENABLEUNICODE + virtual String GetComment() const; +#else + virtual UniString GetComment() const; +#endif + +}; + +//================================================================== +// FmUndoContainerAction +//================================================================== +class FmUndoContainerAction: public SdrUndoAction +{ + ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer> xContainer; + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> xElement; + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> xOwnElement; // Object das der Action gehoert + sal_Int32 nIndex; + ::com::sun::star::uno::Sequence< ::com::sun::star::script::ScriptEventDescriptor > aEvts; // events des Objects + +public: + enum Action + { + Inserted = 1, + Removed = 2 + }; + +private: + Action eAction; + +public: + FmUndoContainerAction(FmFormModel& rMod, + Action _eAction, + const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer>& xCont, + const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& xElem, + sal_Int32 nIdx = -1); + ~FmUndoContainerAction(); + + virtual void Undo(); + virtual void Redo(); +}; + +//================================================================== +// FmUndoModelReplaceAction +//================================================================== +class FmUndoModelReplaceAction : public SdrUndoAction +{ + ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel> m_xReplaced; + SdrUnoObj* m_pObject; + +public: + FmUndoModelReplaceAction(FmFormModel& rMod, SdrUnoObj* pObject, const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel>& xReplaced); + ~FmUndoModelReplaceAction(); + + virtual void Undo(); + virtual void Redo() { Undo(); } + +#ifndef ENABLEUNICODE + virtual String GetComment() const; +#else + virtual UniString GetComment() const; +#endif +}; + +//======================================================================== +class FmXUndoEnvironment : public ::cppu::WeakImplHelper4< ::com::sun::star::beans::XVetoableChangeListener, + ::com::sun::star::beans::XPropertyChangeListener, + ::com::sun::star::container::XContainerListener, + ::com::sun::star::script::XScriptListener>, + public SfxListener + // public ::cppu::OWeakObject +{ + friend class FmFormModel; + friend class FmXFormView; + FmFormModel& rModel; + + void* m_pPropertySetCache; + sal_uInt32 nLocks; + sal_Bool bReadOnly; + + + void firing_Impl( const ::com::sun::star::script::ScriptEvent& evt, ::com::sun::star::uno::Any *pSyncRet=0 ); + +public: + FmXUndoEnvironment(FmFormModel& _rModel); + ~FmXUndoEnvironment(); + + // UNO Anbindung + // SMART_UNO_DECLARATION(FmXUndoEnvironment, ::cppu::OWeakObject); + // virtual sal_Bool queryInterface(UsrUik, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>&); + // virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::reflection::XIdlClass>> getIdlClasses(void); + + void Lock() {nLocks++;} + void UnLock() {nLocks--;} + sal_Bool IsLocked() const {return nLocks != 0;} + +protected: +// ::com::sun::star::lang::XEventListener + virtual void SAL_CALL disposing(const ::com::sun::star::lang::EventObject& Source) throw( ::com::sun::star::uno::RuntimeException ); + +// ::com::sun::star::beans::XPropertyChangeListener + virtual void SAL_CALL propertyChange(const ::com::sun::star::beans::PropertyChangeEvent& evt); + +// XVetoableChangeListener + virtual void SAL_CALL vetoableChange(const ::com::sun::star::beans::PropertyChangeEvent& aEvent) throw( ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::uno::RuntimeException ); + +// ::com::sun::star::container::XContainerListener + virtual void SAL_CALL elementInserted(const ::com::sun::star::container::ContainerEvent& rEvent); + virtual void SAL_CALL elementReplaced(const ::com::sun::star::container::ContainerEvent& rEvent); + virtual void SAL_CALL elementRemoved(const ::com::sun::star::container::ContainerEvent& rEvent); + +// XScriptListener + virtual void SAL_CALL firing(const ::com::sun::star::script::ScriptEvent& evt); + virtual ::com::sun::star::uno::Any SAL_CALL approveFiring(const ::com::sun::star::script::ScriptEvent& evt); + + virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); + +// Einfuegen von Objekten + void AddForms(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer>& rForms); + void RemoveForms(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer>& rForms); + + void SetReadOnly(sal_Bool bRead) {bReadOnly = bRead;} + sal_Bool IsReadOnly() const {return bReadOnly;} + + void ModeChanged(); + void Clear(); + +private: + void AddElement(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& Element); + void RemoveElement(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& Element); + void AlterPropertyListening(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& Element); + +public: + // Methoden zur Zuordnung von Controls zu Forms, + // werden von der Seite und der UndoUmgebung genutzt + void Inserted(SdrObject* pObj); + void Removed(SdrObject* pObj); + + void Inserted(FmFormObj* pObj); + void Removed(FmFormObj* pObj); +}; + + +#endif //_SVX_FMUNDO_HXX + diff --git a/svx/source/inc/fmurl.hxx b/svx/source/inc/fmurl.hxx new file mode 100644 index 000000000000..e7f917ff2ed0 --- /dev/null +++ b/svx/source/inc/fmurl.hxx @@ -0,0 +1,90 @@ +/************************************************************************* + * + * $RCSfile: fmurl.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:19 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef _SVX_FMURL_HXX +#define _SVX_FMURL_HXX + +#ifndef _FM_STATIC_HXX_ +#include "fmstatic.hxx" +#endif + +DECLARE_CONSTASCII_USTRING(FMURL_FORMSLOTS_PREFIX); + +DECLARE_CONSTASCII_USTRING(FMURL_RECORD_MOVEFIRST); +DECLARE_CONSTASCII_USTRING(FMURL_RECORD_MOVEPREV); +DECLARE_CONSTASCII_USTRING(FMURL_RECORD_MOVENEXT); +DECLARE_CONSTASCII_USTRING(FMURL_RECORD_MOVELAST); +DECLARE_CONSTASCII_USTRING(FMURL_RECORD_MOVETONEW); +DECLARE_CONSTASCII_USTRING(FMURL_RECORD_UNDO); + +DECLARE_CONSTASCII_USTRING(FMURL_CONFIRM_DELETION); + +DECLARE_CONSTASCII_USTRING(FMURL_COMPONENT_FORMGRIDVIEW); +DECLARE_CONSTASCII_USTRING(FMURL_GRIDVIEW_CLEARVIEW); +DECLARE_CONSTASCII_USTRING(FMURL_GRIDVIEW_ADDCOLUMN); +DECLARE_CONSTASCII_USTRING(FMURL_GRIDVIEW_ATTACHTOFORM); + +DECLARE_CONSTASCII_USTRING(FMARG_ATTACHTO_MASTERFORM); +DECLARE_CONSTASCII_USTRING(FMARG_ADDCOL_COLUMNTYPE); +DECLARE_CONSTASCII_USTRING(FMARG_ADDCOL_COLUMNPOS); + +#endif // _SVX_FMURL_HXX + diff --git a/svx/source/inc/fmvwimp.hxx b/svx/source/inc/fmvwimp.hxx new file mode 100644 index 000000000000..a8b1c6c4000d --- /dev/null +++ b/svx/source/inc/fmvwimp.hxx @@ -0,0 +1,229 @@ +/************************************************************************* + * + * $RCSfile: fmvwimp.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:20 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _SVX_FMVWIMP_HXX +#define _SVX_FMVWIMP_HXX + +#include + + +#ifndef _COM_SUN_STAR_FORM_XFORM_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XINDEXACCESS_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XENUMERATION_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FORM_XFORMCONTROLLER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_XCONTAINERLISTENER_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_CONTAINER_CONTAINEREVENT_HPP_ +#include +#endif + +#ifndef _LINK_HXX //autogen +#include +#endif +#ifndef _STRING_HXX +#include +#endif + +#ifndef _CPPUHELPER_IMPLBASE1_HXX_ +#include +#endif +#ifndef _CPPUHELPER_IMPLBASE2_HXX_ +#include +#endif +#ifndef _UTL_UNO3_HXX_ +#include +#endif + +class SdrPageViewWinRec; +class SdrPageView; +class Window; +//FORWARD_DECLARE_INTERFACE(uno,Reference) +FORWARD_DECLARE_INTERFACE(awt,XControl) +class FmXFormController; + +//================================================================== +// FmXPageViewWinRec +//================================================================== +class FmXPageViewWinRec : public ::cppu::WeakImplHelper1< ::com::sun::star::container::XIndexAccess> +{ + friend class FmXFormView; + + ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController > > m_aControllerList; + FmXFormView* m_pViewImpl; + Window* m_pWindow; + +public: + FmXPageViewWinRec(const SdrPageViewWinRec*, FmXFormView* pView); + ~FmXPageViewWinRec(); + +// UNO Anbindung + // DECLARE_UNO3_AGG_DEFAULTS(FmXPageViewWinRec, WeakImplHelper1< ::com::sun::star::container::XIndexAccess> ); + // virtual sal_Bool queryInterface( ::com::sun::star::uno::Uik aUik, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rOut ); + // virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::reflection::XIdlClass > > getIdlClasses(); + +// ::com::sun::star::container::XElementAccess + virtual ::com::sun::star::uno::Type SAL_CALL getElementType() throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException); + +// ::com::sun::star::container::XEnumerationAccess + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL createEnumeration() throw(::com::sun::star::uno::RuntimeException); + +// ::com::sun::star::container::XIndexAccess + virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL getByIndex(sal_Int32 _Index) throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); + + const vector< ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController > >& GetList() {return m_aControllerList;} + +protected: + ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormController > getController( const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm >& xForm ); + void setController( const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm >& xForm, + const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer >& xCC, + FmXFormController* pParent = NULL, + sal_Bool bCheck=sal_False ); + ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer > getControlContainer() const; + void updateTabOrder( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl >& xControl, + const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer >& xCC ); + void dispose(); + Window* getWindow() const {return m_pWindow;} +}; + +typedef vector FmWinRecList; +//================================================================== +// FmXFormView +//================================================================== +class FmXFormView : public ::cppu::WeakImplHelper2< + ::com::sun::star::form::XFormControllerListener, + ::com::sun::star::container::XContainerListener> +{ + friend class FmFormView; + friend class FmFormShell; + friend class FmXFormShell; + friend class FmXPageViewWinRec; + + FmWinRecList m_aWinList; // dieses Liste wird nur im nicht designmodus gefuellt + + FmFormView* m_pView; + SdrPageView* m_pPageViewForActivation; + sal_uInt32 m_nEvent; + sal_uInt32 m_nErrorMessageEvent; + + String m_sErrorMessage; + + void AttachControl( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl >& rControl, sal_Bool bDetach ); + void AttachControls( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer >&, sal_Bool bDetach ); + + FmFormShell* GetFormShell() const; + +protected: + FmXFormView(FmFormView* _pView) + :m_pView(_pView) + ,m_pPageViewForActivation(NULL) + ,m_nEvent(0) + ,m_nErrorMessageEvent(0) { } + ~FmXFormView(); + +public: + // UNO Anbindung + // DECLARE_UNO3_AGG_DEFAULTS(FmXFormView, WeakImplHelper2< + // ::com::sun::star::form::XFormControllerListener, + // ::com::sun::star::container::XContainerListener>); + // virtual sal_Bool queryInterface( ::com::sun::star::uno::Uik aUik, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rOut ); + // virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::reflection::XIdlClass > > getIdlClasses(); + +// ::com::sun::star::lang::XEventListener + virtual void SAL_CALL disposing(const ::com::sun::star::lang::EventObject& Source) throw(::com::sun::star::uno::RuntimeException); + +// ::com::sun::star::container::XContainerListener + virtual void SAL_CALL elementInserted(const ::com::sun::star::container::ContainerEvent& rEvent); + virtual void SAL_CALL elementReplaced(const ::com::sun::star::container::ContainerEvent& rEvent); + virtual void SAL_CALL elementRemoved(const ::com::sun::star::container::ContainerEvent& rEvent); + +// ::com::sun::star::form::XFormControllerListener + virtual void SAL_CALL formActivated(const ::com::sun::star::lang::EventObject& rEvent); + virtual void SAL_CALL formDeactivated(const ::com::sun::star::lang::EventObject& rEvent); + + FmFormView* getView() const {return m_pView;} + FmWinRecList::const_iterator findWindow( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer >& rCC ) const; + const FmWinRecList& getWindowList() const {return m_aWinList;} + +protected: + FmWinRecList::iterator findWindow( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer >& rCC ); + void addWindow(const SdrPageViewWinRec*); + void removeWindow( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer >& rCC ); + void Activate(SdrPageView* pPageView, sal_Bool bSync = sal_False); + void Deactivate(SdrPageView* pPageView, BOOL bDeactivateController = TRUE); + + DECL_LINK(OnActivate, void* ); + DECL_LINK(OnDelayedErrorMessage, void*); +}; + + + +#endif // _SVX_FMVWIMP_HXX + diff --git a/svx/source/inc/gridcell.hxx b/svx/source/inc/gridcell.hxx new file mode 100644 index 000000000000..cc64a5eb8e44 --- /dev/null +++ b/svx/source/inc/gridcell.hxx @@ -0,0 +1,758 @@ +/************************************************************************* + * + * $RCSfile: gridcell.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:20 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef _SVX_GRIDCELL_HXX +#define _SVX_GRIDCELL_HXX + +#ifndef _SVX_GRIDCTRL_HXX +#include "gridctrl.hxx" +#endif + +#ifndef _SVX_FMTOOLS_HXX +#include "fmtools.hxx" +#endif + +#ifndef _CPPUHELPER_COMPONENT_HXX_ +#include +#endif + +#ifndef _COM_SUN_STAR_SDB_XCOLUMN_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_FORM_XBOUNDCONTROL_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_XTEXTCOMPONENT_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_XLISTBOX_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_TEXTALIGN_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_XCONTROLMODEL_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_XCONTROL_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_AWT_XCHECKBOX_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_BEANS_XFASTPROPERTYSET_HPP_ +#include +#endif +#ifndef _COM_SUN_STAR_LANG_XUNOTUNNEL_HPP_ +#include +#endif + +#ifndef _UNOTOOLS_PROPERTY_MULTIPLEX_HXX_ +#include +#endif + +class DbCellControl; +class Edit; +class FmXGridCell; + +//================================================================== +// DbGridColumn, Spaltenbeschreibung +//================================================================== +class DbGridColumn +{ + friend class DbGridControl; + + ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > m_xModel; + ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > m_xField; // Verbindung zum Datenbankfeld + DbCellControllerRef m_xController; // Struktur zum Verwalten der Controls fuer eine Spalte + // diese wird von der DbBrowseBox auf die jeweiligen Zellen + // einer Spalte positioniert + FmXGridCell* m_pCell; + +protected: + DbGridControl& m_rParent; + +private: + sal_Int32 m_nLastVisibleWidth; // nur gueltig, wenn m_bHidden == sal_True + sal_Int32 m_nFormatKey; + sal_Int16 m_nFieldType; + sal_Int16 m_nTypeId; + sal_uInt16 m_nId; + sal_Int16 m_nFieldPos; + sal_Int16 m_nAlign; // wird mit TXT_ALIGN_LEFT .... angegeben + sal_Bool m_bRequired : 1; + sal_Bool m_bReadOnly : 1; + sal_Bool m_bAutoValue : 1; + sal_Bool m_bInSave : 1; + sal_Bool m_bNumeric : 1; + sal_Bool m_bObject : 1; // Verweist die Column auf ein Object Datentyp? + sal_Bool m_bHidden : 1; + sal_Bool m_bLocked : 1; + sal_Bool m_bDateTime : 1; + + static DbCellControllerRef s_xEmptyController; + // used by locked columns + +public: + DbGridColumn(sal_uInt16 _nId, DbGridControl& rParent) + :m_nId(_nId) + ,m_rParent(rParent) + ,m_nFieldType(0) + ,m_nFormatKey(0) + ,m_pCell(NULL) + ,m_bNumeric(sal_False) + ,m_bDateTime(sal_False) + ,m_nAlign(::com::sun::star::awt::TextAlign::LEFT) + ,m_nFieldPos(-1) + ,m_bRequired(sal_False) + ,m_bReadOnly(sal_False) + ,m_bAutoValue(sal_False) + ,m_bInSave(sal_False) + ,m_bHidden(sal_False) + ,m_nLastVisibleWidth(-1) + ,m_nTypeId(0) + ,m_bLocked(sal_False) {} + + ~DbGridColumn(); + + const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& getModel() const {return m_xModel;} + void setModel(::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _xModel) {m_xModel = _xModel;} + + + sal_uInt16 GetId() const {return m_nId;} + sal_Bool IsRequired() const {return m_bRequired;} + sal_Bool IsReadOnly() const {return m_bReadOnly;} + sal_Bool IsAutoValue() const {return m_bAutoValue;} + sal_Bool IsUpdating() const {return m_bInSave;} + sal_Int16 GetAlignment() const {return m_nAlign;} + sal_Int16 GetType() const {return m_nFieldType;} + sal_Int16 GetFieldPos() const {return m_nFieldPos; } + sal_Bool IsNumeric() const {return m_bNumeric;} + sal_Bool IsDateTime() const {return m_bDateTime;} + sal_Bool IsObject() const {return m_bObject;} + sal_Bool IsHidden() const {return m_bHidden;} + sal_Int32 GetKey() const {return m_nFormatKey;} + const DbCellControllerRef& GetController() const {return m_bLocked ? s_xEmptyController : m_xController;} + const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& GetField() const {return m_xField;} + DbGridControl& GetParent() const {return m_rParent;} + FmXGridCell* GetCell() const {return m_pCell;} + + ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn > GetCurrentFieldValue() const; + + // Zeichnen eines Feldes an einer Position, ist ein ::com::sun::star::sdbcx::View gesetzt + // uebernimmt dieser das Zeichnen, z.B. fuer CheckBoxen + void Paint(OutputDevice& rDev, + const Rectangle& rRect, + const DbGridRow* pRow, + const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter); + + + // Inititialierung im alive mode + // Ist kein ColumnController gesetzt, wird eine DefaultInitialisierung + // vorgenommen + void CreateControl(sal_Int32 _nFieldPos, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xField, sal_Int32 nTypeId); + void UpdateControl() + { + ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > xField(m_xField); + CreateControl(m_nFieldPos, xField, m_nTypeId); + } + + // Editieren einer Zelle + void UpdateFromField(const DbGridRow* pRow, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter); + sal_Bool Commit(); + + // freigeben aller Daten, die fuer den AliveMode noetig sind + void Clear(); + + XubString GetCellText(const DbGridRow* pRow, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter) const; + XubString GetCellText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& xField, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter) const; + + void SetReadOnly(sal_Bool bRead){m_bReadOnly = bRead;} + void SetObject(sal_Int16 nPos) {m_bObject = m_bReadOnly = sal_True; m_nFieldPos = nPos;} + void ImplInitSettings(Window* pParent, sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground); + + // Properties, die auf den ::com::sun::star::frame::Controller durchschlagen koennen + sal_Int16 SetAlignment(sal_Int16 _nAlign); + // if _nAlign is -1, the alignment is calculated from the type of the field we are bound to + // the value really set is returned + sal_Int16 SetAlignmentFromModel(sal_Int16 nStandardAlign); + // set the alignment according to the "Align"-property of m_xModel, use the given standard + // alignment if the property if void, return the really set alignment + + // column locking + sal_Bool isLocked() const { return m_bLocked; } + void setLock(sal_Bool _bLock); +}; + +//================================================================== +// DbCellControl, liefert die Daten fuer einen CellController +// wird in der Regel nur für komplexe Controls wie z.B ComboBoxen +// benoetigt +//================================================================== +class DbCellControl +{ +protected: + DbGridColumn& m_rColumn; + Window* m_pWindow; + Window* m_pPainter; + sal_Bool m_bTransparent : 1; + sal_Bool m_bAlignedController : 1; + +public: + DbCellControl(DbGridColumn& _rColumn, sal_Bool _bText = sal_True) + :m_rColumn(_rColumn) + ,m_pWindow(NULL) + ,m_pPainter(NULL) + ,m_bTransparent(sal_False) + ,m_bAlignedController(sal_True){} + + virtual ~DbCellControl(); + Window* GetControl() const {return m_pWindow;} + + sal_Bool IsAlignedController() const { return m_bAlignedController; } + void AlignControl(sal_Int16 nAlignment); + + // Initialisieren bevor ein Control angezeigt wird + virtual void Init(Window* pParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xCursor); + virtual DbCellControllerRef CreateController() const = 0; + + // Schreiben des Wertes in das Model + virtual sal_Bool Commit() = 0; + + // Formatting the field data to output text + virtual XubString GetFormatText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, Color** ppColor = NULL) { return XubString(); } + + virtual void Update(){} + // Refresh the control by the field data + virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter) {} + + // Painten eines Zellinhalts im vorgegeben Rechteck + virtual void Paint(OutputDevice& rDev, const Rectangle& rRect); + virtual void Paint(OutputDevice& rDev, const Rectangle& rRect, const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter) + { Paint(rDev, rRect); } + + void ImplInitSettings(Window* pParent, sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground); + +protected: + double GetValue(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter) const; +}; + +//================================================================== +class DbFormattedField : public DbCellControl, public ::utl::OPropertyChangeListener +{ +protected: + ::utl::OPropertyChangeMultiplexer* m_pFormatListener; + ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatsSupplier > m_xSupplier; + sal_Int16 m_nKeyType; + + ::osl::Mutex m_aDummy; + // only for the base class OPropertyChangeListener, in UNO3 we can't use the SolarMutex anymore + +public: + DbFormattedField(DbGridColumn& _rColumn); + virtual ~DbFormattedField(); + + virtual void Init(Window* pParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xCursor ); + virtual XubString GetFormatText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, Color** ppColor = NULL); + virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter); + virtual DbCellControllerRef CreateController() const; + virtual sal_Bool Commit(); + +protected: + virtual void _propertyChanged(const ::com::sun::star::beans::PropertyChangeEvent& evt) throw(::com::sun::star::uno::RuntimeException); +}; + +//================================================================== +class DbTextField : public DbCellControl +{ + sal_Int16 m_nKeyType; +public: + DbTextField(DbGridColumn& _rColumn); + virtual void Init(Window* pParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xCursor ); + virtual XubString GetFormatText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, Color** ppColor = NULL); + virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter); + virtual DbCellControllerRef CreateController() const; + virtual sal_Bool Commit(); +}; + +//================================================================== +class DbCheckBox : public DbCellControl +{ +public: + DbCheckBox(DbGridColumn& _rColumn):DbCellControl(_rColumn, sal_True) { m_bAlignedController = sal_False; }; + virtual void Init(Window* pParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xCursor ); + virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter); + virtual DbCellControllerRef CreateController() const; + virtual sal_Bool Commit(); + virtual void Paint(OutputDevice& rDev, const Rectangle& rRect, + const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, + const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter); + +}; + +//================================================================== +class DbComboBox :public DbCellControl + ,public ::utl::OPropertyChangeListener +{ + sal_Int16 m_nKeyType; + ::osl::Mutex m_aDummy; + // only for the base class OPropertyChangeListener, in UNO3 we can't use the SolarMutex anymore + +public: + DbComboBox(DbGridColumn& _rColumn); + + virtual void Init(Window* pParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xCursor ); + virtual XubString GetFormatText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, Color** ppColor = NULL); + virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter); + virtual DbCellControllerRef CreateController() const; + virtual sal_Bool Commit(); + +// OPropertyChangeListener + virtual void _propertyChanged( const ::com::sun::star::beans::PropertyChangeEvent& ) throw(::com::sun::star::uno::RuntimeException); + + void SetList(const ::com::sun::star::uno::Any& rItems); +}; + +//================================================================== +class DbListBox : public DbCellControl, + public ::utl::OPropertyChangeListener +{ + sal_Bool m_bBound : 1; + ::com::sun::star::uno::Sequence< ::rtl::OUString > m_aValueList; + ::osl::Mutex m_aDummy; + // only for the base class OPropertyChangeListener, in UNO3 we can't use the SolarMutex anymore + +public: + DbListBox(DbGridColumn& _rColumn); + + virtual void Init(Window* pParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xCursor ); + virtual XubString GetFormatText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, Color** ppColor = NULL); + virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter); + virtual DbCellControllerRef CreateController() const; + virtual sal_Bool Commit(); + +// OPropertyChangeListener + virtual void _propertyChanged( const ::com::sun::star::beans::PropertyChangeEvent& ) throw(::com::sun::star::uno::RuntimeException); + + void SetList(const ::com::sun::star::uno::Any& rItems); +}; + +//================================================================== +class DbPatternField : public DbCellControl +{ +public: + DbPatternField(DbGridColumn& _rColumn):DbCellControl(_rColumn){}; + virtual void Init(Window* pParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xCursor ); + virtual XubString GetFormatText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, Color** ppColor = NULL); + virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter); + virtual DbCellControllerRef CreateController() const; + virtual sal_Bool Commit(); +}; + +//================================================================== +class DbDateField : public DbCellControl +{ +public: + DbDateField(DbGridColumn& _rColumn):DbCellControl(_rColumn){}; + virtual void Init(Window* pParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xCursor ); + virtual XubString GetFormatText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, Color** ppColor = NULL); + virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter); + virtual DbCellControllerRef CreateController() const; + virtual sal_Bool Commit(); +}; + +//================================================================== +class DbTimeField : public DbCellControl +{ +public: + DbTimeField(DbGridColumn& _rColumn):DbCellControl(_rColumn){}; + virtual void Init(Window* pParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xCursor ); + virtual XubString GetFormatText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, Color** ppColor = NULL); + virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter); + virtual DbCellControllerRef CreateController() const; + virtual sal_Bool Commit(); +}; + +//================================================================== +class DbCurrencyField : public DbCellControl +{ + sal_Int16 m_nScale; + +public: + DbCurrencyField(DbGridColumn& _rColumn):DbCellControl(_rColumn),m_nScale(0){}; + virtual void Init(Window* pParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xCursor ); + virtual XubString GetFormatText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, Color** ppColor = NULL); + virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter); + virtual DbCellControllerRef CreateController() const; + virtual sal_Bool Commit(); + +protected: + double GetCurrency(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter) const; +}; + +//================================================================== +class DbNumericField : public DbCellControl +{ +public: + DbNumericField(DbGridColumn& _rColumn):DbCellControl(_rColumn){}; + virtual void Init(Window* pParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xCursor ); + virtual XubString GetFormatText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, Color** ppColor = NULL); + virtual void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter); + virtual DbCellControllerRef CreateController() const; + virtual sal_Bool Commit(); +}; + +//================================================================== +class DbFilterField : public DbCellControl +{ + ::com::sun::star::uno::Sequence< ::rtl::OUString > m_aValueList; + XubString m_aText; + Link m_aCommitLink; + sal_Int16 m_nControlClass; + sal_Bool m_bFilterList : 1; + sal_Bool m_bFilterListFilled : 1; + sal_Bool m_bBound : 1; + +public: + DbFilterField(DbGridColumn& _rColumn); + virtual ~DbFilterField(); + + virtual void Init(Window* pParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xCursor); + virtual DbCellControllerRef CreateController() const; + virtual void Paint(OutputDevice& rDev, const Rectangle& rRect); + virtual sal_Bool Commit(); + virtual void Update(); + + const XubString& GetText() const {return m_aText;} + void SetText(const XubString& rText); + + void SetCommitHdl( const Link& rLink ) { m_aCommitLink = rLink; } + const Link& GetCommitHdl() const { return m_aCommitLink; } + +protected: + void SetList(const ::com::sun::star::uno::Any& rItems, sal_Bool bComboBox); + void CreateControl(Window* pParent, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xModel); + DECL_LINK( OnClick, void* ); +}; + +//================================================================== +// Base class providing the access to a grid cell +//================================================================== +class FmXGridCell : public ::cppu::OComponentHelper, + public ::com::sun::star::awt::XControl, + public ::com::sun::star::form::XBoundControl +{ +protected: + ::osl::Mutex m_aMutex; + DbGridColumn* m_pColumn; + DbCellControl* m_pCellControl; + +public: + TYPEINFO(); + FmXGridCell(DbGridColumn* pColumn, DbCellControl* pControl); + virtual ~FmXGridCell(); + + DECLARE_UNO3_AGG_DEFAULTS(FmXGridCell, OComponentHelper); + virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type& _rType ) throw(::com::sun::star::uno::RuntimeException); + +// XTypeProvider + virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw(::com::sun::star::uno::RuntimeException); + +// OComponentHelper + virtual void SAL_CALL disposing(); + +// ::com::sun::star::lang::XComponent + virtual void SAL_CALL dispose() throw(::com::sun::star::uno::RuntimeException){OComponentHelper::dispose();} + virtual void SAL_CALL addEventListener(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener)throw(::com::sun::star::uno::RuntimeException) { OComponentHelper::addEventListener(aListener);} + virtual void SAL_CALL removeEventListener(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener)throw(::com::sun::star::uno::RuntimeException) { OComponentHelper::removeEventListener(aListener);} + +// ::com::sun::star::awt::XControl + virtual void SAL_CALL setContext(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& Context) throw(::com::sun::star::uno::RuntimeException){} + virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getContext() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL createPeer(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XToolkit >& Toolkit, const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer >& Parent) throw(::com::sun::star::uno::RuntimeException){} + + virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > SAL_CALL getPeer() {return ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > ();} + virtual sal_Bool SAL_CALL setModel(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel >& Model) {return sal_False;} + virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel > SAL_CALL getModel(); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XView > SAL_CALL getView() {return ::com::sun::star::uno::Reference< ::com::sun::star::awt::XView > ();} + virtual void SAL_CALL setDesignMode(sal_Bool bOn) {} + virtual sal_Bool SAL_CALL isDesignMode() {return sal_False;} + virtual sal_Bool SAL_CALL isTransparent() {return sal_False;} + +// ::com::sun::star::form::XBoundControl + virtual sal_Bool SAL_CALL getLock() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setLock(sal_Bool _bLock) throw(::com::sun::star::uno::RuntimeException); + + sal_Bool Commit() {return m_pCellControl->Commit();} + void ImplInitSettings(Window* pParent, sal_Bool bFont, sal_Bool bForeground, sal_Bool bBackground) + { m_pCellControl->ImplInitSettings(pParent, bFont, bForeground, bBackground); } + + sal_Bool IsAlignedController() const { return m_pCellControl->IsAlignedController(); } + void AlignControl(sal_Int16 nAlignment) + { m_pCellControl->AlignControl(nAlignment);} +}; + +//================================================================== +class FmXDataCell : public FmXGridCell +{ +public: + TYPEINFO(); + FmXDataCell(DbGridColumn* pColumn, DbCellControl* pControl):FmXGridCell(pColumn, pControl){} + + virtual void Paint(OutputDevice& rDev, + const Rectangle& rRect, + const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& xField, + const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter); + + void UpdateFromField(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& xField, + const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter) + { m_pCellControl->UpdateFromField(xField, xFormatter); } + +protected: + void UpdateFromColumn(); +}; + +//================================================================== +class FmXTextCell : public FmXDataCell +{ +public: + TYPEINFO(); + FmXTextCell(DbGridColumn* pColumn, DbCellControl* pControl):FmXDataCell(pColumn, pControl){} + + virtual void Paint(OutputDevice& rDev, + const Rectangle& rRect, + const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& xField, + const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter); + + XubString GetText(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn >& _xVariant, + const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter >& xFormatter, + Color** ppColor = NULL) + {return m_pCellControl->GetFormatText(_xVariant, xFormatter, ppColor);} +}; + +//================================================================== +class FmXEditCell : public FmXTextCell, + public ::com::sun::star::awt::XTextComponent +{ +protected: + ::cppu::OInterfaceContainerHelper m_aTextListeners; + Edit* m_pEdit; + +public: + FmXEditCell(DbGridColumn* pColumn, DbCellControl* pControl); + ~FmXEditCell(); + + DECLARE_UNO3_AGG_DEFAULTS(FmXEditCell, FmXTextCell); + virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type& _rType ) throw(::com::sun::star::uno::RuntimeException); + +// XTypeProvider + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException); + +// OComponentHelper + virtual void SAL_CALL disposing(); + +// ::com::sun::star::awt::XTextComponent + virtual void SAL_CALL addTextListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextListener >& l) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeTextListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextListener >& l) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setText(const ::rtl::OUString& aText) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL insertText(const ::com::sun::star::awt::Selection& Sel, const ::rtl::OUString& Text) throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getText() throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getSelectedText() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setSelection(const ::com::sun::star::awt::Selection& aSelection) throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::awt::Selection SAL_CALL getSelection() throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL isEditable() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setEditable(sal_Bool bEditable) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setMaxTextLen(sal_Int16 nLen) throw(::com::sun::star::uno::RuntimeException); + virtual sal_Int16 SAL_CALL getMaxTextLen() throw(::com::sun::star::uno::RuntimeException); + +protected: + DECL_LINK( OnTextChanged, void* ); +}; + +//================================================================== +class FmXCheckBoxCell : public FmXDataCell, + public ::com::sun::star::awt::XCheckBox +{ + ::cppu::OInterfaceContainerHelper m_aItemListeners; + CheckBox* m_pBox; + +public: + FmXCheckBoxCell(DbGridColumn* pColumn, DbCellControl* pControl); + ~FmXCheckBoxCell(); + +// UNO + DECLARE_UNO3_AGG_DEFAULTS(FmXCheckBoxCell, FmXDataCell); + virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type& _rType ) throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException); + +// OComponentHelper + virtual void SAL_CALL disposing(); + +// ::com::sun::star::awt::XCheckBox + virtual void SAL_CALL addItemListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XItemListener >& l) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeItemListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XItemListener >& l) throw(::com::sun::star::uno::RuntimeException); + virtual sal_Int16 SAL_CALL getState() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setState(sal_Int16 n) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setLabel(const ::rtl::OUString& Label) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL enableTriState(sal_Bool b) throw(::com::sun::star::uno::RuntimeException); + +protected: + DECL_LINK( OnClick, void* ); +}; + +//================================================================== +class FmXListBoxCell : public FmXTextCell, + public ::com::sun::star::awt::XListBox +{ + ::cppu::OInterfaceContainerHelper m_aItemListeners, + m_aActionListeners; + ListBox* m_pBox; + +public: + FmXListBoxCell(DbGridColumn* pColumn, DbCellControl* pControl); + ~FmXListBoxCell(); + + DECLARE_UNO3_AGG_DEFAULTS(FmXListBoxCell, FmXTextCell); + virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type& _rType ) throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException); + +// OComponentHelper + virtual void SAL_CALL disposing(); + +// ::com::sun::star::awt::XListBox + virtual void SAL_CALL addItemListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XItemListener >& l) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeItemListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XItemListener >& l) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addActionListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XActionListener >& l) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeActionListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XActionListener >& l) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addItem(const ::rtl::OUString& aItem, sal_Int16 nPos) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addItems(const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aItems, sal_Int16 nPos) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeItems(sal_Int16 nPos, sal_Int16 nCount) throw(::com::sun::star::uno::RuntimeException); + virtual sal_Int16 SAL_CALL getItemCount() throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getItem(sal_Int16 nPos) throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getItems() throw(::com::sun::star::uno::RuntimeException); + virtual sal_Int16 SAL_CALL getSelectedItemPos() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< sal_Int16 > SAL_CALL getSelectedItemsPos() throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getSelectedItem() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSelectedItems() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL SAL_CALL selectItemPos(sal_Int16 nPos, sal_Bool bSelect) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL SAL_CALL selectItemsPos(const ::com::sun::star::uno::Sequence< sal_Int16 >& aPositions, sal_Bool bSelect) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL SAL_CALL selectItem(const ::rtl::OUString& aItem, sal_Bool bSelect) throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL isMutipleMode() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL SAL_CALL setMultipleMode(sal_Bool bMulti) throw(::com::sun::star::uno::RuntimeException); + virtual sal_Int16 SAL_CALL getDropDownLineCount() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL SAL_CALL setDropDownLineCount(sal_Int16 nLines) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL SAL_CALL makeVisible(sal_Int16 nEntry) throw(::com::sun::star::uno::RuntimeException); + +protected: + DECL_LINK( OnSelect, void* ); + DECL_LINK( OnDoubleClick, void* ); +}; + +//================================================================== +class FmXFilterCell :public FmXGridCell + ,public ::com::sun::star::awt::XTextComponent + ,public ::com::sun::star::lang::XUnoTunnel +{ + ::cppu::OInterfaceContainerHelper m_aTextListeners; +public: + TYPEINFO(); + FmXFilterCell(DbGridColumn* pColumn = NULL, DbCellControl* pControl = NULL); + ~FmXFilterCell(); + + DECLARE_UNO3_AGG_DEFAULTS(FmXFilterCell, FmXGridCell); + virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type& _rType ) throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException); + +// XUnoTunnel + virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException); + +// helpers for XUnoTunnel + static const ::com::sun::star::uno::Sequence& getUnoTunnelId(); + static FmXFilterCell* getImplementation( + const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl >& _rxObject); + +// Painting the filter text + void Paint(OutputDevice& rDev, const Rectangle& rRect); + void Update(){m_pCellControl->Update();} + +// OComponentHelper + virtual void SAL_CALL disposing(); + +// ::com::sun::star::awt::XTextComponent + virtual void SAL_CALL addTextListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextListener >& l) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeTextListener(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextListener >& l) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setText(const ::rtl::OUString& aText) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL insertText(const ::com::sun::star::awt::Selection& Sel, const ::rtl::OUString& Text) throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getText() throw(::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getSelectedText() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setSelection(const ::com::sun::star::awt::Selection& aSelection) throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::awt::Selection SAL_CALL getSelection() throw(::com::sun::star::uno::RuntimeException); + virtual sal_Bool SAL_CALL isEditable() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setEditable(sal_Bool bEditable) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setMaxTextLen(sal_Int16 nLen) throw(::com::sun::star::uno::RuntimeException); + virtual sal_Int16 SAL_CALL getMaxTextLen() throw(::com::sun::star::uno::RuntimeException); + +protected: + DECL_LINK( OnCommit, void* ); +}; + +#endif // _SVX_GRIDCELL_HXX + diff --git a/svx/source/inc/gridcols.hxx b/svx/source/inc/gridcols.hxx new file mode 100644 index 000000000000..bfb8d00cab7f --- /dev/null +++ b/svx/source/inc/gridcols.hxx @@ -0,0 +1,98 @@ +/************************************************************************* + * + * $RCSfile: gridcols.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:20 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _SVX_GRIDCOLS_HXX +#define _SVX_GRIDCOLS_HXX + +#ifndef _FM_STATIC_HXX_ +#include "fmstatic.hxx" +#endif + +// liste der moeglichen Controls +DECLARE_CONSTASCII_USTRING(FM_COL_TEXTFIELD); +DECLARE_CONSTASCII_USTRING(FM_COL_CHECKBOX); +DECLARE_CONSTASCII_USTRING(FM_COL_COMBOBOX); +DECLARE_CONSTASCII_USTRING(FM_COL_LISTBOX); +DECLARE_CONSTASCII_USTRING(FM_COL_NUMERICFIELD); +DECLARE_CONSTASCII_USTRING(FM_COL_DATEFIELD); +DECLARE_CONSTASCII_USTRING(FM_COL_TIMEFIELD); +DECLARE_CONSTASCII_USTRING(FM_COL_CURRENCYFIELD); +DECLARE_CONSTASCII_USTRING(FM_COL_PATTERNFIELD); +DECLARE_CONSTASCII_USTRING(FM_COL_FORMATTEDFIELD); + + +// column type ids +#define TYPE_CHECKBOX 0 +#define TYPE_COMBOBOX 1 +#define TYPE_CURRENCYFIELD 2 +#define TYPE_DATEFIELD 3 +#define TYPE_FORMATTEDFIELD 4 +#define TYPE_LISTBOX 5 +#define TYPE_NUMERICFIELD 6 +#define TYPE_PATTERNFIELD 7 +#define TYPE_TEXTFIELD 8 +#define TYPE_TIMEFIELD 9 + +//------------------------------------------------------------------------------ +sal_Int32 getColumnTypeByModelName(const ::rtl::OUString& aModelName); + + +#endif // _SVX_GRIDCOLS_HXX + diff --git a/svx/source/inc/hlmarkwn.hrc b/svx/source/inc/hlmarkwn.hrc new file mode 100644 index 000000000000..788832979fe8 --- /dev/null +++ b/svx/source/inc/hlmarkwn.hrc @@ -0,0 +1,68 @@ +/************************************************************************* + * + * $RCSfile: hlmarkwn.hrc,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:20 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#define BT_APPLY 1 +#define BT_CLOSE 2 +#define TLB_MARK 3 + +//#define HYPERLINK_BMP_EXPAND 301 +//#define HYPERLINK_BMP_COLLAPSE 302 + diff --git a/svx/source/inc/hlmarkwn.hxx b/svx/source/inc/hlmarkwn.hxx new file mode 100644 index 000000000000..fbba0e174643 --- /dev/null +++ b/svx/source/inc/hlmarkwn.hxx @@ -0,0 +1,159 @@ +/************************************************************************* + * + * $RCSfile: hlmarkwn.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:20 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +#ifndef _SVX_BKWND_HYPERLINK_HXX +#define _SVX_BKWND_HYPERLINK_HXX + +#ifndef _COM_SUN_STAR_CONTAINER_XNAMEACCESS_HPP_ +#include +#endif + +#ifndef _SV_FLOATWIN_HXX +#include +#endif +#ifndef _SV_BUTTON_HXX +#include +#endif +#ifndef _SVTREEBOX_HXX +#include +#endif + +#ifndef _RTL_USTRING_ +#include +#endif + +class SvxHyperlinkTabPageBase; + +#define LERR_NOERROR 0 +#define LERR_NOENTRIES 1 +#define LERR_DOCNOTOPEN 2 + +//######################################################################## +//# # +//# Tree-Window # +//# # +//######################################################################## + +class SvxHlinkDlgMarkWnd; + +class SvxHlmarkTreeLBox : public SvTreeListBox +{ +private: + SvxHlinkDlgMarkWnd* mpParentWnd; + +public: + SvxHlmarkTreeLBox( Window* pParent, const ResId& rResId ); + + virtual void Paint( const Rectangle& rRect ); +}; + +//######################################################################## +//# # +//# Window-Class # +//# # +//######################################################################## + +class SvxHlinkDlgMarkWnd : public FloatingWindow +{ +private: + friend SvxHlmarkTreeLBox; + + PushButton maBtApply; + PushButton maBtClose; + //SvTreeListBox maLbTree; + SvxHlmarkTreeLBox maLbTree; + + BOOL mbUserMoved; + BOOL mbFirst; + + SvxHyperlinkTabPageBase* mpParent; + + String maStrLastURL; + + USHORT mnError; + +protected: + BOOL RefreshFromDoc( ::rtl::OUString aURL ); + + SvLBoxEntry* FindEntry ( String aStrName ); + void ClearTree(); + int FillTree( ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > xLinks, SvLBoxEntry* pParentEntry =NULL ); + + virtual void Move (); + + DECL_LINK (ClickApplyHdl_Impl, void * ); + DECL_LINK (ClickCloseHdl_Impl, void * ); + +public: + SvxHlinkDlgMarkWnd (SvxHyperlinkTabPageBase *pParent); + ~SvxHlinkDlgMarkWnd(); + + const BOOL MoveTo ( Point aNewPos ); + void RefreshTree ( String aStrURL ); + void SelectEntry ( String aStrMark ); + + const BOOL ConnectToDialog( BOOL bDoit = TRUE ); + + USHORT SetError( USHORT nError); +}; + + +#endif // _SVX_BKWND_HYPERLINK_HXX diff --git a/svx/source/inc/hyperdlg.hrc b/svx/source/inc/hyperdlg.hrc new file mode 100644 index 000000000000..bbbba33f4d23 --- /dev/null +++ b/svx/source/inc/hyperdlg.hrc @@ -0,0 +1,124 @@ +/************************************************************************* + * + * $RCSfile: hyperdlg.hrc,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:20 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +/* Tabpage : Hyperlink - Internet */ + +#define GRP_LINKTYPE 1 +#define RB_LINKTYP_INTERNET 2 +#define RB_LINKTYP_FTP 3 +#define RB_LINKTYP_TELNET 4 +#define FT_TARGET_HTML 5 +#define CB_TARGET_HTML 6 +#define FT_LOGIN 7 +#define ED_LOGIN 8 +#define FT_PASSWD 9 +#define ED_PASSWD 10 +#define CBX_ANONYMOUS 11 +#define BTN_BROWSE 12 +#define BTN_TARGET 13 + +/* Tabpage : Hyperlink - Mail & News */ + +#define GRP_MAILNEWS 1 +#define RB_LINKTYP_MAIL 2 +#define RB_LINKTYP_NEWS 3 +#define FT_RECEIVER 4 +#define CB_RECEIVER 5 +#define FT_SUBJECT 6 +#define ED_SUBJECT 7 +#define BTN_ADRESSBOOK 8 + +/* Tabpage : Hyperlink - Document */ + +#define GRP_DOCUMENT 1 +#define FT_PATH_DOC 2 +#define CB_PATH_DOC 3 +#define BTN_FILEOPEN 4 +#define GRP_TARGET 5 +#define FT_TARGET_DOC 6 +#define ED_TARGET_DOC 7 +#define FT_URL 8 +#define FT_FULL_URL 9 + +/* Tabpage : Hyperlink - New document */ + +#define GRP_NEWDOCUMENT 1 +#define RB_EDITNOW 2 +#define RB_EDITLATER 3 +#define FT_PATH_NEWDOC 4 +#define ED_PATH_NEWDOC 5 +#define FT_DOCUMENT_TYPES 6 +#define LB_DOCUMENT_TYPES 7 +#define BTN_CREATE 8 + +/* Tabpage-section : Hyperlink - more justifications */ + +#define GRP_MORE 30 +#define FT_FRAME 31 +#define CB_FRAME 32 +#define FT_FORM 33 +#define LB_FORM 34 +#define FT_INDICATION 35 +#define ED_INDICATION 36 +#define FT_TEXT 37 +#define ED_TEXT 38 +#define BTN_SCRIPT 39 + diff --git a/svx/source/inc/linectrl.hrc b/svx/source/inc/linectrl.hrc new file mode 100644 index 000000000000..d7f84b730432 --- /dev/null +++ b/svx/source/inc/linectrl.hrc @@ -0,0 +1,62 @@ +/************************************************************************* + * + * $RCSfile: linectrl.hrc,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:20 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#define RID_SVXCTRL_LINECTRL 257 + diff --git a/svx/source/inc/tabwin.hxx b/svx/source/inc/tabwin.hxx new file mode 100644 index 000000000000..b376e40f832b --- /dev/null +++ b/svx/source/inc/tabwin.hxx @@ -0,0 +1,173 @@ +/************************************************************************* + * + * $RCSfile: tabwin.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:20 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _SVX_TABWIN_HXX +#define _SVX_TABWIN_HXX + +#ifndef _SVTREEBOX_HXX //autogen +#include +#endif + +#ifndef _SV_FLOATWIN_HXX //autogen +#include +#endif + +#ifndef _BASEDLGS_HXX //autogen +#include +#endif + +#ifndef _SFX_CHILDWIN_HXX //autogen +#include +#endif + +#ifndef _SFXCTRLITEM_HXX //autogen +#include +#endif + +#ifndef _COM_SUN_STAR_FORM_XFORM_HPP_ +#include +#endif + +//#ifndef _SVX_FMTOOLS_HXX +//#include "fmtools.hxx" +//#endif + +#include + +//================================================================== +class FmFieldWin; +class FmFieldWinListBox: public SvTreeListBox +{ + FmFieldWin* pTabWin; + +protected: + virtual void Command( const CommandEvent& rEvt ); + +public: + FmFieldWinListBox( FmFieldWin* pParent ); + virtual ~FmFieldWinListBox(); + + virtual sal_Bool QueryDrop( DropEvent& rDEvt ) + { + return (!nDragDropMode) ? sal_False : SvTreeListBox::QueryDrop(rDEvt); + } + // this prevents an assertion the base class makes (unjustified ?) to fail - 67071 - fs - 21.06.99 +}; + +//======================================================================== +class FmFormShell; +class FmFieldWinData +{ +public: + FmFieldWinData(); + ~FmFieldWinData(); +}; + +//======================================================================== +class FmFieldWin : public SfxFloatingWindow, + public SfxControllerItem, + public ::utl::OPropertyChangeListener +{ + ::osl::Mutex m_aMutex; + FmFieldWinListBox* pListBox; + FmFieldWinData* pData; + ::rtl::OUString m_aDatabaseName, + m_aObjectName; + sal_Int32 m_nObjectType; + + ::utl::OPropertyChangeMultiplexer* m_pChangeListener; + +public: + FmFieldWin(SfxBindings *pBindings, + SfxChildWindow *pMgr, Window* pParent); + + virtual ~FmFieldWin(); + virtual void Resize(); + virtual sal_Bool Close(); + virtual void StateChanged(sal_uInt16 nSID, SfxItemState eState, + const SfxPoolItem* pState); + + FmFieldWinData* GetData() const {return pData;} + + sal_Bool Update(FmFormShell*); + sal_Bool Update(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm > &); + void FillInfo( SfxChildWinInfo& rInfo ) const; + + const ::rtl::OUString& GetDatabaseName() const { return m_aDatabaseName; } + const ::rtl::OUString& GetObjectName() const { return m_aObjectName; } + sal_Int32 GetObjectType() const { return m_nObjectType; } + + // FmXChangeListener + virtual void _propertyChanged(const ::com::sun::star::beans::PropertyChangeEvent& evt) throw( ::com::sun::star::uno::RuntimeException ); + +}; + +//======================================================================== +class FmFieldWinMgr : public SfxChildWindow +{ +public: + FmFieldWinMgr(Window *pParent, sal_uInt16 nId, + SfxBindings *pBindings, SfxChildWinInfo *pInfo); + SFX_DECL_CHILDWINDOW(FmFieldWinMgr); +}; + + +#endif + diff --git a/svx/source/inc/tbxform.hxx b/svx/source/inc/tbxform.hxx new file mode 100644 index 000000000000..e3e92cc84444 --- /dev/null +++ b/svx/source/inc/tbxform.hxx @@ -0,0 +1,249 @@ +/************************************************************************* + * + * $RCSfile: tbxform.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:20 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _SVX_TBXFORM_HXX +#define _SVX_TBXFORM_HXX + +#ifndef _SFXTBXCTRL_HXX //autogen +#include +#endif + +#ifndef _SFXTBXMGR_HXX //autogen +#include +#endif + +#ifndef _SV_FIELD_HXX //autogen +#include +#endif + +#ifndef _SV_DIALOG_HXX //autogen +#include +#endif + +#ifndef _SV_BUTTON_HXX //autogen +#include +#endif + +//======================================================================== + +class FmInputRecordNoDialog : public ModalDialog +{ +public: + FixedText m_aLabel; + NumericField m_aRecordNo; + OKButton m_aOk; + CancelButton m_aCancel; + +public: + FmInputRecordNoDialog(Window * pParent); + + void SetValue(double dNew) { m_aRecordNo.SetValue(dNew); } + long GetValue() const { return m_aRecordNo.GetValue(); } +}; + +//======================================================================== +class SvxFmAbsRecWin : public NumericField +{ + SfxToolBoxControl* m_pController; + // for invalidating our content whe losing the focus +public: + SvxFmAbsRecWin( Window* _pParent, SfxToolBoxControl* _pController ); + ~SvxFmAbsRecWin(); + + virtual void KeyInput( const KeyEvent& rKeyEvt ); + virtual void LoseFocus(); + +protected: + virtual void FirePosition(); +}; + + +//======================================================================== +class SvxFmConfigWin : public SfxPopupWindow +{ +private: + SfxToolBoxManager aTbx; + Link aSelectLink; + + DECL_LINK( TbxSelectHdl, ToolBox* ); + +public: + SvxFmConfigWin( USHORT nId, ResId aRIdWin, ResId aRIdTbx, SfxBindings& rBindings ); + ~SvxFmConfigWin(); + + void StartSelection() + { aTbx.GetToolBox().StartSelection(); } + void Update(); + virtual void PopupModeEnd(); +}; + + +//======================================================================== +class SvxFmTbxCtlConfig : public SfxToolBoxControl +{ +private: + UINT16 nLastSlot; + +public: + SFX_DECL_TOOLBOX_CONTROL(); + + SvxFmTbxCtlConfig( USHORT nId, ToolBox& rTbx, SfxBindings& ); + ~SvxFmTbxCtlConfig() {} + + virtual void Select( USHORT nModifier ); + virtual void StateChanged( USHORT nSID, SfxItemState eState, + const SfxPoolItem* pState ); + virtual SfxPopupWindowType GetPopupWindowType() const; + virtual SfxPopupWindow* CreatePopupWindow(); +}; + +//======================================================================== +class FixedText; +class SvxFmTbxCtlAbsRec : public SfxToolBoxControl +{ +public: + SFX_DECL_TOOLBOX_CONTROL(); + + SvxFmTbxCtlAbsRec( USHORT nId, ToolBox& rTbx, SfxBindings& rBindings ); + ~SvxFmTbxCtlAbsRec(); + + virtual Window* CreateItemWindow( Window* pParent ); + + virtual void StateChanged( USHORT nSID, SfxItemState eState, + const SfxPoolItem* pState ); +}; + +//======================================================================== +class SvxFmTbxCtlRecText : public SfxToolBoxControl +{ +public: + SFX_DECL_TOOLBOX_CONTROL(); + + SvxFmTbxCtlRecText( USHORT nId, ToolBox& rTbx, SfxBindings& rBindings ); + ~SvxFmTbxCtlRecText(); + + virtual Window* CreateItemWindow( Window* pParent ); +}; + +//======================================================================== +class SvxFmTbxCtlRecFromText : public SfxToolBoxControl +{ +public: + SFX_DECL_TOOLBOX_CONTROL(); + + SvxFmTbxCtlRecFromText( USHORT nId, ToolBox& rTbx, SfxBindings& rBindings ); + ~SvxFmTbxCtlRecFromText(); + + virtual Window* CreateItemWindow( Window* pParent ); +}; + +//======================================================================== +class SvxFmTbxCtlRecTotal : public SfxToolBoxControl +{ + FixedText* pFixedText; + +public: + SFX_DECL_TOOLBOX_CONTROL(); + + SvxFmTbxCtlRecTotal( USHORT nId, ToolBox& rTbx, SfxBindings& rBindings ); + ~SvxFmTbxCtlRecTotal(); + + virtual Window* CreateItemWindow( Window* pParent ); + virtual void StateChanged( USHORT nSID, SfxItemState eState, + const SfxPoolItem* pState ); +}; + +/* +//======================================================================== +class SvxFmTbxCtlFilterText : public SfxToolBoxControl +{ + FixedText* pFixedText; + XubString aText; +public: + SFX_DECL_TOOLBOX_CONTROL(); + + SvxFmTbxCtlFilterText( USHORT nId, ToolBox& rTbx, SfxBindings& rBindings ); + ~SvxFmTbxCtlFilterText(); + + virtual Window* CreateItemWindow( Window* pParent ); + virtual void StateChanged( USHORT nSID, SfxItemState eState, + const SfxPoolItem* pState ); +}; +*/ + +//======================================================================== +class SvxFmTbxNextRec : public SfxToolBoxControl +{ +public: + SFX_DECL_TOOLBOX_CONTROL(); + SvxFmTbxNextRec( USHORT nId, ToolBox& rTbx, SfxBindings& rBindings ); +}; + +//======================================================================== +class SvxFmTbxPrevRec : public SfxToolBoxControl +{ +public: + SFX_DECL_TOOLBOX_CONTROL(); + SvxFmTbxPrevRec( USHORT nId, ToolBox& rTbx, SfxBindings& rBindings ); +}; + + +#endif + diff --git a/svx/source/inc/trace.hxx b/svx/source/inc/trace.hxx new file mode 100644 index 000000000000..ff93051e9895 --- /dev/null +++ b/svx/source/inc/trace.hxx @@ -0,0 +1,110 @@ +/************************************************************************* + * + * $RCSfile: trace.hxx,v $ + * + * $Revision: 1.1.1.1 $ + * + * last change: $Author: hr $ $Date: 2000-09-18 17:01:20 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ +#ifndef _TRACE_HXX_ +#define _TRACE_HXX_ + +#if defined(DBG_UTIL) && defined(ENABLE_RANGE_TRACING) + +#ifndef _STRING_HXX +#include +#endif +#ifndef _VOS_THREAD_HXX_ +#include +#endif +#ifndef _VOS_MUTEX_HXX_ +#include +#endif +#ifndef _SVX_FMSTL_HXX +#include "fmstl.hxx" +#endif + + +class Tracer +{ + ByteString m_sBlockDescription; + + static map< ::vos::OThread::TThreadIdentifier, INT32, ::std::less< ::vos::OThread::TThreadIdentifier > > + s_aThreadIndents; + + static ::vos::OMutex s_aMapSafety; + +public: + Tracer(const char* _pBlockDescription); + ~Tracer(); + + void TraceString(const char* _pMessage); + void TraceString1StringParam(const char* _pMessage, const char* _pParam); +}; + + +#define TRACE_RANGE(range_description) Tracer aTrace(range_description); +#define TRACE_RANGE_MESSAGE(message) { aTrace.TraceString(message); } +#define TRACE_RANGE_MESSAGE1(message, param) { aTrace.TraceString1StringParam(message, param); } + +#else + +#define TRACE_RANGE(range_description) ; +#define TRACE_RANGE_MESSAGE(message) ; +#define TRACE_RANGE_MESSAGE1(message, param) ; + +#endif + +#endif // _TRACE_HXX_ -- cgit