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