File indexing completed on 2024-05-05 05:57:00

0001 /*
0002   SPDX-FileCopyrightText: 2008 Eike Hein <hein@kde.org>
0003 
0004   SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005 */
0006 
0007 #ifndef SKIN_H
0008 #define SKIN_H
0009 
0010 #include <QObject>
0011 #include <QPixmap>
0012 #include <QString>
0013 
0014 class Skin : public QObject
0015 {
0016     Q_OBJECT
0017 
0018 public:
0019     explicit Skin();
0020     ~Skin();
0021 
0022     bool load(const QString &name, bool kns = false);
0023 
0024     const QColor &borderColor()
0025     {
0026         return m_borderColor;
0027     }
0028     int borderWidth()
0029     {
0030         return m_borderWidth;
0031     }
0032 
0033     const QPixmap &titleBarBackgroundImage()
0034     {
0035         return m_titleBarBackgroundImage;
0036     }
0037     const QPixmap &titleBarLeftCornerImage()
0038     {
0039         return m_titleBarLeftCornerImage;
0040     }
0041     const QPixmap &titleBarRightCornerImage()
0042     {
0043         return m_titleBarRightCornerImage;
0044     }
0045 
0046     const QPoint &titleBarFocusButtonPosition()
0047     {
0048         return m_titleBarFocusButtonPosition;
0049     }
0050     const Qt::AnchorPoint &titleBarFocusButtonAnchor()
0051     {
0052         return m_titleBarFocusButtonAnchor;
0053     }
0054     const QString titleBarFocusButtonStyleSheet()
0055     {
0056         return m_titleBarFocusButtonStyleSheet;
0057     }
0058 
0059     const QPoint &titleBarMenuButtonPosition()
0060     {
0061         return m_titleBarMenuButtonPosition;
0062     }
0063     const Qt::AnchorPoint &titleBarMenuButtonAnchor()
0064     {
0065         return m_titleBarMenuButtonAnchor;
0066     }
0067     const QString titleBarMenuButtonStyleSheet()
0068     {
0069         return m_titleBarMenuButtonStyleSheet;
0070     }
0071 
0072     const QPoint &titleBarQuitButtonPosition()
0073     {
0074         return m_titleBarQuitButtonPosition;
0075     }
0076     const Qt::AnchorPoint &titleBarQuitButtonAnchor()
0077     {
0078         return m_titleBarQuitButtonAnchor;
0079     }
0080     const QString titleBarQuitButtonStyleSheet()
0081     {
0082         return m_titleBarQuitButtonStyleSheet;
0083     }
0084 
0085     const QString titleBarText()
0086     {
0087         return m_titleBarText;
0088     }
0089     const QPoint &titleBarTextPosition()
0090     {
0091         return m_titleBarTextPosition;
0092     }
0093     const QColor &titleBarTextColor()
0094     {
0095         return m_titleBarTextColor;
0096     }
0097     bool titleBarTextBold()
0098     {
0099         return m_titleBarTextBold;
0100     }
0101     bool titleBarTextCentered()
0102     {
0103         return m_titleBarTextCentered;
0104     }
0105 
0106     const QPoint &tabBarPosition()
0107     {
0108         return m_tabBarPosition;
0109     }
0110     const QColor &tabBarTextColor()
0111     {
0112         return m_tabBarTextColor;
0113     }
0114 
0115     const QPixmap &tabBarSeparatorImage()
0116     {
0117         return m_tabBarSeparatorImage;
0118     }
0119     const QPixmap &tabBarUnselectedBackgroundImage()
0120     {
0121         return m_tabBarUnselectedBackgroundImage;
0122     }
0123     const QPixmap &tabBarSelectedBackgroundImage()
0124     {
0125         return m_tabBarSelectedBackgroundImage;
0126     }
0127     const QPixmap &tabBarUnselectedLeftCornerImage()
0128     {
0129         return m_tabBarUnselectedLeftCornerImage;
0130     }
0131     const QPixmap &tabBarUnselectedRightCornerImage()
0132     {
0133         return m_tabBarUnselectedRightCornerImage;
0134     }
0135     const QPixmap &tabBarSelectedLeftCornerImage()
0136     {
0137         return m_tabBarSelectedLeftCornerImage;
0138     }
0139     const QPixmap &tabBarSelectedRightCornerImage()
0140     {
0141         return m_tabBarSelectedRightCornerImage;
0142     }
0143     bool tabBarSelectedTextBold()
0144     {
0145         return m_tabBarSelectedTextBold;
0146     }
0147 
0148     bool tabBarCompact()
0149     {
0150         return m_tabBarCompact;
0151     }
0152     int tabBarLeft()
0153     {
0154         return m_tabBarLeft;
0155     }
0156     int tabBarRight()
0157     {
0158         return m_tabBarRight;
0159     }
0160 
0161     const QPixmap tabBarPreventClosingImage();
0162     const QPoint &tabBarPreventClosingImagePosition()
0163     {
0164         return m_tabBarPreventClosingImagePosition;
0165     }
0166 
0167     const QPixmap &tabBarBackgroundImage()
0168     {
0169         return m_tabBarBackgroundImage;
0170     }
0171     const QPixmap &tabBarLeftCornerImage()
0172     {
0173         return m_tabBarLeftCornerImage;
0174     }
0175     const QPixmap &tabBarRightCornerImage()
0176     {
0177         return m_tabBarRightCornerImage;
0178     }
0179 
0180     const QPoint &tabBarNewTabButtonPosition()
0181     {
0182         return m_tabBarNewTabButtonPosition;
0183     }
0184     const QString tabBarNewTabButtonStyleSheet()
0185     {
0186         return m_tabBarNewTabButtonStyleSheet;
0187     }
0188     bool tabBarNewTabButtonIsAtEndOfTabs()
0189     {
0190         return m_tabBarNewTabButtonIsAtEndOfTabs;
0191     }
0192 
0193     const QPoint &tabBarCloseTabButtonPosition()
0194     {
0195         return m_tabBarCloseTabButtonPosition;
0196     }
0197     const QString tabBarCloseTabButtonStyleSheet()
0198     {
0199         return m_tabBarCloseTabButtonStyleSheet;
0200     }
0201 
0202 Q_SIGNALS:
0203     void iconChanged();
0204 
0205 private Q_SLOTS:
0206     void systemIconsChanged(int group);
0207 
0208 private:
0209     const QString buttonStyleSheet(const QString &up, const QString &over, const QString &down);
0210 
0211     void updateTabBarPreventClosingImageCache();
0212 
0213     QColor m_borderColor;
0214     int m_borderWidth;
0215 
0216     QPixmap m_titleBarBackgroundImage;
0217     QPixmap m_titleBarLeftCornerImage;
0218     QPixmap m_titleBarRightCornerImage;
0219 
0220     QPoint m_titleBarFocusButtonPosition;
0221     Qt::AnchorPoint m_titleBarFocusButtonAnchor;
0222     QString m_titleBarFocusButtonStyleSheet;
0223 
0224     QPoint m_titleBarMenuButtonPosition;
0225     Qt::AnchorPoint m_titleBarMenuButtonAnchor;
0226     QString m_titleBarMenuButtonStyleSheet;
0227 
0228     QPoint m_titleBarQuitButtonPosition;
0229     Qt::AnchorPoint m_titleBarQuitButtonAnchor;
0230     QString m_titleBarQuitButtonStyleSheet;
0231 
0232     QString m_titleBarText;
0233     QPoint m_titleBarTextPosition;
0234     QColor m_titleBarTextColor;
0235     bool m_titleBarTextBold;
0236     bool m_titleBarTextCentered;
0237 
0238     QPoint m_tabBarPosition;
0239     QColor m_tabBarTextColor;
0240 
0241     QPixmap m_tabBarSeparatorImage;
0242     QPixmap m_tabBarUnselectedBackgroundImage;
0243     QPixmap m_tabBarSelectedBackgroundImage;
0244     QPixmap m_tabBarUnselectedLeftCornerImage;
0245     QPixmap m_tabBarUnselectedRightCornerImage;
0246     QPixmap m_tabBarSelectedLeftCornerImage;
0247     QPixmap m_tabBarSelectedRightCornerImage;
0248     bool m_tabBarSelectedTextBold;
0249 
0250     QPixmap m_tabBarPreventClosingImage;
0251     QPixmap m_tabBarPreventClosingImageCached;
0252     QPoint m_tabBarPreventClosingImagePosition;
0253 
0254     QPixmap m_tabBarBackgroundImage;
0255     QPixmap m_tabBarLeftCornerImage;
0256     QPixmap m_tabBarRightCornerImage;
0257 
0258     QPoint m_tabBarNewTabButtonPosition;
0259     QString m_tabBarNewTabButtonStyleSheet;
0260     bool m_tabBarNewTabButtonIsAtEndOfTabs;
0261 
0262     bool m_tabBarCompact;
0263     int m_tabBarLeft;
0264     int m_tabBarRight;
0265 
0266     QPoint m_tabBarCloseTabButtonPosition;
0267     QString m_tabBarCloseTabButtonStyleSheet;
0268 };
0269 
0270 #endif