diff options
author | Szymon Kłos <eszkadev@gmail.com> | 2016-07-01 15:53:46 +0200 |
---|---|---|
committer | Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> | 2016-07-08 13:23:24 +0000 |
commit | d3dd6b5c41cbd16620bf53189b9c08ad5600fdc8 (patch) | |
tree | d0a38e7bd742d0fc670dab52cfaf3b5a3a9ddb1d /include | |
parent | b39596b109e05e6b49687e072bcb1e0b39b21dcc (diff) |
GSoC notebookbar: container with priority
+ extended vcl builder to parse priority
+ IPrioritable interface for controls with priorities
+ added IPrioritable as a base for VclContainer
+ Added PriorityHBox - box which shows controls if we have enough space
PriorityHBox listen vcl events from SystemWindow to detect Resize
Change-Id: I74ac1a80e7d0a061f5e7a8584dbb2abf956053c7
Reviewed-on: https://gerrit.libreoffice.org/26983
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Diffstat (limited to 'include')
-rw-r--r-- | include/vcl/IPrioritable.hxx | 44 | ||||
-rw-r--r-- | include/vcl/builder.hxx | 4 | ||||
-rw-r--r-- | include/vcl/layout.hxx | 4 |
3 files changed, 49 insertions, 3 deletions
diff --git a/include/vcl/IPrioritable.hxx b/include/vcl/IPrioritable.hxx new file mode 100644 index 000000000000..11146681ee65 --- /dev/null +++ b/include/vcl/IPrioritable.hxx @@ -0,0 +1,44 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#ifndef INCLUDED_VCL_IPRIORITABLE_HXX +#define INCLUDED_VCL_IPRIORITABLE_HXX + +#define VCL_PRIORITY_DEFAULT -1 + +namespace vcl +{ + +class VCL_DLLPUBLIC IPrioritable +{ +protected: + IPrioritable() : m_nPriority(VCL_PRIORITY_DEFAULT) + { + } + +public: + int GetPriority() const + { + return m_nPriority; + } + + void SetPriority(int nPriority) + { + m_nPriority = nPriority; + } + +private: + int m_nPriority; +}; + +} // namespace vcl + +#endif // INCLUDED_VCL_IPRIORITABLE_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/include/vcl/builder.hxx b/include/vcl/builder.hxx index 13ff4200cb98..787f6ea30b81 100644 --- a/include/vcl/builder.hxx +++ b/include/vcl/builder.hxx @@ -351,8 +351,8 @@ private: void handleChild(vcl::Window *pParent, xmlreader::XmlReader &reader); VclPtr<vcl::Window> handleObject(vcl::Window *pParent, xmlreader::XmlReader &reader); void handlePacking(vcl::Window *pCurrent, vcl::Window *pParent, xmlreader::XmlReader &reader); - static std::vector<vcl::EnumContext::Context> handleStyle(xmlreader::XmlReader &reader); - static vcl::EnumContext::Context getContext(xmlreader::XmlReader &reader); + static std::vector<vcl::EnumContext::Context> handleStyle(xmlreader::XmlReader &reader, int &nPriority); + static OString getStyleClass(xmlreader::XmlReader &reader); void applyPackingProperty(vcl::Window *pCurrent, vcl::Window *pParent, xmlreader::XmlReader &reader); void collectProperty(xmlreader::XmlReader &reader, const OString &rID, stringmap &rVec); static void collectPangoAttribute(xmlreader::XmlReader &reader, stringmap &rMap); diff --git a/include/vcl/layout.hxx b/include/vcl/layout.hxx index a3e21042989c..59d7d6c6ae45 100644 --- a/include/vcl/layout.hxx +++ b/include/vcl/layout.hxx @@ -14,13 +14,15 @@ #include <vcl/button.hxx> #include <vcl/dialog.hxx> #include <vcl/fixed.hxx> +#include <vcl/IPrioritable.hxx> #include <vcl/scrbar.hxx> #include <vcl/vclmedit.hxx> #include <vcl/window.hxx> #include <vcl/vclptr.hxx> #include <set> -class VCL_DLLPUBLIC VclContainer : public vcl::Window +class VCL_DLLPUBLIC VclContainer : public vcl::Window, + public vcl::IPrioritable { public: VclContainer(vcl::Window *pParent, WinBits nStyle = WB_HIDE | WB_CLIPCHILDREN); |