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