diff options
Diffstat (limited to 'binfilter/bf_svx/source/inc')
42 files changed, 5727 insertions, 0 deletions
diff --git a/binfilter/bf_svx/source/inc/AccessibleStringWrap.hxx b/binfilter/bf_svx/source/inc/AccessibleStringWrap.hxx new file mode 100644 index 000000000000..22943fe60919 --- /dev/null +++ b/binfilter/bf_svx/source/inc/AccessibleStringWrap.hxx @@ -0,0 +1,65 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _ACCESSIBLESTRINGWRAP_HXX +#define _ACCESSIBLESTRINGWRAP_HXX + +#include <sal/types.h> + +#include <tools/string.hxx> +class OutputDevice; +class Rectangle; +class Point; +namespace binfilter { + + +class SvxFont; + +//------------------------------------------------------------------------ +// +// AccessibleStringWrap declaration +// +//------------------------------------------------------------------------ + +class AccessibleStringWrap +{ +public: + + AccessibleStringWrap( OutputDevice& rDev, SvxFont& rFont, const String& rText ){DBG_BF_ASSERT(0, "STRIP");}//STRIP001 AccessibleStringWrap( OutputDevice& rDev, SvxFont& rFont, const String& rText ); + + sal_Bool GetCharacterBounds( sal_Int32 nIndex, Rectangle& rRect ){DBG_BF_ASSERT(0, "STRIP"); return false;}//STRIP001 sal_Bool GetCharacterBounds( sal_Int32 nIndex, Rectangle& rRect ); + sal_Int32 GetIndexAtPoint( const Point& rPoint ){DBG_BF_ASSERT(0, "STRIP"); return 0;}//STRIP001 sal_Int32 GetIndexAtPoint( const Point& rPoint ); + +private: + +}; + +}//end of namespace binfilter +#endif /* _ACCESSIBLESTRINGWRAP_HXX */ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/XPropertyTable.hxx b/binfilter/bf_svx/source/inc/XPropertyTable.hxx new file mode 100644 index 000000000000..fc4823f158e0 --- /dev/null +++ b/binfilter/bf_svx/source/inc/XPropertyTable.hxx @@ -0,0 +1,49 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVX_XPROPERTYTABLE_HXX +#define _SVX_XPROPERTYTABLE_HXX + +#include <com/sun/star/uno/XInterface.hpp> +namespace binfilter { + +class XPropertyList; +class XPropertyTable; + +com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SvxUnoXColorTable_createInstance( XPropertyTable* pTable ) throw(); +com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SvxUnoXLineEndTable_createInstance( XPropertyList* pList ) throw(); +com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SvxUnoXDashTable_createInstance( XPropertyList* pList ) throw(); +com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SvxUnoXHatchTable_createInstance( XPropertyList* pList ) throw(); +com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SvxUnoXGradientTable_createInstance( XPropertyList* pList ) throw(); +com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SvxUnoXBitmapTable_createInstance( XPropertyList* pList ) throw(); + +}//end of namespace binfilter +#endif + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/dbtoolsclient.hxx b/binfilter/bf_svx/source/inc/dbtoolsclient.hxx new file mode 100644 index 000000000000..9373e7c317ad --- /dev/null +++ b/binfilter/bf_svx/source/inc/dbtoolsclient.hxx @@ -0,0 +1,145 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef SVX_DBTOOLSCLIENT_HXX +#define SVX_DBTOOLSCLIENT_HXX + +#include <connectivity/virtualdbtools.hxx> +#include <osl/module.h> +#include <tools/solar.h> +namespace binfilter { +//........................................................................ +namespace svxform +{ +//........................................................................ + + //==================================================================== + //= ODbtoolsClient + //==================================================================== + /** base class for classes which want to use dbtools features with load-on-call + of the dbtools lib. + */ + class ODbtoolsClient + { + private: + static ::osl::Mutex s_aMutex; + static sal_Int32 s_nClients; + static oslModule s_hDbtoolsModule; + static ::connectivity::simple::createDataAccessToolsFactoryFunction + s_pFactoryCreationFunc; + //add by BerryJia for fixing Bug97420 Time:2002-9-12-11:00(PRC time) + mutable BOOL m_bCreateAlready; + + private: + mutable ::rtl::Reference< ::connectivity::simple::IDataAccessToolsFactory > m_xDataAccessFactory; + + protected: + const ::rtl::Reference< ::connectivity::simple::IDataAccessToolsFactory >& + getFactory() const { return m_xDataAccessFactory; } + + protected: + ODbtoolsClient(); + ~ODbtoolsClient(); + //add by BerryJia for fixing Bug97420 Time:2002-9-12-11:00(PRC time) + + private: + }; + + //==================================================================== + //= OStaticDataAccessTools + //==================================================================== + class OStaticDataAccessTools : public ODbtoolsClient + { + protected: + mutable ::rtl::Reference< ::connectivity::simple::IDataAccessTools > m_xDataAccessTools; + //add by BerryJia for fixing Bug97420 Time:2002-9-12-11:00(PRC time) + void create() const; + + void checkIfLoaded() const; + + public: + OStaticDataAccessTools(); + + ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection> getRowSetConnection( + const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet>& _rxRowSet) + const SAL_THROW ( (::com::sun::star::uno::RuntimeException) ); + + // ------------------------------------------------ + + // ------------------------------------------------ + ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDataSource > getDataSource( + const ::rtl::OUString& _rsRegisteredName, + const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory>& _rxFactory + ) const; + + // ------------------------------------------------ + /** check if the property "Privileges" supports ::com::sun::star::sdbcx::Privilege::INSERT + @param _rxCursorSet the property set + */ + sal_Bool canInsert(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxCursorSet) const; + + // ------------------------------------------------ + /** check if the property "Privileges" supports ::com::sun::star::sdbcx::Privilege::UPDATE + @param _rxCursorSet the property set + */ + sal_Bool canUpdate(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxCursorSet) const; + + // ------------------------------------------------ + /** check if the property "Privileges" supports ::com::sun::star::sdbcx::Privilege::DELETE + @param _rxCursorSet the property set + */ + sal_Bool canDelete(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& _rxCursorSet) const; + + // ------------------------------------------------ + virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > + getFieldsByCommandDescriptor( + const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConnection, + const sal_Int32 _nCommandType, + const ::rtl::OUString& _rCommand, + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& _rxKeepFieldsAlive, + ::dbtools::SQLExceptionInfo* _pErrorInfo = NULL + ) SAL_THROW( ( ) ); + + // ------------------------------------------------ + virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > + getFieldNamesByCommandDescriptor( + const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConnection, + const sal_Int32 _nCommandType, + const ::rtl::OUString& _rCommand, + ::dbtools::SQLExceptionInfo* _pErrorInfo = NULL + ) SAL_THROW( ( ) ); + }; +//........................................................................ +} // namespace svxform +//........................................................................ + +}//end of namespace binfilter +#endif // SVX_DBTOOLSCLIENT_HXX + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/filtnav.hxx b/binfilter/bf_svx/source/inc/filtnav.hxx new file mode 100644 index 000000000000..92db55348846 --- /dev/null +++ b/binfilter/bf_svx/source/inc/filtnav.hxx @@ -0,0 +1,102 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVX_FILTNAV_HXX +#define _SVX_FILTNAV_HXX + + + + + + + + +#include <bf_sfx2/dockwin.hxx> + + + + + + + +namespace binfilter { + +class FmFormShell; + +//........................................................................ +namespace svxform +{ +//........................................................................ + +class FmFilterItem; +class FmFilterItems; +class FmFilterAdapter; + +//======================================================================== +// data structure for the filter model +//======================================================================== + +//======================================================================== + +//======================================================================== +// Item representing the forms and subforms + +//======================================================================== + +//======================================================================== + +//======================================================================== + +//======================================================================== +//======================================================================== + + +//==================================================================== +//= OFilterExchangeHelper +//==================================================================== + +//======================================================================== + +//======================================================================== + +//======================================================================== +class FmFilterNavigatorWinMgr : public SfxChildWindow +{ +public: + FmFilterNavigatorWinMgr( Window *pParent, sal_uInt16 nId, SfxBindings *pBindings, + SfxChildWinInfo *pInfo ); + SFX_DECL_CHILDWINDOW( FmFilterNavigatorWinMgr ); +}; + +//........................................................................ +} // namespace svxform +//........................................................................ + +}//end of namespace binfilter +#endif // _SVX_FILTNAV_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/fmPropBrw.hxx b/binfilter/bf_svx/source/inc/fmPropBrw.hxx new file mode 100644 index 000000000000..f6bc43b656dd --- /dev/null +++ b/binfilter/bf_svx/source/inc/fmPropBrw.hxx @@ -0,0 +1,52 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef SVX_FMPROPBRW_HXX +#define SVX_FMPROPBRW_HXX + +#include <com/sun/star/awt/XControlContainer.hpp> +#include <bf_sfx2/childwin.hxx> +namespace binfilter { + +//======================================================================== +class FmPropBrwMgr : public SfxChildWindow +{ +protected: + ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer > + m_xUnoRepresentation; +public: + FmPropBrwMgr(Window *pParent, sal_uInt16 nId, SfxBindings *pBindings, SfxChildWinInfo *pInfo); + SFX_DECL_CHILDWINDOW(FmPropBrwMgr); +}; + +class FmPropControl; +class SfxBindings; +//======================================================================== +}//end of namespace binfilter +#endif //SVX_FMPROPBRW_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/fmcontr.hxx b/binfilter/bf_svx/source/inc/fmcontr.hxx new file mode 100644 index 000000000000..1afb3734f9cc --- /dev/null +++ b/binfilter/bf_svx/source/inc/fmcontr.hxx @@ -0,0 +1,254 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVX_FMCONTR_HXX +#define _SVX_FMCONTR_HXX + +#include <comphelper/stl_types.hxx> + +#include <com/sun/star/form/XFormComponent.hpp> +#include <com/sun/star/beans/XPropertyChangeListener.hpp> +#include <com/sun/star/beans/PropertyChangeEvent.hpp> +#include <com/sun/star/script/XEventAttacherManager.hpp> +#include <com/sun/star/script/ScriptEvent.hpp> +#include <com/sun/star/script/ScriptEventDescriptor.hpp> +#include <com/sun/star/container/XContainer.hpp> +#include <com/sun/star/container/XIndexContainer.hpp> +#include <com/sun/star/container/XNameReplace.hpp> +#include <com/sun/star/container/XIndexReplace.hpp> +#include <com/sun/star/container/XNameContainer.hpp> +#include <com/sun/star/lang/XEventListener.hpp> +#include <com/sun/star/lang/EventObject.hpp> +namespace binfilter { + +typedef ::std::hash_multimap< ::rtl::OUString, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > , ::comphelper::UStringHash, ::comphelper::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(); +}; + + +}//end of namespace binfilter +#endif // _SVX_FMCONTR_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/fmctrler.hxx b/binfilter/bf_svx/source/inc/fmctrler.hxx new file mode 100644 index 000000000000..4011ffd33445 --- /dev/null +++ b/binfilter/bf_svx/source/inc/fmctrler.hxx @@ -0,0 +1,405 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVX_FMCTRLER_HXX +#define _SVX_FMCTRLER_HXX + +#include <com/sun/star/sdb/XSQLErrorBroadcaster.hpp> +#include <com/sun/star/sdb/XRowSetApproveBroadcaster.hpp> +#include <com/sun/star/form/XResetListener.hpp> +#include <com/sun/star/container/XEnumerationAccess.hpp> +#include <com/sun/star/container/XChild.hpp> +#include <com/sun/star/container/XContainerListener.hpp> +#include <com/sun/star/form/XConfirmDeleteBroadcaster.hpp> +#include <com/sun/star/form/XLoadListener.hpp> +#include <com/sun/star/form/XDatabaseParameterBroadcaster.hpp> +#include <com/sun/star/form/XFormController.hpp> +#include <com/sun/star/util/XModeSelector.hpp> +#include <com/sun/star/util/XModifyBroadcaster.hpp> +#include <com/sun/star/script/XEventAttacherManager.hpp> +#include <com/sun/star/awt/XItemListener.hpp> +#include <com/sun/star/awt/XTextComponent.hpp> + +#include <vcl/timer.hxx> + +#include "fmtools.hxx" +#include "sqlparserclient.hxx" + +#include <cppuhelper/compbase12.hxx> +#include <comphelper/proparrhlp.hxx> +#include <comphelper/broadcasthelper.hxx> +class Window; +namespace binfilter { + +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<sal_Int64>(x.get()) < reinterpret_cast<sal_Int64>(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; + +typedef ::cppu::WeakAggComponentImplHelper12< ::com::sun::star::form::XFormController + ,::com::sun::star::container::XChild + ,::com::sun::star::container::XIndexAccess // access of child contoller + ,::com::sun::star::container::XEnumerationAccess + ,::com::sun::star::awt::XFocusListener + ,::com::sun::star::form::XLoadListener + ,::com::sun::star::beans::XPropertyChangeListener + ,::com::sun::star::awt::XTextListener + ,::com::sun::star::awt::XItemListener + ,::com::sun::star::container::XContainerListener + ,::com::sun::star::util::XModifyListener + ,::com::sun::star::util::XModifyBroadcaster> FmXFormController_BASE1; + +typedef ::cppu::ImplHelper12< ::com::sun::star::util::XModeSelector + ,::com::sun::star::form::XConfirmDeleteListener + ,::com::sun::star::form::XConfirmDeleteBroadcaster + ,::com::sun::star::sdb::XSQLErrorListener + ,::com::sun::star::sdb::XSQLErrorBroadcaster + ,::com::sun::star::sdbc::XRowSetListener + ,::com::sun::star::sdb::XRowSetApproveListener + ,::com::sun::star::sdb::XRowSetApproveBroadcaster + ,::com::sun::star::form::XDatabaseParameterListener + ,::com::sun::star::form::XDatabaseParameterBroadcaster + ,::com::sun::star::lang::XServiceInfo + ,::com::sun::star::form::XResetListener> FmXFormController_BASE2; +typedef ::cppu::ImplHelper2 < ::com::sun::star::lang::XUnoTunnel + , ::com::sun::star::frame::XDispatch + > FmXFormController_BASE3; + +//================================================================== +// FmXFormController +//================================================================== +class FmXFormController : public ::comphelper::OBaseMutex + ,public FmXFormController_BASE1 + ,public FmXFormController_BASE2 + ,public FmXFormController_BASE3 + ,public ::cppu::OPropertySetHelper + ,public FmDispatchInterceptor + ,public ::comphelper::OAggregationArrayUsageHelper< FmXFormController> + ,public ::binfilter::svxform::OSQLParserClient//STRIP008 ,public ::svxform::OSQLParserClient +{ + friend class FmXPageViewWinRec; + + ::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; + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xORB; + // 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; + ::binfilter::form::OImplementationIdsRef m_aHoldImplIdHelper;//STRIP008 ::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(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & _rxORB, + 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 FmXFormController_BASE1::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() throw (); + virtual void SAL_CALL release() throw (); + +// XTypeProvider + virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw(::com::sun::star::uno::RuntimeException) + { + return ::binfilter::form::OImplementationIds::getImplementationId(getTypes());//STRIP008 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(); + +// XDispatch + virtual void SAL_CALL dispatch( const ::com::sun::star::util::URL& _rURL, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& _rArgs ) throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL addStatusListener( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XStatusListener >& _rxListener, const ::com::sun::star::util::URL& _rURL ) throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL removeStatusListener( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XStatusListener >& _rxListener, const ::com::sun::star::util::URL& _rURL ) throw (::com::sun::star::uno::RuntimeException); + +// ::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 ) throw( ::com::sun::star::uno::Exception ); + 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() throw( ::com::sun::star::uno::RuntimeException ); + 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) throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL elementReplaced(const ::com::sun::star::container::ContainerEvent& rEvent) throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL elementRemoved(const ::com::sun::star::container::ContainerEvent& rEvent) throw( ::com::sun::star::uno::RuntimeException ); + +// XLoadListener + virtual void SAL_CALL loaded(const ::com::sun::star::lang::EventObject& rEvent) throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL unloaded(const ::com::sun::star::lang::EventObject& rEvent) throw( ::com::sun::star::uno::RuntimeException ); + 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) throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL removeModifyListener(const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener>& l) throw( ::com::sun::star::uno::RuntimeException ); + +// XFocusListener + virtual void SAL_CALL focusGained(const ::com::sun::star::awt::FocusEvent& e) throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL focusLost(const ::com::sun::star::awt::FocusEvent& e) throw( ::com::sun::star::uno::RuntimeException ); + +// ::com::sun::star::beans::XPropertyChangeListener -> aenderung der stati + virtual void SAL_CALL propertyChange(const ::com::sun::star::beans::PropertyChangeEvent& evt) throw( ::com::sun::star::uno::RuntimeException ); + +// XTextListener -> modify setzen + virtual void SAL_CALL textChanged(const ::com::sun::star::awt::TextEvent& rEvent) throw( ::com::sun::star::uno::RuntimeException ); + +// XItemListener -> modify setzen + virtual void SAL_CALL itemStateChanged(const ::com::sun::star::awt::ItemEvent& rEvent) throw( ::com::sun::star::uno::RuntimeException ); + +// XModifyListener -> modify setzen + virtual void SAL_CALL modified(const ::com::sun::star::lang::EventObject& rEvent) throw( ::com::sun::star::uno::RuntimeException ); + +// XFormController + virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> SAL_CALL getCurrentControl(void) throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL addActivateListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormControllerListener>& l) throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL removeActivateListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormControllerListener>& l) throw( ::com::sun::star::uno::RuntimeException ); + +// XTabController + virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> > SAL_CALL getControls(void) throw( ::com::sun::star::uno::RuntimeException ); + + virtual void SAL_CALL setModel(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabControllerModel>& Model) throw( ::com::sun::star::uno::RuntimeException ); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabControllerModel> SAL_CALL getModel() throw( ::com::sun::star::uno::RuntimeException ); + + virtual void SAL_CALL setContainer(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer>& Container) throw( ::com::sun::star::uno::RuntimeException ); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer> SAL_CALL getContainer() throw( ::com::sun::star::uno::RuntimeException ); + + virtual void SAL_CALL autoTabOrder() throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL activateTabOrder() throw( ::com::sun::star::uno::RuntimeException ); + + virtual void SAL_CALL activateFirst() throw( ::com::sun::star::uno::RuntimeException ); + virtual void SAL_CALL activateLast() throw( ::com::sun::star::uno::RuntimeException ); + +// ::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); + + // comphelper::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; + } + + 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 stopFiltering(); + 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 removeBoundFieldListener(); + + void startFormListening( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxForm, sal_Bool _bPropertiesOnly ); + void stopFormListening( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxForm, sal_Bool _bPropertiesOnly ); + + ::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 ,sal_Bool _bRemove = sal_True,sal_Bool _bOverWrite=sal_True) const; + + + + sal_Bool isLocked() const {return m_bLocked;} + + // returns m_pWindow or - if m_pWindow is NULL - the window of the currently set container + + // create a new interceptor, register it on the given object + // 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();} + + DECL_LINK( OnTimeout, void* ); + DECL_LINK( OnLoad, void* ); + DECL_LINK( OnToggleAutoFields, void* ); + DECL_LINK( OnUpdateDispatchers, void* ); +}; + + +}//end of namespace binfilter +#endif // _SVX_FMCTRLER_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/fmexch.hxx b/binfilter/bf_svx/source/inc/fmexch.hxx new file mode 100644 index 000000000000..0f8b6c8a998a --- /dev/null +++ b/binfilter/bf_svx/source/inc/fmexch.hxx @@ -0,0 +1,123 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVX_FMEXCH_HXX +#define _SVX_FMEXCH_HXX + +#include <comphelper/stl_types.hxx> + +#include <bf_svtools/transfer.hxx> + +class SvTreeListBox; +namespace binfilter { + +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")) + +//======================================================================== + +//........................................................................ +namespace svxform +{ +//........................................................................ + + //==================================================================== + + DECLARE_STL_VECTOR( SvLBoxEntry*, ListBoxEntryArray ); + + //==================================================================== + //= OLocalExchange + //==================================================================== + + //==================================================================== + //= OLocalExchangeHelper + //==================================================================== + /// a helper for navigator windows (SvTreeListBox'es) which allow DnD within themself + class OLocalExchangeHelper + { + protected: + Window* m_pDragSource; + + public: + OLocalExchangeHelper( Window* _pDragSource ); + ~OLocalExchangeHelper(); + + void prepareDrag( ); + + void startDrag( sal_Int8 nDragSourceActions ); + void copyToClipboard( ) const; + + + + protected: + + protected: + void implReset(); + }; + + //==================================================================== + //= OControlTransferData + //==================================================================== + + //==================================================================== + + //==================================================================== + //= OControlExchange + //==================================================================== + + //==================================================================== + //= OControlExchangeHelper + //==================================================================== +/*N*/ class OControlExchangeHelper : public OLocalExchangeHelper +/*N*/ { +/*N*/ public: +/*N*/ OControlExchangeHelper(Window* _pDragSource) : OLocalExchangeHelper(_pDragSource) { } +/*N*/ +/*N*/ +/*N*/ protected: +/*N*/ }; + + //==================================================================== + //==================================================================== + +//........................................................................ +} // namespace svxform +//........................................................................ + +}//end of namespace binfilter +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/fmexpl.hrc b/binfilter/bf_svx/source/inc/fmexpl.hrc new file mode 100644 index 000000000000..ce4d88ee5185 --- /dev/null +++ b/binfilter/bf_svx/source/inc/fmexpl.hrc @@ -0,0 +1,40 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _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/binfilter/bf_svx/source/inc/fmexpl.hxx b/binfilter/bf_svx/source/inc/fmexpl.hxx new file mode 100644 index 000000000000..5196aad1df57 --- /dev/null +++ b/binfilter/bf_svx/source/inc/fmexpl.hxx @@ -0,0 +1,131 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVX_FMEXPL_HXX +#define _SVX_FMEXPL_HXX + + + + + + + +#include <bf_sfx2/dockwin.hxx> + + + + + + + + + + + + +#include "fmview.hxx" + + +class SdrObjListIter; +namespace binfilter { + +class FmFormShell; +class SdrObject; +class FmFormModel; + +//======================================================================== + +//======================================================================== + +//======================================================================== + +//======================================================================== + +//======================================================================== + +//======================================================================== +class FmNavViewMarksChanged : public SfxHint +{ + FmFormView* pView; +public: + FmNavViewMarksChanged(FmFormView* pWhichView) { pView = pWhichView; } + virtual ~FmNavViewMarksChanged() {} + +}; + +//======================================================================== + +//======================================================================== + + +//======================================================================== +// FmNavRequestSelectHint - jemand teilt dem NavigatorTree mit, dass er bestimmte Eintraege selektieren soll + + + +//======================================================================== + + +//======================================================================== + + +//======================================================================== +//............................................................................ +namespace svxform +{ +//............................................................................ + + //======================================================================== + // class OFormComponentObserver + //======================================================================== + + //======================================================================== + //= NavigatorTreeModel + //======================================================================== + + //======================================================================== + + + //======================================================================== + + //======================================================================== + class NavigatorFrameManager : public SfxChildWindow + { + public: + NavigatorFrameManager( Window *pParent, sal_uInt16 nId, SfxBindings *pBindings, + SfxChildWinInfo *pInfo ); + SFX_DECL_CHILDWINDOW( NavigatorFrameManager ); + }; + +//............................................................................ +} // namespace svxform +//............................................................................ + +}//end of namespace binfilter +#endif // _SVX_FMEXPL_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/fmgroup.hxx b/binfilter/bf_svx/source/inc/fmgroup.hxx new file mode 100644 index 000000000000..ca89bf4b4f67 --- /dev/null +++ b/binfilter/bf_svx/source/inc/fmgroup.hxx @@ -0,0 +1,120 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVX_FMGROUP_HXX +#define _SVX_FMGROUP_HXX + +#include "fmcpont.hxx" + +#include <dbform.hxx> +namespace binfilter { + +DECLARE_LIST( FmCtrlModelList, XInterface* )//STRIP008 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; +}; + + +}//end of namespace binfilter +#endif // _SVX_FMGROUP_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/fmimplids.hxx b/binfilter/bf_svx/source/inc/fmimplids.hxx new file mode 100644 index 000000000000..252edb14bd7a --- /dev/null +++ b/binfilter/bf_svx/source/inc/fmimplids.hxx @@ -0,0 +1,41 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _FM_IMPLEMENTATION_IDS_HXX_ +#define _FM_IMPLEMENTATION_IDS_HXX_ + +#include <bf_svtools/idhelper.hxx> + +namespace binfilter { + +DECLARE_IMPLEMENTATIONID_HELPER_VSMALL(form, OImplementationIds) + +}//end of namespace binfilter +#endif // _FM_IMPLEMENTATION_IDS_HXX_ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/fmobj.hxx b/binfilter/bf_svx/source/inc/fmobj.hxx new file mode 100644 index 000000000000..3c217ae7b916 --- /dev/null +++ b/binfilter/bf_svx/source/inc/fmobj.hxx @@ -0,0 +1,103 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVX_FMOBJ_HXX +#define _SVX_FMOBJ_HXX + +#include "svdouno.hxx" + +#include <com/sun/star/script/ScriptEventDescriptor.hpp> +#include <com/sun/star/container/XIndexContainer.hpp> +namespace binfilter { + +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; + sal_Int32 m_nType; + +public: + TYPEINFO(); + +protected: + FmFormObj(sal_Int32 _nType); + + const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer>& GetParent() const {return xParent;} + 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; + + + + + /** returns the type of this form object. See fmglob.hxx + */ + sal_Int32 getType() const; + +protected: + virtual void WriteData(SvStream& rOut) const; + virtual void ReadData(const SdrObjIOHeader& rHead, SvStream& rIn); + + DECL_LINK(OnCreate, void* ); +}; + + +}//end of namespace binfilter +#endif // _FM_FMOBJ_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/fmpgeimp.hxx b/binfilter/bf_svx/source/inc/fmpgeimp.hxx new file mode 100644 index 000000000000..1c525d6d0190 --- /dev/null +++ b/binfilter/bf_svx/source/inc/fmpgeimp.hxx @@ -0,0 +1,126 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVX_FMUNOPGE_HXX +#define _SVX_FMUNOPGE_HXX + +#include <com/sun/star/sdbc/XDataSource.hpp> +#include <com/sun/star/container/XNameAccess.hpp> +#include <com/sun/star/form/XFormComponent.hpp> +#include <com/sun/star/form/XForm.hpp> +#include <com/sun/star/container/XNameContainer.hpp> +#include <com/sun/star/frame/XModel.hpp> +#include <com/sun/star/lang/XServiceInfo.hpp> + + +#include <tools/list.hxx> + +#include <comphelper/uno3.hxx> +FORWARD_DECLARE_INTERFACE(io,XObjectOutputStream) +FORWARD_DECLARE_INTERFACE(io,XObjectInputStream) +FORWARD_DECLARE_INTERFACE(container,XIndexContainer) +class SvStream; +namespace binfilter { + +class SdrIOHeader; +class FmFormObj; +class FmFormPage; +class SdrObject; + +//FORWARD_DECLARE_INTERFACE(uno,Reference) +//STRIP008 FORWARD_DECLARE_INTERFACE(io,XObjectOutputStream) +//STRIP008 FORWARD_DECLARE_INTERFACE(io,XObjectInputStream) +//STRIP008 FORWARD_DECLARE_INTERFACE(container,XIndexContainer) + +class SdrObjList; + +DECLARE_LIST(FmObjectList, FmFormObj*)//STRIP008 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 + ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel> xModel; + FmFormPage* pPage; + UniString m_sPageId; + + sal_Bool m_bFirstActivation : 1; + +protected: + FmFormPageImpl(FmFormPage* _pPage); + FmFormPageImpl(FmFormPage* _pPage, const FmFormPageImpl& rImpl); + ~FmFormPageImpl(); + + void Init(); + +public: + // nur wichtig fuer den DesignMode + const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm>& getCurForm() {return xCurrentForm;} + + // Defaults fuer ein Object setzen + // Eindeutigen Namen, Zuordnen zu einer Form falls noch nicht erfolgt + + UniString GetPageId() const { return m_sPageId; } + + // activation handling + inline sal_Bool hasEverBeenActivated( ) const { return !m_bFirstActivation; } + inline void setHasBeenActivated( ) { m_bFirstActivation = sal_False; } + +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; + + + +public: + + +}; + + +}//end of namespace binfilter +#endif // _SVX_FMUNOPGE_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/fmprop.hrc b/binfilter/bf_svx/source/inc/fmprop.hrc new file mode 100644 index 000000000000..d17908b7e3f6 --- /dev/null +++ b/binfilter/bf_svx/source/inc/fmprop.hrc @@ -0,0 +1,372 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _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 + // free +#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 + // free +#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 + // free +#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 + +#define FM_ATTR_TEXTLINECOLOR (FM_ATTR_START +199) // sal_Int32 +#define FM_ATTR_FONTEMPHASISMARK (FM_ATTR_START +200) // sal_Int16 +#define FM_ATTR_FONTRELIEF (FM_ATTR_START +201) // sal_Int16 + +namespace binfilter { +namespace svxform +{ + + 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_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); + + DECLARE_CONSTASCII_USTRING(FM_PROP_TEXTLINECOLOR); + DECLARE_CONSTASCII_USTRING(FM_PROP_FONTEMPHASISMARK); + DECLARE_CONSTASCII_USTRING(FM_PROP_FONTRELIEF); + +} // namespace svxform +} + +#endif // _SVX_FMPROP_HRC + diff --git a/binfilter/bf_svx/source/inc/fmresids.hrc b/binfilter/bf_svx/source/inc/fmresids.hrc new file mode 100644 index 000000000000..10055b8f1458 --- /dev/null +++ b/binfilter/bf_svx/source/inc/fmresids.hrc @@ -0,0 +1,147 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVX_FMRESIDS_HRC +#define _SVX_FMRESIDS_HRC + +// include ----------------------------------------------------------- +#include <bf_svtools/solar.hrc> + +// unnamed ressources ------------------------------------------------------- +// sub ressources ..................... + +// ImageList-Id's ----------------------------------------------------------- + +// 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) + +// 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) +// --------- free id ----------------- +#define RID_SVXERR_SEARCH_NORECORD (RID_FORMS_START + 15) +#define RID_SVXERR_SEARCH_GENERAL_ERROR (RID_FORMS_START + 16) + +// 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_FORM_FILTERED (RID_FORMS_START + 14) + +// Undo Strings + +// ErrorStrings + +#define RID_STR_NAME (RID_FORMS_START + 46) +#define RID_STR_FORM (RID_FORMS_START + 72) +#define RID_STR_FORMS (RID_FORMS_START + 84) + + + // free + + // FREE + + +#define RID_STR_CONTROL (RID_FORMS_START +197) + + + +#define RID_STR_SYNTAXERROR (RID_FORMS_START +218) + + + // free + +#define RID_STR_ERR_DELETERECORD (RID_FORMS_START +235) + +#define RID_STR_SVT_SQL_INTERNATIONAL (RID_FORMS_START +240) + +// ClassNames +#define RID_CLASSNAMES_START (RID_FORMS_START + 300) + + + +// Events +#define RID_STR_EVT_START (RID_FORMS_START +400) + + +// Error-String-Id's ----------------------------------------------------------- +#define RID_ERR_START (RID_FORMS_START + 600) + +// Error-Id's ----------------------------------------------------------- + + +// Ueberlaufpruefung ----------------------------------------------------- + +// Dialog-Id's +#define ACTFRM_RID_END RID_SVX_DLG_LABELCONTROL +#if ACTFRM_RID_END > RID_FORMS_END +#error Resource-Ueberlauf in #line, #file +#endif + + +#endif // _FM_FMPAGE_HXX + diff --git a/binfilter/bf_svx/source/inc/fmsearch.hrc b/binfilter/bf_svx/source/inc/fmsearch.hrc new file mode 100644 index 000000000000..ebd5cd1c1983 --- /dev/null +++ b/binfilter/bf_svx/source/inc/fmsearch.hrc @@ -0,0 +1,69 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _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 PB_SOUNDSLIKESETTINGS 3 + +#define FL_SEARCHFOR 1 +#define FL_WHERE 2 +#define FL_OPTIONS 3 +#define FL_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 +#define CB_HALFFULLFORMS 8 +#define CB_SOUNDSLIKECJK 9 + +#endif // _FMSEARCH_HRC diff --git a/binfilter/bf_svx/source/inc/fmservs.hxx b/binfilter/bf_svx/source/inc/fmservs.hxx new file mode 100644 index 000000000000..879243849563 --- /dev/null +++ b/binfilter/bf_svx/source/inc/fmservs.hxx @@ -0,0 +1,104 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVX_FMSERVS_HXX +#define _SVX_FMSERVS_HXX + +#include "fmstatic.hxx" +namespace binfilter { + +namespace svxform +{ + + DECLARE_CONSTASCII_USTRING(FM_NUMBER_FORMATTER); + + 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_GRID); + DECLARE_CONSTASCII_USTRING(FM_CONTROL_GRIDCONTROL); + + DECLARE_CONSTASCII_USTRING(FM_FORM_CONTROLLER); + DECLARE_CONSTASCII_USTRING(SRV_SDB_CONNECTION); + DECLARE_CONSTASCII_USTRING(SRV_SDB_INTERACTION_HANDLER); + + 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_GRIDCONTROL); + + void ImplSmartRegisterUnoServices(); + +} // namespace svxform + +}//end of namespace binfilter +#endif // _SVX_FMSERVS_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/fmshimp.hxx b/binfilter/bf_svx/source/inc/fmshimp.hxx new file mode 100644 index 000000000000..0d7093bb6d90 --- /dev/null +++ b/binfilter/bf_svx/source/inc/fmshimp.hxx @@ -0,0 +1,178 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVX_FMSHIMP_HXX +#define _SVX_FMSHIMP_HXX + + +#include <com/sun/star/container/XContainerListener.hpp> +#include <com/sun/star/util/XModifyListener.hpp> +#include <com/sun/star/form/XForm.hpp> +#include <com/sun/star/form/XFormController.hpp> +#include <com/sun/star/form/NavigationBarMode.hpp> +#include <com/sun/star/view/XSelectionChangeListener.hpp> + + + +#include "svdmark.hxx" + +#include "svxids.hrc" + + +#define _SVSTDARR_BOOLS +#define _SVSTDARR_BYTES +#define _SVSTDARR_LONGS +#define _SVSTDARR_ULONGS +#define _SVSTDARR_USHORTS + +#include "fmsearch.hxx" +#include <cppuhelper/compbase6.hxx> +#include <unotools/configitem.hxx> +#include "dbtoolsclient.hxx" + +#include <queue> +namespace binfilter { + +SV_DECL_PTRARR(SdrObjArray, SdrObject*, 32, 16)//STRIP008 ; +// 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( const Exception& ) { DBG_ERROR("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 + + +// flags for controlling the behaviour when calling loadForms +#define FORMS_LOAD 0x0000 // default: simply load +#define FORMS_SYNC 0x0000 // default: do in synchronous + +#define FORMS_UNLOAD 0x0001 // unload +#define FORMS_RESET 0x0002 // reset after the load/unload +#define FORMS_ASYNC 0x0004 // do this async + +// forward declarations +class FmFormShell; + + +//============================================================================== +// 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 + +//======================================================================== +// 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 FmFormPage; +//======================================================================== +struct FmLoadAction +{ + FmFormPage* pPage; + sal_uInt32 nEventId; + sal_uInt16 nFlags; + + FmLoadAction( ) : pPage( NULL ), nFlags( 0 ), nEventId( 0 ) { } + FmLoadAction( FmFormPage* _pPage, sal_uInt16 _nFlags, sal_uInt32 _nEventId ) + :pPage( _pPage ), nFlags( _nFlags ), nEventId( _nEventId ) + { + } +}; + +//======================================================================== +class SfxViewFrame; +typedef ::cppu::WeakComponentImplHelper6< ::com::sun::star::sdbc::XRowSetListener, + ::com::sun::star::beans::XPropertyChangeListener, + ::com::sun::star::util::XModifyListener, + ::com::sun::star::container::XContainerListener, + ::com::sun::star::view::XSelectionChangeListener, + ::com::sun::star::form::XFormControllerListener> FmXFormShell_BD_BASE; + +//======================================================================== +class FmXFormShell_Base_Disambiguation : public FmXFormShell_BD_BASE +{ +protected: + FmXFormShell_Base_Disambiguation( ::osl::Mutex& _rMutex ); + virtual void SAL_CALL disposing(); +}; + +//======================================================================== +typedef FmXFormShell_Base_Disambiguation FmXFormShell_BASE; +typedef ::utl::ConfigItem FmXFormShell_CFGBASE; + + + +//------------------------------------------------------------------------------ + +#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; \ +} \ + + + +}//end of namespace binfilter +#endif // _SVX_FMSHIMP_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/fmstatic.hxx b/binfilter/bf_svx/source/inc/fmstatic.hxx new file mode 100644 index 000000000000..1dec2fc46c51 --- /dev/null +++ b/binfilter/bf_svx/source/inc/fmstatic.hxx @@ -0,0 +1,82 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _FM_STATIC_HXX_ +#define _FM_STATIC_HXX_ +#include <tools/string.hxx> +namespace binfilter { + +struct ConstAsciiString +{ + const sal_Char* ascii; + sal_Int32 length; + + inline operator const ::rtl::OUString () const; + inline operator const sal_Char* () const { return ascii; } + + inline ConstAsciiString(const sal_Char* _pAsciiZeroTerminated, const sal_Int32 _nLength); + inline ~ConstAsciiString(); + +private: + mutable ::rtl::OUString* ustring; +}; + +//------------------------------------------------------------ +inline ConstAsciiString::ConstAsciiString(const sal_Char* _pAsciiZeroTerminated, const sal_Int32 _nLength) + :ascii(_pAsciiZeroTerminated) + ,length(_nLength) + ,ustring(NULL) +{ +} + +//------------------------------------------------------------ +inline ConstAsciiString::~ConstAsciiString() +{ + delete ustring; + ustring = NULL; +} + +//------------------------------------------------------------ +inline ConstAsciiString::operator const ::rtl::OUString () const +{ + if (!ustring) + ustring = new ::rtl::OUString(ascii, length, RTL_TEXTENCODING_ASCII_US); + return *ustring; +} + +#define DECLARE_CONSTASCII_USTRING(name) \ + extern ConstAsciiString name + +#define IMPLEMENT_CONSTASCII_USTRING(name, asciivalue) \ + ConstAsciiString name(asciivalue, sizeof(asciivalue) - 1) + + +}//end of namespace binfilter +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/fmtools.hxx b/binfilter/bf_svx/source/inc/fmtools.hxx new file mode 100644 index 000000000000..7d415c17ef8b --- /dev/null +++ b/binfilter/bf_svx/source/inc/fmtools.hxx @@ -0,0 +1,91 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVX_FMTOOLS_HXX +#define _SVX_FMTOOLS_HXX + +#include <com/sun/star/frame/XDispatchProviderInterception.hpp> +#include <com/sun/star/frame/XInterceptorInfo.hpp> +#include <com/sun/star/container/XIndexAccess.hpp> + + +#ifndef _SVSTDARR_ULONGS +#define _SVSTDARR_ULONGS +#endif + +#include "fmprop.hrc" +#include <cppuhelper/interfacecontainer.h> +#include <cppuhelper/compbase3.hxx> +#include <comphelper/uno3.hxx> +#include <cppuhelper/implbase2.hxx> +#include <cppuhelper/component.hxx> + +#include "fmimplids.hxx" + +class Window; +namespace binfilter { + + + +//================================================================== +// allgemeine Typen +//================================================================== +// displaying a database exception for the user +// display info about a simple ::com::sun::star::sdbc::SQLException +// display info about chained SQLExceptions + +// StringConversion +namespace svxform +{ + // modes for the XModeSelector + DECLARE_CONSTASCII_USTRING(DATA_MODE); + DECLARE_CONSTASCII_USTRING(FILTER_MODE); + +} // namespace svxform + + +// Kopieren von Persistenten Objecten + + +// Suchen in einer Indexliste nach einem Element + +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); + + + + +// =================================================================================================== +// = class CursorWrapper - eine Hilfsklasse, die parallel mit je einem ::com::sun::star::uno::Reference<XDatabaseUpdateCursor>, +// XDatabaseBookmarkCursor und XDatabaseDirectCursor arbeitet +// =================================================================================================== + + + +}//end of namespace binfilter +#endif // _SVX_FMTOOLS_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/fmundo.hxx b/binfilter/bf_svx/source/inc/fmundo.hxx new file mode 100644 index 000000000000..a8d9dabaa1d7 --- /dev/null +++ b/binfilter/bf_svx/source/inc/fmundo.hxx @@ -0,0 +1,148 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVX_FMUNDO_HXX +#define _SVX_FMUNDO_HXX + + +#include <com/sun/star/beans/XPropertyChangeListener.hpp> +#include <com/sun/star/script/XScriptListener.hpp> +#include <com/sun/star/container/XContainerListener.hpp> +#include <com/sun/star/container/XNameContainer.hpp> + +#include <cppuhelper/implbase3.hxx> + + + + +#include "svdouno.hxx" + +#include <comphelper/uno3.hxx> +FORWARD_DECLARE_INTERFACE(awt,XControl) +FORWARD_DECLARE_INTERFACE(awt,XControlContainer) +namespace binfilter { + +class FmFormModel; +class FmFormObj; +class SdrObject; +class FmXFormView; + +//STRIP008 FORWARD_DECLARE_INTERFACE(awt,XControl) +//STRIP008 FORWARD_DECLARE_INTERFACE(awt,XControlContainer) +//FORWARD_DECLARE_INTERFACE(uno,Reference) + +//================================================================== +// FmUndoPropertyAction +//================================================================== + +//================================================================== +// FmUndoContainerAction +//================================================================== + +//================================================================== +// FmUndoModelReplaceAction +//================================================================== + +//======================================================================== +class FmXUndoEnvironment + : public ::cppu::WeakImplHelper3< ::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; + + + +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) throw(::com::sun::star::uno::RuntimeException); + +// ::com::sun::star::container::XContainerListener + virtual void SAL_CALL elementInserted(const ::com::sun::star::container::ContainerEvent& rEvent) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL elementReplaced(const ::com::sun::star::container::ContainerEvent& rEvent) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL elementRemoved(const ::com::sun::star::container::ContainerEvent& rEvent) throw(::com::sun::star::uno::RuntimeException); + +// XScriptListener + virtual void SAL_CALL firing(const ::com::sun::star::script::ScriptEvent& evt) throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Any SAL_CALL approveFiring(const ::com::sun::star::script::ScriptEvent& evt) throw(::com::sun::star::reflection::InvocationTargetException, ::com::sun::star::uno::RuntimeException); + + 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(); + +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); +}; + + +}//end of namespace binfilter +#endif //_SVX_FMUNDO_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/fmurl.hxx b/binfilter/bf_svx/source/inc/fmurl.hxx new file mode 100644 index 000000000000..77e1616b17b8 --- /dev/null +++ b/binfilter/bf_svx/source/inc/fmurl.hxx @@ -0,0 +1,63 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVX_FMURL_HXX +#define _SVX_FMURL_HXX + +#include "fmstatic.hxx" +namespace binfilter { + +namespace svxform +{ + + 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); + +} // namespace svxform + +}//end of namespace binfilter +#endif // _SVX_FMURL_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/fmvwimp.hxx b/binfilter/bf_svx/source/inc/fmvwimp.hxx new file mode 100644 index 000000000000..35c68b52f385 --- /dev/null +++ b/binfilter/bf_svx/source/inc/fmvwimp.hxx @@ -0,0 +1,234 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVX_FMVWIMP_HXX +#define _SVX_FMVWIMP_HXX + +#include <comphelper/stl_types.hxx> + + +#include <com/sun/star/form/XForm.hpp> +#include <com/sun/star/container/XIndexAccess.hpp> +#include <com/sun/star/container/XEnumeration.hpp> +#include <com/sun/star/form/XFormController.hpp> +#include <com/sun/star/container/XContainerListener.hpp> +#include <com/sun/star/awt/XFocusListener.hpp> +#include <com/sun/star/sdb/SQLErrorEvent.hpp> +#include <tools/link.hxx> + +#include <cppuhelper/implbase1.hxx> +#include <cppuhelper/implbase3.hxx> +#include <comphelper/uno3.hxx> + +#include "svdmark.hxx" +FORWARD_DECLARE_INTERFACE(awt,XControl) +FORWARD_DECLARE_INTERFACE(awt,XWindow) +FORWARD_DECLARE_INTERFACE(beans,XPropertySet) +FORWARD_DECLARE_INTERFACE(util,XNumberFormats) +class Window; +class OutputDevice; +namespace binfilter { + +class SdrPageViewWinRec; +class SdrPageView; +class SdrObject; +class FmFormObj; +class FmFormModel; +class FmFormShell; +class FmFormView; + +//STRIP008 FORWARD_DECLARE_INTERFACE(awt,XControl) +//STRIP008 FORWARD_DECLARE_INTERFACE(awt,XWindow) +//STRIP008 FORWARD_DECLARE_INTERFACE(beans,XPropertySet) +//STRIP008 FORWARD_DECLARE_INTERFACE(util,XNumberFormats) + +class FmXFormController; +class FmXFormView; + +namespace svx { + class ODataAccessDescriptor; +} + +//================================================================== +// 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; + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xORB; + FmXFormView* m_pViewImpl; + Window* m_pWindow; + +public: + FmXPageViewWinRec( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _xORB, + const SdrPageViewWinRec*, FmXFormView* pView); + ~FmXPageViewWinRec(); + +// UNO Anbindung + +// ::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); + ::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<FmXPageViewWinRec*> FmWinRecList; +//================================================================== +// FmXFormView +//================================================================== +class FmXFormView : public ::cppu::WeakImplHelper3< + ::com::sun::star::form::XFormControllerListener, + ::com::sun::star::awt::XFocusListener, + ::com::sun::star::container::XContainerListener> +{ + friend class FmFormView; + friend class FmFormShell; + friend class FmXFormShell; + friend class FmXPageViewWinRec; + class ObjectRemoveListener; + friend class ObjectRemoveListener; + + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xORB; + ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow> m_xWindow; + + FmFormObj* m_pMarkedGrid; + FmFormView* m_pView; + sal_uInt32 m_nActivationEvent; + sal_uInt32 m_nErrorMessageEvent; // event for an asynchronous error message. See also m_aAsyncError + sal_uInt32 m_nAutoFocusEvent; // event for asynchronously setting the focus to a control + + ::com::sun::star::sdb::SQLErrorEvent + m_aAsyncError; // error event which is to be displayed asyn. See m_nErrorMessageEvent. + + FmWinRecList m_aWinList; // to be filled in alive mode only + + // Liste der markierten Object, dient zur Restauration beim Umschalten von Alive in DesignMode + SdrMarkList m_aMark; + ObjectRemoveListener* m_pWatchStoredList; + + sal_Bool m_bFirstActivation : 1; + + + + FmFormShell* GetFormShell() const; + + void removeGridWindowListening(); + +protected: + FmXFormView(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _xORB, + FmFormView* _pView); + ~FmXFormView(); + + void saveMarkList( sal_Bool _bSmartUnmark = sal_True ); + void restoreMarkList( SdrMarkList& _rRestoredMarkList ); + void stopMarkListWatching(); + void startMarkListWatching(); + + void notifyViewDying( ); + // notifies this impl class that the anti-impl instance (m_pView) is going to die + +public: + // UNO Anbindung + +// ::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) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL elementReplaced(const ::com::sun::star::container::ContainerEvent& rEvent) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL elementRemoved(const ::com::sun::star::container::ContainerEvent& rEvent) throw(::com::sun::star::uno::RuntimeException); + +// ::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); + + // XFocusListener + virtual void SAL_CALL focusGained( const ::com::sun::star::awt::FocusEvent& e ) throw (::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL focusLost( const ::com::sun::star::awt::FocusEvent& e ) throw (::com::sun::star::uno::RuntimeException); + + FmFormView* getView() const {return m_pView;} + const FmWinRecList& getWindowList() const {return m_aWinList;} + + + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > getORB() { return m_xORB; } + + // activation handling + inline sal_Bool hasEverBeenActivated( ) const { return !m_bFirstActivation; } + inline void setHasBeenActivated( ) { m_bFirstActivation = sal_False; } + + void onFirstViewActivation( const FmFormModel* _pDocModel ); + +private: + 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(sal_Bool bSync = sal_False); + void Deactivate(BOOL bDeactivateController = TRUE); + + + + void ObjectRemovedInAliveMode(const SdrObject* pObject); + + // asynchronously displays an error message. See also OnDelayedErrorMessage. + void displayAsyncErrorMessage( const ::com::sun::star::sdb::SQLErrorEvent& _rEvent ); + + // cancels all pending async events + void cancelEvents(); + + /// the the auto focus to the first (in terms of the tab order) control + DECL_LINK( OnActivate, void* ); + DECL_LINK( OnAutoFocus, void* ); + DECL_LINK( OnDelayedErrorMessage, void* ); +}; + + + +}//end of namespace binfilter +#endif // _SVX_FMVWIMP_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/gridcell.hxx b/binfilter/bf_svx/source/inc/gridcell.hxx new file mode 100644 index 000000000000..9563b2bc38b4 --- /dev/null +++ b/binfilter/bf_svx/source/inc/gridcell.hxx @@ -0,0 +1,929 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVX_GRIDCELL_HXX +#define _SVX_GRIDCELL_HXX + +#include "gridctrl.hxx" + +#include "fmtools.hxx" + + +#include <com/sun/star/form/XBoundControl.hpp> +#include <com/sun/star/awt/XTextComponent.hpp> +#include <com/sun/star/awt/XListBox.hpp> +#include <com/sun/star/awt/TextAlign.hpp> +#include <com/sun/star/awt/XControl.hpp> +#include <com/sun/star/awt/XCheckBox.hpp> +#include "sqlparserclient.hxx" +class Edit; +namespace binfilter { + +class DbCellControl; +class FmXGridCell; + +//================================================================== +// FmMutexHelper +//================================================================== +class FmMutexHelper +{ +protected: + ::osl::Mutex m_aMutex; +}; + +//================================================================== +// 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 + CellControllerRef 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 CellControllerRef 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 CellControllerRef& 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 +:public ::binfilter::svxform::OStaticDataAccessTools//STRIP001 ,public ::svxform::OStaticDataAccessTools + ,public FmMutexHelper // _before_ the listener, so the listener is to be destroyed first! + ,public ::comphelper::OPropertyChangeListener +{ +private: + ::comphelper::OPropertyChangeMultiplexer* m_pModelChangeBroadcaster; + +private: + sal_Bool m_bTransparent : 1; + sal_Bool m_bAlignedController : 1; + sal_Bool m_bAccessingValueProperty : 1; + +protected: + DbGridColumn& m_rColumn; + Window* m_pPainter; + Window* m_pWindow; + +protected: + // control transparency + inline sal_Bool isTransparent( ) const { return m_bTransparent; } + inline void setTransparent( sal_Bool _bSet ) { m_bTransparent = _bSet; } + + // control alignment + inline void setAlignedController( sal_Bool _bAlign = sal_True ) { m_bAlignedController = _bAlign; } + + + /** determined whether or not the value property is locked + @see lockValueProperty + */ + inline sal_Bool isValuePropertyLocked() const; + + /** locks the listening at the value property. + <p>This means that every subsequent change now done on the value property of the model ("Text", or "Value", + or whatever) is then ignored.<br/> + This base class uses this setting in <method>Commit</method>.</p> + @precond + Value locking can't be nested + @see unlockValueProperty + */ + inline void lockValueProperty(); + /** unlocks the listening at the value property + @see lockValueProperty + */ + inline void unlockValueProperty(); + +protected: + // adds the given property to the list of properties which we listen for + void doPropertyListening( const ::rtl::OUString& _rPropertyName ); + + // called whenever a property which affects field settings in general is called + // you should overwrite this method for every property you add yourself as listener to + // with doPropertyListening + virtual void implAdjustGenericFieldSetting( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel ); + + // called by _propertyChanged if a property which denotes the column value has changed + void implValuePropertyChanged( ); + + +public: + DbCellControl(DbGridColumn& _rColumn, sal_Bool _bText = sal_True); + virtual ~DbCellControl(); + + + Window* GetControl() const { return m_pWindow; } + + // control alignment + inline sal_Bool isAlignedController() const { return m_bAlignedController; } + void AlignControl(sal_Int16 nAlignment); + + void SetTextLineColor(); + void SetTextLineColor(const Color& _rColor); + + // Initialisieren bevor ein Control angezeigt wird + virtual void Init(Window* pParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xCursor); + virtual CellControllerRef CreateController() const = 0; + + // Schreiben des Wertes in das Model + sal_Bool Commit(); + + // 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; + + void invalidatedController(); + + /** commits the content of the control (e.g. the text of an edit field) into the column model + (e.g. the "Text" property of the model). + <p>To be overwritten in derived classes.</p> + @see updateFromModel + */ + virtual sal_Bool commitControl( ) = 0; + + /** updates the current content of the control (e.g. the text of an edit field) from the column model + (e.g. the "Text" property of the model). + <p>To be overwritten in derived classes.</p> + @precond + NULL != _rxModel + @precond + NULL != m_pWindow + + @see commitControl + */ + virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel ) = 0; + +protected: +// OPropertyChangeListener + virtual void _propertyChanged(const ::com::sun::star::beans::PropertyChangeEvent& evt) throw(::com::sun::star::uno::RuntimeException); + +private: + void implDoPropertyListening( const ::rtl::OUString& _rPropertyName, sal_Bool _bWarnIfNotExistent = sal_True ); + + /// updates the "readonly" setting on m_pWindow, according to the respective property value in the given model + void implAdjustReadOnly( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel ); + + /// updates the "enabled" setting on m_pWindow, according to the respective property value in the given model + void implAdjustEnabled( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel ); +}; + +//================================================================== +//------------------------------------------------------------------ +inline sal_Bool DbCellControl::isValuePropertyLocked() const +{ + return m_bAccessingValueProperty; +} + +//------------------------------------------------------------------ +inline void DbCellControl::lockValueProperty() +{ + OSL_ENSURE( !isValuePropertyLocked(), "DbCellControl::lockValueProperty: not to be nested!" ); + m_bAccessingValueProperty = sal_True; +} + +//------------------------------------------------------------------ +inline void DbCellControl::unlockValueProperty() +{ + OSL_ENSURE( isValuePropertyLocked(), "DbCellControl::lockValueProperty: not locked so far!" ); + m_bAccessingValueProperty = sal_False; +} + +//================================================================== +/** a field which is bound to a column which supports the MaxTextLen property +*/ +class DbLimitedLengthField : public DbCellControl +{ +protected: + DbLimitedLengthField( DbGridColumn& _rColumn ); + +protected: + // DbCellControl + virtual void implAdjustGenericFieldSetting( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel ); +}; + +//================================================================== +class DbTextField : public DbLimitedLengthField +{ + 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 CellControllerRef CreateController() const; + +protected: + // DbCellControl + virtual sal_Bool commitControl( ); + virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel ); +}; + +//================================================================== +class DbFormattedField : public DbLimitedLengthField +{ +protected: + ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatsSupplier > m_xSupplier; + sal_Int16 m_nKeyType; + + +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 CellControllerRef CreateController() const; + +protected: + // DbCellControl + virtual sal_Bool commitControl( ); + virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel ); + + // OPropertyChangeListener + virtual void _propertyChanged(const ::com::sun::star::beans::PropertyChangeEvent& evt) throw(::com::sun::star::uno::RuntimeException); +}; + +//================================================================== +class DbCheckBox : public DbCellControl +{ +public: + DbCheckBox(DbGridColumn& _rColumn); + 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 CellControllerRef CreateController() const; + 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); + +protected: + // DbCellControl + virtual sal_Bool commitControl( ); + virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel ); +}; + +//================================================================== +class DbComboBox : public DbCellControl +{ + sal_Int16 m_nKeyType; + +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 CellControllerRef CreateController() const; + + void SetList(const ::com::sun::star::uno::Any& rItems); + +protected: + // DbCellControl + virtual sal_Bool commitControl( ); + virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel ); + + virtual void implAdjustGenericFieldSetting( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel ); + + // OPropertyChangeListener + virtual void _propertyChanged(const ::com::sun::star::beans::PropertyChangeEvent& evt) throw(::com::sun::star::uno::RuntimeException); +}; + +//================================================================== +class DbListBox :public DbCellControl +{ + sal_Bool m_bBound : 1; + ::com::sun::star::uno::Sequence< ::rtl::OUString > m_aValueList; + +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 CellControllerRef CreateController() const; + + void SetList(const ::com::sun::star::uno::Any& rItems); + +protected: + // DbCellControl + virtual sal_Bool commitControl( ); + virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel ); + + virtual void implAdjustGenericFieldSetting( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel ); + + // OPropertyChangeListener + virtual void _propertyChanged(const ::com::sun::star::beans::PropertyChangeEvent& evt) throw(::com::sun::star::uno::RuntimeException); +}; + +//================================================================== +class DbPatternField : public DbCellControl +{ +public: + DbPatternField(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 CellControllerRef CreateController() const; + +protected: + /// DbCellControl + virtual sal_Bool commitControl( ); + virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel ); + + virtual void implAdjustGenericFieldSetting( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel ); +}; + +//================================================================== +class DbSpinField : public DbCellControl +{ +private: + sal_Int16 m_nStandardAlign; + +protected: + DbSpinField( DbGridColumn& _rColumn, sal_Int16 _nStandardAlign = ::com::sun::star::awt::TextAlign::RIGHT ); + +public: + virtual void Init( Window* pParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& _rxCursor ); + virtual CellControllerRef CreateController() const; + +protected: + virtual SpinField* createField( + Window* _pParent, + WinBits _nFieldStyle, + const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel + ) = 0; +}; + +//================================================================== +class DbDateField : public DbSpinField +{ +public: + DbDateField(DbGridColumn& _rColumn); + 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); + +protected: + // DbCellControl + virtual sal_Bool commitControl( ); + virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel ); + + // DbSpinField + virtual SpinField* createField( + Window* _pParent, + WinBits _nFieldStyle, + const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel + ); + + /// initializes everything which relates to the properties describing the numeric behaviour + virtual void implAdjustGenericFieldSetting( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel ); +}; + +//================================================================== +class DbTimeField : public DbSpinField +{ +public: + DbTimeField(DbGridColumn& _rColumn); + 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); + +protected: + // DbCellControl + virtual sal_Bool commitControl( ); + virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel ); + + // DbSpinField + virtual SpinField* createField( + Window* _pParent, + WinBits _nFieldStyle, + const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel + ); + + /// initializes everything which relates to the properties describing the numeric behaviour + virtual void implAdjustGenericFieldSetting( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel ); +}; + +//================================================================== +class DbCurrencyField : public DbSpinField +{ + sal_Int16 m_nScale; + +public: + DbCurrencyField(DbGridColumn& _rColumn); + 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); + +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; + +protected: + // DbCellControl + virtual sal_Bool commitControl( ); + virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel ); + + // DbSpinField + virtual SpinField* createField( + Window* _pParent, + WinBits _nFieldStyle, + const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel + ); + + /// initializes everything which relates to the properties describing the numeric behaviour + virtual void implAdjustGenericFieldSetting( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel ); +}; + +//================================================================== +class DbNumericField : public DbSpinField +{ +public: + DbNumericField(DbGridColumn& _rColumn); + 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); + +protected: + // DbCellControl + virtual sal_Bool commitControl( ); + virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel ); + + // DbSpinField + virtual SpinField* createField( + Window* _pParent, + WinBits _nFieldStyle, + const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel + ); + + /// initializes everything which relates to the properties describing the numeric behaviour + void implAdjustGenericFieldSetting( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxModel ); +}; + +//================================================================== +class DbFilterField + :public DbCellControl + ,public ::binfilter::svxform::OSQLParserClient//STRIP008 ,public ::svxform::OSQLParserClient +{ + ::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(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB,DbGridColumn& _rColumn); + virtual ~DbFilterField(); + + virtual void Init(Window* pParent, const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& xCursor); + virtual CellControllerRef CreateController() const; + virtual void Paint(OutputDevice& rDev, const Rectangle& rRect); + 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: + + // DbCellControl + virtual sal_Bool commitControl( ); + virtual void updateFromModel( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > _rxModel ); + +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; + + virtual ~FmXGridCell(); +public: + TYPEINFO(); + FmXGridCell(DbGridColumn* pColumn, DbCellControl* pControl); + + + 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); + + void SetTextLineColor(); + void SetTextLineColor(const Color& _rColor); + +// 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() throw (::com::sun::star::uno::RuntimeException) {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) throw (::com::sun::star::uno::RuntimeException) {return sal_False;} + virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel > SAL_CALL getModel() throw (::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XView > SAL_CALL getView() throw (::com::sun::star::uno::RuntimeException) {return ::com::sun::star::uno::Reference< ::com::sun::star::awt::XView > ();} + virtual void SAL_CALL setDesignMode(sal_Bool bOn) throw (::com::sun::star::uno::RuntimeException) {} + virtual sal_Bool SAL_CALL isDesignMode() throw (::com::sun::star::uno::RuntimeException) {return sal_False;} + virtual sal_Bool SAL_CALL isTransparent() throw (::com::sun::star::uno::RuntimeException) {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; + + virtual ~FmXEditCell(); +public: + FmXEditCell(DbGridColumn* pColumn, DbCellControl* pControl); + + + 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; +protected: + virtual ~FmXCheckBoxCell(); +public: + FmXCheckBoxCell(DbGridColumn* pColumn, DbCellControl* pControl); + + +// 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; +protected: + virtual ~FmXListBoxCell(); +public: + FmXListBoxCell(DbGridColumn* pColumn, DbCellControl* pControl); + + + 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; +protected: + virtual ~FmXFilterCell(); +public: + TYPEINFO(); + FmXFilterCell(DbGridColumn* pColumn = NULL, DbCellControl* pControl = NULL); + + + 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<sal_Int8>& 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* ); +}; + +}//end of namespace binfilter +#endif // _SVX_GRIDCELL_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/gridcols.hxx b/binfilter/bf_svx/source/inc/gridcols.hxx new file mode 100644 index 000000000000..d06288915732 --- /dev/null +++ b/binfilter/bf_svx/source/inc/gridcols.hxx @@ -0,0 +1,71 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVX_GRIDCOLS_HXX +#define _SVX_GRIDCOLS_HXX + +#include "fmstatic.hxx" +namespace binfilter { + +namespace svxform +{ + + // list of possible 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); + +} // namespace svxform + + +// 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); + + +}//end of namespace binfilter +#endif // _SVX_GRIDCOLS_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/multipro.hxx b/binfilter/bf_svx/source/inc/multipro.hxx new file mode 100644 index 000000000000..af1d48483f79 --- /dev/null +++ b/binfilter/bf_svx/source/inc/multipro.hxx @@ -0,0 +1,74 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _MULTIPRO_HXX +#define _MULTIPRO_HXX + +#include <com/sun/star/form/XFormComponent.hpp> +#include <comphelper/composedprops.hxx> +#include <svdmark.hxx> +namespace binfilter { + +//......................................................................... +namespace svxform +{ +//......................................................................... + + //================================================================== + // FmXMultiSet + //================================================================== + typedef ::comphelper::OComposedPropertySet FmXMultiSet_Base; + class FmXMultiSet + :public FmXMultiSet_Base + ,public ::com::sun::star::form::XFormComponent + { + protected: + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > m_xParent; + + public: + FmXMultiSet(const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet> > & _rPropertySets); + + // XInterface + virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL acquire( ) throw(); + virtual void SAL_CALL release( ) throw(); + + // XChild + virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getParent( ) throw(::com::sun::star::uno::RuntimeException); + 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); + + static FmXMultiSet* Create(const SdrMarkList& rMarkList); + }; + +//......................................................................... +} // namespace svxform +//......................................................................... + +}//end of namespace binfilter +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/mutxhelp.hxx b/binfilter/bf_svx/source/inc/mutxhelp.hxx new file mode 100644 index 000000000000..86fc0a3b9e5a --- /dev/null +++ b/binfilter/bf_svx/source/inc/mutxhelp.hxx @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVX_MUTXHELP_HXX +#define _SVX_MUTXHELP_HXX + +#include <osl/mutex.hxx> +namespace binfilter { + +class SvxMutexHelper +{ +private: + ::osl::Mutex maMutex; + +public: + ::osl::Mutex& getMutex() { return maMutex; } +}; + +}//end of namespace binfilter +#endif + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/sdbdatacolumn.hxx b/binfilter/bf_svx/source/inc/sdbdatacolumn.hxx new file mode 100644 index 000000000000..178dd169e5c7 --- /dev/null +++ b/binfilter/bf_svx/source/inc/sdbdatacolumn.hxx @@ -0,0 +1,145 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef SVX_FORM_SDBDATACOLUMN_HXX +#define SVX_FORM_SDBDATACOLUMN_HXX + +#include <com/sun/star/beans/XPropertySet.hpp> +#include <com/sun/star/sdb/XColumn.hpp> +#include <com/sun/star/sdb/XColumnUpdate.hpp> +#include <osl/diagnose.h> +namespace binfilter { + +//.............................................................................. +namespace svxform +{ +//.............................................................................. + + //========================================================================== + //= DataColumn - 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(); } + sal_Bool supportsUpdate() const { return m_xColumnUpdate.is(); } + + DataColumn* operator ->() { return this; } + operator ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> () const{ return m_xColumn.get(); } + + // 'conversions' + inline const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& getPropertySet() const + { + return m_xPropertySet; + } + inline const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumn>& getColumn() const + { + return m_xColumn; + } + inline const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XColumnUpdate>& getColumnUpdate() const + { + OSL_ENSURE(m_xColumnUpdate.is() , "DataColumn::getColumnUpdate: 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 ); + }; + +} +#endif // SVX_FORM_SDBDATACOLUMN_HXX + +//.............................................................................. +}//end of namespace binfilter // namespace svxform +//.............................................................................. + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/showcols.hxx b/binfilter/bf_svx/source/inc/showcols.hxx new file mode 100644 index 000000000000..90f37f344a3a --- /dev/null +++ b/binfilter/bf_svx/source/inc/showcols.hxx @@ -0,0 +1,69 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVX_SHOWCOLS_HXX +#define _SVX_SHOWCOLS_HXX + +#include <vcl/dialog.hxx> + +#include <vcl/lstbox.hxx> + +#include <vcl/fixed.hxx> + +#include <vcl/button.hxx> + +#include <com/sun/star/container/XIndexContainer.hpp> +namespace binfilter { + +//========================================================================== +// FmShowColsDialog +//========================================================================== + +class FmShowColsDialog : public ModalDialog +{ + ListBox m_aList; + FixedText m_aLabel; + OKButton m_aOK; + CancelButton m_aCancel; + + ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > m_xColumns; + +public: + FmShowColsDialog( Window* pParent ); + virtual ~FmShowColsDialog(); + + void SetColumns(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer>& xCols); + +protected: + DECL_LINK( OnClickedOk, Button* ); +}; + +}//end of namespace binfilter +#endif // _SVX_SHOWCOLS_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/sqlparserclient.hxx b/binfilter/bf_svx/source/inc/sqlparserclient.hxx new file mode 100644 index 000000000000..1e0043c843c6 --- /dev/null +++ b/binfilter/bf_svx/source/inc/sqlparserclient.hxx @@ -0,0 +1,70 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef SVX_SQLPARSERCLIENT_HXX +#define SVX_SQLPARSERCLIENT_HXX + +#include "dbtoolsclient.hxx" +#include "ParseContext.hxx" +namespace binfilter { + +//........................................................................ +namespace svxform +{ +//........................................................................ + + //==================================================================== + //= OSQLParserClient + //==================================================================== + class OSQLParserClient : public ODbtoolsClient + ,public ::binfilter::svxform::OParseContextClient//STRIP008 ,public ::svxform::OParseContextClient + { + private: + //add by BerryJia for fixing Bug97420 Time:2002-9-12-11:00(PRC time) + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xORB; + + protected: + mutable ::rtl::Reference< ::connectivity::simple::ISQLParser > m_xParser; + + protected: + OSQLParserClient( + const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB); + //add by BerryJia for fixing Bug97420 Time:2002-9-12-11:00(PRC time) + + protected: + }; + +//........................................................................ +} // namespace svxform +//........................................................................ + +}//end of namespace binfilter +#endif // SVX_SQLPARSERCLIENT_HXX + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/svdoimp.hxx b/binfilter/bf_svx/source/inc/svdoimp.hxx new file mode 100644 index 000000000000..a182dd38ee06 --- /dev/null +++ b/binfilter/bf_svx/source/inc/svdoimp.hxx @@ -0,0 +1,277 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVX_SVDOIMP_HXX +#define _SVX_SVDOIMP_HXX + +#include <memory> +#include <vector> + +#include <cppuhelper/weakref.hxx> + +#include <vcl/mapmod.hxx> + +#include <bf_svtools/lstner.hxx> + +#include <vcl/timer.hxx> + +#include "svdsob.hxx" + +#include "svdtypes.hxx" // fuer SdrLayerID + +#include "svdglue.hxx" // Klebepunkte + +#include "xdash.hxx" + +#include "xpoly.hxx" + +#include "poly3d.hxx" + +#include "xenum.hxx" +class PolyPolygon; +namespace binfilter { + +class SfxItemSet; +class SdrObject; +class ExtOutputDevice; +class XFillAttrSetItem; +class XLineAttrSetItem; +class XPolyPolygon; +class XPolygon; + +/////////////////////////////////////////////////////////////////////////////// + +// #100127# Bracket filled shapes with a comment, if recording a Mtf +class ImpGraphicFill +{ +public: + ImpGraphicFill( const SdrObject& rObj, const ExtOutputDevice& rXOut, const SfxItemSet& rFillItemSet, bool bIsShadow=false ); + ~ImpGraphicFill(); + +private: + const SdrObject& mrObj; + const ExtOutputDevice& mrXOut; + bool mbCommentWritten; +}; + +/////////////////////////////////////////////////////////////////////////////// + +// #104609# Extracted from XOutputDevice::ImpCalcBmpFillStartValues + +/** Calc offset and size for bitmap fill + + This method calculates the size and the offset from the left, top + position of a shape in logical coordinates + + @param rStartOffset + The offset from the left, top position of the output rectangle is returned + + @param rBmpOutputSize + The output size of the bitmap is returned herein + + @param rOutputRect + Specifies the output rectangle into which the bitmap should be tiled into + + @param rOutputMapMode + Specifies the logical coordinate system the output rectangle is in + + @param rFillBitmap + Specifies the bitmap to fill with + + @param rBmpSize + The desired destination bitmap size. If null, size is taken from the bitmap + + @param rBmpPerCent + Percentage of bitmap size, relative to the output rectangle + + @param rBmpOffPerCent + Offset for bitmap tiling, in percentage relative to bitmap output size + + @param bBmpLogSize + True when using the preferred bitmap size, False when using the percentage value + + @param bBmpTile + True for tiling. False only paints one instance of the bitmap + + @param bBmpStretch + True if bitmap should be stretched to output rect dimension + + @param eBmpRectPoint + Position of the start point relative to the bitmap + + */ +void ImpCalcBmpFillSizes( Size& rStartOffset, + Size& rBmpOutputSize, + const Rectangle& rOutputRect, + const MapMode& rOutputMapMode, + const Bitmap& rFillBitmap, + const Size& rBmpSize, + const Size& rBmpPerCent, + const Size& rBmpOffPerCent, + BOOL bBmpLogSize, + BOOL bBmpTile, + BOOL bBmpStretch, + RECT_POINT eBmpRectPoint ); + + +/////////////////////////////////////////////////////////////////////////////// + +class ImpLineStyleParameterPack +{ + OutputDevice* mpOut; + XDash aDash; + + XLineJoint eLineJoint; + XLineStyle eLineStyle; + + const XPolygon& rStartPolygon; + const XPolygon& rEndPolygon; + + INT32 nLineWidth; + INT32 nStartWidth; + INT32 nEndWidth; + + ::std::vector<double> aDotDashArray; + double fFullDashDotLen; + double fDegreeStepWidth; + + BOOL bStartCentered; + BOOL bEndCentered; + BOOL bForceNoArrowsLeft; + BOOL bForceNoArrowsRight; + BOOL bForceHair; + +public: + ImpLineStyleParameterPack(const SfxItemSet& rSet, + BOOL bForceHair, OutputDevice* pOut); + ~ImpLineStyleParameterPack(); + + OutputDevice* GetOutDev() const { return mpOut; } + INT32 GetLineWidth() const { return nLineWidth; } + INT32 GetDisplayLineWidth() const { return bForceHair ? 0 : nLineWidth; } + XLineStyle GetLineStyle() const { return eLineStyle; } + + INT32 GetStartWidth() const { return nStartWidth; } + INT32 GetDisplayStartWidth() const { return bForceHair ? 0 : nStartWidth; } + INT32 GetEndWidth() const { return nEndWidth; } + INT32 GetDisplayEndWidth() const { return bForceHair ? 0 : nEndWidth; } + + const XPolygon& GetStartPolygon() const { return rStartPolygon; } + const XPolygon& GetEndPolygon() const { return rEndPolygon; } + + double GetDegreeStepWidth() const { return fDegreeStepWidth; } + + XLineJoint GetLineJoint() const { return eLineJoint; } + double GetLinejointMiterUpperBound() const { return 3.0; } + + XDashStyle GetDashStyle() const { return aDash.GetDashStyle(); } + UINT16 GetDots() const { return aDash.GetDots(); } + UINT32 GetDotLen() const { return aDash.GetDotLen(); } + UINT16 GetDashes() const { return aDash.GetDashes(); } + UINT32 GetDashLen() const { return aDash.GetDashLen(); } + UINT32 GetDashDistance() const { return aDash.GetDistance(); } + double GetFullDashDotLen() const { return fFullDashDotLen; } + UINT16 GetFirstDashDotIndex(double fPos, double& rfDist) const; + UINT16 GetNextDashDotIndex(UINT16 nInd, double& rfDist) const; + ::std::vector< double > GetDotDash() const { return ::std::vector< double >(aDotDashArray); } + + BOOL IsStartCentered() const { return bStartCentered; } + BOOL IsEndCentered() const { return bEndCentered; } + + BOOL IsStartActive() const { return (!bForceNoArrowsLeft && GetStartPolygon().GetPointCount() && GetStartWidth()); } + BOOL IsEndActive() const { return (!bForceNoArrowsRight && GetEndPolygon().GetPointCount() && GetEndWidth()); } + + void ForceNoArrowsLeft(BOOL bNew) { bForceNoArrowsLeft = bNew; } + void ForceNoArrowsRight(BOOL bNew) { bForceNoArrowsRight = bNew; } +}; + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +class ImpLineGeometryCreator +{ + const ImpLineStyleParameterPack& mrLineAttr; + PolyPolygon3D& mrPolyPoly3D; + PolyPolygon3D& mrPolyLine3D; + BOOL mbLineDraft; + + // private support functions + // help functions for line geometry creation + void ImpCreateLineGeometry(const Polygon3D& rSourcePoly); + double ImpCreateLineStartEnd(Polygon3D& rArrowPoly, const Polygon3D& rSourcePoly, BOOL bFront, double fWantedWidth, BOOL bCentered); + void ImpCreateSegmentsForLine(const Vector3D* pPrev, const Vector3D* pLeft, const Vector3D* pRight, const Vector3D* pNext, double fPolyPos); + void ImpCreateLineSegment(const Vector3D* pPrev, const Vector3D* pLeft, const Vector3D* pRight, const Vector3D* pNext); + double ImpSimpleFindCutPoint(const Vector3D& rEdge1Start, const Vector3D& rEdge1Delta, const Vector3D& rEdge2Start, const Vector3D& rEdge2Delta); + +public: + ImpLineGeometryCreator(const ImpLineStyleParameterPack& rAttr, PolyPolygon3D& rPoPo, + PolyPolygon3D& rPoLi, BOOL bIsLineDraft = FALSE) + : mrLineAttr(rAttr), + mrPolyPoly3D(rPoPo), + mrPolyLine3D(rPoLi), + mbLineDraft(bIsLineDraft) + { + } + + void AddPolygon3D(const Polygon3D& rPoly) { ImpCreateLineGeometry(rPoly); } + const PolyPolygon3D& GetPolyPolygon3D() const { return mrPolyPoly3D; } + const PolyPolygon3D& GetPolyLines3D() const { return mrPolyLine3D; } + void Clear() { mrPolyPoly3D.Clear(); mrPolyLine3D.Clear(); } +}; + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +class SdrLineGeometry +{ + PolyPolygon3D maPolyPoly3D; + PolyPolygon3D maLinePoly3D; + ImpLineStyleParameterPack maLineAttr; + BOOL mbForceOnePixel; + BOOL mbForceTwoPixel; + +public: + SdrLineGeometry(const PolyPolygon3D& rPolyPoly, const PolyPolygon3D& rLinePoly, + const ImpLineStyleParameterPack& rLineAttr, + BOOL bForceOnePixel, BOOL bForceTwoPixel) + : maPolyPoly3D(rPolyPoly), + maLinePoly3D(rLinePoly), + maLineAttr(rLineAttr), + mbForceOnePixel(bForceOnePixel), + mbForceTwoPixel(bForceTwoPixel) + {} + + PolyPolygon3D& GetPolyPoly3D() { return maPolyPoly3D; } + PolyPolygon3D& GetLinePoly3D() { return maLinePoly3D; } + ImpLineStyleParameterPack& GetLineAttr() { return maLineAttr; } + BOOL DoForceOnePixel() const { return mbForceOnePixel; } + BOOL DoForceTwoPixel() const { return mbForceTwoPixel; } +}; + +}//end of namespace binfilter +#endif // _SVX_SVDOIMP_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/svdoutlinercache.hxx b/binfilter/bf_svx/source/inc/svdoutlinercache.hxx new file mode 100644 index 000000000000..3e85d1d69147 --- /dev/null +++ b/binfilter/bf_svx/source/inc/svdoutlinercache.hxx @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVX_SDROUTLINER_HXX +#define _SVX_SDROUTLINER_HXX + +#include <sal/types.h> +namespace binfilter { + +class SdrModel; +class SdrOutliner; + + +class SdrOutlinerCache +{ +private: + SdrModel* mpModel; + + SdrOutliner* mpModeOutline; + SdrOutliner* mpModeText; +public: + SdrOutlinerCache( SdrModel* pModel ); + ~SdrOutlinerCache(); + + SdrOutliner* createOutliner( sal_uInt16 nOutlinerMode ); + void disposeOutliner( SdrOutliner* pOutliner ); +}; + +}//end of namespace binfilter +#endif + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/taborder.hrc b/binfilter/bf_svx/source/inc/taborder.hrc new file mode 100644 index 000000000000..c654abf5daac --- /dev/null +++ b/binfilter/bf_svx/source/inc/taborder.hrc @@ -0,0 +1,41 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#define FT_CONTROLS 1 + +#define LB_CONTROLS 1 + +#define PB_MOVE_UP 1 +#define PB_MOVE_DOWN 2 +#define PB_AUTO_ORDER 3 + +#define PB_OK 4 +#define PB_CANCEL 5 +#define PB_HELP 6 + +#define CTRL_TREE 1 + diff --git a/binfilter/bf_svx/source/inc/taborder.hxx b/binfilter/bf_svx/source/inc/taborder.hxx new file mode 100644 index 000000000000..66571fb0e4cd --- /dev/null +++ b/binfilter/bf_svx/source/inc/taborder.hxx @@ -0,0 +1,113 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVX_TABORDER_HXX +#define _SVX_TABORDER_HXX + +#include <bf_svtools/svtreebx.hxx> + +#include <com/sun/star/awt/XTabControllerModel.hpp> +#include <com/sun/star/awt/XControlContainer.hpp> + +#include <vcl/dialog.hxx> + +#include <vcl/button.hxx> + + +#include <vcl/fixed.hxx> + + +#include "fmexch.hxx" + +class SdrModel; +class ImageList; + +#include <comphelper/uno3.hxx> +FORWARD_DECLARE_INTERFACE(beans,XPropertySet) +namespace binfilter { +//STRIP008 FORWARD_DECLARE_INTERFACE(beans,XPropertySet) + +//======================================================================== +class FmOrderTreeListBox : public SvTreeListBox +{ +protected: + ::binfilter::svxform::OControlExchangeHelper m_aFieldExchange;//STRIP008 ::svxform::OControlExchangeHelper m_aFieldExchange; + +public: + FmOrderTreeListBox( Window* pParent ); + FmOrderTreeListBox( Window* pParent, const ResId& rResId ); + virtual ~FmOrderTreeListBox(); + + +protected: + virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt ); + virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt ); + virtual void StartDrag( sal_Int8 nAction, const Point& rPosPixel ); +}; + + +//======================================================================== +class FmFormShell; +class FmTabOrderDlg : public ModalDialog +{ + ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabControllerModel > xTempModel, // Model zum Bearbeiten der TabReihenfolge + xModel; // Model mit der zu veraendernden TabReihenfolge + + ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer > xControlContainer; + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xORB; + SdrModel* pDrawModel; + + FixedText aFT_Controls; + FmOrderTreeListBox aLB_Controls; + + OKButton aPB_OK; + CancelButton aPB_CANCEL; + HelpButton aPB_HELP; + + PushButton aPB_MoveUp; + PushButton aPB_MoveDown; + PushButton aPB_AutoOrder; + + ImageList* pImageList; + + DECL_LINK( MoveUpClickHdl, Button* ); + DECL_LINK( MoveDownClickHdl, Button* ); + DECL_LINK( AutoOrderClickHdl, Button* ); + DECL_LINK( OKClickHdl, Button* ); + + +public: + FmTabOrderDlg( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _xORB, + Window* pParent, FmFormShell* pShell ); + virtual ~FmTabOrderDlg(); + +}; + +}//end of namespace binfilter +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/tabwin.hxx b/binfilter/bf_svx/source/inc/tabwin.hxx new file mode 100644 index 000000000000..640ed4972879 --- /dev/null +++ b/binfilter/bf_svx/source/inc/tabwin.hxx @@ -0,0 +1,52 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVX_TABWIN_HXX +#define _SVX_TABWIN_HXX + +#include <bf_sfx2/childwin.hxx> + +namespace binfilter { + +class FmFieldWin; + +class FmFormShell; + +class FmFieldWinMgr : public SfxChildWindow +{ +public: + FmFieldWinMgr(Window *pParent, sal_uInt16 nId, + SfxBindings *pBindings, SfxChildWinInfo *pInfo); + SFX_DECL_CHILDWINDOW(FmFieldWinMgr); +}; + + +} +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/tbxform.hxx b/binfilter/bf_svx/source/inc/tbxform.hxx new file mode 100644 index 000000000000..f29922a52ff0 --- /dev/null +++ b/binfilter/bf_svx/source/inc/tbxform.hxx @@ -0,0 +1,142 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _SVX_TBXFORM_HXX +#define _SVX_TBXFORM_HXX + +#include <bf_sfx2/tbxctrl.hxx> + + + + +class FixedText; +namespace binfilter { + +//======================================================================== + + +//======================================================================== + + +//======================================================================== + + +//======================================================================== +class SvxFmTbxCtlConfig : public SfxToolBoxControl +{ +private: + UINT16 nLastSlot; + +public: + SFX_DECL_TOOLBOX_CONTROL(); + + SvxFmTbxCtlConfig( USHORT nId, ToolBox& rTbx, SfxBindings& ); + ~SvxFmTbxCtlConfig() {} + + virtual void StateChanged( USHORT nSID, SfxItemState eState, + const SfxPoolItem* pState ); +}; + +//======================================================================== +class SvxFmTbxCtlAbsRec : public SfxToolBoxControl +{ +public: + SFX_DECL_TOOLBOX_CONTROL(); + + SvxFmTbxCtlAbsRec( USHORT nId, ToolBox& rTbx, SfxBindings& rBindings ); + + +}; + +//======================================================================== +class SvxFmTbxCtlRecText : public SfxToolBoxControl +{ +public: + SFX_DECL_TOOLBOX_CONTROL(); + + SvxFmTbxCtlRecText( USHORT nId, ToolBox& rTbx, SfxBindings& rBindings ); +}; + +//======================================================================== +class SvxFmTbxCtlRecFromText : public SfxToolBoxControl +{ +public: + SFX_DECL_TOOLBOX_CONTROL(); + + SvxFmTbxCtlRecFromText( USHORT nId, ToolBox& rTbx, SfxBindings& rBindings ); +}; + +//======================================================================== +class SvxFmTbxCtlRecTotal : public SfxToolBoxControl +{ + FixedText* pFixedText; + +public: + SFX_DECL_TOOLBOX_CONTROL(); + + SvxFmTbxCtlRecTotal( USHORT nId, ToolBox& rTbx, SfxBindings& rBindings ); +}; + +/* +//======================================================================== +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 ); +}; + + +}//end of namespace binfilter +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/trace.hxx b/binfilter/bf_svx/source/inc/trace.hxx new file mode 100644 index 000000000000..dc33b8623ef6 --- /dev/null +++ b/binfilter/bf_svx/source/inc/trace.hxx @@ -0,0 +1,69 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _TRACE_HXX_ +#define _TRACE_HXX_ + +#if defined(DBG_UTIL) && defined(ENABLE_RANGE_TRACING) + +namespace binfilter { + + +class Tracer +{ + ByteString m_sBlockDescription; + + DECLARE_STL_STDKEY_MAP( ::oslThreadIdentifier, sal_Int32, MapThreadId2Int ); + static MapThreadId2Int s_aThreadIndents; + + static ::osl::Mutex 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); } + +}//end of namespace binfilter +#else + +#define TRACE_RANGE(range_description) ; +#define TRACE_RANGE_MESSAGE(message) ; +#define TRACE_RANGE_MESSAGE1(message, param) ; + +#endif + +#endif // _TRACE_HXX_ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/unoedprx.hxx b/binfilter/bf_svx/source/inc/unoedprx.hxx new file mode 100644 index 000000000000..dea4e651fbeb --- /dev/null +++ b/binfilter/bf_svx/source/inc/unoedprx.hxx @@ -0,0 +1,155 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVX_UNOEDPRX_HXX +#define _SVX_UNOEDPRX_HXX + +#include <memory> + +#include <bf_svtools/brdcst.hxx> + +#include "unoedsrc.hxx" + +namespace binfilter { + + +class SvxAccessibleTextAdapter : public SvxTextForwarder +{ +public: + SvxAccessibleTextAdapter(); + virtual ~SvxAccessibleTextAdapter(); + + virtual USHORT GetParagraphCount() const; + virtual USHORT GetTextLen( USHORT nParagraph ) const; + virtual String GetText( const ESelection& rSel ) const; + virtual SfxItemSet GetAttribs( const ESelection& rSel, BOOL bOnlyHardAttrib = 0 ) const; + virtual SfxItemSet GetParaAttribs( USHORT nPara ) const; + virtual void SetParaAttribs( USHORT nPara, const SfxItemSet& rSet ); + virtual void GetPortions( USHORT nPara, SvUShorts& rList ) const; + + virtual USHORT GetItemState( const ESelection& rSel, USHORT nWhich ) const; + virtual USHORT GetItemState( USHORT nPara, USHORT nWhich ) const; + + virtual void QuickInsertText( const String& rText, const ESelection& rSel ); + virtual void QuickInsertField( const SvxFieldItem& rFld, const ESelection& rSel ); + virtual void QuickSetAttribs( const SfxItemSet& rSet, const ESelection& rSel ); + virtual void QuickInsertLineBreak( const ESelection& rSel ); + + virtual SfxItemPool* GetPool() const; + + virtual XubString CalcFieldValue( const SvxFieldItem& rField, USHORT nPara, USHORT nPos, Color*& rpTxtColor, Color*& rpFldColor ); + virtual BOOL IsValid() const; + + virtual LanguageType GetLanguage( USHORT, USHORT ) const; + virtual USHORT GetFieldCount( USHORT nPara ) const; + virtual EFieldInfo GetFieldInfo( USHORT nPara, USHORT nField ) const; + virtual EBulletInfo GetBulletInfo( USHORT nPara ) const; + virtual Rectangle GetCharBounds( USHORT nPara, USHORT nIndex ) const; + virtual Rectangle GetParaBounds( USHORT nPara ) const; + virtual MapMode GetMapMode() const; + virtual OutputDevice* GetRefDevice() const; + virtual sal_Bool GetIndexAtPoint( const Point&, USHORT& nPara, USHORT& nIndex ) const; + virtual sal_Bool GetWordIndices( USHORT nPara, USHORT nIndex, USHORT& nStart, USHORT& nEnd ) const; + virtual sal_Bool GetAttributeRun( USHORT& nStartIndex, USHORT& nEndIndex, USHORT nPara, USHORT nIndex ) const; + virtual USHORT GetLineCount( USHORT nPara ) const; + virtual USHORT GetLineLen( USHORT nPara, USHORT nLine ) const; + virtual sal_Bool Delete( const ESelection& ); + virtual sal_Bool InsertText( const String&, const ESelection& ); + virtual sal_Bool QuickFormatDoc( BOOL bFull=FALSE ); + virtual USHORT GetDepth( USHORT nPara ) const; + virtual sal_Bool SetDepth( USHORT nPara, USHORT nNewDepth ); + + void SetForwarder( SvxTextForwarder& ); + sal_Bool HaveTextBullet( USHORT nPara ) const; + +private: + SvxTextForwarder* mrTextForwarder; +}; + +class SvxAccessibleTextEditViewAdapter : public SvxEditViewForwarder +{ +public: + + SvxAccessibleTextEditViewAdapter(); + virtual ~SvxAccessibleTextEditViewAdapter(); + + virtual BOOL IsValid() const; + + virtual Rectangle GetVisArea() const; + virtual Point LogicToPixel( const Point& rPoint, const MapMode& rMapMode ) const; + virtual Point PixelToLogic( const Point& rPoint, const MapMode& rMapMode ) const; + + virtual sal_Bool GetSelection( ESelection& rSelection ) const; + virtual sal_Bool SetSelection( const ESelection& rSelection ); + virtual sal_Bool Copy(); + virtual sal_Bool Cut(); + virtual sal_Bool Paste(); + + void SetForwarder( SvxEditViewForwarder&, SvxAccessibleTextAdapter& ); + +private: + SvxEditViewForwarder* mrViewForwarder; + SvxAccessibleTextAdapter* mrTextForwarder; +}; + +class SvxEditSourceAdapter : public SvxEditSource +{ +public: + SvxEditSourceAdapter(); + ~SvxEditSourceAdapter(); + + virtual SvxEditSource* Clone() const; + virtual SvxTextForwarder* GetTextForwarder(); + SvxAccessibleTextAdapter* GetTextForwarderAdapter(); // covariant return types don't work on MSVC + virtual SvxViewForwarder* GetViewForwarder(); + virtual SvxEditViewForwarder* GetEditViewForwarder( sal_Bool bCreate = sal_False ); + SvxAccessibleTextEditViewAdapter* GetEditViewForwarderAdapter( sal_Bool bCreate = sal_False ); // covariant return types don't work on MSVC + virtual void UpdateData(); + virtual SfxBroadcaster& GetBroadcaster() const; + + void SetEditSource( ::std::auto_ptr< SvxEditSource > pAdaptee ); + +private: + // declared, but not defined + SvxEditSourceAdapter( const SvxEditSourceAdapter& ); + SvxEditSourceAdapter& operator= ( const SvxEditSourceAdapter& ); + + ::std::auto_ptr< SvxEditSource > mpAdaptee; + + SvxAccessibleTextAdapter maTextAdapter; + SvxAccessibleTextEditViewAdapter maEditViewAdapter; + + mutable SfxBroadcaster maDummyBroadcaster; + + sal_Bool mbEditSourceValid; +}; + +}//end of namespace binfilter +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/unopolyhelper.hxx b/binfilter/bf_svx/source/inc/unopolyhelper.hxx new file mode 100644 index 000000000000..489d7cb0d682 --- /dev/null +++ b/binfilter/bf_svx/source/inc/unopolyhelper.hxx @@ -0,0 +1,55 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVX_UNOPOLYHELPER_HXX +#define _SVX_UNOPOLYHELPER_HXX + +#include <com/sun/star/lang/IllegalArgumentException.hpp> +namespace binfilter { + +namespace com { namespace sun { namespace star { namespace drawing { + struct PolyPolygonBezierCoords; +} } } } + +class XPolygon; + +/** convert a drawing::PolyPolygonBezierCoords to a XPolygon +*/ +void SvxConvertPolyPolygonBezierToXPolygon( const ::com::sun::star::drawing::PolyPolygonBezierCoords* pSourcePolyPolygon, XPolygon& rNewPolygon ) + throw( ::com::sun::star::lang::IllegalArgumentException ); + +/** convert a XPolygon to a drawing::PolyPolygonBezierCoords +*/ +void SvxConvertXPolygonToPolyPolygonBezier( const XPolygon& rPolygon, ::com::sun::star::drawing::PolyPolygonBezierCoords& rRetval ) + throw(); + +}//end of namespace binfilter +#endif + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/xmlxtexp.hxx b/binfilter/bf_svx/source/inc/xmlxtexp.hxx new file mode 100644 index 000000000000..035e3a62b5cb --- /dev/null +++ b/binfilter/bf_svx/source/inc/xmlxtexp.hxx @@ -0,0 +1,48 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVX_XMLXTEXP_HXX +#define _SVX_XMLXTEXP_HXX + +#include "bf_xmloff/xmlexp.hxx" + +namespace rtl { class OUString; } +namespace com { namespace sun { namespace star { + namespace frame { class XModel; } + namespace uno { template<class X> class Reference; } + namespace uno { class XInterface; } + namespace container { class XNameContainer; } + namespace document { class XGraphicObjectResolver; } + namespace xml { namespace sax { class XDocumentHandler; } } +} } } +namespace binfilter { + +}//end of namespace binfilter +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/binfilter/bf_svx/source/inc/xmlxtimp.hxx b/binfilter/bf_svx/source/inc/xmlxtimp.hxx new file mode 100644 index 000000000000..4810ee4ba308 --- /dev/null +++ b/binfilter/bf_svx/source/inc/xmlxtimp.hxx @@ -0,0 +1,67 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _SVX_XMLXTIMP_HXX +#define _SVX_XMLXTIMP_HXX + +#include <bf_xmloff/xmlimp.hxx> + +namespace rtl { class OUString; } +namespace com { namespace sun { namespace star { + namespace uno { template<class X> class Reference; } + namespace uno { class XInterface; } + namespace document { class XGraphicObjectResolver; } + namespace container { class XNameContainer; } + +} } } +namespace binfilter { + +class SvxXMLXTableImport : public SvXMLImport +{ +public: + // #110680# + SvxXMLXTableImport( + const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceFactory, + const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > & rTable, + ::com::sun::star::uno::Reference< ::com::sun::star::document::XGraphicObjectResolver >& xGrfResolver); + virtual ~SvxXMLXTableImport() throw (); + + static sal_Bool load( const ::rtl::OUString& rUrl, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& xTable ) throw(); +protected: + virtual SvXMLImportContext *CreateContext( sal_uInt16 nPrefix, + const ::rtl::OUString& rLocalName, + const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList ); + +private: + const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > & mrTable; +}; + +}//end of namespace binfilter +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |