xref: /aoo4110/main/svx/source/inc/fmgroup.hxx (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski #ifndef _SVX_FMGROUP_HXX
24*b1cdbd2cSJim Jagielski #define _SVX_FMGROUP_HXX
25*b1cdbd2cSJim Jagielski 
26*b1cdbd2cSJim Jagielski #ifndef _SVX_FMCPONT_HXX
27*b1cdbd2cSJim Jagielski #include "fmcpont.hxx"
28*b1cdbd2cSJim Jagielski #endif
29*b1cdbd2cSJim Jagielski 
30*b1cdbd2cSJim Jagielski #ifndef __DBFORM_HXX
31*b1cdbd2cSJim Jagielski #include <dbform.hxx>
32*b1cdbd2cSJim Jagielski #endif
33*b1cdbd2cSJim Jagielski 
34*b1cdbd2cSJim Jagielski DECLARE_LIST( FmCtrlModelList, XInterface* );
35*b1cdbd2cSJim Jagielski 
36*b1cdbd2cSJim Jagielski struct FmXGroupModel_Impl;
37*b1cdbd2cSJim Jagielski 
38*b1cdbd2cSJim Jagielski //==================================================================
39*b1cdbd2cSJim Jagielski // FmXGroupModel
40*b1cdbd2cSJim Jagielski //==================================================================
41*b1cdbd2cSJim Jagielski class FmXGroupModel : public XBoundControl,
42*b1cdbd2cSJim Jagielski 					  public XLoadListener,
43*b1cdbd2cSJim Jagielski 					  public XPropertyChangeListener,
44*b1cdbd2cSJim Jagielski 					  public XGroup,
45*b1cdbd2cSJim Jagielski 					  public FmXControlModel
46*b1cdbd2cSJim Jagielski {
47*b1cdbd2cSJim Jagielski 	FmFormControlMap		aControlMap;
48*b1cdbd2cSJim Jagielski 
49*b1cdbd2cSJim Jagielski 	friend Reflection*		FmXGroupModel_getReflection();
50*b1cdbd2cSJim Jagielski 	FmXGroupModel_Impl*		pGroupModelData;			// Properties
51*b1cdbd2cSJim Jagielski 
52*b1cdbd2cSJim Jagielski public:
53*b1cdbd2cSJim Jagielski 	FmXGroupModel();
54*b1cdbd2cSJim Jagielski 	virtual ~FmXGroupModel();
55*b1cdbd2cSJim Jagielski 
56*b1cdbd2cSJim Jagielski 	// UNO Anbindung
57*b1cdbd2cSJim Jagielski 	SMART_UNO_DECLARATION( FmXGroupModel, FmXControlModel );
58*b1cdbd2cSJim Jagielski 	virtual XInterface*		queryInterface(UsrUik);
59*b1cdbd2cSJim Jagielski 	virtual XIdlClassRef	getIdlClass();
60*b1cdbd2cSJim Jagielski 
61*b1cdbd2cSJim Jagielski 	// XGroup
62*b1cdbd2cSJim Jagielski 	virtual sal_Int32 getFormControlCount();
63*b1cdbd2cSJim Jagielski 	virtual XFormControlRef getFormControlByName( const XubString& sName ) const;
64*b1cdbd2cSJim Jagielski 	virtual XFormControlRef getFormControlByIndex( sal_Int32 Index ) const;
65*b1cdbd2cSJim Jagielski 	virtual void appendFormControl( const XFormControlRef& FormControl );
66*b1cdbd2cSJim Jagielski 	virtual XFormControlRef removeFormControl( const XFormControlRef& FormControl );
67*b1cdbd2cSJim Jagielski 
68*b1cdbd2cSJim Jagielski 	// XFormControl
69*b1cdbd2cSJim Jagielski 	virtual void setParent( const XFormRef& Parent );
70*b1cdbd2cSJim Jagielski 
71*b1cdbd2cSJim Jagielski 	// XEventListener
72*b1cdbd2cSJim Jagielski 	virtual void disposing( const EventObject& Source );
73*b1cdbd2cSJim Jagielski 
74*b1cdbd2cSJim Jagielski 	// XPropertiesChangeListener
75*b1cdbd2cSJim Jagielski 	virtual void propertyChange( const PropertyChangeEvent& evt );
76*b1cdbd2cSJim Jagielski 
77*b1cdbd2cSJim Jagielski 	// XLoadListener
78*b1cdbd2cSJim Jagielski 	virtual void loaded( const EventObject& rEvent );
79*b1cdbd2cSJim Jagielski 	virtual void unloaded( const EventObject& rEvent );
80*b1cdbd2cSJim Jagielski 
81*b1cdbd2cSJim Jagielski 	// XBoundControl
82*b1cdbd2cSJim Jagielski 	virtual void addBoundControlListener( const XBoundControlListenerRef& l );
83*b1cdbd2cSJim Jagielski 	virtual void removeBoundControlListener( const XBoundControlListenerRef& l );
84*b1cdbd2cSJim Jagielski 
85*b1cdbd2cSJim Jagielski 	// XPersistObject
86*b1cdbd2cSJim Jagielski 	virtual XubString getServiceName( void ) const;
87*b1cdbd2cSJim Jagielski 	virtual void write( const XObjectOutputStreamRef& OutStream );
88*b1cdbd2cSJim Jagielski 	virtual void read( const XObjectInputStreamRef& InStream );
89*b1cdbd2cSJim Jagielski 
90*b1cdbd2cSJim Jagielski 	// PropertySetInterface
91*b1cdbd2cSJim Jagielski 	virtual FmXPropertySetInfo* createPropertySetInfo() const;
92*b1cdbd2cSJim Jagielski 	virtual sal_Bool setPropertyValue( sal_uInt16 nId, const XubString& aPropertyName,
93*b1cdbd2cSJim Jagielski 								   const UsrAny& aValue,
94*b1cdbd2cSJim Jagielski 								   PropertyChangeEventSequence* pSeq,
95*b1cdbd2cSJim Jagielski 								   sal_Int32 nIndex );
96*b1cdbd2cSJim Jagielski 	virtual UsrAny getPropertyValue( sal_uInt16 nId, const XubString& aPropertyName ) const;
97*b1cdbd2cSJim Jagielski 	virtual	void addPropertyChangeListener( const XubString& aPropertyName, const XPropertyChangeListenerRef& aListener );
98*b1cdbd2cSJim Jagielski 	virtual void removePropertyChangeListener( const XubString& aPropertyName, const XPropertyChangeListenerRef& aListener );
99*b1cdbd2cSJim Jagielski };
100*b1cdbd2cSJim Jagielski 
101*b1cdbd2cSJim Jagielski //==================================================================
102*b1cdbd2cSJim Jagielski // FmXGroupModelInfo
103*b1cdbd2cSJim Jagielski // Properties:
104*b1cdbd2cSJim Jagielski //==================================================================
105*b1cdbd2cSJim Jagielski class FmXGroupModelInfo : public FmXControlModelInfo
106*b1cdbd2cSJim Jagielski {
107*b1cdbd2cSJim Jagielski 	friend class FmXGroupModel;
108*b1cdbd2cSJim Jagielski 
109*b1cdbd2cSJim Jagielski protected:
110*b1cdbd2cSJim Jagielski 	FmXGroupModelInfo( const FmXGroupModel* pCp );
111*b1cdbd2cSJim Jagielski 	virtual void fillProperties( sal_uInt32& nIndex, PropertySequence& aSeq ) const;
112*b1cdbd2cSJim Jagielski };
113*b1cdbd2cSJim Jagielski 
114*b1cdbd2cSJim Jagielski 
115*b1cdbd2cSJim Jagielski #endif // _SVX_FMGROUP_HXX
116*b1cdbd2cSJim Jagielski 
117