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