LibreOffice Module svx (master)  1
fmexpl.hxx
Go to the documentation of this file.
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 #ifndef INCLUDED_SVX_SOURCE_INC_FMEXPL_HXX
20 #define INCLUDED_SVX_SOURCE_INC_FMEXPL_HXX
21 
22 #include <svl/lstner.hxx>
23 #include <svl/SfxBroadcaster.hxx>
24 #include <vcl/window.hxx>
25 #include <sfx2/childwin.hxx>
26 #include <svl/poolitem.hxx>
27 #include <sfx2/bindings.hxx>
28 #include <sfx2/dockwin.hxx>
29 #include <sfx2/ctrlitem.hxx>
30 #include <vcl/image.hxx>
31 
32 #include <com/sun/star/container/XNameContainer.hpp>
33 #include <com/sun/star/form/XForm.hpp>
34 #include <com/sun/star/form/XFormComponent.hpp>
35 #include <com/sun/star/beans/PropertyChangeEvent.hpp>
36 #include <com/sun/star/container/XContainerListener.hpp>
37 #include <com/sun/star/container/XContainer.hpp>
38 #include <com/sun/star/beans/XPropertyChangeListener.hpp>
39 #include <com/sun/star/container/XIndexContainer.hpp>
40 
41 #include <vcl/treelistbox.hxx>
42 
43 #include <svx/fmview.hxx>
44 
45 #include "fmexch.hxx"
46 #include <vector>
47 #include <set>
48 #include <cppuhelper/implbase.hxx>
49 
50 class SdrObjListIter;
51 class FmFormShell;
52 class SdrObject;
53 class FmFormModel;
54 class FmFormView;
55 class SdrMarkList;
56 
57 
58 class FmEntryData;
59 class FmNavInsertedHint : public SfxHint
60 {
62  sal_uInt32 const nPos;
63 
64 public:
65  FmNavInsertedHint( FmEntryData* pInsertedEntryData, sal_uInt32 nRelPos );
66  virtual ~FmNavInsertedHint() override;
67 
68  FmEntryData* GetEntryData() const { return pEntryData; }
69  sal_uInt32 GetRelPos() const { return nPos; }
70 };
71 
72 
74 {
75  FmEntryData* const pEntryData; // the data of the entry that has got a new model
76 
77 public:
78  FmNavModelReplacedHint( FmEntryData* pAffectedEntryData );
79  virtual ~FmNavModelReplacedHint() override;
80 
81  FmEntryData* GetEntryData() const { return pEntryData; }
82 };
83 
84 
85 class FmNavRemovedHint : public SfxHint
86 {
88 
89 public:
90  FmNavRemovedHint( FmEntryData* pInsertedEntryData );
91  virtual ~FmNavRemovedHint() override;
92 
93  FmEntryData* GetEntryData() const { return pEntryData; }
94 };
95 
96 
98 {
100  OUString const aNewName;
101 
102 public:
103  FmNavNameChangedHint( FmEntryData* pData, const OUString& rNewName );
104  virtual ~FmNavNameChangedHint() override;
105 
106  FmEntryData* GetEntryData() const { return pEntryData; }
107  const OUString& GetNewName() const { return aNewName; }
108 };
109 
110 
111 class FmNavClearedHint : public SfxHint
112 {
113 public:
115  virtual ~FmNavClearedHint() override;
116 };
117 
118 
120 {
122 public:
123  FmNavViewMarksChanged(FmFormView* pWhichView) { pView = pWhichView; }
124 
125  const FmFormView* GetAffectedView() const { return pView; }
126 };
127 
128 
129 class FmEntryDataList;
131 {
132 private:
133  css::uno::Reference< css::uno::XInterface > m_xNormalizedIFace;
134  css::uno::Reference< css::beans::XPropertySet > m_xProperties;
135  css::uno::Reference< css::container::XChild > m_xChild;
136 
137 protected:
139  OUString aText;
140 
141  std::unique_ptr<FmEntryDataList>
144 
145 protected:
146  void newObject( const css::uno::Reference< css::uno::XInterface >& _rxIFace );
147 
148 public:
149 
150  FmEntryData( FmEntryData* pParentData, const css::uno::Reference< css::uno::XInterface >& _rIFace );
151  FmEntryData( const FmEntryData& rEntryData );
152  virtual ~FmEntryData();
153 
154  void SetText( const OUString& rText ){ aText = rText; }
155  void SetParent( FmEntryData* pParentData ){ pParent = pParentData; }
156 
157  const Image& GetNormalImage() const { return m_aNormalImage; }
158 
159  const OUString& GetText() const { return aText; }
160  FmEntryData* GetParent() const { return pParent; }
161  FmEntryDataList* GetChildList() const { return pChildList.get(); }
162 
163  virtual bool IsEqualWithoutChildren( FmEntryData* pEntryData );
164  virtual std::unique_ptr<FmEntryData> Clone() = 0;
165 
166  // note that the interface returned is normalized, i.e. querying the given XInterface of the object
167  // for XInterface must return the interface itself.
168  const css::uno::Reference< css::uno::XInterface >& GetElement() const
169  {
170  return m_xNormalizedIFace;
171  }
172 
173  const css::uno::Reference< css::beans::XPropertySet >& GetPropertySet() const
174  {
175  return m_xProperties;
176  }
177 
178  const css::uno::Reference< css::container::XChild >& GetChildIFace() const
179  {
180  return m_xChild;
181  }
182 };
183 
184 
185 class FmEntryDataList final
186 {
187 private:
188  std::vector< std::unique_ptr<FmEntryData> > maEntryDataList;
189 
190 public:
191  FmEntryDataList();
193 
194  FmEntryData* at( size_t Index )
195  { return maEntryDataList.at(Index).get(); }
196 
197  size_t size() const { return maEntryDataList.size(); }
198  void removeNoDelete( FmEntryData* pItem );
199  void insert( std::unique_ptr<FmEntryData> pItem, size_t Index );
200  void clear();
201 };
202 
203 
204 // FmNavRequestSelectHint - someone tells the NavigatorTree to select certain entries
205 
206 typedef std::set<FmEntryData*> FmEntryDataArray;
207 
209 {
212 public:
214  : m_bMixedSelection(false)
215  {
216  }
217 
218  void SetMixedSelection(bool bMixedSelection) { m_bMixedSelection = bMixedSelection; }
219  bool IsMixedSelection() const { return m_bMixedSelection; }
220  void AddItem(FmEntryData* pEntry) { m_arredToSelect.insert(pEntry); }
221  void ClearItems() { m_arredToSelect.clear(); }
223 };
224 
225 
226 class FmFormData : public FmEntryData
227 {
228  css::uno::Reference< css::form::XForm > m_xForm;
229 
230 public:
231  FmFormData(const css::uno::Reference< css::form::XForm >& _rxForm, FmFormData* _pParent);
232  FmFormData( const FmFormData& rFormData );
233  virtual ~FmFormData() override;
234 
235  const css::uno::Reference< css::form::XForm >& GetFormIface() const { return m_xForm; }
236 
237  virtual bool IsEqualWithoutChildren( FmEntryData* pEntryData ) override;
238  virtual std::unique_ptr<FmEntryData> Clone() override;
239 };
240 
241 
243 {
244  css::uno::Reference< css::form::XFormComponent > m_xFormComponent;
245 
246  Image GetImage() const;
247 
248 public:
249 
251  const css::uno::Reference< css::form::XFormComponent >& _rxComponent,
252  FmFormData* _pParent
253  );
254  FmControlData( const FmControlData& rControlData );
255  virtual ~FmControlData() override;
256 
257  const css::uno::Reference< css::form::XFormComponent >& GetFormComponent() const { return m_xFormComponent; }
258  virtual bool IsEqualWithoutChildren( FmEntryData* pEntryData ) override;
259  virtual std::unique_ptr<FmEntryData> Clone() override;
260 
261  void ModelReplaced(const css::uno::Reference< css::form::XFormComponent >& _rxNew);
262 };
263 
264 
265 namespace svxform
266 {
267 
268 
269  class NavigatorTreeModel;
270 
272  :public ::cppu::WeakImplHelper < css::beans::XPropertyChangeListener
273  , css::container::XContainerListener
274  >
275  {
277  sal_uInt32 m_nLocks;
279 
280  public:
282 
283  // XEventListenerListener
284  virtual void SAL_CALL disposing(const css::lang::EventObject& Source) override;
285 
286  // css::beans::XPropertyChangeListener
287  virtual void SAL_CALL propertyChange(const css::beans::PropertyChangeEvent& evt) override;
288 
289  // css::container::XContainerListener
290 
291  virtual void SAL_CALL elementInserted(const css::container::ContainerEvent& rEvent) override;
292  virtual void SAL_CALL elementReplaced(const css::container::ContainerEvent& rEvent) override;
293  virtual void SAL_CALL elementRemoved(const css::container::ContainerEvent& rEvent) override;
294 
295  void Lock() { m_nLocks++; }
296  void UnLock() { m_nLocks--; }
297  bool IsLocked() const { return m_nLocks != 0; }
298  bool CanUndo() const { return m_bCanUndo; }
299  void ReleaseModel() { m_pNavModel = nullptr; }
300  private:
301  void Insert(const css::uno::Reference< css::uno::XInterface >& xIface, sal_Int32 nIndex);
302  void Remove( const css::uno::Reference< css::uno::XInterface >& _rxElement );
303  };
304 
306  ,public SfxListener
307  {
308  friend class NavigatorTree;
310 
311  std::unique_ptr<FmEntryDataList>
317 
318  void UpdateContent( const css::uno::Reference< css::form::XForms >& xForms );
319 
320  void InsertForm(const css::uno::Reference< css::form::XForm >& xForm, sal_uInt32 nRelPos);
321  void RemoveForm(FmFormData const * pFormData);
322 
323  void InsertFormComponent(const css::uno::Reference< css::form::XFormComponent >& xComp, sal_uInt32 nRelPos);
324  void RemoveFormComponent(FmControlData const * pControlData);
325  void InsertSdrObj(const SdrObject* pSdrObj);
326  void RemoveSdrObj(const SdrObject* pSdrObj);
327 
328  void ReplaceFormComponent(const css::uno::Reference< css::form::XFormComponent >& xOld, const css::uno::Reference< css::form::XFormComponent >& xNew);
329 
330  void BroadcastMarkedObjects(const SdrMarkList& mlMarked);
331  // send a RequestSelectHint with the currently selected objects
333  // is a helper for previous, manages the ... in SdrObjGroups;
334  // returns sal_True if the object is a FormComponent (or recursively consists only of such)
335 
336  public:
338  virtual ~NavigatorTreeModel() override;
339 
340  void FillBranch( FmFormData* pParentData );
341  void UpdateContent( FmFormShell* pNewShell );
342 
343  void Insert(FmEntryData* pEntryData, sal_uInt32 nRelPos = SAL_MAX_UINT32,
344  bool bAlterModel = false);
345  void Remove(FmEntryData* pEntryData, bool bAlterModel = false);
346 
347  static bool Rename( FmEntryData* pEntryData, const OUString& rNewText );
348 
349  void Clear();
350  void SetModified();
351 
352  css::uno::Reference< css::form::XForms > GetForms() const;
353  FmFormShell* GetFormShell() const { return m_pFormShell; }
354  FmFormPage* GetFormPage() const { return m_pFormPage; }
355  FmEntryData* FindData( const css::uno::Reference< css::uno::XInterface >& xElement, FmEntryDataList* pDataList, bool bRecurs=true );
356  FmEntryData* FindData( const OUString& rText, FmFormData const * pParentData, bool bRecurs );
357  FmEntryDataList* GetRootList() const { return m_pRootList.get(); }
358  static css::uno::Reference< css::container::XIndexContainer > GetFormComponents( FmFormData const * pParentFormData );
359 
360  virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override;
361  };
362 
363 
364  typedef std::set<SvTreeListEntry*> SvLBoxEntrySortedArray;
365 
366  class NavigatorTree : public SvTreeListBox, public SfxListener
367  {
370 
371  // when dropping I want to be able to scroll and to expand folders, for this:
374  // the meta-data about my current selection
375  SvLBoxEntrySortedArray m_arrCurrentSelection;
376  // the entries which, in the view, are currently marked as "cut" (painted semi-transparent)
378 
380 
381  std::unique_ptr<NavigatorTreeModel> m_pNavModel;
384 
386 
388  Point m_aTimerTriggered; // the position at which the DropTimer was switched on
390 
391  sal_uInt16 m_nSelectLock;
392  sal_uInt16 m_nFormsSelected;
394  sal_uInt16 m_nHiddenControls; // (the number is included in m_nControlsSelected)
395 
396  unsigned short m_aTimerCounter;
397 
398  bool m_bDragDataDirty : 1; // ditto
400  bool m_bRootSelected : 1;
401  bool m_bInitialUpdate : 1; // am I the first time in the UpdateContent?
402  bool m_bKeyboardCut : 1;
403 
404  FmControlData* NewControl( const OUString& rServiceName, SvTreeListEntry const * pParentEntry, bool bEditName );
405  void NewForm( SvTreeListEntry const * pParentEntry );
406  SvTreeListEntry* Insert( FmEntryData* pEntryData, sal_uLong nRelPos );
407  void Remove( FmEntryData* pEntryData );
408 
409 
410  void CollectSelectionData(SELDATA_ITEMS sdiHow);
411  // Collects the currently selected entries in m_arrCurrentSelection, normalizes the list if requested.
412  // - SDI_NORMALIZED simply means that all entries that already have a selected ancestor are not collected.
413  // - SDI_NORMALIZED_FORMARK means that the procedure is the same as for SDI_NORMALIZED,
414  // but entries whose direct parent is not selected are collected (independent of the
415  // status of further ancestors). The same applies for forms that are selected,
416  // regardless of the status of any ancestors.
417  // For both normalized modes, the m_nFormsSelected, ... contain the correct number,
418  // even if not all of these entries end up in m_arrCurrentSelection.
419  // SDI_DIRTY is of course not allowed as a parameter.
420 
421  // a single interface for all selected entries
422  void ShowSelectionProperties(bool bForce = false);
423  // delete all selected elements
424  void DeleteSelection();
425 
426  void SynchronizeSelection(FmEntryDataArray& arredToSelect);
427  // after calling this method, exactly the entries marked in the array are selected
428  void SynchronizeSelection();
429  // makes the same, takes the MarkList of the View
430  void SynchronizeMarkList();
431  // reverse direction of SynchronizeMarkList: selects in the view all controls corresponding to the current selection
432 
433  void CollectObjects(FmFormData const * pFormData, bool bDeep, ::std::set< css::uno::Reference< css::form::XFormComponent > >& _rObjects);
434 
435  // in the Select I usually update the Marklist of the corresponding view,
436  // with the following functions I can control the locking of this behavior
439  bool IsSelectionHandlingLocked() const { return m_nSelectLock>0; }
440 
441  static bool IsHiddenControl(FmEntryData const * pEntryData);
442 
443  DECL_LINK( OnEdit, void*, void );
444  DECL_LINK( OnDropActionTimer, Timer*, void );
445 
446  DECL_LINK( OnEntrySelDesel, SvTreeListBox*, void );
447  DECL_LINK( OnSynchronizeTimer, Timer*, void );
448 
449  DECL_LINK( OnClipboardAction, OLocalExchange&, void );
450 
451  protected:
452  virtual void Command( const CommandEvent& rEvt ) override;
453 
454  virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt ) override;
455  virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt ) override;
456  virtual void StartDrag( sal_Int8 nAction, const Point& rPosPixel ) override;
457 
458  public:
459  NavigatorTree(vcl::Window* pParent );
460  virtual ~NavigatorTree() override;
461  virtual void dispose() override;
462 
463  void Clear();
464  void UpdateContent( FmFormShell* pFormShell );
465  void MarkViewObj( FmFormData const * pFormData, bool bDeep );
466  void MarkViewObj( FmControlData const * pControlData );
467  void UnmarkAllViewObj();
468 
469  static bool IsFormEntry( SvTreeListEntry const * pEntry );
470  static bool IsFormComponentEntry( SvTreeListEntry const * pEntry );
471 
472  OUString GenerateName( FmEntryData const * pEntryData );
473 
474  NavigatorTreeModel* GetNavModel() const { return m_pNavModel.get(); }
475  SvTreeListEntry* FindEntry( FmEntryData* pEntryData );
476 
477  virtual bool EditedEntry( SvTreeListEntry* pEntry, const OUString& rNewText ) override;
478  virtual bool Select( SvTreeListEntry* pEntry, bool bSelect=true ) override;
479  virtual bool EditingEntry( SvTreeListEntry* pEntry, Selection& ) override;
480  virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override;
481  virtual void KeyInput( const KeyEvent& rKEvt ) override;
482 
483  virtual void ModelHasRemoved( SvTreeListEntry* _pEntry ) override;
484 
485  using SvTreeListBox::Insert;
487  using SvTreeListBox::Select;
488 
489  private:
490  sal_Int8 implAcceptDataTransfer( const DataFlavorExVector& _rFlavors, sal_Int8 _nAction, SvTreeListEntry* _pTargetEntry, bool _bDnD );
491 
492  sal_Int8 implExecuteDataTransfer( const OControlTransferData& _rData, sal_Int8 _nAction, const Point& _rDropPos, bool _bDnD );
493  sal_Int8 implExecuteDataTransfer( const OControlTransferData& _rData, sal_Int8 _nAction, SvTreeListEntry* _pTargetEntry, bool _bDnD );
494 
495  // check if a cut, copy, or drag operation can be started in the current situation
496  bool implAllowExchange( sal_Int8 _nAction, bool* _pHasNonHidden = nullptr );
497  // check if a paste with the current clipboard content can be accepted
498  bool implAcceptPaste( );
499 
500  // fills m_aControlExchange in preparation of a DnD or clipboard operation
501  bool implPrepareExchange( sal_Int8 _nAction );
502 
503  void doPaste();
504  void doCopy();
505  void doCut();
506 
507  bool doingKeyboardCut( ) const { return m_bKeyboardCut; }
508  };
509 
510 
512  {
513  private:
515 
516  protected:
517  virtual void Resize() override;
518  virtual bool Close() override;
519  virtual void GetFocus() override;
520  virtual Size CalcDockingSize( SfxChildAlignment ) override;
522 
524 
525  public:
527  vcl::Window* pParent );
528  virtual ~NavigatorFrame() override;
529  virtual void dispose() override;
530 
531  void UpdateContent( FmFormShell* pFormShell );
532  void StateChanged( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState ) override;
533  void FillInfo( SfxChildWinInfo& rInfo ) const override;
534  };
535 
536 
538  {
539  public:
540  SVX_DLLPRIVATE NavigatorFrameManager( vcl::Window *pParent, sal_uInt16 nId, SfxBindings *pBindings,
541  SfxChildWinInfo *pInfo );
542  SFX_DECL_CHILDWINDOW( NavigatorFrameManager );
543  };
544 
545 
546 }
547 
548 
549 #endif // INCLUDED_SVX_SOURCE_INC_FMEXPL_HXX
550 
551 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
virtual sal_Int8 ExecuteDrop(const ExecuteDropEvent &rEvt) override
virtual void SAL_CALL elementRemoved(const css::container::ContainerEvent &rEvent) override
css::uno::Reference< css::form::XForm > m_xForm
Definition: fmexpl.hxx:228
virtual void SAL_CALL disposing(const css::lang::EventObject &Source) override
virtual sal_Int8 ExecuteDrop(const ExecuteDropEvent &rEvt) override
void SetMixedSelection(bool bMixedSelection)
Definition: fmexpl.hxx:218
void UpdateContent(FmFormShell *pFormShell)
Definition: fmexpl.cxx:483
void Remove(const css::uno::Reference< css::uno::XInterface > &_rxElement)
void removeNoDelete(FmEntryData *pItem)
Definition: fmexpl.cxx:133
FmEntryDataArray m_arredToSelect
Definition: fmexpl.hxx:210
FmFormPage * m_pFormPage
Definition: fmexpl.hxx:314
virtual ~FmControlData() override
Definition: fmexpl.cxx:306
void UpdateContent(FmFormShell *pFormShell)
bool implAllowExchange(sal_Int8 _nAction, bool *_pHasNonHidden=nullptr)
AutoTimer m_aDropActionTimer
Definition: fmexpl.hxx:372
signed char sal_Int8
virtual ~FmNavClearedHint() override
Definition: fmexpl.cxx:118
const OUString & GetNewName() const
Definition: fmexpl.hxx:107
virtual SfxChildAlignment CheckAlignment(SfxChildAlignment, SfxChildAlignment) override
Definition: fmexpl.cxx:536
void InsertSdrObj(const SdrObject *pSdrObj)
FmControlData * NewControl(const OUString &rServiceName, SvTreeListEntry const *pParentEntry, bool bEditName)
::std::vector< DataFlavorEx > DataFlavorExVector
sal_uIntPtr sal_uLong
void CollectSelectionData(SELDATA_ITEMS sdiHow)
FmEntryData * GetParent() const
Definition: fmexpl.hxx:160
void UpdateContent(const css::uno::Reference< css::form::XForms > &xForms)
ImplSVEvent * nEditEvent
Definition: fmexpl.hxx:385
static bool IsHiddenControl(FmEntryData const *pEntryData)
SvLBoxEntrySortedArray m_arrCurrentSelection
Definition: fmexpl.hxx:375
virtual void SAL_CALL elementReplaced(const css::container::ContainerEvent &rEvent) override
FmEntryData *const pEntryData
Definition: fmexpl.hxx:87
sal_Int16 nId
NavigatorTreeModel * GetNavModel() const
Definition: fmexpl.hxx:474
void AddItem(FmEntryData *pEntry)
Definition: fmexpl.hxx:220
void InsertFormComponent(const css::uno::Reference< css::form::XFormComponent > &xComp, sal_uInt32 nRelPos)
FmNavRemovedHint(FmEntryData *pInsertedEntryData)
Definition: fmexpl.cxx:92
virtual bool EditedEntry(SvTreeListEntry *pEntry, const OUString &rNewText) override
css::uno::Reference< css::beans::XPropertySet > m_xProperties
Definition: fmexpl.hxx:134
FmEntryData *const pEntryData
Definition: fmexpl.hxx:99
SvTreeListEntry * m_pEditEntry
Definition: fmexpl.hxx:383
OUString GenerateName(FmEntryData const *pEntryData)
virtual bool EditingEntry(SvTreeListEntry *pEntry, Selection &) override
virtual bool IsEqualWithoutChildren(FmEntryData *pEntryData) override
Definition: fmexpl.cxx:430
static bool IsFormComponentEntry(SvTreeListEntry const *pEntry)
#define SVX_DLLPUBLIC
Definition: svxdllapi.h:28
virtual void GetFocus() override
Definition: fmexpl.cxx:504
void CollectObjects(FmFormData const *pFormData, bool bDeep,::std::set< css::uno::Reference< css::form::XFormComponent > > &_rObjects)
FmEntryData * GetEntryData() const
Definition: fmexpl.hxx:93
FmEntryDataList * GetRootList() const
Definition: fmexpl.hxx:357
::std::set< SvTreeListEntry * > ListBoxEntrySet
Definition: fmexch.hxx:43
virtual void StartDrag(sal_Int8 nAction, const Point &rPosPixel) override
virtual Size CalcDockingSize(SfxChildAlignment) override
Definition: fmexpl.cxx:527
SvTreeListEntry * FindEntry(FmEntryData *pEntryData)
FmFormModel * m_pFormModel
Definition: fmexpl.hxx:315
void FillBranch(FmFormData *pParentData)
#define SFX_DECL_CHILDWINDOW(Class)
virtual ~FmNavModelReplacedHint() override
Definition: fmexpl.cxx:88
void insert(std::unique_ptr< FmEntryData > pItem, size_t Index)
Definition: fmexpl.cxx:147
std::unique_ptr< FmEntryDataList > pChildList
Definition: fmexpl.hxx:142
const css::uno::Reference< css::uno::XInterface > & GetElement() const
Definition: fmexpl.hxx:168
void UnlockSelectionHandling()
Definition: fmexpl.hxx:438
void InsertForm(const css::uno::Reference< css::form::XForm > &xForm, sal_uInt32 nRelPos)
FmEntryData * GetEntryData() const
Definition: fmexpl.hxx:106
css::uno::Reference< css::uno::XInterface > m_xNormalizedIFace
Definition: fmexpl.hxx:133
FmEntryData * at(size_t Index)
Definition: fmexpl.hxx:194
std::unique_ptr< FmEntryDataList > m_pRootList
Definition: fmexpl.hxx:312
::svxform::OControlExchangeHelper m_aControlExchange
Definition: fmexpl.hxx:379
sal_uInt32 GetRelPos() const
Definition: fmexpl.hxx:69
Image m_aNormalImage
Definition: fmexpl.hxx:138
virtual void Resize() override
Definition: fmexpl.cxx:544
FmFormShell * GetFormShell() const
Definition: fmexpl.hxx:353
void SetText(const OUString &rText)
Definition: fmexpl.hxx:154
static css::uno::Reference< css::container::XIndexContainer > GetFormComponents(FmFormData const *pParentFormData)
FmFormPage * GetFormPage() const
Definition: fmexpl.hxx:354
virtual void dispose() override
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
void FillInfo(SfxChildWinInfo &rInfo) const override
Definition: fmexpl.cxx:520
DECL_LINK(OnEdit, void *, void)
sal_uInt32 const nPos
Definition: fmexpl.hxx:62
FmEntryData * pParent
Definition: fmexpl.hxx:143
VclPtr< ::svxform::NavigatorTree > m_pNavigatorTree
Definition: fmexpl.hxx:514
SvTreeListEntry * Insert(FmEntryData *pEntryData, sal_uLong nRelPos)
sal_uInt16 m_nFormsSelected
Definition: fmexpl.hxx:392
virtual ~NavigatorTree() override
virtual void KeyInput(const KeyEvent &rKEvt) override
void SetParent(FmEntryData *pParentData)
Definition: fmexpl.hxx:155
FmEntryData * GetEntryData() const
Definition: fmexpl.hxx:81
std::set< FmEntryData * > FmEntryDataArray
Definition: fmexpl.hxx:206
virtual ~FmNavNameChangedHint() override
Definition: fmexpl.cxx:109
virtual bool IsEqualWithoutChildren(FmEntryData *pEntryData)
Definition: fmexpl.cxx:211
virtual ~FmNavInsertedHint() override
Definition: fmexpl.cxx:76
SELDATA_ITEMS m_sdiState
Definition: fmexpl.hxx:387
const OUString & GetText() const
Definition: fmexpl.hxx:159
::svxform::NavigatorTreeModel * m_pNavModel
Definition: fmexpl.hxx:276
const css::uno::Reference< css::form::XForm > & GetFormIface() const
Definition: fmexpl.hxx:235
bool IsSelectionHandlingLocked() const
Definition: fmexpl.hxx:439
virtual sal_Int8 AcceptDrop(const AcceptDropEvent &rEvt) override
std::vector< std::unique_ptr< FmEntryData > > maEntryDataList
Definition: fmexpl.hxx:188
NavigatorFrame(SfxBindings *pBindings, SfxChildWindow *pMgr, vcl::Window *pParent)
Definition: fmexpl.cxx:456
void newObject(const css::uno::Reference< css::uno::XInterface > &_rxIFace)
Definition: fmexpl.cxx:179
const Image & GetNormalImage() const
Definition: fmexpl.hxx:157
void Insert(FmEntryData *pEntryData, sal_uInt32 nRelPos=SAL_MAX_UINT32, bool bAlterModel=false)
virtual void SAL_CALL elementInserted(const css::container::ContainerEvent &rEvent) override
FmEntryData * GetEntryData() const
Definition: fmexpl.hxx:68
css::uno::Reference< css::container::XChild > m_xChild
Definition: fmexpl.hxx:135
SvTreeListEntry * m_pRootEntry
Definition: fmexpl.hxx:382
void ShowSelectionProperties(bool bForce=false)
virtual std::unique_ptr< FmEntryData > Clone()=0
const css::uno::Reference< css::form::XFormComponent > & GetFormComponent() const
Definition: fmexpl.hxx:257
virtual void Command(const CommandEvent &rEvt) override
FmNavNameChangedHint(FmEntryData *pData, const OUString &rNewName)
Definition: fmexpl.cxx:102
css::uno::Reference< css::form::XForms > GetForms() const
virtual ~FmEntryData()
Definition: fmexpl.cxx:173
bool IsMixedSelection() const
Definition: fmexpl.hxx:219
void MarkViewObj(FmFormData const *pFormData, bool bDeep)
void clear()
Definition: fmexpl.cxx:158
static bool Rename(FmEntryData *pEntryData, const OUString &rNewText)
virtual bool IsEqualWithoutChildren(FmEntryData *pEntryData) override
Definition: fmexpl.cxx:275
Abstract DrawObject.
Definition: svdobj.hxx:312
FmNavViewMarksChanged(FmFormView *pWhichView)
Definition: fmexpl.hxx:123
virtual ~NavigatorTreeModel() override
virtual void StateChanged(StateChangedType nStateChange) override
virtual ~NavigatorFrame() override
Definition: fmexpl.cxx:470
size_t size() const
Definition: fmexpl.hxx:197
virtual void SAL_CALL propertyChange(const css::beans::PropertyChangeEvent &evt) override
virtual std::unique_ptr< FmEntryData > Clone() override
Definition: fmexpl.cxx:269
FmNavModelReplacedHint(FmEntryData *pAffectedEntryData)
Definition: fmexpl.cxx:82
void Insert(const css::uno::Reference< css::uno::XInterface > &xIface, sal_Int32 nIndex)
FmEntryData *const pEntryData
Definition: fmexpl.hxx:61
FmEntryData(FmEntryData *pParentData, const css::uno::Reference< css::uno::XInterface > &_rIFace)
FmFormShell * m_pFormShell
Definition: fmexpl.hxx:313
void StateChanged(sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem *pState) override
Definition: fmexpl.cxx:489
SfxItemState
SfxChildAlignment
void RemoveForm(FmFormData const *pFormData)
std::unique_ptr< NavigatorTreeModel > m_pNavModel
Definition: fmexpl.hxx:381
const css::uno::Reference< css::container::XChild > & GetChildIFace() const
Definition: fmexpl.hxx:178
sal_Int8 implExecuteDataTransfer(const OControlTransferData &_rData, sal_Int8 _nAction, const Point &_rDropPos, bool _bDnD)
unsigned short m_aTimerCounter
Definition: fmexpl.hxx:396
FmControlData(const css::uno::Reference< css::form::XFormComponent > &_rxComponent, FmFormData *_pParent)
OFormComponentObserver(::svxform::NavigatorTreeModel *pModel)
void LockSelectionHandling()
Definition: fmexpl.hxx:437
NavigatorTree(vcl::Window *pParent)
void ReplaceFormComponent(const css::uno::Reference< css::form::XFormComponent > &xOld, const css::uno::Reference< css::form::XFormComponent > &xNew)
FmFormView * pView
Definition: fmexpl.hxx:121
const css::uno::Reference< css::beans::XPropertySet > & GetPropertySet() const
Definition: fmexpl.hxx:173
FmEntryData * FindData(const css::uno::Reference< css::uno::XInterface > &xElement, FmEntryDataList *pDataList, bool bRecurs=true)
bool implPrepareExchange(sal_Int8 _nAction)
void RemoveSdrObj(const SdrObject *pSdrObj)
virtual void ModelHasRemoved(SvTreeListEntry *_pEntry) override
std::set< SvTreeListEntry * > SvLBoxEntrySortedArray
Definition: fmexpl.hxx:364
void ModelReplaced(const css::uno::Reference< css::form::XFormComponent > &_rxNew)
Definition: fmexpl.cxx:445
FmEntryData *const pEntryData
Definition: fmexpl.hxx:75
FmEntryDataArray & GetItems()
Definition: fmexpl.hxx:222
virtual ~FmNavRemovedHint() override
Definition: fmexpl.cxx:98
virtual bool Close() override
Definition: fmexpl.cxx:513
sal_uInt16 m_nControlsSelected
Definition: fmexpl.hxx:393
class FmSearchEngine - Impl class for FmSearchDialog
Image GetImage() const
Definition: fmexpl.cxx:324
const FmFormView * GetAffectedView() const
Definition: fmexpl.hxx:125
DROP_ACTION m_aDropActionType
Definition: fmexpl.hxx:389
virtual std::unique_ptr< FmEntryData > Clone() override
Definition: fmexpl.cxx:318
virtual bool Select(SvTreeListEntry *pEntry, bool bSelect=true)
FmFormData(const css::uno::Reference< css::form::XForm > &_rxForm, FmFormData *_pParent)
void Remove(FmEntryData *pEntryData)
void BroadcastMarkedObjects(const SdrMarkList &mlMarked)
ListBoxEntrySet m_aCutEntries
Definition: fmexpl.hxx:377
css::uno::Reference< css::form::XFormComponent > m_xFormComponent
Definition: fmexpl.hxx:244
virtual bool Select(SvTreeListEntry *pEntry, bool bSelect=true) override
sal_Int8 implAcceptDataTransfer(const DataFlavorExVector &_rFlavors, sal_Int8 _nAction, SvTreeListEntry *_pTargetEntry, bool _bDnD)
#define SVX_DLLPRIVATE
Definition: svxdllapi.h:30
OUString const aNewName
Definition: fmexpl.hxx:100
virtual sal_uLong Insert(SvTreeListEntry *pEnt, SvTreeListEntry *pPar, sal_uLong nPos=TREELIST_APPEND)
struct _ADOIndex Index
rtl::Reference< OFormComponentObserver > m_pPropChangeList
Definition: fmexpl.hxx:316
SfxChildWindow * pMgr
sal_uInt16 m_nHiddenControls
Definition: fmexpl.hxx:394
bool doingKeyboardCut() const
Definition: fmexpl.hxx:507
SfxBindings * pBindings
virtual void dispose() override
Definition: fmexpl.cxx:475
static bool IsFormEntry(SvTreeListEntry const *pEntry)
sal_uInt16 m_nSelectLock
Definition: fmexpl.hxx:391
FmEntryDataList * GetChildList() const
Definition: fmexpl.hxx:161
void NewForm(SvTreeListEntry const *pParentEntry)
FmNavInsertedHint(FmEntryData *pInsertedEntryData, sal_uInt32 nRelPos)
Definition: fmexpl.cxx:68
void Remove(FmEntryData *pEntryData, bool bAlterModel=false)
virtual ~FmFormData() override
Definition: fmexpl.cxx:258
void RemoveFormComponent(FmControlData const *pControlData)
OUString aText
Definition: fmexpl.hxx:139
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override