xref: /aoo41x/main/svx/source/inc/tabwin.hxx (revision 3334a7e6)
1*3334a7e6SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*3334a7e6SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*3334a7e6SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*3334a7e6SAndrew Rist  * distributed with this work for additional information
6*3334a7e6SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*3334a7e6SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*3334a7e6SAndrew Rist  * "License"); you may not use this file except in compliance
9*3334a7e6SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*3334a7e6SAndrew Rist  *
11*3334a7e6SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*3334a7e6SAndrew Rist  *
13*3334a7e6SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*3334a7e6SAndrew Rist  * software distributed under the License is distributed on an
15*3334a7e6SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*3334a7e6SAndrew Rist  * KIND, either express or implied.  See the License for the
17*3334a7e6SAndrew Rist  * specific language governing permissions and limitations
18*3334a7e6SAndrew Rist  * under the License.
19*3334a7e6SAndrew Rist  *
20*3334a7e6SAndrew Rist  *************************************************************/
21*3334a7e6SAndrew Rist 
22*3334a7e6SAndrew Rist 
23cdf0e10cSrcweir #ifndef _SVX_TABWIN_HXX
24cdf0e10cSrcweir #define _SVX_TABWIN_HXX
25cdf0e10cSrcweir 
26cdf0e10cSrcweir #include <svtools/svtreebx.hxx>
27cdf0e10cSrcweir #include <vcl/floatwin.hxx>
28cdf0e10cSrcweir #include <sfx2/basedlgs.hxx>
29cdf0e10cSrcweir #include <sfx2/childwin.hxx>
30cdf0e10cSrcweir #include <sfx2/ctrlitem.hxx>
31cdf0e10cSrcweir #include <com/sun/star/form/XForm.hpp>
32cdf0e10cSrcweir 
33cdf0e10cSrcweir #include <comphelper/propmultiplex.hxx>
34cdf0e10cSrcweir #include <svtools/transfer.hxx>
35cdf0e10cSrcweir #include "svx/dbtoolsclient.hxx"
36cdf0e10cSrcweir 
37cdf0e10cSrcweir //==================================================================
38cdf0e10cSrcweir class FmFieldWin;
39cdf0e10cSrcweir class SAL_DLLPRIVATE FmFieldWinListBox
40cdf0e10cSrcweir 					:public SvTreeListBox
41cdf0e10cSrcweir {
42cdf0e10cSrcweir 	FmFieldWin* pTabWin;
43cdf0e10cSrcweir 
44cdf0e10cSrcweir protected:
45cdf0e10cSrcweir //	virtual void Command( const CommandEvent& rEvt );
46cdf0e10cSrcweir 
47cdf0e10cSrcweir public:
48cdf0e10cSrcweir 	FmFieldWinListBox( FmFieldWin* pParent );
49cdf0e10cSrcweir 	virtual ~FmFieldWinListBox();
50cdf0e10cSrcweir 
51cdf0e10cSrcweir 	sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt );
52cdf0e10cSrcweir 	sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt );
53cdf0e10cSrcweir 
54cdf0e10cSrcweir protected:
55cdf0e10cSrcweir 	// DragSourceHelper
56cdf0e10cSrcweir 	virtual void StartDrag( sal_Int8 nAction, const Point& rPosPixel );
57cdf0e10cSrcweir 
58cdf0e10cSrcweir 	// SvLBox
59cdf0e10cSrcweir 	virtual sal_Bool DoubleClickHdl();
60cdf0e10cSrcweir 
61cdf0e10cSrcweir     using SvLBox::ExecuteDrop;
62cdf0e10cSrcweir };
63cdf0e10cSrcweir 
64cdf0e10cSrcweir //========================================================================
65cdf0e10cSrcweir class FmFormShell;
66cdf0e10cSrcweir class SAL_DLLPRIVATE FmFieldWinData
67cdf0e10cSrcweir {
68cdf0e10cSrcweir public:
69cdf0e10cSrcweir 	FmFieldWinData();
70cdf0e10cSrcweir 	~FmFieldWinData();
71cdf0e10cSrcweir };
72cdf0e10cSrcweir 
73cdf0e10cSrcweir //========================================================================
74cdf0e10cSrcweir class SAL_DLLPRIVATE FmFieldWin	:public SfxFloatingWindow
75cdf0e10cSrcweir 					,public SfxControllerItem
76cdf0e10cSrcweir 					,public ::comphelper::OPropertyChangeListener
77cdf0e10cSrcweir 					,public ::svxform::OStaticDataAccessTools
78cdf0e10cSrcweir {
79cdf0e10cSrcweir 	::osl::Mutex		m_aMutex;
80cdf0e10cSrcweir 	FmFieldWinListBox* pListBox;
81cdf0e10cSrcweir 	FmFieldWinData*    pData;
82cdf0e10cSrcweir     ::svxform::SharedConnection
83cdf0e10cSrcweir                        m_aConnection;
84cdf0e10cSrcweir 	::rtl::OUString    m_aDatabaseName,
85cdf0e10cSrcweir 					   m_aObjectName;
86cdf0e10cSrcweir 	sal_Int32		   m_nObjectType;
87cdf0e10cSrcweir 
88cdf0e10cSrcweir 	::comphelper::OPropertyChangeMultiplexer*	m_pChangeListener;
89cdf0e10cSrcweir 
90cdf0e10cSrcweir public:
91cdf0e10cSrcweir 	FmFieldWin(SfxBindings *pBindings,
92cdf0e10cSrcweir 			   SfxChildWindow *pMgr, Window* pParent);
93cdf0e10cSrcweir 
94cdf0e10cSrcweir 	virtual ~FmFieldWin();
95cdf0e10cSrcweir 	virtual void Resize();
96cdf0e10cSrcweir 	virtual sal_Bool Close();
97cdf0e10cSrcweir 	virtual void GetFocus();
98cdf0e10cSrcweir 	virtual long PreNotify( NotifyEvent& _rNEvt );
99cdf0e10cSrcweir 	virtual void StateChanged(sal_uInt16 nSID, SfxItemState eState,
100cdf0e10cSrcweir 							  const SfxPoolItem* pState);
101cdf0e10cSrcweir 
GetData() const102cdf0e10cSrcweir 	FmFieldWinData* GetData()  const {return pData;}
103cdf0e10cSrcweir 
104cdf0e10cSrcweir 	void UpdateContent(FmFormShell*);
105cdf0e10cSrcweir 	void UpdateContent(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm > &);
106cdf0e10cSrcweir 	void FillInfo( SfxChildWinInfo& rInfo ) const;
107cdf0e10cSrcweir 
GetDatabaseName() const108cdf0e10cSrcweir 	const ::rtl::OUString&	    GetDatabaseName() const { return m_aDatabaseName; }
GetConnection() const109cdf0e10cSrcweir     ::svxform::SharedConnection GetConnection() const { return m_aConnection; }
GetObjectName() const110cdf0e10cSrcweir 	const ::rtl::OUString&	    GetObjectName() const { return m_aObjectName; }
GetObjectType() const111cdf0e10cSrcweir 	sal_Int32				    GetObjectType() const { return m_nObjectType; }
112cdf0e10cSrcweir 
113cdf0e10cSrcweir 	sal_Bool	createSelectionControls( );
114cdf0e10cSrcweir 
115cdf0e10cSrcweir protected:
116cdf0e10cSrcweir 	// FmXChangeListener
117cdf0e10cSrcweir 	virtual void _propertyChanged(const ::com::sun::star::beans::PropertyChangeEvent& evt) throw( ::com::sun::star::uno::RuntimeException );
118cdf0e10cSrcweir 
119cdf0e10cSrcweir protected:
GetBindings()120cdf0e10cSrcweir 	inline			SfxBindings&	GetBindings()		{ return SfxControllerItem::GetBindings(); }
GetBindings() const121cdf0e10cSrcweir 	inline	const	SfxBindings&	GetBindings() const	{ return SfxControllerItem::GetBindings(); }
122cdf0e10cSrcweir 
123cdf0e10cSrcweir     using SfxFloatingWindow::StateChanged;
124cdf0e10cSrcweir };
125cdf0e10cSrcweir 
126cdf0e10cSrcweir //========================================================================
127cdf0e10cSrcweir class SAL_DLLPRIVATE FmFieldWinMgr : public SfxChildWindow
128cdf0e10cSrcweir {
129cdf0e10cSrcweir public:
130cdf0e10cSrcweir 	FmFieldWinMgr(Window *pParent, sal_uInt16 nId,
131cdf0e10cSrcweir 		SfxBindings *pBindings, SfxChildWinInfo *pInfo);
132cdf0e10cSrcweir 	SFX_DECL_CHILDWINDOW(FmFieldWinMgr);
133cdf0e10cSrcweir };
134cdf0e10cSrcweir 
135cdf0e10cSrcweir 
136cdf0e10cSrcweir #endif
137cdf0e10cSrcweir 
138