merge the formfield patch from ooo-build
[ooovba.git] / svx / source / inc / fmgroup.hxx
blobb95580118a10733d86c5b676fa946d30da1dd478
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: fmgroup.hxx,v $
10 * $Revision: 1.5 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
30 #ifndef _SVX_FMGROUP_HXX
31 #define _SVX_FMGROUP_HXX
33 #ifndef _SVX_FMCPONT_HXX
34 #include "fmcpont.hxx"
35 #endif
37 #ifndef __DBFORM_HXX
38 #include <dbform.hxx>
39 #endif
41 DECLARE_LIST( FmCtrlModelList, XInterface* );
43 struct FmXGroupModel_Impl;
45 //==================================================================
46 // FmXGroupModel
47 //==================================================================
48 class FmXGroupModel : public XBoundControl,
49 public XLoadListener,
50 public XPropertyChangeListener,
51 public XGroup,
52 public FmXControlModel
54 FmFormControlMap aControlMap;
56 friend Reflection* FmXGroupModel_getReflection();
57 FmXGroupModel_Impl* pGroupModelData; // Properties
59 public:
60 FmXGroupModel();
61 virtual ~FmXGroupModel();
63 // UNO Anbindung
64 SMART_UNO_DECLARATION( FmXGroupModel, FmXControlModel );
65 virtual XInterface* queryInterface(UsrUik);
66 virtual XIdlClassRef getIdlClass();
68 // XGroup
69 virtual INT32 getFormControlCount();
70 virtual XFormControlRef getFormControlByName( const XubString& sName ) const;
71 virtual XFormControlRef getFormControlByIndex( INT32 Index ) const;
72 virtual void appendFormControl( const XFormControlRef& FormControl );
73 virtual XFormControlRef removeFormControl( const XFormControlRef& FormControl );
75 // XFormControl
76 virtual void setParent( const XFormRef& Parent );
78 // XEventListener
79 virtual void disposing( const EventObject& Source );
81 // XPropertiesChangeListener
82 virtual void propertyChange( const PropertyChangeEvent& evt );
84 // XLoadListener
85 virtual void loaded( const EventObject& rEvent );
86 virtual void unloaded( const EventObject& rEvent );
88 // XBoundControl
89 virtual void addBoundControlListener( const XBoundControlListenerRef& l );
90 virtual void removeBoundControlListener( const XBoundControlListenerRef& l );
92 // XPersistObject
93 virtual XubString getServiceName( void ) const;
94 virtual void write( const XObjectOutputStreamRef& OutStream );
95 virtual void read( const XObjectInputStreamRef& InStream );
97 // PropertySetInterface
98 virtual FmXPropertySetInfo* createPropertySetInfo() const;
99 virtual BOOL setPropertyValue( UINT16 nId, const XubString& aPropertyName,
100 const UsrAny& aValue,
101 PropertyChangeEventSequence* pSeq,
102 INT32 nIndex );
103 virtual UsrAny getPropertyValue( UINT16 nId, const XubString& aPropertyName ) const;
104 virtual void addPropertyChangeListener( const XubString& aPropertyName, const XPropertyChangeListenerRef& aListener );
105 virtual void removePropertyChangeListener( const XubString& aPropertyName, const XPropertyChangeListenerRef& aListener );
108 //==================================================================
109 // FmXGroupModelInfo
110 // Properties:
111 //==================================================================
112 class FmXGroupModelInfo : public FmXControlModelInfo
114 friend class FmXGroupModel;
116 protected:
117 FmXGroupModelInfo( const FmXGroupModel* pCp );
118 virtual void fillProperties( UINT32& nIndex, PropertySequence& aSeq ) const;
122 #endif // _SVX_FMGROUP_HXX