thedesk/platform/platformtheme.h
2023-06-01 22:16:44 +10:00

62 lines
2.5 KiB
C++

/****************************************
*
* INSERT-PROJECT-NAME-HERE - INSERT-GENERIC-NAME-HERE
* Copyright (C) 2020 Victor Tran
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* *************************************/
#ifndef PLATFORMTHEME_H
#define PLATFORMTHEME_H
#include <qpa/qplatformtheme.h>
struct PlatformThemePrivate;
class PlatformTheme : public QPlatformTheme {
public:
explicit PlatformTheme();
~PlatformTheme();
// QPlatformTheme interface
public:
QPlatformMenuItem* createPlatformMenuItem() const override;
QPlatformMenu* createPlatformMenu() const override;
QPlatformMenuBar* createPlatformMenuBar() const override;
void showPlatformMenuBar() override;
bool usePlatformNativeDialog(DialogType type) const override;
QPlatformDialogHelper* createPlatformDialogHelper(DialogType type) const override;
QPlatformSystemTrayIcon* createPlatformSystemTrayIcon() const override;
const QPalette* palette(Palette type) const override;
const QFont* font(Font type) const override;
QVariant themeHint(ThemeHint hint) const override;
QPixmap standardPixmap(StandardPixmap sp, const QSizeF& size) const override;
QIcon fileIcon(const QFileInfo& fileInfo, QPlatformTheme::IconOptions iconOptions) const override;
QIconEngine* createIconEngine(const QString& iconName) const override;
QList<QKeySequence> keyBindings(QKeySequence::StandardKey key) const override;
QString standardButtonText(int button) const override;
QKeySequence standardButtonShortcut(int button) const override;
#if QT_VERSION < QT_VERSION_CHECK(6, 5, 0)
Appearance appearance() const override;
#else
Qt::ColorScheme colorScheme() const;
#endif
private:
PlatformThemePrivate* d;
void updatePalette();
void updateFont();
};
#endif // PLATFORMTHEME_H