LCOV - code coverage report
Current view: top level - libreoffice/svx/source/form - fmexpl.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 1 271 0.4 %
Date: 2012-12-27 Functions: 1 107 0.9 %
Legend: Lines: hit not hit

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

Generated by: LCOV version 1.10