// This file is part of Desktop App Toolkit, // a set of libraries for developing nice desktop applications. // // For license and copyright information please follow this link: // https://github.com/desktop-app/legal/blob/master/LEGAL // #pragma once #include "ui/platform/ui_platform_window_title.h" class QPoint; class QPainter; class QPaintEvent; namespace Ui { namespace Platform { [[nodiscard]] bool IsApplicationActive(); [[nodiscard]] bool TranslucentWindowsSupported(QPoint globalPosition); void StartTranslucentPaint(QPainter &p, const QRegion ®ion); void InitOnTopPanel(not_null panel); void DeInitOnTopPanel(not_null panel); void ReInitOnTopPanel(not_null panel); void UpdateOverlayed(not_null widget); void ShowOverAll(not_null widget, bool canFocus = true); void BringToBack(not_null widget); void IgnoreAllActivation(not_null widget); void ClearTransientParent(not_null widget); [[nodiscard]] constexpr bool UseMainQueueGeneric(); void DrainMainQueue(); // Needed only if UseMainQueueGeneric() is false. [[nodiscard]] bool WindowExtentsSupported(); bool SetWindowExtents(QWindow *window, const QMargins &extents); bool UnsetWindowExtents(QWindow *window); bool ShowWindowMenu(QWindow *window); [[nodiscard]] TitleControls::Layout TitleControlsLayout(); [[nodiscard]] rpl::producer<> TitleControlsLayoutChanged(); void NotifyTitleControlsLayoutChanged(); } // namespace Platform } // namespace Ui // Platform dependent implementations. #ifdef Q_OS_MAC #include "ui/platform/mac/ui_utility_mac.h" #elif defined Q_OS_UNIX // Q_OS_MAC #include "ui/platform/linux/ui_utility_linux.h" #elif defined Q_OS_WINRT || defined Q_OS_WIN // Q_OS_MAC || Q_OS_UNIX #include "ui/platform/win/ui_utility_win.h" #endif // Q_OS_MAC || Q_OS_UNIX || Q_OS_WINRT || Q_OS_WIN