33 lines
		
	
	
	
		
			829 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
	
		
			829 B
		
	
	
	
		
			C++
		
	
	
	
	
	
/*
 | 
						|
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 "layout/abstract_layout_item.h"
 | 
						|
 | 
						|
namespace HistoryView {
 | 
						|
struct TextState;
 | 
						|
struct StateRequest;
 | 
						|
} // namespace HistoryView
 | 
						|
 | 
						|
class LayoutItemBase : public AbstractLayoutItem {
 | 
						|
public:
 | 
						|
	using TextState = HistoryView::TextState;
 | 
						|
	using StateRequest = HistoryView::StateRequest;
 | 
						|
 | 
						|
	using AbstractLayoutItem::AbstractLayoutItem;
 | 
						|
 | 
						|
	virtual void initDimensions() = 0;
 | 
						|
 | 
						|
	[[nodiscard]] virtual TextState getState(
 | 
						|
		QPoint point,
 | 
						|
		StateRequest request) const;
 | 
						|
	[[nodiscard]] virtual TextSelection adjustSelection(
 | 
						|
		TextSelection selection,
 | 
						|
		TextSelectType type) const;
 | 
						|
 | 
						|
};
 |