LibreOffice Module vcl (master)  1
layout.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 
10 #ifndef INCLUDED_VCL_LAYOUT_HXX
11 #define INCLUDED_VCL_LAYOUT_HXX
12 
13 #include <vcl/dllapi.h>
14 #include <vcl/button.hxx>
15 #include <vcl/help.hxx>
16 #include <vcl/scrbar.hxx>
17 #include <vcl/split.hxx>
18 #include <vcl/svapp.hxx>
19 #include <vcl/window.hxx>
20 #include <vcl/settings.hxx>
21 #include <vcl/event.hxx>
22 #include <vcl/transfer.hxx>
23 #include <vcl/vclptr.hxx>
24 #include <vcl/IContext.hxx>
25 #include <vcl/commandevent.hxx>
26 #include <set>
27 
29  public vcl::IContext
30 {
31 public:
33 
34  //These take into account the external margins of the rWindow widget
35  //while GetOptimalSize/get_preferred_size and SetPosSizePixel are
36  //oblivious to them
37  static Size getLayoutRequisition(const vcl::Window &rWindow);
38  static void setLayoutPosSize(vcl::Window &rWindow, const Point &rPos, const Size &rSize);
39 
40  //applies the allocation pos and size onto rWindow via setLayoutPosSize taking into account
41  //the rWindows alignment desires within that allocation
42  static void setLayoutAllocation(vcl::Window &rWindow, const Point &rPos, const Size &rSize);
43 
44  virtual void queue_resize(StateChangedType eReason = StateChangedType::Layout) override;
45 protected:
46  //these are the two that need to be implemented by
47  //containers, figure out how much space you want...
48  virtual Size calculateRequisition() const = 0;
49  //..and decide what to do when set to this size
50  virtual void setAllocation(const Size &rAllocation) = 0;
51 
52  virtual sal_uInt16 getDefaultAccessibleRole() const override;
53 
54  // support for screenshot context menu
55  virtual void Command(const CommandEvent& rCEvt) override;
56 
57 public:
58  //you don't want to override these
59  virtual Size GetOptimalSize() const override;
60  virtual void SetPosSizePixel(const Point& rNewPos, const Size& rNewSize) override;
61  virtual void SetPosPixel(const Point& rAllocPos) override;
62  virtual void SetSizePixel(const Size& rAllocation) override;
63 private:
65 };
66 
68 {
69 protected:
73 public:
74  VclBox(vcl::Window *pParent, bool bHomogeneous, int nSpacing)
75  : VclContainer(pParent)
76  , m_bHomogeneous(bHomogeneous)
77  , m_bVerticalContainer(false)
78  , m_nSpacing(nSpacing)
79  {
80  }
81  void set_spacing(int nSpacing)
82  {
83  m_nSpacing = nSpacing;
84  }
85  int get_spacing() const
86  {
87  return m_nSpacing;
88  }
89  void set_homogeneous(bool bHomogeneous)
90  {
91  m_bHomogeneous = bHomogeneous;
92  }
93  virtual bool set_property(const OString &rKey, const OUString &rValue) override;
94  virtual boost::property_tree::ptree DumpAsPropertyTree() override;
95 protected:
96  virtual sal_uInt16 getDefaultAccessibleRole() const override;
97  void accumulateMaxes(const Size &rChildSize, Size &rSize) const;
98  Size finalizeMaxes(const Size &rSize, sal_uInt16 nVisibleChildren) const;
99 
100  virtual Size calculateRequisition() const override;
101  virtual void setAllocation(const Size &rAllocation) override;
102 
103  virtual long getPrimaryDimension(const Size &rSize) const = 0;
104  virtual void setPrimaryDimension(Size &rSize, long) const = 0;
105  virtual long getPrimaryCoordinate(const Point &rPos) const = 0;
106  virtual void setPrimaryCoordinate(Point &rPos, long) const = 0;
107  virtual long getSecondaryDimension(const Size &rSize) const = 0;
108  virtual void setSecondaryDimension(Size &rSize, long) const = 0;
109 
110  virtual bool getPrimaryDimensionChildExpand(const vcl::Window &rWindow) const = 0;
111 };
112 
114 {
115 public:
116  VclVBox(vcl::Window *pParent, bool bHomogeneous = false, int nSpacing = 0)
117  : VclBox(pParent, bHomogeneous, nSpacing)
118  {
119  m_bVerticalContainer = true;
120  }
121 protected:
122  virtual long getPrimaryDimension(const Size &rSize) const override
123  {
124  return rSize.getHeight();
125  }
126  virtual void setPrimaryDimension(Size &rSize, long nHeight) const override
127  {
128  rSize.setHeight(nHeight);
129  }
130  virtual long getPrimaryCoordinate(const Point &rPos) const override
131  {
132  return rPos.getY();
133  }
134  virtual void setPrimaryCoordinate(Point &rPos, long nPos) const override
135  {
136  rPos.setY(nPos);
137  }
138  virtual long getSecondaryDimension(const Size &rSize) const override
139  {
140  return rSize.getWidth();
141  }
142  virtual void setSecondaryDimension(Size &rSize, long nWidth) const override
143  {
144  rSize.setWidth(nWidth);
145  }
146  virtual bool getPrimaryDimensionChildExpand(const vcl::Window &rWindow) const override
147  {
148  return rWindow.get_expand() || rWindow.get_vexpand();
149  }
150 };
151 
153 {
154 public:
155  VclHBox(vcl::Window *pParent, bool bHomogeneous = false, int nSpacing = 0)
156  : VclBox(pParent, bHomogeneous, nSpacing)
157  {
158  m_bVerticalContainer = false;
159  }
160 protected:
161  virtual long getPrimaryDimension(const Size &rSize) const override
162  {
163  return rSize.getWidth();
164  }
165  virtual void setPrimaryDimension(Size &rSize, long nWidth) const override
166  {
167  rSize.setWidth(nWidth);
168  }
169  virtual long getPrimaryCoordinate(const Point &rPos) const override
170  {
171  return rPos.getX();
172  }
173  virtual void setPrimaryCoordinate(Point &rPos, long nPos) const override
174  {
175  rPos.setX(nPos);
176  }
177  virtual long getSecondaryDimension(const Size &rSize) const override
178  {
179  return rSize.getHeight();
180  }
181  virtual void setSecondaryDimension(Size &rSize, long nHeight) const override
182  {
183  rSize.setHeight(nHeight);
184  }
185  virtual bool getPrimaryDimensionChildExpand(const vcl::Window &rWindow) const override
186  {
187  return rWindow.get_expand() || rWindow.get_hexpand();
188  }
189 };
190 
192 {
193  Default,
194  Spread,
195  Edge,
196  Start,
197  End,
198  Center
199 };
200 
202 {
203 public:
205  : VclBox(pParent, false, Application::GetSettings().GetStyleSettings().GetDialogStyle().button_spacing)
206  , m_eLayoutStyle(VclButtonBoxStyle::Default)
207  {
208  }
209  virtual bool set_property(const OString &rKey, const OUString &rValue) override;
210  void sort_native_button_order();
211 protected:
212  virtual Size calculateRequisition() const override;
213  virtual void setAllocation(const Size &rAllocation) override;
214  Size addSpacing(const Size &rSize, sal_uInt16 nVisibleChildren) const;
215 private:
217  struct Requisition
218  {
219  std::vector<long> m_aMainGroupDimensions;
220  std::vector<long> m_aSubGroupDimensions;
223  };
224  Requisition calculatePrimarySecondaryRequisitions() const;
225  Size addReqGroups(const VclButtonBox::Requisition &rReq) const;
226 };
227 
229 {
230 public:
232  : VclButtonBox(pParent)
233  {
234  m_bVerticalContainer = true;
235  }
236 protected:
237  virtual long getPrimaryDimension(const Size &rSize) const override
238  {
239  return rSize.getHeight();
240  }
241  virtual void setPrimaryDimension(Size &rSize, long nHeight) const override
242  {
243  rSize.setHeight(nHeight);
244  }
245  virtual long getPrimaryCoordinate(const Point &rPos) const override
246  {
247  return rPos.getY();
248  }
249  virtual void setPrimaryCoordinate(Point &rPos, long nPos) const override
250  {
251  rPos.setY(nPos);
252  }
253  virtual long getSecondaryDimension(const Size &rSize) const override
254  {
255  return rSize.getWidth();
256  }
257  virtual void setSecondaryDimension(Size &rSize, long nWidth) const override
258  {
259  rSize.setWidth(nWidth);
260  }
261  virtual bool getPrimaryDimensionChildExpand(const vcl::Window &rWindow) const override
262  {
263  return rWindow.get_expand() || rWindow.get_vexpand();
264  }
265 };
266 
268 {
269 public:
271  : VclButtonBox(pParent)
272  {
273  m_bVerticalContainer = false;
274  }
275 private:
276  virtual long getPrimaryDimension(const Size &rSize) const override
277  {
278  return rSize.getWidth();
279  }
280  virtual void setPrimaryDimension(Size &rSize, long nWidth) const override
281  {
282  rSize.setWidth(nWidth);
283  }
284  virtual long getPrimaryCoordinate(const Point &rPos) const override
285  {
286  return rPos.getX();
287  }
288  virtual void setPrimaryCoordinate(Point &rPos, long nPos) const override
289  {
290  rPos.setX(nPos);
291  }
292  virtual long getSecondaryDimension(const Size &rSize) const override
293  {
294  return rSize.getHeight();
295  }
296  virtual void setSecondaryDimension(Size &rSize, long nHeight) const override
297  {
298  rSize.setHeight(nHeight);
299  }
300  virtual bool getPrimaryDimensionChildExpand(const vcl::Window &rWindow) const override
301  {
302  return rWindow.get_expand() || rWindow.get_hexpand();
303  }
304 };
305 
306 class VCL_DLLPUBLIC VclGrid final : public VclContainer
307 {
308 private:
313 
314 public:
315  struct Value
316  {
317  long m_nValue;
318  bool m_bExpand;
319  Value() : m_nValue(0), m_bExpand(false) {}
320  };
321 private:
322 
323  Size calculateRequisitionForSpacings(sal_Int32 nRowSpacing, sal_Int32 nColSpacing) const;
324  virtual Size calculateRequisition() const override;
325  virtual void setAllocation(const Size &rAllocation) override;
326  virtual boost::property_tree::ptree DumpAsPropertyTree() override;
327 public:
329  : VclContainer(pParent)
330  , m_bRowHomogeneous(false), m_bColumnHomogeneous(false)
331  , m_nRowSpacing(0), m_nColumnSpacing(0)
332  {
333  }
334  bool get_row_homogeneous() const
335  {
336  return m_bRowHomogeneous;
337  }
339  {
340  return m_bColumnHomogeneous;
341  }
342  void set_row_spacing(int nSpacing)
343  {
344  m_nRowSpacing = nSpacing;
345  }
346  void set_column_spacing(int nSpacing)
347  {
348  m_nColumnSpacing = nSpacing;
349  }
350  int get_row_spacing() const
351  {
352  return m_nRowSpacing;
353  }
354  int get_column_spacing() const
355  {
356  return m_nColumnSpacing;
357  }
358  virtual bool set_property(const OString &rKey, const OUString &rValue) override;
359 };
360 
362 {
363 public:
364  VclBin(vcl::Window *pParent, WinBits nStyle = WB_HIDE | WB_CLIPCHILDREN)
365  : VclContainer(pParent, nStyle)
366  {
367  }
368  virtual vcl::Window *get_child();
369  virtual const vcl::Window *get_child() const;
370  virtual Size calculateRequisition() const override;
371  virtual void setAllocation(const Size &rAllocation) override;
372 };
373 
374 class VclPaned : public VclContainer
375 {
376 protected:
379 
380  VclPaned(vcl::Window *pParent, bool bVertical);
381 public:
382  virtual ~VclPaned() override { disposeOnce(); }
383  virtual void dispose() override;
384  long get_position() const { return m_nPosition; }
385  void set_position(long nPosition) { m_nPosition = nPosition; }
386 };
387 
388 class VclVPaned final : public VclPaned
389 {
390 private:
391  DECL_LINK(SplitHdl, Splitter*, void);
392  void arrange(const Size& rAllocation, long nFirstHeight, long nSecondHeight);
393 
394 public:
395  VclVPaned(vcl::Window *pParent);
396  virtual Size calculateRequisition() const override;
397  virtual void setAllocation(const Size &rAllocation) override;
398 };
399 
400 class VclHPaned final : public VclPaned
401 {
402 private:
403  DECL_LINK(SplitHdl, Splitter*, void);
404  void arrange(const Size& rAllocation, long nFirstHeight, long nSecondHeight);
405 
406 public:
407  VclHPaned(vcl::Window *pParent);
408  virtual Size calculateRequisition() const override;
409  virtual void setAllocation(const Size &rAllocation) override;
410 };
411 
412 class VclFrame final : public VclBin
413 {
414 private:
416 private:
417  friend class VclBuilder;
418  void designate_label(vcl::Window *pWindow);
419  DECL_LINK(WindowEventListener, VclWindowEvent&, void);
420 public:
422  : VclBin(pParent)
423  , m_pLabel(nullptr)
424  {
425  }
426  virtual ~VclFrame() override;
427  virtual void dispose() override;
428  void set_label(const OUString &rLabel);
429  OUString get_label() const;
430  virtual vcl::Window *get_child() override;
431  virtual const vcl::Window *get_child() const override;
433  const vcl::Window *get_label_widget() const;
434  virtual boost::property_tree::ptree DumpAsPropertyTree() override;
435 private:
436  virtual Size calculateRequisition() const override;
437  virtual void setAllocation(const Size &rAllocation) override;
438  virtual OUString getDefaultAccessibleName() const override;
439 };
440 
441 class VCL_DLLPUBLIC VclAlignment final : public VclBin
442 {
443 public:
445  : VclBin(pParent)
446  , m_nBottomPadding(0)
447  , m_nLeftPadding(0)
448  , m_nRightPadding(0)
449  , m_nTopPadding(0)
450  {
451  }
452  virtual bool set_property(const OString &rKey, const OUString &rValue) override;
453 private:
454  virtual Size calculateRequisition() const override;
455  virtual void setAllocation(const Size &rAllocation) override;
456  sal_Int32 m_nBottomPadding;
457  sal_Int32 m_nLeftPadding;
458  sal_Int32 m_nRightPadding;
459  sal_Int32 m_nTopPadding;
460 };
461 
462 class VclExpander final : public VclBin
463 {
464 public:
466  : VclBin(pParent)
467  , m_bResizeTopLevel(true)
469  {
472  }
473  virtual ~VclExpander() override { disposeOnce(); }
474  virtual void dispose() override;
475  virtual vcl::Window *get_child() override;
476  virtual const vcl::Window *get_child() const override;
477  virtual bool set_property(const OString &rKey, const OUString &rValue) override;
478  bool get_expanded() const
479  {
480  return m_pDisclosureButton->IsChecked();
481  }
482  void set_expanded(bool bExpanded)
483  {
484  m_pDisclosureButton->Check(bExpanded);
485  }
486  void set_label(const OUString& rLabel)
487  {
488  m_pDisclosureButton->SetText(rLabel);
489  }
490  virtual void StateChanged(StateChangedType nType) override;
491  void SetExpandedHdl( const Link<VclExpander&,void>& rLink ) { maExpandedHdl = rLink; }
492 private:
493  virtual Size calculateRequisition() const override;
494  virtual void setAllocation(const Size &rAllocation) override;
498  DECL_LINK(ClickHdl, CheckBox&, void);
499 };
500 
502 {
503 public:
504  VclScrolledWindow(vcl::Window *pParent );
505  virtual ~VclScrolledWindow() override { disposeOnce(); }
506  virtual void dispose() override;
507  virtual vcl::Window *get_child() override;
508  virtual const vcl::Window *get_child() const override;
509  virtual bool set_property(const OString &rKey, const OUString &rValue) override;
510  virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override;
511  ScrollBar& getVertScrollBar() { return *m_pVScroll; }
512  ScrollBar& getHorzScrollBar() { return *m_pHScroll; }
513  Size getVisibleChildSize() const;
514  //set to true to disable the built-in scrolling callbacks to allow the user
515  //to override it
516  void setUserManagedScrolling(bool bUserManagedScrolling) { m_bUserManagedScrolling = bUserManagedScrolling;}
517  void doSetAllocation(const Size &rAllocation, bool bRetryOnFailure);
518 private:
519  virtual Size calculateRequisition() const override;
520  virtual void setAllocation(const Size &rAllocation) override;
521  DECL_LINK(ScrollBarHdl, ScrollBar*, void);
522  void InitScrollBars(const Size &rRequest);
523  virtual bool EventNotify(NotifyEvent& rNEvt) override;
529 };
530 
531 class VclViewport final : public VclBin
532 {
533 public:
535  : VclBin(pParent, WB_HIDE | WB_CLIPCHILDREN)
536  , m_bInitialAllocation(true)
537  {
538  }
539 private:
540  virtual void setAllocation(const Size &rAllocation) override;
542 };
543 
544 //Enforces that its children are always the same size as itself.
545 //Intercepts any Commands intended for its children.
546 //
547 //by default the Commands are discarded, inherit from this
548 //and implement "Command" to get them
549 class VclEventBox final : public VclBin
550 {
551 private:
552  //Any Commands an EventBoxHelper receives are forwarded to its parent
553  //The VclEventBox ensures that m_aEventBoxHelper is the
554  //first child and is transparent, but covers the rest of the children
556  {
557  public:
559  : Window(pParent, 0)
560  {
561  SetSizePixel(pParent->GetSizePixel());
563  SetPaintTransparent(true);
564  SetBackground();
565  }
566  virtual void Command(const CommandEvent& rCEvt) override
567  {
568  GetParent()->Command(rCEvt);
569  }
570  };
571 
573  virtual void dispose() override;
574  virtual ~VclEventBox() override;
575 public:
577  : VclBin(pParent)
578  , m_aEventBoxHelper(VclPtr<EventBoxHelper>::Create(this))
579  {
580  m_aEventBoxHelper->Show();
581  }
582  virtual vcl::Window *get_child() override;
583  virtual const vcl::Window *get_child() const override;
584  virtual Size calculateRequisition() const override;
585  virtual void setAllocation(const Size &rAllocation) override;
586 
587  virtual void Command(const CommandEvent& rCEvt) override;
588 };
589 
591 {
592 private:
593  std::set< VclPtr<vcl::Window> > m_aWindows;
596 
597  void trigger_queue_resize();
598 public:
600  : m_bIgnoreHidden(false)
601  , m_eMode(VclSizeGroupMode::Horizontal)
602  {
603  }
604  void insert(vcl::Window *pWindow)
605  {
606  m_aWindows.insert(VclPtr<vcl::Window>(pWindow));
607  }
608  void erase(vcl::Window *pWindow)
609  {
610  m_aWindows.erase(VclPtr<vcl::Window>(pWindow));
611  }
612  const std::set< VclPtr<vcl::Window> >& get_widgets() const
613  {
614  return m_aWindows;
615  }
616  std::set< VclPtr<vcl::Window> >& get_widgets()
617  {
618  return m_aWindows;
619  }
620  void set_ignore_hidden(bool bIgnoreHidden);
621  bool get_ignore_hidden() const
622  {
623  return m_bIgnoreHidden;
624  }
625  void set_mode(VclSizeGroupMode eMode);
627  {
628  return m_eMode;
629  }
630  void set_property(const OString &rKey, const OUString &rValue);
631 };
632 
634  , public DragSourceHelper
635 {
636 private:
638  void* m_pUserData;
652 
653  virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override
654  {
655  m_aPaintHdl.Call(std::pair<vcl::RenderContext&, const tools::Rectangle&>(rRenderContext, rRect));
656  }
657  virtual void Resize() override
658  {
659  m_aResizeHdl.Call(GetOutputSizePixel());
660  }
661  virtual void MouseMove(const MouseEvent& rMEvt) override
662  {
663  if (!m_aMouseMotionHdl.Call(rMEvt))
664  Control::MouseMove(rMEvt);
665  }
666  virtual void MouseButtonDown(const MouseEvent& rMEvt) override
667  {
668  if (!m_aMousePressHdl.Call(rMEvt))
670  }
671  virtual void MouseButtonUp(const MouseEvent& rMEvt) override
672  {
673  if (!m_aMouseReleaseHdl.Call(rMEvt))
674  Control::MouseButtonUp(rMEvt);
675  }
676  virtual void KeyInput(const KeyEvent& rKEvt) override
677  {
678  if (!m_aKeyPressHdl.Call(rKEvt))
679  Control::KeyInput(rKEvt);
680 
681  }
682  virtual void KeyUp(const KeyEvent& rKEvt) override
683  {
684  if (!m_aKeyReleaseHdl.Call(rKEvt))
685  Control::KeyUp(rKEvt);
686  }
687  virtual void StateChanged(StateChangedType nType) override
688  {
689  Control::StateChanged(nType);
691  {
692  m_aStyleUpdatedHdl.Call(*this);
693  Invalidate();
694  }
695  }
696  virtual void DataChanged(const DataChangedEvent& rDCEvt) override
697  {
698  Control::DataChanged(rDCEvt);
700  {
701  m_aStyleUpdatedHdl.Call(*this);
702  Invalidate();
703  }
704  }
705  virtual void Command(const CommandEvent& rEvent) override
706  {
707  if (m_aCommandHdl.Call(rEvent))
708  return;
709  Control::Command(rEvent);
710  }
711  virtual void RequestHelp(const HelpEvent& rHelpEvent) override
712  {
713  if (rHelpEvent.GetMode() & (HelpEventMode::QUICK | HelpEventMode::BALLOON))
714  {
715  Point aPos(ScreenToOutputPixel(rHelpEvent.GetMousePosPixel()));
716  tools::Rectangle aHelpArea(aPos.X(), aPos.Y());
717  OUString sHelpTip = m_aQueryTooltipHdl.Call(aHelpArea);
718  if (sHelpTip.isEmpty())
719  return;
720  Point aPt = OutputToScreenPixel(aHelpArea.TopLeft());
721  aHelpArea.SetLeft(aPt.X());
722  aHelpArea.SetTop(aPt.Y());
723  aPt = OutputToScreenPixel(aHelpArea.BottomRight());
724  aHelpArea.SetRight(aPt.X());
725  aHelpArea.SetBottom(aPt.Y());
726  // tdf#125369 recover newline support of tdf#101779
727  QuickHelpFlags eHelpWinStyle = sHelpTip.indexOf('\n') != -1 ? QuickHelpFlags::TipStyleBalloon : QuickHelpFlags::NONE;
728  Help::ShowQuickHelp(this, aHelpArea, sHelpTip, eHelpWinStyle);
729  }
730  }
731  virtual void StartDrag(sal_Int8 nAction, const Point& rPosPixel) override;
732  virtual FactoryFunction GetUITestFactory() const override
733  {
734  if (m_pFactoryFunction)
735  return m_pFactoryFunction;
736  return Control::GetUITestFactory();
737  }
738 
739 public:
741  : Control(pParent, nStyle)
742  , DragSourceHelper(this)
743  , m_pFactoryFunction(nullptr)
744  , m_pUserData(nullptr)
745  , m_nDragAction(0)
746  {
747  SetBackground();
748  }
749  void SetUITestFactory(FactoryFunction pFactoryFunction, void* pUserData)
750  {
751  m_pFactoryFunction = pFactoryFunction;
752  m_pUserData = pUserData;
753  }
754  void* GetUserData() const
755  {
756  return m_pUserData;
757  }
758  void SetPaintHdl(const Link<std::pair<vcl::RenderContext&, const tools::Rectangle&>, void>& rLink)
759  {
760  m_aPaintHdl = rLink;
761  }
763  {
764  m_aResizeHdl = rLink;
765  }
767  {
768  m_aMousePressHdl = rLink;
769  }
771  {
772  m_aMouseMotionHdl = rLink;
773  }
775  {
776  m_aMouseReleaseHdl = rLink;
777  }
779  {
780  m_aKeyPressHdl = rLink;
781  }
783  {
784  m_aKeyReleaseHdl = rLink;
785  }
787  {
788  m_aStyleUpdatedHdl = rLink;
789  }
791  {
792  m_aCommandHdl = rLink;
793  }
795  {
796  m_aQueryTooltipHdl = rLink;
797  }
799  {
800  m_aStartDragHdl = rLink;
801  }
803  {
804  m_xTransferHelper = rHelper;
805  m_nDragAction = eDNDConstants;
806  }
807 };
808 
809 //Get first window of a pTopLevel window as
810 //if any intermediate layout widgets didn't exist
811 //i.e. acts like pChild = pChild->GetWindow(GetWindowType::FirstChild);
812 //in a flat hierarchy where dialogs only have one layer
813 //of children
815 
816 //Get last window of a pTopLevel window as
817 //if any intermediate layout widgets didn't exist
818 //i.e. acts like pChild = pChild->GetWindow(GetWindowType::LastChild);
819 //in a flat hierarchy where dialogs only have one layer
820 //of children
822 
823 //Get next window after pChild of a pTopLevel window as
824 //if any intermediate layout widgets didn't exist
825 //i.e. acts like pChild = pChild->GetWindow(GetWindowType::Next);
826 //in a flat hierarchy where dialogs only have one layer
827 //of children
828 vcl::Window* nextLogicalChildOfParent(const vcl::Window *pTopLevel, const vcl::Window *pChild);
829 
830 //Get previous window before pChild of a pTopLevel window as
831 //if any intermediate layout widgets didn't exist
832 //i.e. acts like pChild = pChild->GetWindow(GetWindowType::Prev);
833 //in a flat hierarchy where dialogs only have one layer
834 //of children
835 vcl::Window* prevLogicalChildOfParent(const vcl::Window *pTopLevel, const vcl::Window *pChild);
836 
837 //Returns true is the Window has a single child which is a container
838 VCL_DLLPUBLIC bool isLayoutEnabled(const vcl::Window *pWindow);
839 
840 inline bool isContainerWindow(const vcl::Window &rWindow)
841 {
842  WindowType eType = rWindow.GetType();
843  return eType == WindowType::CONTAINER || eType == WindowType::SCROLLWINDOW ||
844  (eType == WindowType::DOCKINGWINDOW && ::isLayoutEnabled(&rWindow));
845 }
846 
847 inline bool isContainerWindow(const vcl::Window *pWindow)
848 {
849  return pWindow && isContainerWindow(*pWindow);
850 }
851 
852 // retro-fitting utilities
853 
854 //Get a Size which is large enough to contain all children with
855 //an equal amount of space at top left and bottom right
857 
858 //Get first parent which is not a layout widget
860 
861 #endif
862 
863 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
virtual void setPrimaryCoordinate(Point &rPos, long nPos) const override
Definition: layout.hxx:249
virtual ~VclExpander() override
Definition: layout.hxx:473
virtual void Command(const CommandEvent &rCEvt) override
Definition: layout.hxx:566
virtual long getPrimaryCoordinate(const Point &rPos) const override
Definition: layout.hxx:245
virtual sal_uInt16 getDefaultAccessibleRole() const override
Definition: layout.cxx:36
virtual void setSecondaryDimension(Size &rSize, long nWidth) const override
Definition: layout.hxx:142
bool m_bColumnHomogeneous
Definition: layout.hxx:310
virtual void setAllocation(const Size &rAllocation)=0
int get_column_spacing() const
Definition: layout.hxx:354
VclFrame(vcl::Window *pParent)
Definition: layout.hxx:421
virtual long getPrimaryDimension(const Size &rSize) const override
Definition: layout.hxx:122
bool get_vexpand() const
Definition: window2.cxx:1702
virtual FactoryFunction GetUITestFactory() const
Definition: window.cxx:3887
vcl::Window * lastLogicalChildOfParent(const vcl::Window *pTopLevel)
Definition: dialog.cxx:193
VclPtr< ScrollBar > m_pHScroll
Definition: layout.hxx:527
Link< VclDrawingArea &, void > m_aStyleUpdatedHdl
Definition: layout.hxx:648
virtual void setSecondaryDimension(Size &rSize, long nHeight) const override
Definition: layout.hxx:296
virtual bool set_property(const OString &rKey, const OUString &rValue) override
Definition: layout.cxx:1644
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects...
Definition: layout.cxx:2408
sal_Int32 m_nTopPadding
Definition: layout.hxx:459
virtual void setPrimaryCoordinate(Point &rPos, long nPos) const override
Definition: layout.hxx:134
void designate_label(vcl::Window *pWindow)
Definition: layout.cxx:1425
virtual void MouseButtonDown(const MouseEvent &rMEvt) override
Definition: layout.hxx:666
Link< std::pair< vcl::RenderContext &, const tools::Rectangle & >, void > m_aPaintHdl
Definition: layout.hxx:641
virtual void MouseButtonDown(const MouseEvent &rMEvt)
Definition: mouse.cxx:413
virtual void setAllocation(const Size &rAllocation) override
Definition: layout.cxx:1395
VclPtr< vcl::Window > m_pLabel
Definition: layout.hxx:415
VclBin(vcl::Window *pParent, WinBits nStyle=WB_HIDE|WB_CLIPCHILDREN)
Definition: layout.hxx:364
virtual void DataChanged(const DataChangedEvent &rDCEvt) override
Definition: layout.hxx:696
signed char sal_Int8
VclVBox(vcl::Window *pParent, bool bHomogeneous=false, int nSpacing=0)
Definition: layout.hxx:116
bool m_bVerticalContainer
Definition: layout.hxx:71
VclDrawingArea(vcl::Window *pParent, WinBits nStyle)
Definition: layout.hxx:740
void Create(SwFormatVertOrient &rItem, SvStream &rStrm, sal_uInt16 nVersionAbusedAsSize)
VclPtr< DisclosureButton > m_pDisclosureButton
Definition: layout.hxx:496
bool get_hexpand() const
Definition: window2.cxx:1690
#define VCL_DLLPUBLIC
Definition: dllapi.h:29
ScrollBar & getHorzScrollBar()
Definition: layout.hxx:512
VclViewport(vcl::Window *pParent)
Definition: layout.hxx:534
void SetMousePressHdl(const Link< const MouseEvent &, bool > &rLink)
Definition: layout.hxx:766
virtual long getSecondaryDimension(const Size &rSize) const override
Definition: layout.hxx:138
virtual void StateChanged(StateChangedType nStateChange) override
Definition: ctrl.cxx:260
VclHButtonBox(vcl::Window *pParent)
Definition: layout.hxx:270
DECL_LINK(SplitHdl, Splitter *, void)
bool get_ignore_hidden() const
Definition: layout.hxx:621
std::function< std::unique_ptr< UIObject >vcl::Window *)> FactoryFunction
virtual Size GetSizePixel() const
Definition: window.cxx:2365
void * GetUserData() const
Definition: layout.hxx:754
virtual void SetSizePixel(const Size &rNewSize)
Definition: window2.cxx:1257
virtual void MouseMove(const MouseEvent &rMEvt) override
Definition: layout.hxx:661
virtual Size GetOptimalSize() const
Definition: window3.cxx:33
bool m_bRowHomogeneous
Definition: layout.hxx:309
void set_row_spacing(int nSpacing)
Definition: layout.hxx:342
virtual Size calculateRequisition() const override
Definition: layout.cxx:1375
DataChangedEventType GetType() const
Definition: event.hxx:348
vcl::Window * getNonLayoutParent(vcl::Window *pParent)
Definition: layout.cxx:2653
VclAlignment(vcl::Window *pParent)
Definition: layout.hxx:444
void set_spacing(int nSpacing)
Definition: layout.hxx:81
virtual vcl::Window * get_child() override
Definition: layout.cxx:1464
Link< const CommandEvent &, bool > m_aCommandHdl
Definition: layout.hxx:649
bool m_bExpand
Definition: layout.hxx:318
VclButtonBoxStyle
Definition: layout.hxx:191
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects...
Definition: window.cxx:141
Size getLegacyBestSizeForChildren(const vcl::Window &rWindow)
Definition: layout.cxx:2628
std::set< VclPtr< vcl::Window > > & get_widgets()
Definition: layout.hxx:616
virtual void setAllocation(const Size &rAllocation) override
Definition: layout.cxx:1591
virtual bool getPrimaryDimensionChildExpand(const vcl::Window &rWindow) const override
Definition: layout.hxx:300
void SetQueryTooltipHdl(const Link< tools::Rectangle &, OUString > &rLink)
Definition: layout.hxx:794
virtual void MouseButtonUp(const MouseEvent &rMEvt)
Definition: mouse.cxx:420
vcl::Window * prevLogicalChildOfParent(const vcl::Window *pTopLevel, const vcl::Window *pChild)
Definition: dialog.cxx:157
HelpEventMode GetMode() const
Definition: event.hxx:192
virtual void KeyInput(const KeyEvent &rKEvt) override
Definition: layout.hxx:676
void SetKeyReleaseHdl(const Link< const KeyEvent &, bool > &rLink)
Definition: layout.hxx:782
Link< const KeyEvent &, bool > m_aKeyReleaseHdl
Definition: layout.hxx:647
DECL_LINK(SplitHdl, Splitter *, void)
StateChangedType
Definition: window.hxx:311
virtual vcl::Window * get_child()
Definition: layout.cxx:1342
rtl::Reference< TransferDataContainer > m_xTransferHelper
Definition: layout.hxx:639
sal_Int64 WinBits
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects...
Definition: layout.cxx:2010
void SetBackground()
std::set< VclPtr< vcl::Window > > m_aWindows
Definition: layout.hxx:593
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects...
Definition: layout.cxx:1367
virtual void setPrimaryDimension(Size &rSize, long nWidth) const override
Definition: layout.hxx:165
VclHBox(vcl::Window *pParent, bool bHomogeneous=false, int nSpacing=0)
Definition: layout.hxx:155
bool m_bLayoutDirty
Definition: layout.hxx:64
void set_ignore_hidden(bool bIgnoreHidden)
Definition: layout.cxx:2025
virtual Size calculateRequisition() const =0
void setX(long nX)
virtual boost::property_tree::ptree DumpAsPropertyTree() override
Dumps itself and potentially its children to a property tree, to be written easily to JSON...
Definition: layout.cxx:1491
AllSettingsFlags GetFlags() const
Definition: event.hxx:349
DECL_LINK(ClickHdl, CheckBox &, void)
void SetKeyPressHdl(const Link< const KeyEvent &, bool > &rLink)
Definition: layout.hxx:778
VclSizeGroupMode
Definition: vclenum.hxx:261
DECL_LINK(WindowEventListener, VclWindowEvent &, void)
Link< VclExpander &, void > maExpandedHdl
Definition: layout.hxx:497
virtual void queue_resize(StateChangedType eReason=StateChangedType::Layout)
Definition: window2.cxx:1309
virtual Size calculateRequisition() const override
Definition: layout.cxx:1347
sal_Int8 m_nDragAction
Definition: layout.hxx:640
virtual FactoryFunction GetUITestFactory() const override
Definition: layout.hxx:732
void set_mode(VclSizeGroupMode eMode)
Definition: layout.cxx:2034
virtual void Command(const CommandEvent &rCEvt) override
Definition: layout.cxx:2000
force balloon-style in ShowPopover and ShowQuickHelp
void setY(long nY)
int m_nRowSpacing
Definition: layout.hxx:311
std::vector< long > m_aMainGroupDimensions
Definition: layout.hxx:219
WinBits const WB_HIDE
sal_Int32 m_nLeftPadding
Definition: layout.hxx:457
Link< VclDrawingArea *, bool > m_aStartDragHdl
Definition: layout.hxx:651
bool m_bResizeTopLevel
Definition: layout.hxx:495
void * m_pUserData
Definition: layout.hxx:638
bool isContainerWindow(const vcl::Window &rWindow)
Definition: layout.hxx:840
const Point & GetMousePosPixel() const
Definition: event.hxx:191
long getY() const
void SetExpandedHdl(const Link< VclExpander &, void > &rLink)
Definition: layout.hxx:491
long getX() const
virtual boost::property_tree::ptree DumpAsPropertyTree()
Dumps itself and potentially its children to a property tree, to be written easily to JSON...
Definition: window.cxx:3353
virtual Size calculateRequisition() const override
Definition: layout.cxx:2504
void SetStartDragHdl(const Link< VclDrawingArea *, bool > &rLink)
Definition: layout.hxx:798
virtual long getPrimaryCoordinate(const Point &rPos) const override
Definition: layout.hxx:130
void SetResizeHdl(const Link< const Size &, void > &rLink)
Definition: layout.hxx:762
void setUserManagedScrolling(bool bUserManagedScrolling)
Definition: layout.hxx:516
void erase(vcl::Window *pWindow)
Definition: layout.hxx:608
void arrange(const Size &rAllocation, long nFirstHeight, long nSecondHeight)
Definition: layout.cxx:2535
Window(WindowType nType)
Definition: window.cxx:85
virtual ~VclFrame() override
Definition: layout.cxx:1362
virtual void setAllocation(const Size &rAllocation) override
Definition: layout.cxx:236
virtual bool EventNotify(NotifyEvent &rNEvt)
Definition: event.cxx:103
void set_property(const OString &rKey, const OUString &rValue)
Definition: layout.cxx:2044
VclPtr< ScrollBarBox > m_aScrollBarBox
Definition: layout.hxx:528
virtual void MouseButtonUp(const MouseEvent &rMEvt) override
Definition: layout.hxx:671
DrawFrameStyle m_eDrawFrameStyle
Definition: layout.hxx:525
virtual ~VclScrolledWindow() override
Definition: layout.hxx:505
VclPtr< ScrollBar > m_pVScroll
Definition: layout.hxx:526
void SetStyleUpdatedHdl(const Link< VclDrawingArea &, void > &rLink)
Definition: layout.hxx:786
bool get_expanded() const
Definition: layout.hxx:478
virtual void Resize() override
Definition: layout.hxx:657
bool m_bIgnoreHidden
Definition: layout.hxx:594
virtual void SetText(const OUString &rStr) override
Definition: ctrl.cxx:95
virtual void setAllocation(const Size &rAllocation) override
Definition: layout.cxx:2459
OUString get_label() const
Definition: layout.cxx:1476
virtual void Invalidate(InvalidateFlags nFlags=InvalidateFlags::NONE)
Definition: paint.cxx:1160
QuickHelpFlags
Definition: help.hxx:32
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
Definition: outdev.hxx:304
virtual void setPrimaryDimension(Size &rSize, long nHeight) const override
Definition: layout.hxx:241
bool IsChecked() const
Definition: button.hxx:482
VclSizeGroupMode get_mode() const
Definition: layout.hxx:626
const std::set< VclPtr< vcl::Window > > & get_widgets() const
Definition: layout.hxx:612
virtual long getPrimaryDimension(const Size &rSize) const override
Definition: layout.hxx:237
VclSizeGroupMode m_eMode
Definition: layout.hxx:595
virtual sal_uInt16 getDefaultAccessibleRole() const
void SetToggleHdl(const Link< CheckBox &, void > &rLink)
Definition: button.hxx:465
void set_homogeneous(bool bHomogeneous)
Definition: layout.hxx:89
EventBoxHelper(vcl::Window *pParent)
Definition: layout.hxx:558
virtual void dispose() override
This is intended to be used to clear any locally held references to other Window-subclass objects...
Definition: layout.cxx:1544
void SetPaintTransparent(bool bTransparent)
Definition: paint.cxx:1022
Size GetOutputSizePixel() const
Definition: outdev.hxx:441
Base class used mainly for the LibreOffice Desktop class.
Definition: svapp.hxx:237
VclPtr< Splitter > m_pSplitter
Definition: layout.hxx:377
bool get_row_homogeneous() const
Definition: layout.hxx:334
virtual bool set_property(const OString &rKey, const OUString &rValue)
Definition: window2.cxx:1427
FactoryFunction m_pFactoryFunction
Definition: layout.hxx:637
void Check(bool bCheck=true)
Definition: button.hxx:477
DocumentType const eType
Point ScreenToOutputPixel(const Point &rPos) const
Definition: window.cxx:2821
static void ShowQuickHelp(vcl::Window *pParent, const tools::Rectangle &rScreenRect, const OUString &rHelpText, QuickHelpFlags nStyle=QuickHelpFlags::NONE)
Definition: help.cxx:180
vcl::Window * GetParent() const
Definition: window2.cxx:1092
long X() const
virtual long getSecondaryDimension(const Size &rSize) const override
Definition: layout.hxx:177
void SetPaintHdl(const Link< std::pair< vcl::RenderContext &, const tools::Rectangle & >, void > &rLink)
Definition: layout.hxx:758
virtual void KeyUp(const KeyEvent &rKEvt) override
Definition: layout.hxx:682
Link< const MouseEvent &, bool > m_aMouseMotionHdl
Definition: layout.hxx:644
virtual void SetPosSizePixel(const Point &rNewPos, const Size &rNewSize)
Definition: window2.cxx:1263
bool get_expand() const
Definition: window2.cxx:1714
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect) override
Definition: layout.hxx:653
Link< const Size &, void > m_aResizeHdl
Definition: layout.hxx:642
void arrange(const Size &rAllocation, long nFirstHeight, long nSecondHeight)
Definition: layout.cxx:2428
DrawFrameStyle
Definition: vclenum.hxx:329
VclButtonBox(vcl::Window *pParent)
Definition: layout.hxx:204
virtual Size calculateRequisition() const override
Definition: layout.cxx:2611
virtual long getPrimaryCoordinate(const Point &rPos) const override
Definition: layout.hxx:284
vcl::Window * firstLogicalChildOfParent(const vcl::Window *pTopLevel)
Definition: dialog.cxx:185
virtual void KeyInput(const KeyEvent &rKEvt)
Definition: window.cxx:1769
bool m_bInitialAllocation
Definition: layout.hxx:541
virtual void setAllocation(const Size &rAllocation) override
Definition: layout.cxx:1972
virtual void setAllocation(const Size &rAllocation) override
Definition: layout.cxx:1355
Link< const MouseEvent &, bool > m_aMousePressHdl
Definition: layout.hxx:643
void SetUITestFactory(FactoryFunction pFactoryFunction, void *pUserData)
Definition: layout.hxx:749
void SetDragHelper(rtl::Reference< TransferDataContainer > &rHelper, sal_uInt8 eDNDConstants)
Definition: layout.hxx:802
virtual vcl::Window * get_child() override
Definition: layout.cxx:1967
virtual long getPrimaryDimension(const Size &rSize) const override
Definition: layout.hxx:161
VclVPaned(vcl::Window *pParent)
Definition: layout.cxx:2414
VclVButtonBox(vcl::Window *pParent)
Definition: layout.hxx:231
Link< const MouseEvent &, bool > m_aMouseReleaseHdl
Definition: layout.hxx:645
WindowType
virtual long getPrimaryCoordinate(const Point &rPos) const override
Definition: layout.hxx:169
Definition: ctrl.hxx:33
bool get_column_homogeneous() const
Definition: layout.hxx:338
void set_expanded(bool bExpanded)
Definition: layout.hxx:482
void set_label(const OUString &rLabel)
Definition: layout.hxx:486
unsigned char sal_uInt8
int m_nSpacing
Definition: layout.hxx:72
VclExpander(vcl::Window *pParent)
Definition: layout.hxx:465
virtual void setAllocation(const Size &rAllocation) override
Definition: layout.cxx:1940
vcl::Window * get_label_widget()
Definition: layout.cxx:1447
long m_nPosition
Definition: layout.hxx:378
virtual void setPrimaryCoordinate(Point &rPos, long nPos) const override
Definition: layout.hxx:288
virtual vcl::Window * get_child() override
Definition: layout.cxx:1559
VclPtr< EventBoxHelper > m_aEventBoxHelper
Definition: layout.hxx:572
void set_column_spacing(int nSpacing)
Definition: layout.hxx:346
virtual Size calculateRequisition() const override
Definition: layout.cxx:1983
void EnableChildTransparentMode(bool bEnable=true)
Definition: window2.cxx:1017
virtual OUString getDefaultAccessibleName() const override
Definition: layout.cxx:1483
virtual long getPrimaryDimension(const Size &rSize) const override
Definition: layout.hxx:276
void SetCommandHdl(const Link< const CommandEvent &, bool > &rLink)
Definition: layout.hxx:790
virtual Size calculateRequisition() const override
Definition: layout.cxx:1564
virtual void setPrimaryCoordinate(Point &rPos, long nPos) const override
Definition: layout.hxx:173
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect)
Definition: paint.cxx:1017
virtual void RequestHelp(const HelpEvent &rHelpEvent) override
Definition: layout.hxx:711
Link< tools::Rectangle &, OUString > m_aQueryTooltipHdl
Definition: layout.hxx:650
virtual void setPrimaryDimension(Size &rSize, long nHeight) const override
Definition: layout.hxx:126
ScrollBar & getVertScrollBar()
Definition: layout.hxx:511
virtual long getSecondaryDimension(const Size &rSize) const override
Definition: layout.hxx:292
virtual ~VclEventBox() override
Definition: layout.cxx:2005
virtual void KeyUp(const KeyEvent &rKEvt)
Definition: window.cxx:1786
void insert(vcl::Window *pWindow)
Definition: layout.hxx:604
virtual ~VclPaned() override
Definition: layout.hxx:382
std::vector< long > m_aSubGroupDimensions
Definition: layout.hxx:220
VCL_DLLPUBLIC bool isLayoutEnabled(const vcl::Window *pWindow)
Definition: layout.cxx:2690
virtual long getSecondaryDimension(const Size &rSize) const override
Definition: layout.hxx:253
sal_Int32 m_nRightPadding
Definition: layout.hxx:458
VclBox(vcl::Window *pParent, bool bHomogeneous, int nSpacing)
Definition: layout.hxx:74
virtual void setSecondaryDimension(Size &rSize, long nHeight) const override
Definition: layout.hxx:181
WindowType GetType() const
Definition: window2.cxx:969
virtual void MouseMove(const MouseEvent &rMEvt)
Definition: mouse.cxx:407
virtual bool getPrimaryDimensionChildExpand(const vcl::Window &rWindow) const override
Definition: layout.hxx:261
virtual void StateChanged(StateChangedType nType) override
Definition: layout.hxx:687
virtual Size calculateRequisition() const override
Definition: layout.cxx:214
virtual void setSecondaryDimension(Size &rSize, long nWidth) const override
Definition: layout.hxx:257
virtual void setPrimaryDimension(Size &rSize, long nWidth) const override
Definition: layout.hxx:280
virtual void setAllocation(const Size &rAllocation) override
Definition: layout.cxx:2566
int m_nColumnSpacing
Definition: layout.hxx:312
Point OutputToScreenPixel(const Point &rPos) const
Definition: window.cxx:2815
long get_position() const
Definition: layout.hxx:384
void set_position(long nPosition)
Definition: layout.hxx:385
long getHeight() const
VclEventBox(vcl::Window *pParent)
Definition: layout.hxx:576
VclGrid(vcl::Window *pParent)
Definition: layout.hxx:328
vcl::Window * nextLogicalChildOfParent(const vcl::Window *pTopLevel, const vcl::Window *pChild)
Definition: dialog.cxx:129
virtual void StateChanged(StateChangedType nType) override
Definition: layout.cxx:1655
virtual void Command(const CommandEvent &rCEvt)
Definition: window.cxx:1887
int get_row_spacing() const
Definition: layout.hxx:350
long getWidth() const
bool m_bUserManagedScrolling
Definition: layout.hxx:524
void setWidth(long nWidth)
bool m_bHomogeneous
Definition: layout.hxx:70
void set_label(const OUString &rLabel)
Definition: layout.cxx:1469
WinBits const WB_CLIPCHILDREN
virtual void SetPosPixel(const Point &rNewPos)
Definition: window2.cxx:1252
virtual bool getPrimaryDimensionChildExpand(const vcl::Window &rWindow) const override
Definition: layout.hxx:185
void SetMouseMoveHdl(const Link< const MouseEvent &, bool > &rLink)
Definition: layout.hxx:770
int get_spacing() const
Definition: layout.hxx:85
VclButtonBoxStyle m_eLayoutStyle
Definition: layout.hxx:216
sal_Int32 m_nBottomPadding
Definition: layout.hxx:456
VclPaned(vcl::Window *pParent, bool bVertical)
Definition: layout.cxx:2399
virtual void Command(const CommandEvent &rEvent) override
Definition: layout.hxx:705
long Y() const
void trigger_queue_resize()
Definition: layout.cxx:2016
VclHPaned(vcl::Window *pParent)
Definition: layout.cxx:2521
virtual void DataChanged(const DataChangedEvent &rDCEvt)
Definition: event.cxx:35
void SetMouseReleaseHdl(const Link< const MouseEvent &, bool > &rLink)
Definition: layout.hxx:774
virtual bool getPrimaryDimensionChildExpand(const vcl::Window &rWindow) const override
Definition: layout.hxx:146
Link< const KeyEvent &, bool > m_aKeyPressHdl
Definition: layout.hxx:646
void Show(bool bVisible=true, ShowFlags nFlags=ShowFlags::NONE)
Definition: window.cxx:2151
virtual bool set_property(const OString &rKey, const OUString &rValue) override
Definition: layout.cxx:347
void setHeight(long nHeight)