1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir #ifndef _SVX_FILTNAV_HXX 28*cdf0e10cSrcweir #define _SVX_FILTNAV_HXX 29*cdf0e10cSrcweir 30*cdf0e10cSrcweir #include <com/sun/star/form/XForm.hpp> 31*cdf0e10cSrcweir #include <com/sun/star/form/runtime/XFormController.hpp> 32*cdf0e10cSrcweir #include <com/sun/star/form/runtime/XFilterController.hpp> 33*cdf0e10cSrcweir #include <svl/lstner.hxx> 34*cdf0e10cSrcweir #include <svl/brdcst.hxx> 35*cdf0e10cSrcweir 36*cdf0e10cSrcweir #include <vcl/window.hxx> 37*cdf0e10cSrcweir #include <sfx2/childwin.hxx> 38*cdf0e10cSrcweir #include <svl/poolitem.hxx> 39*cdf0e10cSrcweir #include <sfx2/bindings.hxx> 40*cdf0e10cSrcweir #include <sfx2/dockwin.hxx> 41*cdf0e10cSrcweir #include <sfx2/ctrlitem.hxx> 42*cdf0e10cSrcweir #include <vcl/image.hxx> 43*cdf0e10cSrcweir #include <svtools/svtreebx.hxx> 44*cdf0e10cSrcweir 45*cdf0e10cSrcweir #include <vcl/dialog.hxx> 46*cdf0e10cSrcweir #include <vcl/group.hxx> 47*cdf0e10cSrcweir #include <vcl/dockwin.hxx> 48*cdf0e10cSrcweir #include "svx/fmtools.hxx" 49*cdf0e10cSrcweir #include "fmexch.hxx" 50*cdf0e10cSrcweir #include <connectivity/sqlparse.hxx> 51*cdf0e10cSrcweir #include "fmexch.hxx" 52*cdf0e10cSrcweir #include "sqlparserclient.hxx" 53*cdf0e10cSrcweir 54*cdf0e10cSrcweir class FmFormShell; 55*cdf0e10cSrcweir 56*cdf0e10cSrcweir //........................................................................ 57*cdf0e10cSrcweir namespace svxform 58*cdf0e10cSrcweir { 59*cdf0e10cSrcweir //........................................................................ 60*cdf0e10cSrcweir 61*cdf0e10cSrcweir class FmFilterItem; 62*cdf0e10cSrcweir class FmFilterItems; 63*cdf0e10cSrcweir class FmParentData; 64*cdf0e10cSrcweir class FmFilterAdapter; 65*cdf0e10cSrcweir 66*cdf0e10cSrcweir //======================================================================== 67*cdf0e10cSrcweir // data structure for the filter model 68*cdf0e10cSrcweir //======================================================================== 69*cdf0e10cSrcweir class FmFilterData 70*cdf0e10cSrcweir { 71*cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xORB; 72*cdf0e10cSrcweir FmParentData* m_pParent; 73*cdf0e10cSrcweir ::rtl::OUString m_aText; 74*cdf0e10cSrcweir 75*cdf0e10cSrcweir public: 76*cdf0e10cSrcweir TYPEINFO(); 77*cdf0e10cSrcweir FmFilterData(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory,FmParentData* pParent = NULL, const ::rtl::OUString& rText = ::rtl::OUString()) 78*cdf0e10cSrcweir :m_xORB( _rxFactory ) 79*cdf0e10cSrcweir ,m_pParent( pParent ) 80*cdf0e10cSrcweir ,m_aText( rText ) 81*cdf0e10cSrcweir {} 82*cdf0e10cSrcweir virtual ~FmFilterData(){} 83*cdf0e10cSrcweir 84*cdf0e10cSrcweir void SetText( const ::rtl::OUString& rText ){ m_aText = rText; } 85*cdf0e10cSrcweir ::rtl::OUString GetText() const { return m_aText; } 86*cdf0e10cSrcweir FmParentData* GetParent() const {return m_pParent;} 87*cdf0e10cSrcweir 88*cdf0e10cSrcweir virtual Image GetImage( BmpColorMode _eMode = BMP_COLOR_NORMAL ) const; 89*cdf0e10cSrcweir }; 90*cdf0e10cSrcweir 91*cdf0e10cSrcweir //======================================================================== 92*cdf0e10cSrcweir class FmParentData : public FmFilterData 93*cdf0e10cSrcweir { 94*cdf0e10cSrcweir protected: 95*cdf0e10cSrcweir ::std::vector< FmFilterData* > m_aChildren; 96*cdf0e10cSrcweir 97*cdf0e10cSrcweir public: 98*cdf0e10cSrcweir TYPEINFO(); 99*cdf0e10cSrcweir FmParentData(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory,FmParentData* pParent, const ::rtl::OUString& rText) 100*cdf0e10cSrcweir : FmFilterData(_rxFactory,pParent, rText) 101*cdf0e10cSrcweir {} 102*cdf0e10cSrcweir virtual ~FmParentData(); 103*cdf0e10cSrcweir 104*cdf0e10cSrcweir ::std::vector< FmFilterData* >& GetChildren() { return m_aChildren; } 105*cdf0e10cSrcweir }; 106*cdf0e10cSrcweir 107*cdf0e10cSrcweir //======================================================================== 108*cdf0e10cSrcweir // Item representing the forms and subforms 109*cdf0e10cSrcweir class FmFormItem : public FmParentData 110*cdf0e10cSrcweir { 111*cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController > m_xController; 112*cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFilterController > m_xFilterController; 113*cdf0e10cSrcweir 114*cdf0e10cSrcweir public: 115*cdf0e10cSrcweir TYPEINFO(); 116*cdf0e10cSrcweir 117*cdf0e10cSrcweir FmFormItem( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory,FmParentData* _pParent, 118*cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController > & _xController, 119*cdf0e10cSrcweir const ::rtl::OUString& _rText) 120*cdf0e10cSrcweir :FmParentData( _rxFactory, _pParent, _rText ) 121*cdf0e10cSrcweir ,m_xController( _xController ) 122*cdf0e10cSrcweir ,m_xFilterController( _xController, ::com::sun::star::uno::UNO_QUERY_THROW ) 123*cdf0e10cSrcweir { 124*cdf0e10cSrcweir } 125*cdf0e10cSrcweir 126*cdf0e10cSrcweir inline const ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController >& 127*cdf0e10cSrcweir GetController() { return m_xController; } 128*cdf0e10cSrcweir 129*cdf0e10cSrcweir inline const ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFilterController >& 130*cdf0e10cSrcweir GetFilterController() { return m_xFilterController; } 131*cdf0e10cSrcweir 132*cdf0e10cSrcweir virtual Image GetImage( BmpColorMode _eMode = BMP_COLOR_NORMAL ) const; 133*cdf0e10cSrcweir }; 134*cdf0e10cSrcweir 135*cdf0e10cSrcweir //======================================================================== 136*cdf0e10cSrcweir class FmFilterItems : public FmParentData 137*cdf0e10cSrcweir { 138*cdf0e10cSrcweir public: 139*cdf0e10cSrcweir TYPEINFO(); 140*cdf0e10cSrcweir FmFilterItems(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory):FmParentData(_rxFactory,NULL, ::rtl::OUString()){} 141*cdf0e10cSrcweir FmFilterItems(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory,FmFormItem* pParent, const ::rtl::OUString& rText ):FmParentData(_rxFactory,pParent, rText){} 142*cdf0e10cSrcweir 143*cdf0e10cSrcweir FmFilterItem* Find( const ::sal_Int32 _nFilterComponentIndex ) const; 144*cdf0e10cSrcweir virtual Image GetImage( BmpColorMode _eMode = BMP_COLOR_NORMAL ) const; 145*cdf0e10cSrcweir }; 146*cdf0e10cSrcweir 147*cdf0e10cSrcweir //======================================================================== 148*cdf0e10cSrcweir class FmFilterItem : public FmFilterData 149*cdf0e10cSrcweir { 150*cdf0e10cSrcweir ::rtl::OUString m_aFieldName; 151*cdf0e10cSrcweir const sal_Int32 m_nComponentIndex; 152*cdf0e10cSrcweir 153*cdf0e10cSrcweir public: 154*cdf0e10cSrcweir TYPEINFO(); 155*cdf0e10cSrcweir FmFilterItem( 156*cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory, 157*cdf0e10cSrcweir FmFilterItems* pParent, 158*cdf0e10cSrcweir const ::rtl::OUString& aFieldName, 159*cdf0e10cSrcweir const ::rtl::OUString& aCondition, 160*cdf0e10cSrcweir const sal_Int32 _nComponentIndex 161*cdf0e10cSrcweir ); 162*cdf0e10cSrcweir 163*cdf0e10cSrcweir const ::rtl::OUString& GetFieldName() const {return m_aFieldName;} 164*cdf0e10cSrcweir sal_Int32 GetComponentIndex() const { return m_nComponentIndex; } 165*cdf0e10cSrcweir 166*cdf0e10cSrcweir virtual Image GetImage( BmpColorMode _eMode = BMP_COLOR_NORMAL ) const; 167*cdf0e10cSrcweir }; 168*cdf0e10cSrcweir 169*cdf0e10cSrcweir //======================================================================== 170*cdf0e10cSrcweir class FmFilterModel : public FmParentData 171*cdf0e10cSrcweir ,public SfxBroadcaster 172*cdf0e10cSrcweir ,public ::svxform::OSQLParserClient 173*cdf0e10cSrcweir { 174*cdf0e10cSrcweir friend class FmFilterAdapter; 175*cdf0e10cSrcweir 176*cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > m_xControllers; 177*cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController > m_xController; 178*cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xORB; 179*cdf0e10cSrcweir FmFilterAdapter* m_pAdapter; 180*cdf0e10cSrcweir FmFilterItems* m_pCurrentItems; 181*cdf0e10cSrcweir 182*cdf0e10cSrcweir public: 183*cdf0e10cSrcweir TYPEINFO(); 184*cdf0e10cSrcweir FmFilterModel(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory); 185*cdf0e10cSrcweir virtual ~FmFilterModel(); 186*cdf0e10cSrcweir 187*cdf0e10cSrcweir void Update(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > & xControllers, const ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController > & xCurrent); 188*cdf0e10cSrcweir void Clear(); 189*cdf0e10cSrcweir sal_Bool ValidateText(FmFilterItem* pItem, UniString& rText, UniString& rErrorMsg) const; 190*cdf0e10cSrcweir void Append(FmFilterItems* pItems, FmFilterItem* pFilterItem); 191*cdf0e10cSrcweir void SetTextForItem(FmFilterItem* pItem, const ::rtl::OUString& rText); 192*cdf0e10cSrcweir 193*cdf0e10cSrcweir FmFormItem* GetCurrentForm() const {return m_pCurrentItems ? (FmFormItem*)m_pCurrentItems->GetParent() : NULL;} 194*cdf0e10cSrcweir FmFilterItems* GetCurrentItems() const {return m_pCurrentItems;} 195*cdf0e10cSrcweir void SetCurrentItems(FmFilterItems* pCurrent); 196*cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > getORB() const { return m_xORB; } 197*cdf0e10cSrcweir 198*cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > & GetControllers() const {return m_xControllers;} 199*cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController > & GetCurrentController() const {return m_xController;} 200*cdf0e10cSrcweir void SetCurrentController(const ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController > & xController); 201*cdf0e10cSrcweir 202*cdf0e10cSrcweir void Remove(FmFilterData* pFilterItem); 203*cdf0e10cSrcweir void AppendFilterItems( FmFormItem& _rItem ); 204*cdf0e10cSrcweir void EnsureEmptyFilterRows( FmParentData& _rItem ); 205*cdf0e10cSrcweir 206*cdf0e10cSrcweir protected: 207*cdf0e10cSrcweir void Insert(const ::std::vector<FmFilterData*>::iterator& rPos, FmFilterData* pFilterItem); 208*cdf0e10cSrcweir void Remove( const ::std::vector<FmFilterData*>::iterator& rPos ); 209*cdf0e10cSrcweir FmFormItem* Find(const ::std::vector<FmFilterData*>& rItems, const ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController > & xController) const; 210*cdf0e10cSrcweir FmFormItem* Find(const ::std::vector<FmFilterData*>& rItems, const ::com::sun::star::uno::Reference< ::com::sun::star::form::XForm >& xForm) const; 211*cdf0e10cSrcweir void Update(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > & xControllers, FmParentData* pParent); 212*cdf0e10cSrcweir }; 213*cdf0e10cSrcweir 214*cdf0e10cSrcweir //======================================================================== 215*cdf0e10cSrcweir //======================================================================== 216*cdf0e10cSrcweir class OFilterItemExchange : public OLocalExchange 217*cdf0e10cSrcweir { 218*cdf0e10cSrcweir ::std::vector<FmFilterItem*> m_aDraggedEntries; 219*cdf0e10cSrcweir FmFormItem* m_pFormItem; // ensure that we drop on the same form 220*cdf0e10cSrcweir 221*cdf0e10cSrcweir public: 222*cdf0e10cSrcweir OFilterItemExchange(); 223*cdf0e10cSrcweir 224*cdf0e10cSrcweir static sal_uInt32 getFormatId( ); 225*cdf0e10cSrcweir inline static sal_Bool hasFormat( const DataFlavorExVector& _rFormats ); 226*cdf0e10cSrcweir 227*cdf0e10cSrcweir const ::std::vector<FmFilterItem*>& getDraggedEntries() const { return m_aDraggedEntries; } 228*cdf0e10cSrcweir void setDraggedEntries(const ::std::vector<FmFilterItem*>& _rList) { m_aDraggedEntries = _rList; } 229*cdf0e10cSrcweir FmFormItem* getFormItem() const { return m_pFormItem; } 230*cdf0e10cSrcweir 231*cdf0e10cSrcweir void setFormItem( FmFormItem* _pItem ) { m_pFormItem = _pItem; } 232*cdf0e10cSrcweir void addSelectedItem( FmFilterItem* _pItem) { m_aDraggedEntries.push_back(_pItem); } 233*cdf0e10cSrcweir 234*cdf0e10cSrcweir protected: 235*cdf0e10cSrcweir virtual void AddSupportedFormats(); 236*cdf0e10cSrcweir }; 237*cdf0e10cSrcweir 238*cdf0e10cSrcweir inline sal_Bool OFilterItemExchange::hasFormat( const DataFlavorExVector& _rFormats ) 239*cdf0e10cSrcweir { 240*cdf0e10cSrcweir return OLocalExchange::hasFormat( _rFormats, getFormatId() ); 241*cdf0e10cSrcweir } 242*cdf0e10cSrcweir 243*cdf0e10cSrcweir //==================================================================== 244*cdf0e10cSrcweir //= OFilterExchangeHelper 245*cdf0e10cSrcweir //==================================================================== 246*cdf0e10cSrcweir class OFilterExchangeHelper : public OLocalExchangeHelper 247*cdf0e10cSrcweir { 248*cdf0e10cSrcweir public: 249*cdf0e10cSrcweir OFilterExchangeHelper(Window* _pDragSource) : OLocalExchangeHelper(_pDragSource) { } 250*cdf0e10cSrcweir 251*cdf0e10cSrcweir OFilterItemExchange* operator->() const { return static_cast<OFilterItemExchange*>(m_pTransferable); } 252*cdf0e10cSrcweir 253*cdf0e10cSrcweir protected: 254*cdf0e10cSrcweir virtual OLocalExchange* createExchange() const; 255*cdf0e10cSrcweir }; 256*cdf0e10cSrcweir 257*cdf0e10cSrcweir //======================================================================== 258*cdf0e10cSrcweir class FmFilterNavigator : public SvTreeListBox, public SfxListener 259*cdf0e10cSrcweir { 260*cdf0e10cSrcweir enum DROP_ACTION{ DA_SCROLLUP, DA_SCROLLDOWN, DA_EXPANDNODE }; 261*cdf0e10cSrcweir 262*cdf0e10cSrcweir FmFilterModel* m_pModel; 263*cdf0e10cSrcweir SvLBoxEntry* m_pEditingCurrently; 264*cdf0e10cSrcweir OFilterExchangeHelper m_aControlExchange; 265*cdf0e10cSrcweir 266*cdf0e10cSrcweir 267*cdf0e10cSrcweir AutoTimer m_aDropActionTimer; 268*cdf0e10cSrcweir unsigned short m_aTimerCounter; 269*cdf0e10cSrcweir Point m_aTimerTriggered; // die Position, an der der DropTimer angeschaltet wurde 270*cdf0e10cSrcweir DROP_ACTION m_aDropActionType; 271*cdf0e10cSrcweir 272*cdf0e10cSrcweir public: 273*cdf0e10cSrcweir FmFilterNavigator( Window* pParent ); 274*cdf0e10cSrcweir virtual ~FmFilterNavigator(); 275*cdf0e10cSrcweir 276*cdf0e10cSrcweir void UpdateContent( 277*cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > & xControllers, 278*cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController > & xCurrent 279*cdf0e10cSrcweir ); 280*cdf0e10cSrcweir const FmFilterModel* GetFilterModel() const {return m_pModel;} 281*cdf0e10cSrcweir 282*cdf0e10cSrcweir protected: 283*cdf0e10cSrcweir using Control::Notify; 284*cdf0e10cSrcweir 285*cdf0e10cSrcweir virtual void KeyInput( const KeyEvent& rKEvt ); 286*cdf0e10cSrcweir virtual void Command( const CommandEvent& rEvt ); 287*cdf0e10cSrcweir virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ); 288*cdf0e10cSrcweir virtual void InitEntry(SvLBoxEntry* pEntry, const XubString& rStr, const Image& rImg1, const Image& rImg2, SvLBoxButtonKind eButtonKind); 289*cdf0e10cSrcweir virtual sal_Bool Select( SvLBoxEntry* pEntry, sal_Bool bSelect=sal_True ); 290*cdf0e10cSrcweir virtual sal_Bool EditingEntry( SvLBoxEntry* pEntry, Selection& rSelection ); 291*cdf0e10cSrcweir virtual sal_Bool EditedEntry( SvLBoxEntry* pEntry, const XubString& rNewText ); 292*cdf0e10cSrcweir 293*cdf0e10cSrcweir virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt ); 294*cdf0e10cSrcweir virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt ); 295*cdf0e10cSrcweir virtual void StartDrag( sal_Int8 nAction, const Point& rPosPixel ); 296*cdf0e10cSrcweir 297*cdf0e10cSrcweir void DeleteSelection(); 298*cdf0e10cSrcweir void Clear(); 299*cdf0e10cSrcweir SvLBoxEntry* FindEntry(const FmFilterData* pItem) const; 300*cdf0e10cSrcweir void Insert(FmFilterData* pItem, sal_Int32 nPos); 301*cdf0e10cSrcweir void Remove(FmFilterData* pItem); 302*cdf0e10cSrcweir 303*cdf0e10cSrcweir DECL_LINK(OnRemove, SvLBoxEntry*); 304*cdf0e10cSrcweir DECL_LINK(OnEdited, SvLBoxEntry*); 305*cdf0e10cSrcweir DECL_LINK(OnDropActionTimer, void*); 306*cdf0e10cSrcweir 307*cdf0e10cSrcweir private: 308*cdf0e10cSrcweir /** returns the first form item and the selected FilterItems in the vector 309*cdf0e10cSrcweir @param _rItemList 310*cdf0e10cSrcweir Is filled inside. <OUT/> 311*cdf0e10cSrcweir @return 312*cdf0e10cSrcweir The first form item. 313*cdf0e10cSrcweir */ 314*cdf0e10cSrcweir FmFormItem* getSelectedFilterItems(::std::vector<FmFilterItem*>& _rItemList); 315*cdf0e10cSrcweir /* inserts the filter items into the tree model and creates new FilterItems if needed. 316*cdf0e10cSrcweir @param _rFilterList 317*cdf0e10cSrcweir The items which should be inserted. 318*cdf0e10cSrcweir @param _pTargetItems 319*cdf0e10cSrcweir The target where to insert the items. 320*cdf0e10cSrcweir @param _bCopy 321*cdf0e10cSrcweir If <TRUE/> the items will not be removed from the model, otherwise they will. 322*cdf0e10cSrcweir */ 323*cdf0e10cSrcweir void insertFilterItem(const ::std::vector<FmFilterItem*>& _rFilterList,FmFilterItems* _pTargetItems,sal_Bool _bCopy = sal_False); 324*cdf0e10cSrcweir SvLBoxEntry* getPrevEntry(SvLBoxEntry* _pStartWith = NULL); 325*cdf0e10cSrcweir SvLBoxEntry* getNextEntry(SvLBoxEntry* _pStartWith = NULL); 326*cdf0e10cSrcweir 327*cdf0e10cSrcweir using SvTreeListBox::Select; 328*cdf0e10cSrcweir using SvTreeListBox::ExecuteDrop; 329*cdf0e10cSrcweir using SvTreeListBox::Insert; 330*cdf0e10cSrcweir }; 331*cdf0e10cSrcweir 332*cdf0e10cSrcweir //======================================================================== 333*cdf0e10cSrcweir class FmFilterNavigatorWin : public SfxDockingWindow, public SfxControllerItem 334*cdf0e10cSrcweir { 335*cdf0e10cSrcweir private: 336*cdf0e10cSrcweir FmFilterNavigator* m_pNavigator; 337*cdf0e10cSrcweir 338*cdf0e10cSrcweir protected: 339*cdf0e10cSrcweir virtual void Resize(); 340*cdf0e10cSrcweir virtual sal_Bool Close(); 341*cdf0e10cSrcweir virtual Size CalcDockingSize( SfxChildAlignment ); 342*cdf0e10cSrcweir virtual SfxChildAlignment CheckAlignment( SfxChildAlignment, SfxChildAlignment ); 343*cdf0e10cSrcweir 344*cdf0e10cSrcweir public: 345*cdf0e10cSrcweir FmFilterNavigatorWin( SfxBindings *pBindings, SfxChildWindow *pMgr, 346*cdf0e10cSrcweir Window* pParent ); 347*cdf0e10cSrcweir virtual ~FmFilterNavigatorWin(); 348*cdf0e10cSrcweir 349*cdf0e10cSrcweir void UpdateContent( FmFormShell* pFormShell ); 350*cdf0e10cSrcweir void StateChanged( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ); 351*cdf0e10cSrcweir void FillInfo( SfxChildWinInfo& rInfo ) const; 352*cdf0e10cSrcweir 353*cdf0e10cSrcweir using SfxDockingWindow::StateChanged; 354*cdf0e10cSrcweir 355*cdf0e10cSrcweir virtual void GetFocus(); 356*cdf0e10cSrcweir }; 357*cdf0e10cSrcweir 358*cdf0e10cSrcweir //======================================================================== 359*cdf0e10cSrcweir class FmFilterNavigatorWinMgr : public SfxChildWindow 360*cdf0e10cSrcweir { 361*cdf0e10cSrcweir public: 362*cdf0e10cSrcweir FmFilterNavigatorWinMgr( Window *pParent, sal_uInt16 nId, SfxBindings *pBindings, 363*cdf0e10cSrcweir SfxChildWinInfo *pInfo ); 364*cdf0e10cSrcweir SFX_DECL_CHILDWINDOW( FmFilterNavigatorWinMgr ); 365*cdf0e10cSrcweir }; 366*cdf0e10cSrcweir 367*cdf0e10cSrcweir //........................................................................ 368*cdf0e10cSrcweir } // namespace svxform 369*cdf0e10cSrcweir //........................................................................ 370*cdf0e10cSrcweir 371*cdf0e10cSrcweir #endif // _SVX_FILTNAV_HXX 372*cdf0e10cSrcweir 373