mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Detached abstract part of LayoutItemBase and moved to td_ui.
This commit is contained in:
parent
a128c16f59
commit
d11e756381
4 changed files with 84 additions and 40 deletions
|
@ -7,7 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "base/runtime_composer.h"
|
#include "layout/abstract_layout_item.h"
|
||||||
|
|
||||||
namespace HistoryView {
|
namespace HistoryView {
|
||||||
struct TextState;
|
struct TextState;
|
||||||
|
@ -70,31 +70,14 @@ public:
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class LayoutItemBase
|
class LayoutItemBase : public AbstractLayoutItem {
|
||||||
: public RuntimeComposer<LayoutItemBase>
|
|
||||||
, public ClickHandlerHost {
|
|
||||||
public:
|
public:
|
||||||
using TextState = HistoryView::TextState;
|
using TextState = HistoryView::TextState;
|
||||||
using StateRequest = HistoryView::StateRequest;
|
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 void initDimensions() = 0;
|
||||||
virtual int resizeGetHeight(int width) {
|
|
||||||
_width = qMin(width, _maxw);
|
|
||||||
_height = _minh;
|
|
||||||
return _height;
|
|
||||||
}
|
|
||||||
|
|
||||||
[[nodiscard]] virtual TextState getState(
|
[[nodiscard]] virtual TextState getState(
|
||||||
QPoint point,
|
QPoint point,
|
||||||
|
@ -103,24 +86,4 @@ public:
|
||||||
TextSelection selection,
|
TextSelection selection,
|
||||||
TextSelectType type) const;
|
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;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
38
Telegram/SourceFiles/layout/abstract_layout_item.cpp
Normal file
38
Telegram/SourceFiles/layout/abstract_layout_item.cpp
Normal file
|
@ -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() {
|
||||||
|
}
|
40
Telegram/SourceFiles/layout/abstract_layout_item.h
Normal file
40
Telegram/SourceFiles/layout/abstract_layout_item.h
Normal file
|
@ -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<AbstractLayoutItem>
|
||||||
|
, 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;
|
||||||
|
|
||||||
|
};
|
|
@ -61,6 +61,9 @@ PRIVATE
|
||||||
data/data_countries.cpp
|
data/data_countries.cpp
|
||||||
data/data_countries.h
|
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.cpp
|
||||||
media/clip/media_clip_check_streaming.h
|
media/clip/media_clip_check_streaming.h
|
||||||
media/clip/media_clip_ffmpeg.cpp
|
media/clip/media_clip_ffmpeg.cpp
|
||||||
|
|
Loading…
Add table
Reference in a new issue