summaryrefslogtreecommitdiff
path: root/include/svx/sidebar
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2013-09-30 14:44:37 +0100
committerCaolán McNamara <caolanm@redhat.com>2013-09-30 16:09:56 +0100
commita48cf78fab4a283ef43c091e8c324c968377f9db (patch)
tree53e1317b48d82d7df1c7ace695eaa6391aa45079 /include/svx/sidebar
parentdbd6ae7dfdd292f049bbed5beb659f99e963c47b (diff)
merge queue_layout and queue_resize
so that any window derived class, and not just dialogs, can trigger layouting of their children. Merge together the handful of hacked-up impls of this. Do that then for the sidebar PanelLayout so that when the label of the custom animation frame changes that the frame allocates enough space for the new label to display fully Change-Id: I9a95f6c3f60cd6cea47656e66cb9ffcc154a3a5a
Diffstat (limited to 'include/svx/sidebar')
-rw-r--r--include/svx/sidebar/PanelLayout.hxx11
1 files changed, 10 insertions, 1 deletions
diff --git a/include/svx/sidebar/PanelLayout.hxx b/include/svx/sidebar/PanelLayout.hxx
index 3395e7f9aab7..2fa82ee2d84d 100644
--- a/include/svx/sidebar/PanelLayout.hxx
+++ b/include/svx/sidebar/PanelLayout.hxx
@@ -14,19 +14,28 @@
#include <vcl/builder.hxx>
#include <vcl/ctrl.hxx>
+#include <vcl/timer.hxx>
#include <com/sun/star/frame/XFrame.hpp>
/// This class is the base for the Widget Layout-based sidebar panels.
class SVX_DLLPUBLIC PanelLayout : public Control, public VclBuilderContainer
{
+private:
+ Timer m_aPanelLayoutTimer;
+ bool m_bInClose;
+ bool hasPanelPendingLayout() const;
+
+ DECL_DLLPRIVATE_LINK( ImplHandlePanelLayoutTimerHdl, void* );
+
public:
PanelLayout(Window* pParent, const OString& rID, const OUString& rUIXMLDescription,
const com::sun::star::uno::Reference<com::sun::star::frame::XFrame> &rFrame);
- virtual ~PanelLayout() {}
+ virtual ~PanelLayout();
virtual Size GetOptimalSize() const;
virtual void setPosSizePixel(long nX, long nY, long nWidth, long nHeight, sal_uInt16 nFlags = WINDOW_POSSIZE_ALL);
+ virtual void queue_resize();
};
#endif