From d11e756381605c573af272dec695f8daa8462661 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Mon, 26 Jul 2021 01:01:00 +0300 Subject: [PATCH] Detached abstract part of LayoutItemBase and moved to td_ui. --- Telegram/SourceFiles/layout.h | 43 ++----------------- .../layout/abstract_layout_item.cpp | 38 ++++++++++++++++ .../SourceFiles/layout/abstract_layout_item.h | 40 +++++++++++++++++ Telegram/cmake/td_ui.cmake | 3 ++ 4 files changed, 84 insertions(+), 40 deletions(-) create mode 100644 Telegram/SourceFiles/layout/abstract_layout_item.cpp create mode 100644 Telegram/SourceFiles/layout/abstract_layout_item.h diff --git a/Telegram/SourceFiles/layout.h b/Telegram/SourceFiles/layout.h index 8fd524927..5800b4d4e 100644 --- a/Telegram/SourceFiles/layout.h +++ b/Telegram/SourceFiles/layout.h @@ -7,7 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once -#include "base/runtime_composer.h" +#include "layout/abstract_layout_item.h" namespace HistoryView { struct TextState; @@ -70,31 +70,14 @@ public: }; -class LayoutItemBase - : public RuntimeComposer - , public ClickHandlerHost { +class LayoutItemBase : public AbstractLayoutItem { public: using TextState = HistoryView::TextState; using StateRequest = HistoryView::StateRequest; - LayoutItemBase() { - } + using AbstractLayoutItem::AbstractLayoutItem; - LayoutItemBase(const LayoutItemBase &other) = delete; - LayoutItemBase &operator=(const LayoutItemBase &other) = delete; - - int maxWidth() const { - return _maxw; - } - int minHeight() const { - return _minh; - } virtual void initDimensions() = 0; - virtual int resizeGetHeight(int width) { - _width = qMin(width, _maxw); - _height = _minh; - return _height; - } [[nodiscard]] virtual TextState getState( QPoint point, @@ -103,24 +86,4 @@ public: TextSelection selection, TextSelectType type) const; - int width() const { - return _width; - } - int height() const { - return _height; - } - - bool hasPoint(QPoint point) const { - return QRect(0, 0, width(), height()).contains(point); - } - - virtual ~LayoutItemBase() { - } - -protected: - int _width = 0; - int _height = 0; - int _maxw = 0; - int _minh = 0; - }; diff --git a/Telegram/SourceFiles/layout/abstract_layout_item.cpp b/Telegram/SourceFiles/layout/abstract_layout_item.cpp new file mode 100644 index 000000000..71484c2c9 --- /dev/null +++ b/Telegram/SourceFiles/layout/abstract_layout_item.cpp @@ -0,0 +1,38 @@ +/* +This file is part of Telegram Desktop, +the official desktop application for the Telegram messaging service. + +For license and copyright information please follow this link: +https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL +*/ +#include "layout/abstract_layout_item.h" + +AbstractLayoutItem::AbstractLayoutItem() { +} + +int AbstractLayoutItem::maxWidth() const { + return _maxw; +} +int AbstractLayoutItem::minHeight() const { + return _minh; +} + +int AbstractLayoutItem::resizeGetHeight(int width) { + _width = qMin(width, _maxw); + _height = _minh; + return _height; +} + +int AbstractLayoutItem::width() const { + return _width; +} +int AbstractLayoutItem::height() const { + return _height; +} + +bool AbstractLayoutItem::hasPoint(QPoint point) const { + return QRect(0, 0, width(), height()).contains(point); +} + +AbstractLayoutItem::~AbstractLayoutItem() { +} diff --git a/Telegram/SourceFiles/layout/abstract_layout_item.h b/Telegram/SourceFiles/layout/abstract_layout_item.h new file mode 100644 index 000000000..68a569398 --- /dev/null +++ b/Telegram/SourceFiles/layout/abstract_layout_item.h @@ -0,0 +1,40 @@ +/* +This file is part of Telegram Desktop, +the official desktop application for the Telegram messaging service. + +For license and copyright information please follow this link: +https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL +*/ +#pragma once + +#include "base/runtime_composer.h" +#include "ui/click_handler.h" + +class AbstractLayoutItem + : public RuntimeComposer + , public ClickHandlerHost { +public: + AbstractLayoutItem(); + + AbstractLayoutItem(const AbstractLayoutItem &other) = delete; + AbstractLayoutItem &operator=( + const AbstractLayoutItem &other) = delete; + + [[nodiscard]] int maxWidth() const; + [[nodiscard]] int minHeight() const; + virtual int resizeGetHeight(int width); + + [[nodiscard]] int width() const; + [[nodiscard]] int height() const; + + [[nodiscard]] bool hasPoint(QPoint point) const; + + virtual ~AbstractLayoutItem(); + +protected: + int _width = 0; + int _height = 0; + int _maxw = 0; + int _minh = 0; + +}; diff --git a/Telegram/cmake/td_ui.cmake b/Telegram/cmake/td_ui.cmake index c1fdafa87..bffc6f548 100644 --- a/Telegram/cmake/td_ui.cmake +++ b/Telegram/cmake/td_ui.cmake @@ -61,6 +61,9 @@ PRIVATE data/data_countries.cpp data/data_countries.h + layout/abstract_layout_item.cpp + layout/abstract_layout_item.h + media/clip/media_clip_check_streaming.cpp media/clip/media_clip_check_streaming.h media/clip/media_clip_ffmpeg.cpp