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
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_svx.hxx"
26*b1cdbd2cSJim Jagielski
27*b1cdbd2cSJim Jagielski #ifndef _SVX_FMRESIDS_HRC
28*b1cdbd2cSJim Jagielski #include "svx/fmresids.hrc"
29*b1cdbd2cSJim Jagielski #endif
30*b1cdbd2cSJim Jagielski #ifndef _SVX_FMEXPL_HRC
31*b1cdbd2cSJim Jagielski #include "fmexpl.hrc"
32*b1cdbd2cSJim Jagielski #endif
33*b1cdbd2cSJim Jagielski #include "fmexpl.hxx"
34*b1cdbd2cSJim Jagielski
35*b1cdbd2cSJim Jagielski #ifndef _SVX_FMHELP_HRC
36*b1cdbd2cSJim Jagielski #include "fmhelp.hrc"
37*b1cdbd2cSJim Jagielski #endif
38*b1cdbd2cSJim Jagielski #include <svx/fmglob.hxx>
39*b1cdbd2cSJim Jagielski #include "fmservs.hxx"
40*b1cdbd2cSJim Jagielski #include <svx/fmmodel.hxx>
41*b1cdbd2cSJim Jagielski #include "fmexch.hxx"
42*b1cdbd2cSJim Jagielski #include "fmundo.hxx"
43*b1cdbd2cSJim Jagielski #include "fmpgeimp.hxx"
44*b1cdbd2cSJim Jagielski
45*b1cdbd2cSJim Jagielski #ifndef _SVX_SVXIDS_HRC
46*b1cdbd2cSJim Jagielski #include <svx/svxids.hrc>
47*b1cdbd2cSJim Jagielski #endif
48*b1cdbd2cSJim Jagielski
49*b1cdbd2cSJim Jagielski #ifndef _SVX_FMPROP_HRC
50*b1cdbd2cSJim Jagielski #include "fmprop.hrc"
51*b1cdbd2cSJim Jagielski #endif
52*b1cdbd2cSJim Jagielski #include <svx/dialmgr.hxx>
53*b1cdbd2cSJim Jagielski #include "svx/svditer.hxx"
54*b1cdbd2cSJim Jagielski #include <svx/svdouno.hxx>
55*b1cdbd2cSJim Jagielski #include <fmundo.hxx>
56*b1cdbd2cSJim Jagielski #include <svx/svdobj.hxx>
57*b1cdbd2cSJim Jagielski #include <vcl/msgbox.hxx>
58*b1cdbd2cSJim Jagielski #include <sfx2/dispatch.hxx>
59*b1cdbd2cSJim Jagielski #include <sfx2/objsh.hxx>
60*b1cdbd2cSJim Jagielski #include <sfx2/viewsh.hxx>
61*b1cdbd2cSJim Jagielski #include <sfx2/viewfrm.hxx>
62*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XServiceInfo.hpp>
63*b1cdbd2cSJim Jagielski #include <com/sun/star/form/FormComponentType.hpp>
64*b1cdbd2cSJim Jagielski #include <com/sun/star/awt/XTabControllerModel.hpp>
65*b1cdbd2cSJim Jagielski #include <vcl/menu.hxx>
66*b1cdbd2cSJim Jagielski #include <sfx2/objitem.hxx>
67*b1cdbd2cSJim Jagielski #include <sfx2/request.hxx>
68*b1cdbd2cSJim Jagielski #include <tools/shl.hxx>
69*b1cdbd2cSJim Jagielski
70*b1cdbd2cSJim Jagielski #ifndef _WRKWIN_HXX //autogen
71*b1cdbd2cSJim Jagielski #include <vcl/wrkwin.hxx>
72*b1cdbd2cSJim Jagielski #endif
73*b1cdbd2cSJim Jagielski #include <vcl/sound.hxx>
74*b1cdbd2cSJim Jagielski #include <svx/fmshell.hxx>
75*b1cdbd2cSJim Jagielski #include "fmshimp.hxx"
76*b1cdbd2cSJim Jagielski #include <svx/fmpage.hxx>
77*b1cdbd2cSJim Jagielski #include <com/sun/star/io/XPersistObject.hpp>
78*b1cdbd2cSJim Jagielski #include <com/sun/star/script/XEventAttacherManager.hpp>
79*b1cdbd2cSJim Jagielski #include <com/sun/star/sdb/CommandType.hpp>
80*b1cdbd2cSJim Jagielski #include <com/sun/star/beans/PropertyAttribute.hpp>
81*b1cdbd2cSJim Jagielski #include <comphelper/property.hxx>
82*b1cdbd2cSJim Jagielski #include <comphelper/processfactory.hxx>
83*b1cdbd2cSJim Jagielski #include <osl/diagnose.h>
84*b1cdbd2cSJim Jagielski #include <rtl/logfile.hxx>
85*b1cdbd2cSJim Jagielski
86*b1cdbd2cSJim Jagielski using namespace ::svxform;
87*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::uno;
88*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::sdbc;
89*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::sdb;
90*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::form;
91*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::beans;
92*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::lang;
93*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::container;
94*b1cdbd2cSJim Jagielski
95*b1cdbd2cSJim Jagielski //========================================================================
96*b1cdbd2cSJim Jagielski
97*b1cdbd2cSJim Jagielski SV_IMPL_PTRARR_SORT( FmEntryDataArray, FmEntryDataPtr )
98*b1cdbd2cSJim Jagielski SV_IMPL_PTRARR_SORT( SvLBoxEntrySortedArray, SvLBoxEntryPtr )
99*b1cdbd2cSJim Jagielski
100*b1cdbd2cSJim Jagielski //========================================================================
101*b1cdbd2cSJim Jagielski // class FmNavInsertedHint
102*b1cdbd2cSJim Jagielski //========================================================================
103*b1cdbd2cSJim Jagielski TYPEINIT1( FmNavInsertedHint, SfxHint );
104*b1cdbd2cSJim Jagielski DBG_NAME(FmNavInsertedHint);
105*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
FmNavInsertedHint(FmEntryData * pInsertedEntryData,sal_uInt32 nRelPos)106*b1cdbd2cSJim Jagielski FmNavInsertedHint::FmNavInsertedHint( FmEntryData* pInsertedEntryData, sal_uInt32 nRelPos )
107*b1cdbd2cSJim Jagielski :pEntryData( pInsertedEntryData )
108*b1cdbd2cSJim Jagielski ,nPos( nRelPos )
109*b1cdbd2cSJim Jagielski
110*b1cdbd2cSJim Jagielski {
111*b1cdbd2cSJim Jagielski DBG_CTOR(FmNavInsertedHint,NULL);
112*b1cdbd2cSJim Jagielski }
113*b1cdbd2cSJim Jagielski
114*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
~FmNavInsertedHint()115*b1cdbd2cSJim Jagielski FmNavInsertedHint::~FmNavInsertedHint()
116*b1cdbd2cSJim Jagielski {
117*b1cdbd2cSJim Jagielski DBG_DTOR(FmNavInsertedHint,NULL);
118*b1cdbd2cSJim Jagielski }
119*b1cdbd2cSJim Jagielski
120*b1cdbd2cSJim Jagielski
121*b1cdbd2cSJim Jagielski //========================================================================
122*b1cdbd2cSJim Jagielski // class FmNavInsertedHint
123*b1cdbd2cSJim Jagielski //========================================================================
124*b1cdbd2cSJim Jagielski TYPEINIT1( FmNavModelReplacedHint, SfxHint );
125*b1cdbd2cSJim Jagielski DBG_NAME(FmNavModelReplacedHint);
126*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
FmNavModelReplacedHint(FmEntryData * pAffectedEntryData)127*b1cdbd2cSJim Jagielski FmNavModelReplacedHint::FmNavModelReplacedHint( FmEntryData* pAffectedEntryData )
128*b1cdbd2cSJim Jagielski :pEntryData( pAffectedEntryData )
129*b1cdbd2cSJim Jagielski {
130*b1cdbd2cSJim Jagielski DBG_CTOR(FmNavModelReplacedHint,NULL);
131*b1cdbd2cSJim Jagielski }
132*b1cdbd2cSJim Jagielski
133*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
~FmNavModelReplacedHint()134*b1cdbd2cSJim Jagielski FmNavModelReplacedHint::~FmNavModelReplacedHint()
135*b1cdbd2cSJim Jagielski {
136*b1cdbd2cSJim Jagielski DBG_DTOR(FmNavModelReplacedHint,NULL);
137*b1cdbd2cSJim Jagielski }
138*b1cdbd2cSJim Jagielski
139*b1cdbd2cSJim Jagielski //========================================================================
140*b1cdbd2cSJim Jagielski // class FmNavRemovedHint
141*b1cdbd2cSJim Jagielski //========================================================================
142*b1cdbd2cSJim Jagielski TYPEINIT1( FmNavRemovedHint, SfxHint );
143*b1cdbd2cSJim Jagielski DBG_NAME(FmNavRemovedHint);
144*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
FmNavRemovedHint(FmEntryData * pRemovedEntryData)145*b1cdbd2cSJim Jagielski FmNavRemovedHint::FmNavRemovedHint( FmEntryData* pRemovedEntryData )
146*b1cdbd2cSJim Jagielski :pEntryData( pRemovedEntryData )
147*b1cdbd2cSJim Jagielski {
148*b1cdbd2cSJim Jagielski DBG_CTOR(FmNavRemovedHint,NULL);
149*b1cdbd2cSJim Jagielski }
150*b1cdbd2cSJim Jagielski
151*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
~FmNavRemovedHint()152*b1cdbd2cSJim Jagielski FmNavRemovedHint::~FmNavRemovedHint()
153*b1cdbd2cSJim Jagielski {
154*b1cdbd2cSJim Jagielski DBG_DTOR(FmNavRemovedHint,NULL);
155*b1cdbd2cSJim Jagielski }
156*b1cdbd2cSJim Jagielski
157*b1cdbd2cSJim Jagielski
158*b1cdbd2cSJim Jagielski //========================================================================
159*b1cdbd2cSJim Jagielski // class FmNavNameChangedHint
160*b1cdbd2cSJim Jagielski //========================================================================
161*b1cdbd2cSJim Jagielski TYPEINIT1( FmNavNameChangedHint, SfxHint );
162*b1cdbd2cSJim Jagielski DBG_NAME(FmNavNameChangedHint);
163*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
FmNavNameChangedHint(FmEntryData * pData,const::rtl::OUString & rNewName)164*b1cdbd2cSJim Jagielski FmNavNameChangedHint::FmNavNameChangedHint( FmEntryData* pData, const ::rtl::OUString& rNewName )
165*b1cdbd2cSJim Jagielski :pEntryData( pData )
166*b1cdbd2cSJim Jagielski ,aNewName( rNewName )
167*b1cdbd2cSJim Jagielski {
168*b1cdbd2cSJim Jagielski DBG_CTOR(FmNavNameChangedHint,NULL);
169*b1cdbd2cSJim Jagielski }
170*b1cdbd2cSJim Jagielski
171*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
~FmNavNameChangedHint()172*b1cdbd2cSJim Jagielski FmNavNameChangedHint::~FmNavNameChangedHint()
173*b1cdbd2cSJim Jagielski {
174*b1cdbd2cSJim Jagielski DBG_DTOR(FmNavNameChangedHint,NULL);
175*b1cdbd2cSJim Jagielski }
176*b1cdbd2cSJim Jagielski
177*b1cdbd2cSJim Jagielski //========================================================================
178*b1cdbd2cSJim Jagielski // class FmNavClearedHint
179*b1cdbd2cSJim Jagielski //========================================================================
180*b1cdbd2cSJim Jagielski TYPEINIT1( FmNavClearedHint, SfxHint );
181*b1cdbd2cSJim Jagielski DBG_NAME(FmNavClearedHint);
182*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
FmNavClearedHint()183*b1cdbd2cSJim Jagielski FmNavClearedHint::FmNavClearedHint()
184*b1cdbd2cSJim Jagielski {
185*b1cdbd2cSJim Jagielski DBG_CTOR(FmNavClearedHint,NULL);
186*b1cdbd2cSJim Jagielski }
187*b1cdbd2cSJim Jagielski
188*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
~FmNavClearedHint()189*b1cdbd2cSJim Jagielski FmNavClearedHint::~FmNavClearedHint()
190*b1cdbd2cSJim Jagielski {
191*b1cdbd2cSJim Jagielski DBG_DTOR(FmNavClearedHint,NULL);
192*b1cdbd2cSJim Jagielski }
193*b1cdbd2cSJim Jagielski
194*b1cdbd2cSJim Jagielski //========================================================================
195*b1cdbd2cSJim Jagielski // class FmNavRequestSelectHint
196*b1cdbd2cSJim Jagielski //========================================================================
197*b1cdbd2cSJim Jagielski TYPEINIT1(FmNavRequestSelectHint, SfxHint);
198*b1cdbd2cSJim Jagielski
199*b1cdbd2cSJim Jagielski //========================================================================
200*b1cdbd2cSJim Jagielski // class FmNavViewMarksChanged
201*b1cdbd2cSJim Jagielski //========================================================================
202*b1cdbd2cSJim Jagielski TYPEINIT1(FmNavViewMarksChanged, SfxHint);
203*b1cdbd2cSJim Jagielski
204*b1cdbd2cSJim Jagielski //========================================================================
205*b1cdbd2cSJim Jagielski // class FmEntryDataList
206*b1cdbd2cSJim Jagielski //========================================================================
207*b1cdbd2cSJim Jagielski DBG_NAME(FmEntryDataList);
208*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
FmEntryDataList()209*b1cdbd2cSJim Jagielski FmEntryDataList::FmEntryDataList()
210*b1cdbd2cSJim Jagielski {
211*b1cdbd2cSJim Jagielski DBG_CTOR(FmEntryDataList,NULL);
212*b1cdbd2cSJim Jagielski }
213*b1cdbd2cSJim Jagielski
214*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
~FmEntryDataList()215*b1cdbd2cSJim Jagielski FmEntryDataList::~FmEntryDataList()
216*b1cdbd2cSJim Jagielski {
217*b1cdbd2cSJim Jagielski DBG_DTOR(FmEntryDataList,NULL);
218*b1cdbd2cSJim Jagielski }
219*b1cdbd2cSJim Jagielski
220*b1cdbd2cSJim Jagielski
221*b1cdbd2cSJim Jagielski //========================================================================
222*b1cdbd2cSJim Jagielski // class FmEntryData
223*b1cdbd2cSJim Jagielski //========================================================================
224*b1cdbd2cSJim Jagielski TYPEINIT0( FmEntryData );
225*b1cdbd2cSJim Jagielski DBG_NAME(FmEntryData);
226*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
FmEntryData(FmEntryData * pParentData,const Reference<XInterface> & _rxIFace)227*b1cdbd2cSJim Jagielski FmEntryData::FmEntryData( FmEntryData* pParentData, const Reference< XInterface >& _rxIFace )
228*b1cdbd2cSJim Jagielski :pParent( pParentData )
229*b1cdbd2cSJim Jagielski {
230*b1cdbd2cSJim Jagielski RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmEntryData::FmEntryData" );
231*b1cdbd2cSJim Jagielski DBG_CTOR(FmEntryData,NULL);
232*b1cdbd2cSJim Jagielski pChildList = new FmEntryDataList();
233*b1cdbd2cSJim Jagielski
234*b1cdbd2cSJim Jagielski newObject( _rxIFace );
235*b1cdbd2cSJim Jagielski }
236*b1cdbd2cSJim Jagielski
237*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
~FmEntryData()238*b1cdbd2cSJim Jagielski FmEntryData::~FmEntryData()
239*b1cdbd2cSJim Jagielski {
240*b1cdbd2cSJim Jagielski Clear();
241*b1cdbd2cSJim Jagielski delete pChildList;
242*b1cdbd2cSJim Jagielski DBG_DTOR(FmEntryData,NULL);
243*b1cdbd2cSJim Jagielski }
244*b1cdbd2cSJim Jagielski
245*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
newObject(const::com::sun::star::uno::Reference<::com::sun::star::uno::XInterface> & _rxIFace)246*b1cdbd2cSJim Jagielski void FmEntryData::newObject( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxIFace )
247*b1cdbd2cSJim Jagielski {
248*b1cdbd2cSJim Jagielski RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmEntryData::newObject" );
249*b1cdbd2cSJim Jagielski // do not just copy, normalize it
250*b1cdbd2cSJim Jagielski m_xNormalizedIFace = Reference< XInterface >( _rxIFace, UNO_QUERY );
251*b1cdbd2cSJim Jagielski m_xProperties = m_xProperties.query( m_xNormalizedIFace );
252*b1cdbd2cSJim Jagielski m_xChild = m_xChild.query( m_xNormalizedIFace );
253*b1cdbd2cSJim Jagielski }
254*b1cdbd2cSJim Jagielski
255*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
FmEntryData(const FmEntryData & rEntryData)256*b1cdbd2cSJim Jagielski FmEntryData::FmEntryData( const FmEntryData& rEntryData )
257*b1cdbd2cSJim Jagielski {
258*b1cdbd2cSJim Jagielski RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmEntryData::FmEntryData" );
259*b1cdbd2cSJim Jagielski pChildList = new FmEntryDataList();
260*b1cdbd2cSJim Jagielski aText = rEntryData.GetText();
261*b1cdbd2cSJim Jagielski m_aNormalImage = rEntryData.GetNormalImage();
262*b1cdbd2cSJim Jagielski m_aHCImage = rEntryData.GetHCImage();
263*b1cdbd2cSJim Jagielski pParent = rEntryData.GetParent();
264*b1cdbd2cSJim Jagielski
265*b1cdbd2cSJim Jagielski FmEntryData* pChildData;
266*b1cdbd2cSJim Jagielski sal_uInt32 nEntryCount = rEntryData.GetChildList()->Count();
267*b1cdbd2cSJim Jagielski for( sal_uInt32 i=0; i<nEntryCount; i++ )
268*b1cdbd2cSJim Jagielski {
269*b1cdbd2cSJim Jagielski pChildData = rEntryData.GetChildList()->GetObject(i);
270*b1cdbd2cSJim Jagielski FmEntryData* pNewChildData = pChildData->Clone();
271*b1cdbd2cSJim Jagielski pChildList->Insert( pNewChildData, LIST_APPEND );
272*b1cdbd2cSJim Jagielski }
273*b1cdbd2cSJim Jagielski
274*b1cdbd2cSJim Jagielski m_xNormalizedIFace = rEntryData.m_xNormalizedIFace;
275*b1cdbd2cSJim Jagielski m_xProperties = rEntryData.m_xProperties;
276*b1cdbd2cSJim Jagielski m_xChild = rEntryData.m_xChild;
277*b1cdbd2cSJim Jagielski }
278*b1cdbd2cSJim Jagielski
279*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
Clear()280*b1cdbd2cSJim Jagielski void FmEntryData::Clear()
281*b1cdbd2cSJim Jagielski {
282*b1cdbd2cSJim Jagielski RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmEntryData::Clear" );
283*b1cdbd2cSJim Jagielski for (;;)
284*b1cdbd2cSJim Jagielski {
285*b1cdbd2cSJim Jagielski FmEntryData* pEntryData = GetChildList()->Remove(sal_uLong(0));
286*b1cdbd2cSJim Jagielski if (pEntryData == NULL)
287*b1cdbd2cSJim Jagielski break;
288*b1cdbd2cSJim Jagielski delete pEntryData;
289*b1cdbd2cSJim Jagielski }
290*b1cdbd2cSJim Jagielski }
291*b1cdbd2cSJim Jagielski
292*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
IsEqualWithoutChilds(FmEntryData * pEntryData)293*b1cdbd2cSJim Jagielski sal_Bool FmEntryData::IsEqualWithoutChilds( FmEntryData* pEntryData )
294*b1cdbd2cSJim Jagielski {
295*b1cdbd2cSJim Jagielski RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmEntryData::IsEqualWithoutChilds" );
296*b1cdbd2cSJim Jagielski if(this == pEntryData)
297*b1cdbd2cSJim Jagielski return sal_True;
298*b1cdbd2cSJim Jagielski
299*b1cdbd2cSJim Jagielski if( !pEntryData )
300*b1cdbd2cSJim Jagielski return sal_False;
301*b1cdbd2cSJim Jagielski
302*b1cdbd2cSJim Jagielski if( !aText.equals(pEntryData->GetText()))
303*b1cdbd2cSJim Jagielski return sal_False;
304*b1cdbd2cSJim Jagielski
305*b1cdbd2cSJim Jagielski if( !pEntryData->GetParent() && pParent )
306*b1cdbd2cSJim Jagielski return sal_False;
307*b1cdbd2cSJim Jagielski
308*b1cdbd2cSJim Jagielski if( pEntryData->GetParent() && !pParent )
309*b1cdbd2cSJim Jagielski return sal_False;
310*b1cdbd2cSJim Jagielski
311*b1cdbd2cSJim Jagielski if( !pEntryData->GetParent() && !pParent )
312*b1cdbd2cSJim Jagielski return sal_True;
313*b1cdbd2cSJim Jagielski
314*b1cdbd2cSJim Jagielski if( !pParent->IsEqualWithoutChilds(pEntryData->GetParent()) )
315*b1cdbd2cSJim Jagielski return sal_False;
316*b1cdbd2cSJim Jagielski
317*b1cdbd2cSJim Jagielski return sal_True;
318*b1cdbd2cSJim Jagielski }
319*b1cdbd2cSJim Jagielski
320*b1cdbd2cSJim Jagielski
321*b1cdbd2cSJim Jagielski //========================================================================
322*b1cdbd2cSJim Jagielski // class FmFormData
323*b1cdbd2cSJim Jagielski //========================================================================
324*b1cdbd2cSJim Jagielski TYPEINIT1( FmFormData, FmEntryData );
325*b1cdbd2cSJim Jagielski DBG_NAME(FmFormData);
326*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
FmFormData(const Reference<XForm> & _rxForm,const ImageList & _rNormalImages,const ImageList & _rHCImages,FmFormData * _pParent)327*b1cdbd2cSJim Jagielski FmFormData::FmFormData( const Reference< XForm >& _rxForm, const ImageList& _rNormalImages, const ImageList& _rHCImages, FmFormData* _pParent )
328*b1cdbd2cSJim Jagielski :FmEntryData( _pParent, _rxForm )
329*b1cdbd2cSJim Jagielski ,m_xForm( _rxForm )
330*b1cdbd2cSJim Jagielski {
331*b1cdbd2cSJim Jagielski DBG_CTOR(FmEntryData,NULL);
332*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////
333*b1cdbd2cSJim Jagielski // Images setzen
334*b1cdbd2cSJim Jagielski
335*b1cdbd2cSJim Jagielski m_aNormalImage = _rNormalImages.GetImage( RID_SVXIMG_FORM );
336*b1cdbd2cSJim Jagielski m_aHCImage = _rHCImages.GetImage( RID_SVXIMG_FORM );
337*b1cdbd2cSJim Jagielski
338*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////
339*b1cdbd2cSJim Jagielski // Titel setzen
340*b1cdbd2cSJim Jagielski if (m_xForm.is())
341*b1cdbd2cSJim Jagielski {
342*b1cdbd2cSJim Jagielski Reference< XPropertySet > xSet(m_xForm, UNO_QUERY);
343*b1cdbd2cSJim Jagielski if (xSet.is())
344*b1cdbd2cSJim Jagielski {
345*b1cdbd2cSJim Jagielski ::rtl::OUString aEntryName(::comphelper::getString(xSet->getPropertyValue( FM_PROP_NAME )));
346*b1cdbd2cSJim Jagielski SetText(aEntryName);
347*b1cdbd2cSJim Jagielski }
348*b1cdbd2cSJim Jagielski }
349*b1cdbd2cSJim Jagielski else
350*b1cdbd2cSJim Jagielski SetText( ::rtl::OUString() );
351*b1cdbd2cSJim Jagielski }
352*b1cdbd2cSJim Jagielski
353*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
~FmFormData()354*b1cdbd2cSJim Jagielski FmFormData::~FmFormData()
355*b1cdbd2cSJim Jagielski {
356*b1cdbd2cSJim Jagielski DBG_DTOR(FmEntryData,NULL);
357*b1cdbd2cSJim Jagielski }
358*b1cdbd2cSJim Jagielski
359*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
FmFormData(const FmFormData & rFormData)360*b1cdbd2cSJim Jagielski FmFormData::FmFormData( const FmFormData& rFormData )
361*b1cdbd2cSJim Jagielski :FmEntryData( rFormData )
362*b1cdbd2cSJim Jagielski {
363*b1cdbd2cSJim Jagielski DBG_CTOR(FmEntryData,NULL);
364*b1cdbd2cSJim Jagielski m_xForm = rFormData.GetFormIface();
365*b1cdbd2cSJim Jagielski }
366*b1cdbd2cSJim Jagielski
367*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
Clone()368*b1cdbd2cSJim Jagielski FmEntryData* FmFormData::Clone()
369*b1cdbd2cSJim Jagielski {
370*b1cdbd2cSJim Jagielski return new FmFormData( *this );
371*b1cdbd2cSJim Jagielski }
372*b1cdbd2cSJim Jagielski
373*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
IsEqualWithoutChilds(FmEntryData * pEntryData)374*b1cdbd2cSJim Jagielski sal_Bool FmFormData::IsEqualWithoutChilds( FmEntryData* pEntryData )
375*b1cdbd2cSJim Jagielski {
376*b1cdbd2cSJim Jagielski if(this == pEntryData)
377*b1cdbd2cSJim Jagielski return sal_True;
378*b1cdbd2cSJim Jagielski if( !pEntryData->ISA(FmFormData) )
379*b1cdbd2cSJim Jagielski return sal_False;
380*b1cdbd2cSJim Jagielski FmFormData* pFormData = (FmFormData*)pEntryData;
381*b1cdbd2cSJim Jagielski if( (XForm*)m_xForm.get() != (XForm*)pFormData->GetFormIface().get() )
382*b1cdbd2cSJim Jagielski return sal_False;
383*b1cdbd2cSJim Jagielski
384*b1cdbd2cSJim Jagielski return FmEntryData::IsEqualWithoutChilds( pFormData );
385*b1cdbd2cSJim Jagielski }
386*b1cdbd2cSJim Jagielski
387*b1cdbd2cSJim Jagielski
388*b1cdbd2cSJim Jagielski //========================================================================
389*b1cdbd2cSJim Jagielski // class FmControlData
390*b1cdbd2cSJim Jagielski //========================================================================
391*b1cdbd2cSJim Jagielski TYPEINIT1( FmControlData, FmEntryData );
392*b1cdbd2cSJim Jagielski DBG_NAME(FmControlData);
393*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
FmControlData(const Reference<XFormComponent> & _rxComponent,const ImageList & _rNormalImages,const ImageList & _rHCImages,FmFormData * _pParent)394*b1cdbd2cSJim Jagielski FmControlData::FmControlData( const Reference< XFormComponent >& _rxComponent, const ImageList& _rNormalImages, const ImageList& _rHCImages, FmFormData* _pParent )
395*b1cdbd2cSJim Jagielski :FmEntryData( _pParent, _rxComponent )
396*b1cdbd2cSJim Jagielski ,m_xFormComponent( _rxComponent )
397*b1cdbd2cSJim Jagielski {
398*b1cdbd2cSJim Jagielski RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmControlData::FmControlData" );
399*b1cdbd2cSJim Jagielski DBG_CTOR(FmControlData,NULL);
400*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////
401*b1cdbd2cSJim Jagielski // Images setzen
402*b1cdbd2cSJim Jagielski m_aNormalImage = GetImage( _rNormalImages );
403*b1cdbd2cSJim Jagielski m_aHCImage = GetImage( _rHCImages );
404*b1cdbd2cSJim Jagielski
405*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////
406*b1cdbd2cSJim Jagielski // Titel setzen
407*b1cdbd2cSJim Jagielski Reference< XPropertySet > xSet(m_xFormComponent, UNO_QUERY);
408*b1cdbd2cSJim Jagielski if( xSet.is() )
409*b1cdbd2cSJim Jagielski {
410*b1cdbd2cSJim Jagielski #ifdef DBG_UTIL
411*b1cdbd2cSJim Jagielski ::rtl::OUString aEntryName = ::comphelper::getString(xSet->getPropertyValue( FM_PROP_NAME ));
412*b1cdbd2cSJim Jagielski #endif
413*b1cdbd2cSJim Jagielski SetText( ::comphelper::getString(xSet->getPropertyValue( FM_PROP_NAME )));
414*b1cdbd2cSJim Jagielski }
415*b1cdbd2cSJim Jagielski }
416*b1cdbd2cSJim Jagielski
417*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
~FmControlData()418*b1cdbd2cSJim Jagielski FmControlData::~FmControlData()
419*b1cdbd2cSJim Jagielski {
420*b1cdbd2cSJim Jagielski DBG_DTOR(FmControlData,NULL);
421*b1cdbd2cSJim Jagielski }
422*b1cdbd2cSJim Jagielski
423*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
FmControlData(const FmControlData & rControlData)424*b1cdbd2cSJim Jagielski FmControlData::FmControlData( const FmControlData& rControlData )
425*b1cdbd2cSJim Jagielski :FmEntryData( rControlData )
426*b1cdbd2cSJim Jagielski {
427*b1cdbd2cSJim Jagielski DBG_CTOR(FmControlData,NULL);
428*b1cdbd2cSJim Jagielski m_xFormComponent = rControlData.GetFormComponent();
429*b1cdbd2cSJim Jagielski }
430*b1cdbd2cSJim Jagielski
431*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
Clone()432*b1cdbd2cSJim Jagielski FmEntryData* FmControlData::Clone()
433*b1cdbd2cSJim Jagielski {
434*b1cdbd2cSJim Jagielski return new FmControlData( *this );
435*b1cdbd2cSJim Jagielski }
436*b1cdbd2cSJim Jagielski
437*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
GetImage(const ImageList & ilNavigatorImages) const438*b1cdbd2cSJim Jagielski Image FmControlData::GetImage(const ImageList& ilNavigatorImages) const
439*b1cdbd2cSJim Jagielski {
440*b1cdbd2cSJim Jagielski RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmControlData::FmControlData" );
441*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////
442*b1cdbd2cSJim Jagielski // Default-Image
443*b1cdbd2cSJim Jagielski Image aImage = ilNavigatorImages.GetImage( RID_SVXIMG_CONTROL );
444*b1cdbd2cSJim Jagielski
445*b1cdbd2cSJim Jagielski Reference< XServiceInfo > xInfo( m_xFormComponent, UNO_QUERY );
446*b1cdbd2cSJim Jagielski if (!m_xFormComponent.is())
447*b1cdbd2cSJim Jagielski return aImage;
448*b1cdbd2cSJim Jagielski
449*b1cdbd2cSJim Jagielski //////////////////////////////////////////////////////////////////////
450*b1cdbd2cSJim Jagielski // Spezielle Control-Images
451*b1cdbd2cSJim Jagielski sal_Int16 nObjectType = getControlTypeByObject(xInfo);
452*b1cdbd2cSJim Jagielski switch (nObjectType)
453*b1cdbd2cSJim Jagielski {
454*b1cdbd2cSJim Jagielski case OBJ_FM_BUTTON:
455*b1cdbd2cSJim Jagielski aImage = ilNavigatorImages.GetImage( RID_SVXIMG_BUTTON );
456*b1cdbd2cSJim Jagielski break;
457*b1cdbd2cSJim Jagielski
458*b1cdbd2cSJim Jagielski case OBJ_FM_FIXEDTEXT:
459*b1cdbd2cSJim Jagielski aImage = ilNavigatorImages.GetImage( RID_SVXIMG_FIXEDTEXT );
460*b1cdbd2cSJim Jagielski break;
461*b1cdbd2cSJim Jagielski
462*b1cdbd2cSJim Jagielski case OBJ_FM_EDIT:
463*b1cdbd2cSJim Jagielski aImage = ilNavigatorImages.GetImage( RID_SVXIMG_EDIT );
464*b1cdbd2cSJim Jagielski break;
465*b1cdbd2cSJim Jagielski
466*b1cdbd2cSJim Jagielski case OBJ_FM_RADIOBUTTON:
467*b1cdbd2cSJim Jagielski aImage = ilNavigatorImages.GetImage( RID_SVXIMG_RADIOBUTTON );
468*b1cdbd2cSJim Jagielski break;
469*b1cdbd2cSJim Jagielski
470*b1cdbd2cSJim Jagielski case OBJ_FM_CHECKBOX:
471*b1cdbd2cSJim Jagielski aImage = ilNavigatorImages.GetImage( RID_SVXIMG_CHECKBOX );
472*b1cdbd2cSJim Jagielski break;
473*b1cdbd2cSJim Jagielski
474*b1cdbd2cSJim Jagielski case OBJ_FM_LISTBOX:
475*b1cdbd2cSJim Jagielski aImage = ilNavigatorImages.GetImage( RID_SVXIMG_LISTBOX );
476*b1cdbd2cSJim Jagielski break;
477*b1cdbd2cSJim Jagielski
478*b1cdbd2cSJim Jagielski case OBJ_FM_COMBOBOX:
479*b1cdbd2cSJim Jagielski aImage = ilNavigatorImages.GetImage( RID_SVXIMG_COMBOBOX );
480*b1cdbd2cSJim Jagielski break;
481*b1cdbd2cSJim Jagielski
482*b1cdbd2cSJim Jagielski case OBJ_FM_NAVIGATIONBAR:
483*b1cdbd2cSJim Jagielski aImage = ilNavigatorImages.GetImage( RID_SVXIMG_NAVIGATIONBAR );
484*b1cdbd2cSJim Jagielski break;
485*b1cdbd2cSJim Jagielski
486*b1cdbd2cSJim Jagielski case OBJ_FM_GROUPBOX:
487*b1cdbd2cSJim Jagielski aImage = ilNavigatorImages.GetImage( RID_SVXIMG_GROUPBOX );
488*b1cdbd2cSJim Jagielski break;
489*b1cdbd2cSJim Jagielski
490*b1cdbd2cSJim Jagielski case OBJ_FM_IMAGEBUTTON:
491*b1cdbd2cSJim Jagielski aImage = ilNavigatorImages.GetImage( RID_SVXIMG_IMAGEBUTTON );
492*b1cdbd2cSJim Jagielski break;
493*b1cdbd2cSJim Jagielski
494*b1cdbd2cSJim Jagielski case OBJ_FM_FILECONTROL:
495*b1cdbd2cSJim Jagielski aImage = ilNavigatorImages.GetImage( RID_SVXIMG_FILECONTROL );
496*b1cdbd2cSJim Jagielski break;
497*b1cdbd2cSJim Jagielski
498*b1cdbd2cSJim Jagielski case OBJ_FM_HIDDEN:
499*b1cdbd2cSJim Jagielski aImage = ilNavigatorImages.GetImage( RID_SVXIMG_HIDDEN );
500*b1cdbd2cSJim Jagielski break;
501*b1cdbd2cSJim Jagielski
502*b1cdbd2cSJim Jagielski case OBJ_FM_DATEFIELD:
503*b1cdbd2cSJim Jagielski aImage = ilNavigatorImages.GetImage( RID_SVXIMG_DATEFIELD );
504*b1cdbd2cSJim Jagielski break;
505*b1cdbd2cSJim Jagielski
506*b1cdbd2cSJim Jagielski case OBJ_FM_TIMEFIELD:
507*b1cdbd2cSJim Jagielski aImage = ilNavigatorImages.GetImage( RID_SVXIMG_TIMEFIELD );
508*b1cdbd2cSJim Jagielski break;
509*b1cdbd2cSJim Jagielski
510*b1cdbd2cSJim Jagielski case OBJ_FM_NUMERICFIELD:
511*b1cdbd2cSJim Jagielski aImage = ilNavigatorImages.GetImage( RID_SVXIMG_NUMERICFIELD );
512*b1cdbd2cSJim Jagielski break;
513*b1cdbd2cSJim Jagielski
514*b1cdbd2cSJim Jagielski case OBJ_FM_CURRENCYFIELD:
515*b1cdbd2cSJim Jagielski aImage = ilNavigatorImages.GetImage( RID_SVXIMG_CURRENCYFIELD );
516*b1cdbd2cSJim Jagielski break;
517*b1cdbd2cSJim Jagielski
518*b1cdbd2cSJim Jagielski case OBJ_FM_PATTERNFIELD:
519*b1cdbd2cSJim Jagielski aImage = ilNavigatorImages.GetImage( RID_SVXIMG_PATTERNFIELD );
520*b1cdbd2cSJim Jagielski break;
521*b1cdbd2cSJim Jagielski
522*b1cdbd2cSJim Jagielski case OBJ_FM_IMAGECONTROL:
523*b1cdbd2cSJim Jagielski aImage = ilNavigatorImages.GetImage( RID_SVXIMG_IMAGECONTROL );
524*b1cdbd2cSJim Jagielski break;
525*b1cdbd2cSJim Jagielski
526*b1cdbd2cSJim Jagielski case OBJ_FM_FORMATTEDFIELD:
527*b1cdbd2cSJim Jagielski aImage = ilNavigatorImages.GetImage( RID_SVXIMG_FORMATTEDFIELD );
528*b1cdbd2cSJim Jagielski break;
529*b1cdbd2cSJim Jagielski
530*b1cdbd2cSJim Jagielski case OBJ_FM_GRID:
531*b1cdbd2cSJim Jagielski aImage = ilNavigatorImages.GetImage( RID_SVXIMG_GRID );
532*b1cdbd2cSJim Jagielski break;
533*b1cdbd2cSJim Jagielski
534*b1cdbd2cSJim Jagielski case OBJ_FM_SCROLLBAR:
535*b1cdbd2cSJim Jagielski aImage = ilNavigatorImages.GetImage( RID_SVXIMG_SCROLLBAR );
536*b1cdbd2cSJim Jagielski break;
537*b1cdbd2cSJim Jagielski
538*b1cdbd2cSJim Jagielski case OBJ_FM_SPINBUTTON:
539*b1cdbd2cSJim Jagielski aImage = ilNavigatorImages.GetImage( RID_SVXIMG_SPINBUTTON);
540*b1cdbd2cSJim Jagielski break;
541*b1cdbd2cSJim Jagielski }
542*b1cdbd2cSJim Jagielski
543*b1cdbd2cSJim Jagielski return aImage;
544*b1cdbd2cSJim Jagielski }
545*b1cdbd2cSJim Jagielski
546*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
IsEqualWithoutChilds(FmEntryData * pEntryData)547*b1cdbd2cSJim Jagielski sal_Bool FmControlData::IsEqualWithoutChilds( FmEntryData* pEntryData )
548*b1cdbd2cSJim Jagielski {
549*b1cdbd2cSJim Jagielski RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmControlData::IsEqualWithoutChilds" );
550*b1cdbd2cSJim Jagielski if(this == pEntryData)
551*b1cdbd2cSJim Jagielski return sal_True;
552*b1cdbd2cSJim Jagielski
553*b1cdbd2cSJim Jagielski if( !pEntryData->ISA(FmControlData) )
554*b1cdbd2cSJim Jagielski return sal_False;
555*b1cdbd2cSJim Jagielski FmControlData* pControlData = (FmControlData*)pEntryData;
556*b1cdbd2cSJim Jagielski
557*b1cdbd2cSJim Jagielski if( (XFormComponent*)m_xFormComponent.get() != (XFormComponent*)pControlData->GetFormComponent().get() )
558*b1cdbd2cSJim Jagielski return sal_False;
559*b1cdbd2cSJim Jagielski
560*b1cdbd2cSJim Jagielski return FmEntryData::IsEqualWithoutChilds( pControlData );
561*b1cdbd2cSJim Jagielski }
562*b1cdbd2cSJim Jagielski
563*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
ModelReplaced(const Reference<XFormComponent> & _rxNew,const ImageList & _rNormalImages,const ImageList & _rHCImages)564*b1cdbd2cSJim Jagielski void FmControlData::ModelReplaced( const Reference< XFormComponent >& _rxNew, const ImageList& _rNormalImages, const ImageList& _rHCImages )
565*b1cdbd2cSJim Jagielski {
566*b1cdbd2cSJim Jagielski RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "svx", "Ocke.Janssen@sun.com", "FmControlData::ModelReplaced" );
567*b1cdbd2cSJim Jagielski m_xFormComponent = _rxNew;
568*b1cdbd2cSJim Jagielski newObject( m_xFormComponent );
569*b1cdbd2cSJim Jagielski
570*b1cdbd2cSJim Jagielski // Images neu setzen
571*b1cdbd2cSJim Jagielski m_aNormalImage = GetImage( _rNormalImages );
572*b1cdbd2cSJim Jagielski m_aHCImage = GetImage( _rHCImages );
573*b1cdbd2cSJim Jagielski }
574*b1cdbd2cSJim Jagielski
575*b1cdbd2cSJim Jagielski //............................................................................
576*b1cdbd2cSJim Jagielski namespace svxform
577*b1cdbd2cSJim Jagielski {
578*b1cdbd2cSJim Jagielski //............................................................................
579*b1cdbd2cSJim Jagielski
580*b1cdbd2cSJim Jagielski //========================================================================
581*b1cdbd2cSJim Jagielski // class NavigatorFrame
582*b1cdbd2cSJim Jagielski //========================================================================
DBG_NAME(NavigatorFrame)583*b1cdbd2cSJim Jagielski DBG_NAME(NavigatorFrame)
584*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
585*b1cdbd2cSJim Jagielski NavigatorFrame::NavigatorFrame( SfxBindings* _pBindings, SfxChildWindow* _pMgr,
586*b1cdbd2cSJim Jagielski Window* _pParent )
587*b1cdbd2cSJim Jagielski :SfxDockingWindow( _pBindings, _pMgr, _pParent, WinBits(WB_STDMODELESS|WB_SIZEABLE|WB_ROLLABLE|WB_3DLOOK|WB_DOCKABLE) )
588*b1cdbd2cSJim Jagielski ,SfxControllerItem( SID_FM_FMEXPLORER_CONTROL, *_pBindings )
589*b1cdbd2cSJim Jagielski {
590*b1cdbd2cSJim Jagielski DBG_CTOR(NavigatorFrame,NULL);
591*b1cdbd2cSJim Jagielski SetHelpId( HID_FORM_NAVIGATOR_WIN );
592*b1cdbd2cSJim Jagielski
593*b1cdbd2cSJim Jagielski m_pNavigatorTree = new NavigatorTree(comphelper::getProcessServiceFactory(), this );
594*b1cdbd2cSJim Jagielski m_pNavigatorTree->Show();
595*b1cdbd2cSJim Jagielski SetText( SVX_RES(RID_STR_FMEXPLORER) );
596*b1cdbd2cSJim Jagielski SfxDockingWindow::SetFloatingSize( Size(200,200) );
597*b1cdbd2cSJim Jagielski }
598*b1cdbd2cSJim Jagielski
599*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
~NavigatorFrame()600*b1cdbd2cSJim Jagielski NavigatorFrame::~NavigatorFrame()
601*b1cdbd2cSJim Jagielski {
602*b1cdbd2cSJim Jagielski delete m_pNavigatorTree;
603*b1cdbd2cSJim Jagielski DBG_DTOR(NavigatorFrame,NULL);
604*b1cdbd2cSJim Jagielski }
605*b1cdbd2cSJim Jagielski
606*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------
UpdateContent(FmFormShell * pFormShell)607*b1cdbd2cSJim Jagielski void NavigatorFrame::UpdateContent( FmFormShell* pFormShell )
608*b1cdbd2cSJim Jagielski {
609*b1cdbd2cSJim Jagielski m_pNavigatorTree->UpdateContent( pFormShell );
610*b1cdbd2cSJim Jagielski }
611*b1cdbd2cSJim Jagielski
612*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------
StateChanged(sal_uInt16 nSID,SfxItemState eState,const SfxPoolItem * pState)613*b1cdbd2cSJim Jagielski void NavigatorFrame::StateChanged( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState )
614*b1cdbd2cSJim Jagielski {
615*b1cdbd2cSJim Jagielski if( !pState || SID_FM_FMEXPLORER_CONTROL != nSID )
616*b1cdbd2cSJim Jagielski return;
617*b1cdbd2cSJim Jagielski
618*b1cdbd2cSJim Jagielski if( eState >= SFX_ITEM_AVAILABLE )
619*b1cdbd2cSJim Jagielski {
620*b1cdbd2cSJim Jagielski FmFormShell* pShell = PTR_CAST( FmFormShell,((SfxObjectItem*)pState)->GetShell() );
621*b1cdbd2cSJim Jagielski UpdateContent( pShell );
622*b1cdbd2cSJim Jagielski }
623*b1cdbd2cSJim Jagielski else
624*b1cdbd2cSJim Jagielski UpdateContent( NULL );
625*b1cdbd2cSJim Jagielski }
626*b1cdbd2cSJim Jagielski
627*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------
GetFocus()628*b1cdbd2cSJim Jagielski void NavigatorFrame::GetFocus()
629*b1cdbd2cSJim Jagielski {
630*b1cdbd2cSJim Jagielski if ( m_pNavigatorTree )
631*b1cdbd2cSJim Jagielski m_pNavigatorTree->GrabFocus();
632*b1cdbd2cSJim Jagielski else
633*b1cdbd2cSJim Jagielski SfxDockingWindow::GetFocus();
634*b1cdbd2cSJim Jagielski }
635*b1cdbd2cSJim Jagielski
636*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------
Close()637*b1cdbd2cSJim Jagielski sal_Bool NavigatorFrame::Close()
638*b1cdbd2cSJim Jagielski {
639*b1cdbd2cSJim Jagielski UpdateContent( NULL );
640*b1cdbd2cSJim Jagielski return SfxDockingWindow::Close();
641*b1cdbd2cSJim Jagielski }
642*b1cdbd2cSJim Jagielski
643*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------
FillInfo(SfxChildWinInfo & rInfo) const644*b1cdbd2cSJim Jagielski void NavigatorFrame::FillInfo( SfxChildWinInfo& rInfo ) const
645*b1cdbd2cSJim Jagielski {
646*b1cdbd2cSJim Jagielski SfxDockingWindow::FillInfo( rInfo );
647*b1cdbd2cSJim Jagielski rInfo.bVisible = sal_False;
648*b1cdbd2cSJim Jagielski }
649*b1cdbd2cSJim Jagielski
650*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------
CalcDockingSize(SfxChildAlignment eAlign)651*b1cdbd2cSJim Jagielski Size NavigatorFrame::CalcDockingSize( SfxChildAlignment eAlign )
652*b1cdbd2cSJim Jagielski {
653*b1cdbd2cSJim Jagielski if ( ( eAlign == SFX_ALIGN_TOP ) || ( eAlign == SFX_ALIGN_BOTTOM ) )
654*b1cdbd2cSJim Jagielski return Size();
655*b1cdbd2cSJim Jagielski
656*b1cdbd2cSJim Jagielski return SfxDockingWindow::CalcDockingSize( eAlign );
657*b1cdbd2cSJim Jagielski }
658*b1cdbd2cSJim Jagielski
659*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------
CheckAlignment(SfxChildAlignment _eActAlign,SfxChildAlignment _eAlign)660*b1cdbd2cSJim Jagielski SfxChildAlignment NavigatorFrame::CheckAlignment( SfxChildAlignment _eActAlign, SfxChildAlignment _eAlign )
661*b1cdbd2cSJim Jagielski {
662*b1cdbd2cSJim Jagielski if ( ( _eAlign == SFX_ALIGN_LEFT ) || ( _eAlign == SFX_ALIGN_RIGHT ) || ( _eAlign == SFX_ALIGN_NOALIGNMENT ) )
663*b1cdbd2cSJim Jagielski return _eAlign;
664*b1cdbd2cSJim Jagielski return _eActAlign;
665*b1cdbd2cSJim Jagielski }
666*b1cdbd2cSJim Jagielski
667*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
Resize()668*b1cdbd2cSJim Jagielski void NavigatorFrame::Resize()
669*b1cdbd2cSJim Jagielski {
670*b1cdbd2cSJim Jagielski SfxDockingWindow::Resize();
671*b1cdbd2cSJim Jagielski
672*b1cdbd2cSJim Jagielski Size aLogOutputSize = PixelToLogic( GetOutputSizePixel(), MAP_APPFONT );
673*b1cdbd2cSJim Jagielski Size aLogExplSize = aLogOutputSize;
674*b1cdbd2cSJim Jagielski aLogExplSize.Width() -= 6;
675*b1cdbd2cSJim Jagielski aLogExplSize.Height() -= 6;
676*b1cdbd2cSJim Jagielski
677*b1cdbd2cSJim Jagielski Point aExplPos = LogicToPixel( Point(3,3), MAP_APPFONT );
678*b1cdbd2cSJim Jagielski Size aExplSize = LogicToPixel( aLogExplSize, MAP_APPFONT );
679*b1cdbd2cSJim Jagielski
680*b1cdbd2cSJim Jagielski m_pNavigatorTree->SetPosSizePixel( aExplPos, aExplSize );
681*b1cdbd2cSJim Jagielski }
682*b1cdbd2cSJim Jagielski
683*b1cdbd2cSJim Jagielski
684*b1cdbd2cSJim Jagielski //========================================================================
685*b1cdbd2cSJim Jagielski // class NavigatorFrameManager
686*b1cdbd2cSJim Jagielski //========================================================================
687*b1cdbd2cSJim Jagielski
688*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------
SFX_IMPL_DOCKINGWINDOW(NavigatorFrameManager,SID_FM_SHOW_FMEXPLORER)689*b1cdbd2cSJim Jagielski SFX_IMPL_DOCKINGWINDOW( NavigatorFrameManager, SID_FM_SHOW_FMEXPLORER )
690*b1cdbd2cSJim Jagielski
691*b1cdbd2cSJim Jagielski //-----------------------------------------------------------------------
692*b1cdbd2cSJim Jagielski NavigatorFrameManager::NavigatorFrameManager( Window* _pParent, sal_uInt16 _nId,
693*b1cdbd2cSJim Jagielski SfxBindings* _pBindings, SfxChildWinInfo* _pInfo )
694*b1cdbd2cSJim Jagielski :SfxChildWindow( _pParent, _nId )
695*b1cdbd2cSJim Jagielski {
696*b1cdbd2cSJim Jagielski pWindow = new NavigatorFrame( _pBindings, this, _pParent );
697*b1cdbd2cSJim Jagielski eChildAlignment = SFX_ALIGN_NOALIGNMENT;
698*b1cdbd2cSJim Jagielski ((SfxDockingWindow*)pWindow)->Initialize( _pInfo );
699*b1cdbd2cSJim Jagielski }
700*b1cdbd2cSJim Jagielski
701*b1cdbd2cSJim Jagielski //............................................................................
702*b1cdbd2cSJim Jagielski } // namespace svxform
703*b1cdbd2cSJim Jagielski //............................................................................
704