2023-02-14 13:27:52 +00:00
|
|
|
/*
|
|
|
|
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 "platform/platform_overlay_widget.h"
|
|
|
|
|
|
|
|
namespace Platform {
|
|
|
|
|
|
|
|
class MacOverlayWidgetHelper final : public OverlayWidgetHelper {
|
|
|
|
public:
|
|
|
|
MacOverlayWidgetHelper(
|
|
|
|
not_null<Ui::RpWindow*> window,
|
|
|
|
Fn<void(bool)> maximize);
|
|
|
|
~MacOverlayWidgetHelper();
|
2023-02-17 09:21:19 +00:00
|
|
|
|
2023-02-14 13:27:52 +00:00
|
|
|
void beforeShow(bool fullscreen) override;
|
|
|
|
void afterShow(bool fullscreen) override;
|
|
|
|
void notifyFileDialogShown(bool shown) override;
|
2023-02-17 09:21:19 +00:00
|
|
|
void minimize(not_null<Ui::RpWindow*> window) override;
|
2023-02-14 13:27:52 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
struct Data;
|
|
|
|
|
|
|
|
void activate(int button); // NSWindowButton
|
|
|
|
void resolveNative();
|
|
|
|
void updateStyles(bool fullscreen);
|
|
|
|
void refreshButtons(bool fullscreen);
|
2023-02-17 09:21:19 +00:00
|
|
|
|
2023-02-14 13:27:52 +00:00
|
|
|
std::unique_ptr<Data> _data;
|
2023-02-17 09:21:19 +00:00
|
|
|
|
2023-02-14 13:27:52 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace Platform
|