1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: fmexpl.cxx,v $
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 ************************************************************************/
31 // MARKER(update_precomp.py): autogen include statement, do not remove
32 #include "precompiled_svx.hxx"
34 #ifndef _SVX_FMRESIDS_HRC
35 #include "fmresids.hrc"
37 #ifndef _SVX_FMEXPL_HRC
42 #ifndef _SVX_FMHELP_HRC
45 #include <svx/fmglob.hxx>
46 #include "fmservs.hxx"
47 #include <svx/fmmodel.hxx>
50 #include "fmpgeimp.hxx"
52 #ifndef _SVX_SVXIDS_HRC
53 #include <svx/svxids.hrc>
56 #ifndef _SVX_FMPROP_HRC
59 #include <svx/dialmgr.hxx>
60 #include "svditer.hxx"
61 #include <svx/svdouno.hxx>
63 #include <svx/svdobj.hxx>
64 #include <vcl/msgbox.hxx>
65 #include <sfx2/dispatch.hxx>
66 #include <sfx2/objsh.hxx>
67 #include <sfx2/viewsh.hxx>
68 #include <sfx2/viewfrm.hxx>
69 #include <com/sun/star/lang/XServiceInfo.hpp>
70 #include <com/sun/star/form/FormComponentType.hpp>
71 #include <com/sun/star/awt/XTabControllerModel.hpp>
72 #include <vcl/menu.hxx>
73 #include <sfx2/objitem.hxx>
74 #include <sfx2/request.hxx>
75 #include <tools/shl.hxx>
77 #ifndef _WRKWIN_HXX //autogen
78 #include <vcl/wrkwin.hxx>
80 #include <vcl/sound.hxx>
81 #include <svx/fmshell.hxx>
82 #include "fmshimp.hxx"
83 #include <svx/fmpage.hxx>
84 #include <com/sun/star/io/XPersistObject.hpp>
85 #include <com/sun/star/script/XEventAttacherManager.hpp>
86 #include <com/sun/star/sdb/CommandType.hpp>
87 #include <com/sun/star/beans/PropertyAttribute.hpp>
88 #include <comphelper/property.hxx>
89 #include <comphelper/processfactory.hxx>
90 #include <osl/diagnose.h>
91 #include <rtl/logfile.hxx>
93 using namespace ::svxform
;
94 using namespace ::com::sun::star::uno
;
95 using namespace ::com::sun::star::sdbc
;
96 using namespace ::com::sun::star::sdb
;
97 using namespace ::com::sun::star::form
;
98 using namespace ::com::sun::star::beans
;
99 using namespace ::com::sun::star::lang
;
100 using namespace ::com::sun::star::container
;
102 //========================================================================
104 SV_IMPL_PTRARR_SORT( FmEntryDataArray
, FmEntryDataPtr
)
105 SV_IMPL_PTRARR_SORT( SvLBoxEntrySortedArray
, SvLBoxEntryPtr
)
107 //========================================================================
108 // class FmNavInsertedHint
109 //========================================================================
110 TYPEINIT1( FmNavInsertedHint
, SfxHint
);
111 DBG_NAME(FmNavInsertedHint
);
112 //------------------------------------------------------------------------
113 FmNavInsertedHint::FmNavInsertedHint( FmEntryData
* pInsertedEntryData
, sal_uInt32 nRelPos
)
114 :pEntryData( pInsertedEntryData
)
118 DBG_CTOR(FmNavInsertedHint
,NULL
);
121 //------------------------------------------------------------------------
122 FmNavInsertedHint::~FmNavInsertedHint()
124 DBG_DTOR(FmNavInsertedHint
,NULL
);
128 //========================================================================
129 // class FmNavInsertedHint
130 //========================================================================
131 TYPEINIT1( FmNavModelReplacedHint
, SfxHint
);
132 DBG_NAME(FmNavModelReplacedHint
);
133 //------------------------------------------------------------------------
134 FmNavModelReplacedHint::FmNavModelReplacedHint( FmEntryData
* pAffectedEntryData
)
135 :pEntryData( pAffectedEntryData
)
137 DBG_CTOR(FmNavModelReplacedHint
,NULL
);
140 //------------------------------------------------------------------------
141 FmNavModelReplacedHint::~FmNavModelReplacedHint()
143 DBG_DTOR(FmNavModelReplacedHint
,NULL
);
146 //========================================================================
147 // class FmNavRemovedHint
148 //========================================================================
149 TYPEINIT1( FmNavRemovedHint
, SfxHint
);
150 DBG_NAME(FmNavRemovedHint
);
151 //------------------------------------------------------------------------
152 FmNavRemovedHint::FmNavRemovedHint( FmEntryData
* pRemovedEntryData
)
153 :pEntryData( pRemovedEntryData
)
155 DBG_CTOR(FmNavRemovedHint
,NULL
);
158 //------------------------------------------------------------------------
159 FmNavRemovedHint::~FmNavRemovedHint()
161 DBG_DTOR(FmNavRemovedHint
,NULL
);
165 //========================================================================
166 // class FmNavNameChangedHint
167 //========================================================================
168 TYPEINIT1( FmNavNameChangedHint
, SfxHint
);
169 DBG_NAME(FmNavNameChangedHint
);
170 //------------------------------------------------------------------------
171 FmNavNameChangedHint::FmNavNameChangedHint( FmEntryData
* pData
, const ::rtl::OUString
& rNewName
)
173 ,aNewName( rNewName
)
175 DBG_CTOR(FmNavNameChangedHint
,NULL
);
178 //------------------------------------------------------------------------
179 FmNavNameChangedHint::~FmNavNameChangedHint()
181 DBG_DTOR(FmNavNameChangedHint
,NULL
);
184 //========================================================================
185 // class FmNavClearedHint
186 //========================================================================
187 TYPEINIT1( FmNavClearedHint
, SfxHint
);
188 DBG_NAME(FmNavClearedHint
);
189 //------------------------------------------------------------------------
190 FmNavClearedHint::FmNavClearedHint()
192 DBG_CTOR(FmNavClearedHint
,NULL
);
195 //------------------------------------------------------------------------
196 FmNavClearedHint::~FmNavClearedHint()
198 DBG_DTOR(FmNavClearedHint
,NULL
);
201 //========================================================================
202 // class FmNavRequestSelectHint
203 //========================================================================
204 TYPEINIT1(FmNavRequestSelectHint
, SfxHint
);
206 //========================================================================
207 // class FmNavViewMarksChanged
208 //========================================================================
209 TYPEINIT1(FmNavViewMarksChanged
, SfxHint
);
211 //========================================================================
212 // class FmEntryDataList
213 //========================================================================
214 DBG_NAME(FmEntryDataList
);
215 //------------------------------------------------------------------------
216 FmEntryDataList::FmEntryDataList()
218 DBG_CTOR(FmEntryDataList
,NULL
);
221 //------------------------------------------------------------------------
222 FmEntryDataList::~FmEntryDataList()
224 DBG_DTOR(FmEntryDataList
,NULL
);
228 //========================================================================
230 //========================================================================
231 TYPEINIT0( FmEntryData
);
232 DBG_NAME(FmEntryData
);
233 //------------------------------------------------------------------------
234 FmEntryData::FmEntryData( FmEntryData
* pParentData
, const Reference
< XInterface
>& _rxIFace
)
235 :pParent( pParentData
)
237 RTL_LOGFILE_CONTEXT_AUTHOR( aLogger
, "svx", "Ocke.Janssen@sun.com", "FmEntryData::FmEntryData" );
238 DBG_CTOR(FmEntryData
,NULL
);
239 pChildList
= new FmEntryDataList();
241 newObject( _rxIFace
);
244 //------------------------------------------------------------------------
245 FmEntryData::~FmEntryData()
249 DBG_DTOR(FmEntryData
,NULL
);
252 //------------------------------------------------------------------------
253 void FmEntryData::newObject( const ::com::sun::star::uno::Reference
< ::com::sun::star::uno::XInterface
>& _rxIFace
)
255 RTL_LOGFILE_CONTEXT_AUTHOR( aLogger
, "svx", "Ocke.Janssen@sun.com", "FmEntryData::newObject" );
256 // do not just copy, normalize it
257 m_xNormalizedIFace
= Reference
< XInterface
>( _rxIFace
, UNO_QUERY
);
258 m_xProperties
= m_xProperties
.query( m_xNormalizedIFace
);
259 m_xChild
= m_xChild
.query( m_xNormalizedIFace
);
262 //------------------------------------------------------------------------
263 FmEntryData::FmEntryData( const FmEntryData
& rEntryData
)
265 RTL_LOGFILE_CONTEXT_AUTHOR( aLogger
, "svx", "Ocke.Janssen@sun.com", "FmEntryData::FmEntryData" );
266 pChildList
= new FmEntryDataList();
267 aText
= rEntryData
.GetText();
268 m_aNormalImage
= rEntryData
.GetNormalImage();
269 m_aHCImage
= rEntryData
.GetHCImage();
270 pParent
= rEntryData
.GetParent();
272 FmEntryData
* pChildData
;
273 sal_uInt32 nEntryCount
= rEntryData
.GetChildList()->Count();
274 for( sal_uInt32 i
=0; i
<nEntryCount
; i
++ )
276 pChildData
= rEntryData
.GetChildList()->GetObject(i
);
277 FmEntryData
* pNewChildData
= pChildData
->Clone();
278 pChildList
->Insert( pNewChildData
, LIST_APPEND
);
281 m_xNormalizedIFace
= rEntryData
.m_xNormalizedIFace
;
282 m_xProperties
= rEntryData
.m_xProperties
;
283 m_xChild
= rEntryData
.m_xChild
;
286 //------------------------------------------------------------------------
287 void FmEntryData::Clear()
289 RTL_LOGFILE_CONTEXT_AUTHOR( aLogger
, "svx", "Ocke.Janssen@sun.com", "FmEntryData::Clear" );
292 FmEntryData
* pEntryData
= GetChildList()->Remove(ULONG(0));
293 if (pEntryData
== NULL
)
299 //------------------------------------------------------------------------
300 sal_Bool
FmEntryData::IsEqualWithoutChilds( FmEntryData
* pEntryData
)
302 RTL_LOGFILE_CONTEXT_AUTHOR( aLogger
, "svx", "Ocke.Janssen@sun.com", "FmEntryData::IsEqualWithoutChilds" );
303 if(this == pEntryData
)
309 if( !aText
.equals(pEntryData
->GetText()))
312 if( !pEntryData
->GetParent() && pParent
)
315 if( pEntryData
->GetParent() && !pParent
)
318 if( !pEntryData
->GetParent() && !pParent
)
321 if( !pParent
->IsEqualWithoutChilds(pEntryData
->GetParent()) )
328 //========================================================================
330 //========================================================================
331 TYPEINIT1( FmFormData
, FmEntryData
);
332 DBG_NAME(FmFormData
);
333 //------------------------------------------------------------------------
334 FmFormData::FmFormData( const Reference
< XForm
>& _rxForm
, const ImageList
& _rNormalImages
, const ImageList
& _rHCImages
, FmFormData
* _pParent
)
335 :FmEntryData( _pParent
, _rxForm
)
338 DBG_CTOR(FmEntryData
,NULL
);
339 //////////////////////////////////////////////////////////////////////
342 m_aNormalImage
= _rNormalImages
.GetImage( RID_SVXIMG_FORM
);
343 m_aHCImage
= _rHCImages
.GetImage( RID_SVXIMG_FORM
);
345 //////////////////////////////////////////////////////////////////////
349 Reference
< XPropertySet
> xSet(m_xForm
, UNO_QUERY
);
352 ::rtl::OUString
aEntryName(::comphelper::getString(xSet
->getPropertyValue( FM_PROP_NAME
)));
357 SetText( ::rtl::OUString() );
360 //------------------------------------------------------------------------
361 FmFormData::~FmFormData()
363 DBG_DTOR(FmEntryData
,NULL
);
366 //------------------------------------------------------------------------
367 FmFormData::FmFormData( const FmFormData
& rFormData
)
368 :FmEntryData( rFormData
)
370 DBG_CTOR(FmEntryData
,NULL
);
371 m_xForm
= rFormData
.GetFormIface();
374 //------------------------------------------------------------------------
375 FmEntryData
* FmFormData::Clone()
377 return new FmFormData( *this );
380 //------------------------------------------------------------------------
381 sal_Bool
FmFormData::IsEqualWithoutChilds( FmEntryData
* pEntryData
)
383 if(this == pEntryData
)
385 if( !pEntryData
->ISA(FmFormData
) )
387 FmFormData
* pFormData
= (FmFormData
*)pEntryData
;
388 if( (XForm
*)m_xForm
.get() != (XForm
*)pFormData
->GetFormIface().get() )
391 return FmEntryData::IsEqualWithoutChilds( pFormData
);
395 //========================================================================
396 // class FmControlData
397 //========================================================================
398 TYPEINIT1( FmControlData
, FmEntryData
);
399 DBG_NAME(FmControlData
);
400 //------------------------------------------------------------------------
401 FmControlData::FmControlData( const Reference
< XFormComponent
>& _rxComponent
, const ImageList
& _rNormalImages
, const ImageList
& _rHCImages
, FmFormData
* _pParent
)
402 :FmEntryData( _pParent
, _rxComponent
)
403 ,m_xFormComponent( _rxComponent
)
405 RTL_LOGFILE_CONTEXT_AUTHOR( aLogger
, "svx", "Ocke.Janssen@sun.com", "FmControlData::FmControlData" );
406 DBG_CTOR(FmControlData
,NULL
);
407 //////////////////////////////////////////////////////////////////////
409 m_aNormalImage
= GetImage( _rNormalImages
);
410 m_aHCImage
= GetImage( _rHCImages
);
412 //////////////////////////////////////////////////////////////////////
414 Reference
< XPropertySet
> xSet(m_xFormComponent
, UNO_QUERY
);
418 ::rtl::OUString aEntryName
= ::comphelper::getString(xSet
->getPropertyValue( FM_PROP_NAME
));
420 SetText( ::comphelper::getString(xSet
->getPropertyValue( FM_PROP_NAME
)));
424 //------------------------------------------------------------------------
425 FmControlData::~FmControlData()
427 DBG_DTOR(FmControlData
,NULL
);
430 //------------------------------------------------------------------------
431 FmControlData::FmControlData( const FmControlData
& rControlData
)
432 :FmEntryData( rControlData
)
434 DBG_CTOR(FmControlData
,NULL
);
435 m_xFormComponent
= rControlData
.GetFormComponent();
438 //------------------------------------------------------------------------
439 FmEntryData
* FmControlData::Clone()
441 return new FmControlData( *this );
444 //------------------------------------------------------------------------
445 Image
FmControlData::GetImage(const ImageList
& ilNavigatorImages
) const
447 RTL_LOGFILE_CONTEXT_AUTHOR( aLogger
, "svx", "Ocke.Janssen@sun.com", "FmControlData::FmControlData" );
448 //////////////////////////////////////////////////////////////////////
450 Image aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_CONTROL
);
452 Reference
< XServiceInfo
> xInfo( m_xFormComponent
, UNO_QUERY
);
453 if (!m_xFormComponent
.is())
456 //////////////////////////////////////////////////////////////////////
457 // Spezielle Control-Images
458 sal_Int16 nObjectType
= getControlTypeByObject(xInfo
);
462 aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_BUTTON
);
465 case OBJ_FM_FIXEDTEXT
:
466 aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_FIXEDTEXT
);
470 aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_EDIT
);
473 case OBJ_FM_RADIOBUTTON
:
474 aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_RADIOBUTTON
);
477 case OBJ_FM_CHECKBOX
:
478 aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_CHECKBOX
);
482 aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_LISTBOX
);
485 case OBJ_FM_COMBOBOX
:
486 aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_COMBOBOX
);
489 case OBJ_FM_NAVIGATIONBAR
:
490 aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_NAVIGATIONBAR
);
493 case OBJ_FM_GROUPBOX
:
494 aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_GROUPBOX
);
497 case OBJ_FM_IMAGEBUTTON
:
498 aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_IMAGEBUTTON
);
501 case OBJ_FM_FILECONTROL
:
502 aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_FILECONTROL
);
506 aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_HIDDEN
);
509 case OBJ_FM_DATEFIELD
:
510 aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_DATEFIELD
);
513 case OBJ_FM_TIMEFIELD
:
514 aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_TIMEFIELD
);
517 case OBJ_FM_NUMERICFIELD
:
518 aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_NUMERICFIELD
);
521 case OBJ_FM_CURRENCYFIELD
:
522 aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_CURRENCYFIELD
);
525 case OBJ_FM_PATTERNFIELD
:
526 aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_PATTERNFIELD
);
529 case OBJ_FM_IMAGECONTROL
:
530 aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_IMAGECONTROL
);
533 case OBJ_FM_FORMATTEDFIELD
:
534 aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_FORMATTEDFIELD
);
538 aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_GRID
);
541 case OBJ_FM_SCROLLBAR
:
542 aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_SCROLLBAR
);
545 case OBJ_FM_SPINBUTTON
:
546 aImage
= ilNavigatorImages
.GetImage( RID_SVXIMG_SPINBUTTON
);
553 //------------------------------------------------------------------------
554 sal_Bool
FmControlData::IsEqualWithoutChilds( FmEntryData
* pEntryData
)
556 RTL_LOGFILE_CONTEXT_AUTHOR( aLogger
, "svx", "Ocke.Janssen@sun.com", "FmControlData::IsEqualWithoutChilds" );
557 if(this == pEntryData
)
560 if( !pEntryData
->ISA(FmControlData
) )
562 FmControlData
* pControlData
= (FmControlData
*)pEntryData
;
564 if( (XFormComponent
*)m_xFormComponent
.get() != (XFormComponent
*)pControlData
->GetFormComponent().get() )
567 return FmEntryData::IsEqualWithoutChilds( pControlData
);
570 //------------------------------------------------------------------------
571 void FmControlData::ModelReplaced( const Reference
< XFormComponent
>& _rxNew
, const ImageList
& _rNormalImages
, const ImageList
& _rHCImages
)
573 RTL_LOGFILE_CONTEXT_AUTHOR( aLogger
, "svx", "Ocke.Janssen@sun.com", "FmControlData::ModelReplaced" );
574 m_xFormComponent
= _rxNew
;
575 newObject( m_xFormComponent
);
578 m_aNormalImage
= GetImage( _rNormalImages
);
579 m_aHCImage
= GetImage( _rHCImages
);
582 //............................................................................
585 //............................................................................
587 //========================================================================
588 // class NavigatorFrame
589 //========================================================================
590 DBG_NAME(NavigatorFrame
)
591 //------------------------------------------------------------------------
592 NavigatorFrame::NavigatorFrame( SfxBindings
* _pBindings
, SfxChildWindow
* _pMgr
,
594 :SfxDockingWindow( _pBindings
, _pMgr
, _pParent
, WinBits(WB_STDMODELESS
|WB_SIZEABLE
|WB_ROLLABLE
|WB_3DLOOK
|WB_DOCKABLE
) )
595 ,SfxControllerItem( SID_FM_FMEXPLORER_CONTROL
, *_pBindings
)
597 DBG_CTOR(NavigatorFrame
,NULL
);
598 SetHelpId( HID_FORM_NAVIGATOR_WIN
);
600 m_pNavigatorTree
= new NavigatorTree(comphelper::getProcessServiceFactory(), this );
601 m_pNavigatorTree
->Show();
602 SetText( SVX_RES(RID_STR_FMEXPLORER
) );
603 SfxDockingWindow::SetFloatingSize( Size(200,200) );
606 //------------------------------------------------------------------------
607 NavigatorFrame::~NavigatorFrame()
609 delete m_pNavigatorTree
;
610 DBG_DTOR(NavigatorFrame
,NULL
);
613 //-----------------------------------------------------------------------
614 void NavigatorFrame::UpdateContent( FmFormShell
* pFormShell
)
616 m_pNavigatorTree
->UpdateContent( pFormShell
);
619 //-----------------------------------------------------------------------
620 void NavigatorFrame::StateChanged( sal_uInt16 nSID
, SfxItemState eState
, const SfxPoolItem
* pState
)
622 if( !pState
|| SID_FM_FMEXPLORER_CONTROL
!= nSID
)
625 if( eState
>= SFX_ITEM_AVAILABLE
)
627 FmFormShell
* pShell
= PTR_CAST( FmFormShell
,((SfxObjectItem
*)pState
)->GetShell() );
628 UpdateContent( pShell
);
631 UpdateContent( NULL
);
634 //-----------------------------------------------------------------------
635 void NavigatorFrame::GetFocus()
637 if ( m_pNavigatorTree
)
638 m_pNavigatorTree
->GrabFocus();
640 SfxDockingWindow::GetFocus();
643 //-----------------------------------------------------------------------
644 sal_Bool
NavigatorFrame::Close()
646 UpdateContent( NULL
);
647 return SfxDockingWindow::Close();
650 //-----------------------------------------------------------------------
651 void NavigatorFrame::FillInfo( SfxChildWinInfo
& rInfo
) const
653 SfxDockingWindow::FillInfo( rInfo
);
654 rInfo
.bVisible
= sal_False
;
657 //-----------------------------------------------------------------------
658 Size
NavigatorFrame::CalcDockingSize( SfxChildAlignment eAlign
)
660 if ( ( eAlign
== SFX_ALIGN_TOP
) || ( eAlign
== SFX_ALIGN_BOTTOM
) )
663 return SfxDockingWindow::CalcDockingSize( eAlign
);
666 //-----------------------------------------------------------------------
667 SfxChildAlignment
NavigatorFrame::CheckAlignment( SfxChildAlignment _eActAlign
, SfxChildAlignment _eAlign
)
669 if ( ( _eAlign
== SFX_ALIGN_LEFT
) || ( _eAlign
== SFX_ALIGN_RIGHT
) || ( _eAlign
== SFX_ALIGN_NOALIGNMENT
) )
674 //------------------------------------------------------------------------
675 void NavigatorFrame::Resize()
677 SfxDockingWindow::Resize();
679 Size aLogOutputSize
= PixelToLogic( GetOutputSizePixel(), MAP_APPFONT
);
680 Size aLogExplSize
= aLogOutputSize
;
681 aLogExplSize
.Width() -= 6;
682 aLogExplSize
.Height() -= 6;
684 Point aExplPos
= LogicToPixel( Point(3,3), MAP_APPFONT
);
685 Size aExplSize
= LogicToPixel( aLogExplSize
, MAP_APPFONT
);
687 m_pNavigatorTree
->SetPosSizePixel( aExplPos
, aExplSize
);
691 //========================================================================
692 // class NavigatorFrameManager
693 //========================================================================
695 //-----------------------------------------------------------------------
696 SFX_IMPL_DOCKINGWINDOW( NavigatorFrameManager
, SID_FM_SHOW_FMEXPLORER
)
698 //-----------------------------------------------------------------------
699 NavigatorFrameManager::NavigatorFrameManager( Window
* _pParent
, sal_uInt16 _nId
,
700 SfxBindings
* _pBindings
, SfxChildWinInfo
* _pInfo
)
701 :SfxChildWindow( _pParent
, _nId
)
703 pWindow
= new NavigatorFrame( _pBindings
, this, _pParent
);
704 eChildAlignment
= SFX_ALIGN_NOALIGNMENT
;
705 ((SfxDockingWindow
*)pWindow
)->Initialize( _pInfo
);
708 //............................................................................
709 } // namespace svxform
710 //............................................................................