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