2
0
mirror of https://github.com/telegramdesktop/tdesktop synced 2025-08-24 19:27:17 +00:00
tdesktop/Telegram/SourceFiles/overview/overview_checkbox.h
2025-08-22 13:05:26 +04:00

55 lines
1.1 KiB
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 "ui/effects/round_checkbox.h"
namespace style {
struct RoundCheckbox;
} // namespace style
namespace Overview::Layout {
class Checkbox {
public:
template <typename UpdateCallback>
Checkbox(UpdateCallback callback, const style::RoundCheckbox &st)
: _updateCallback(callback)
, _check(st, _updateCallback) {
}
void paint(
QPainter &p,
QPoint position,
int outerWidth,
bool selected,
bool selecting);
void setActive(bool active);
void setPressed(bool pressed);
void setChecked(bool checked, anim::type animated = anim::type::normal);
void finishAnimating();
void invalidateCache() {
_check.invalidateCache();
}
private:
void startAnimation();
Fn<void()> _updateCallback;
Ui::RoundCheckbox _check;
Ui::Animations::Simple _pression;
bool _active = false;
bool _pressed = false;
};
} // namespace Overview::Layout