From f67b8df3ebdba2d398b9cce686b7c644adffff08 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Sat, 7 May 2011 00:02:01 +0200 Subject: library split --- src/gui/styles/qs60style_p.h | 638 ------------------------------------------- 1 file changed, 638 deletions(-) delete mode 100644 src/gui/styles/qs60style_p.h (limited to 'src/gui/styles/qs60style_p.h') diff --git a/src/gui/styles/qs60style_p.h b/src/gui/styles/qs60style_p.h deleted file mode 100644 index e146a4e3ac..0000000000 --- a/src/gui/styles/qs60style_p.h +++ /dev/null @@ -1,638 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtGui module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QS60STYLE_P_H -#define QS60STYLE_P_H - -#include "qs60style.h" -#include "qcommonstyle_p.h" -#include - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -QT_BEGIN_NAMESPACE - -const int MAX_NON_CUSTOM_PIXELMETRICS = 92; -const int CUSTOMVALUESCOUNT = 5; - -const int MAX_PIXELMETRICS = MAX_NON_CUSTOM_PIXELMETRICS + CUSTOMVALUESCOUNT; - -typedef struct { - unsigned short height; - unsigned short width; - int major_version; - int minor_version; - const char* layoutName; -} layoutHeader; - -#ifdef Q_OS_SYMBIAN -NONSHARABLE_CLASS (QS60StyleEnums) -#else -class QS60StyleEnums -#endif -: public QObject -{ -#ifndef Q_WS_S60 - Q_OBJECT - Q_ENUMS(FontCategories) - Q_ENUMS(SkinParts) - Q_ENUMS(ColorLists) -#endif // !Q_WS_S60 - -public: - - // S60 definitions within theme - enum ThemeDefinitions { - TD_AnimationData, - }; - - //Defines which values are contained within animation data (retrieved using TD_AnimationData). - //Additionally defines the order in which the items are given out in QList. - enum AnimationData { - AD_Interval = 0, - AD_NumberOfFrames, - AD_AnimationPlayMode, //currently not used as themes seem to contain invalid data - }; - - // Animation modes - enum AnimationMode { - AM_PlayOnce = 0, //animation is played exactly once - AM_Looping, //animation is repeated until stopped - AM_Bounce //animation is played repeatedly until stopped, - //but frames are played in reverse order every second time - //(no support yet) - }; - - // S60 look-and-feel font categories - enum FontCategories { - FC_Undefined, - FC_Primary, - FC_Secondary, - FC_Title, - FC_PrimarySmall, - FC_Digital - }; - - enum SkinParts { - SP_QgnGrafBarWaitAnim, - SP_QgnGrafBarFrameCenter, - SP_QgnGrafBarFrameSideL, - SP_QgnGrafBarFrameSideR, - SP_QgnGrafBarProgress, - SP_QgnGrafOrgBgGrid, - SP_QgnGrafScrollArrowDown, - SP_QgnGrafScrollArrowLeft, - SP_QgnGrafScrollArrowRight, - SP_QgnGrafScrollArrowUp, - SP_QgnGrafTabActiveL, - SP_QgnGrafTabActiveM, - SP_QgnGrafTabActiveR, - SP_QgnGrafTabPassiveL, - SP_QgnGrafTabPassiveM, - SP_QgnGrafTabPassiveR, - SP_QgnGrafNsliderEndLeft, - SP_QgnGrafNsliderEndRight, - SP_QgnGrafNsliderMiddle, - SP_QgnIndiCheckboxOff, - SP_QgnIndiCheckboxOn, - SP_QgnIndiHlColSuper, // Available in S60 release 3.2 and later. - SP_QgnIndiHlExpSuper, // Available in S60 release 3.2 and later. - SP_QgnIndiHlLineBranch, // Available in S60 release 3.2 and later. - SP_QgnIndiHlLineEnd, // Available in S60 release 3.2 and later. - SP_QgnIndiHlLineStraight, // Available in S60 release 3.2 and later. - SP_QgnIndiMarkedAdd, - SP_QgnIndiNaviArrowLeft, - SP_QgnIndiNaviArrowRight, - SP_QgnIndiRadiobuttOff, - SP_QgnIndiRadiobuttOn, - SP_QgnGrafNsliderMarker, - SP_QgnGrafNsliderMarkerSelected, - SP_QgnIndiSubmenu, - SP_QgnNoteErased, - SP_QgnNoteError, - SP_QgnNoteInfo, - SP_QgnNoteOk, - SP_QgnNoteQuery, - SP_QgnNoteWarning, - SP_QgnPropFileSmall, - SP_QgnPropFolderCurrent, - SP_QgnPropFolderSmall, - SP_QgnPropFolderSmallNew, - SP_QgnPropPhoneMemcLarge, - SP_QgnFrSctrlButtonCornerTl, // Toolbar button - SP_QgnFrSctrlButtonCornerTr, - SP_QgnFrSctrlButtonCornerBl, - SP_QgnFrSctrlButtonCornerBr, - SP_QgnFrSctrlButtonSideT, - SP_QgnFrSctrlButtonSideB, - SP_QgnFrSctrlButtonSideL, - SP_QgnFrSctrlButtonSideR, - SP_QgnFrSctrlButtonCenter, - SP_QgnFrSctrlButtonCornerTlPressed, // Toolbar button, pressed - SP_QgnFrSctrlButtonCornerTrPressed, - SP_QgnFrSctrlButtonCornerBlPressed, - SP_QgnFrSctrlButtonCornerBrPressed, - SP_QgnFrSctrlButtonSideTPressed, - SP_QgnFrSctrlButtonSideBPressed, - SP_QgnFrSctrlButtonSideLPressed, - SP_QgnFrSctrlButtonSideRPressed, - SP_QgnFrSctrlButtonCenterPressed, - SP_QsnCpScrollHandleBottomPressed, //ScrollBar handle, pressed state - SP_QsnCpScrollHandleMiddlePressed, - SP_QsnCpScrollHandleTopPressed, - SP_QsnBgScreen, - SP_QsnCpScrollBgBottom, - SP_QsnCpScrollBgMiddle, - SP_QsnCpScrollBgTop, - SP_QsnCpScrollHandleBottom, - SP_QsnCpScrollHandleMiddle, - SP_QsnCpScrollHandleTop, - SP_QsnFrButtonTbCornerTl, // Button, normal state - SP_QsnFrButtonTbCornerTr, - SP_QsnFrButtonTbCornerBl, - SP_QsnFrButtonTbCornerBr, - SP_QsnFrButtonTbSideT, - SP_QsnFrButtonTbSideB, - SP_QsnFrButtonTbSideL, - SP_QsnFrButtonTbSideR, - SP_QsnFrButtonTbCenter, - SP_QsnFrButtonTbCornerTlPressed, // Button, pressed state - SP_QsnFrButtonTbCornerTrPressed, - SP_QsnFrButtonTbCornerBlPressed, - SP_QsnFrButtonTbCornerBrPressed, - SP_QsnFrButtonTbSideTPressed, - SP_QsnFrButtonTbSideBPressed, - SP_QsnFrButtonTbSideLPressed, - SP_QsnFrButtonTbSideRPressed, - SP_QsnFrButtonTbCenterPressed, - SP_QsnFrCaleCornerTl, // calendar grid item - SP_QsnFrCaleCornerTr, - SP_QsnFrCaleCornerBl, - SP_QsnFrCaleCornerBr, - SP_QsnFrCaleSideT, - SP_QsnFrCaleSideB, - SP_QsnFrCaleSideL, - SP_QsnFrCaleSideR, - SP_QsnFrCaleCenter, - SP_QsnFrCaleHeadingCornerTl, // calendar grid header - SP_QsnFrCaleHeadingCornerTr, - SP_QsnFrCaleHeadingCornerBl, - SP_QsnFrCaleHeadingCornerBr, - SP_QsnFrCaleHeadingSideT, - SP_QsnFrCaleHeadingSideB, - SP_QsnFrCaleHeadingSideL, - SP_QsnFrCaleHeadingSideR, - SP_QsnFrCaleHeadingCenter, - SP_QsnFrInputCornerTl, // Text input field - SP_QsnFrInputCornerTr, - SP_QsnFrInputCornerBl, - SP_QsnFrInputCornerBr, - SP_QsnFrInputSideT, - SP_QsnFrInputSideB, - SP_QsnFrInputSideL, - SP_QsnFrInputSideR, - SP_QsnFrInputCenter, - SP_QsnFrListCornerTl, // List background - SP_QsnFrListCornerTr, - SP_QsnFrListCornerBl, - SP_QsnFrListCornerBr, - SP_QsnFrListSideT, - SP_QsnFrListSideB, - SP_QsnFrListSideL, - SP_QsnFrListSideR, - SP_QsnFrListCenter, - SP_QsnFrPopupCornerTl, // Option menu background - SP_QsnFrPopupCornerTr, - SP_QsnFrPopupCornerBl, - SP_QsnFrPopupCornerBr, - SP_QsnFrPopupSideT, - SP_QsnFrPopupSideB, - SP_QsnFrPopupSideL, - SP_QsnFrPopupSideR, - SP_QsnFrPopupCenter, - SP_QsnFrPopupPreviewCornerTl, // tool tip background - SP_QsnFrPopupPreviewCornerTr, - SP_QsnFrPopupPreviewCornerBl, - SP_QsnFrPopupPreviewCornerBr, - SP_QsnFrPopupPreviewSideT, - SP_QsnFrPopupPreviewSideB, - SP_QsnFrPopupPreviewSideL, - SP_QsnFrPopupPreviewSideR, - SP_QsnFrPopupPreviewCenter, - SP_QsnFrSetOptCornerTl, // Settings list - SP_QsnFrSetOptCornerTr, - SP_QsnFrSetOptCornerBl, - SP_QsnFrSetOptCornerBr, - SP_QsnFrSetOptSideT, - SP_QsnFrSetOptSideB, - SP_QsnFrSetOptSideL, - SP_QsnFrSetOptSideR, - SP_QsnFrSetOptCenter, - SP_QsnFrPopupSubCornerTl, // Toolbar background - SP_QsnFrPopupSubCornerTr, - SP_QsnFrPopupSubCornerBl, - SP_QsnFrPopupSubCornerBr, - SP_QsnFrPopupSubSideT, - SP_QsnFrPopupSubSideB, - SP_QsnFrPopupSubSideL, - SP_QsnFrPopupSubSideR, - SP_QsnFrPopupSubCenter, - SP_QsnFrButtonCornerTlInactive, // Inactive button - SP_QsnFrButtonCornerTrInactive, - SP_QsnFrButtonCornerBlInactive, - SP_QsnFrButtonCornerBrInactive, - SP_QsnFrButtonSideTInactive, - SP_QsnFrButtonSideBInactive, - SP_QsnFrButtonSideLInactive, - SP_QsnFrButtonSideRInactive, - SP_QsnFrButtonCenterInactive, - SP_QsnFrGridCornerTlPressed, // Pressed table item - SP_QsnFrGridCornerTrPressed, - SP_QsnFrGridCornerBlPressed, - SP_QsnFrGridCornerBrPressed, - SP_QsnFrGridSideTPressed, - SP_QsnFrGridSideBPressed, - SP_QsnFrGridSideLPressed, - SP_QsnFrGridSideRPressed, - SP_QsnFrGridCenterPressed, - SP_QsnFrListCornerTlPressed, // Pressed list item - SP_QsnFrListCornerTrPressed, - SP_QsnFrListCornerBlPressed, - SP_QsnFrListCornerBrPressed, - SP_QsnFrListSideTPressed, - SP_QsnFrListSideBPressed, - SP_QsnFrListSideLPressed, - SP_QsnFrListSideRPressed, - SP_QsnFrListCenterPressed, - }; - - enum ColorLists { - CL_QsnHighlightColors, - CL_QsnIconColors, - CL_QsnLineColors, - CL_QsnOtherColors, - CL_QsnParentColors, - CL_QsnTextColors - }; -}; - -#ifdef Q_WS_S60 -class CAknBitmapAnimation; -NONSHARABLE_CLASS (AnimationData) : public QObject -{ -public: - AnimationData(const QS60StyleEnums::SkinParts part, int frames, int interval); - - const QS60StyleEnums::SkinParts m_id; - int m_frames; - int m_interval; - QS60StyleEnums::AnimationMode m_mode; -}; - - -NONSHARABLE_CLASS (AnimationDataV2) : public AnimationData -{ -public: - AnimationDataV2(const AnimationData &data); - ~AnimationDataV2(); - - CAknBitmapAnimation *m_animation; - int m_currentFrame; - bool m_resourceBased; - int m_timerId; -}; - - -class QS60StyleAnimation : public QObject -{ -public: - QS60StyleAnimation(const QS60StyleEnums::SkinParts part, int frames, int interval); - ~QS60StyleAnimation(); - -public: - QS60StyleEnums::SkinParts animationId() const {return m_currentData->m_id;} - int frameCount() const { return m_currentData->m_frames;} - int interval() const {return m_currentData->m_interval;} - QS60StyleEnums::AnimationMode playMode() const {return m_currentData->m_mode;} - CAknBitmapAnimation* animationObject() const {return m_currentData->m_animation;} - bool isResourceBased() const {return m_currentData->m_resourceBased;} - int timerId() const {return m_currentData->m_timerId;} - int currentFrame() const {return m_currentData->m_currentFrame;} - - void setFrameCount(int frameCount) {m_currentData->m_frames = frameCount;} - void setInterval(int interval) {m_currentData->m_interval = interval;} - void setAnimationObject(CAknBitmapAnimation* animation); - void setResourceBased(bool resourceBased) {m_currentData->m_resourceBased = resourceBased;} - void setTimerId(int timerId) {m_currentData->m_timerId = timerId;} - void setCurrentFrame(int currentFrame) {m_currentData->m_currentFrame = currentFrame;} - - void resetToDefaults(); - -private: //data members - //TODO: consider changing these to non-pointers as the classes are rather small anyway - AnimationData *m_defaultData; - AnimationDataV2 *m_currentData; -}; - -#endif //Q_WS_S60 - - -class QFocusFrame; -class QProgressBar; -class QS60StyleAnimation; - -// Private class -#ifdef Q_OS_SYMBIAN -NONSHARABLE_CLASS (QS60StylePrivate) -#else -class QS60StylePrivate -#endif -: public QCommonStylePrivate -{ - Q_DECLARE_PUBLIC(QS60Style) - -public: - QS60StylePrivate(); - ~QS60StylePrivate(); - - enum SkinElements { - SE_ButtonNormal, - SE_ButtonPressed, - SE_FrameLineEdit, - SE_ProgressBarGrooveHorizontal, - SE_ProgressBarIndicatorHorizontal, - SE_ProgressBarGrooveVertical, - SE_ProgressBarIndicatorVertical, - SE_ScrollBarGrooveHorizontal, - SE_ScrollBarGrooveVertical, - SE_ScrollBarHandleHorizontal, - SE_ScrollBarHandleVertical, - SE_SliderHandleHorizontal, - SE_SliderHandleVertical, - SE_SliderHandleSelectedHorizontal, - SE_SliderHandleSelectedVertical, - SE_SliderGrooveVertical, - SE_SliderGrooveHorizontal, - SE_TabBarTabEastActive, - SE_TabBarTabEastInactive, - SE_TabBarTabNorthActive, - SE_TabBarTabNorthInactive, - SE_TabBarTabSouthActive, - SE_TabBarTabSouthInactive, - SE_TabBarTabWestActive, - SE_TabBarTabWestInactive, - SE_ListHighlight, - SE_PopupBackground, - SE_SettingsList, - SE_TableItem, - SE_TableHeaderItem, - SE_ToolTip, //own graphic available on 3.2+ releases, - SE_ToolBar, - SE_ToolBarButton, - SE_ToolBarButtonPressed, - SE_PanelBackground, - SE_ScrollBarHandlePressedHorizontal, - SE_ScrollBarHandlePressedVertical, - SE_ButtonInactive, - SE_Editor, - SE_DropArea, - SE_TableItemPressed, - SE_ListItemPressed, - }; - - enum SkinFrameElements { - SF_ButtonNormal, - SF_ButtonPressed, - SF_FrameLineEdit, - SF_ListHighlight, - SF_PopupBackground, - SF_SettingsList, - SF_TableItem, - SF_TableHeaderItem, - SF_ToolTip, - SF_ToolBar, - SF_ToolBarButton, - SF_ToolBarButtonPressed, - SF_PanelBackground, - SF_ButtonInactive, - SF_TableItemPressed, - SF_ListItemPressed, - }; - - enum SkinElementFlag { - SF_PointNorth = 0x0001, // North = the default - SF_PointEast = 0x0002, - SF_PointSouth = 0x0004, - SF_PointWest = 0x0008, - - SF_StateEnabled = 0x0010, // Enabled = the default - SF_StateDisabled = 0x0020, - SF_ColorSkinned = 0x0040, // pixmap is colored with foreground pen color - SF_Animation = 0x0080, - SF_Mirrored_X_Axis = 0x0100, - SF_Mirrored_Y_Axis = 0x0200 - }; - - enum CacheClearReason { - CC_UndefinedChange = 0, - CC_LayoutChange, - CC_ThemeChange - }; - - Q_DECLARE_FLAGS(SkinElementFlags, SkinElementFlag) - - // draws skin element - static void drawSkinElement(SkinElements element, QPainter *painter, - const QRect &rect, SkinElementFlags flags = KDefaultSkinElementFlags); - // draws a specific skin part - static void drawSkinPart(QS60StyleEnums::SkinParts part, QPainter *painter, - const QRect &rect, SkinElementFlags flags = KDefaultSkinElementFlags); - // gets pixel metrics value - static short pixelMetric(int metric); - // gets color. 'index' is NOT 0-based. - // It corresponds to the enum key 1-based numbers of TAknsQsnXYZColorsIndex, not the values. - static QColor s60Color(QS60StyleEnums::ColorLists list, - int index, const QStyleOption *option); - // gets state specific color - static QColor stateColor(const QColor &color, const QStyleOption *option); - // gets lighter color than base color - static QColor lighterColor(const QColor &baseColor); - //deduces if the given widget should have separately themeable background - static bool drawsOwnThemeBackground(const QWidget *widget); - - QFont s60Font(QS60StyleEnums::FontCategories fontCategory, - int pointSize = -1, bool resolveFontSize = true) const; - // clears all style caches (fonts, colors, pixmaps) - void clearCaches(CacheClearReason reason = CC_UndefinedChange); - - // themed main background oprations - void setBackgroundTexture(QApplication *application) const; - static void deleteBackground(); - - static bool isTouchSupported(); - static bool isToolBarBackground(); - static bool hasSliderGrooveGraphic(); - static bool isSingleClickUi(); - static bool isWidgetPressed(const QWidget *widget); - -#ifdef Q_WS_S60 - static void deleteStoredSettings(); - // calculates average color based on theme graphics (minus borders). - QColor colorFromFrameGraphics(SkinFrameElements frame) const; -#endif - QColor calculatedColor(SkinFrameElements frame) const; - - //set theme palette for application - void setThemePalette(QApplication *application) const; - //access to theme palette - static QPalette* themePalette(); - - static const layoutHeader m_layoutHeaders[]; - static const short data[][MAX_PIXELMETRICS]; - - void setCurrentLayout(int layoutIndex); - void setActiveLayout(); - // Pointer - static short const *m_pmPointer; - // number of layouts supported by the style - static const int m_numberOfLayouts; - - mutable QHash, QFont> m_mappedFontsCache; - - // Has one entry per SkinFrameElements - static const struct frameElementCenter { - SkinElements element; - QS60StyleEnums::SkinParts center; - } m_frameElementsData[]; - - static QPixmap frame(SkinFrameElements frame, const QSize &size, - SkinElementFlags flags = KDefaultSkinElementFlags); - static QPixmap backgroundTexture(bool skipCreation = false); - static QPixmap placeHolderTexture(); - -#ifdef Q_WS_S60 - void handleDynamicLayoutVariantSwitch(); - void handleSkinChange(); -#endif // Q_WS_S60 - - //Checks that the current brush is transparent or has BrushStyle NoBrush, - //so that theme graphic background can be drawn. - static bool canDrawThemeBackground(const QBrush &backgroundBrush, const QWidget *widget); - - static int currentAnimationFrame(QS60StyleEnums::SkinParts part); -#ifdef Q_WS_S60 - - //No support for animations on emulated style - void startAnimation(QS60StyleEnums::SkinParts animation); - void stopAnimation(QS60StyleEnums::SkinParts animation); - static QS60StyleAnimation* animationDefinition(QS60StyleEnums::SkinParts part); - static void removeAnimations(); - -#endif - -private: - static void drawPart(QS60StyleEnums::SkinParts part, QPainter *painter, - const QRect &rect, SkinElementFlags flags = KDefaultSkinElementFlags); - static void drawRow(QS60StyleEnums::SkinParts start, QS60StyleEnums::SkinParts middle, - QS60StyleEnums::SkinParts end, Qt::Orientation orientation, QPainter *painter, - const QRect &rect, SkinElementFlags flags = KDefaultSkinElementFlags); - static void drawFrame(SkinFrameElements frame, QPainter *painter, - const QRect &rect, SkinElementFlags flags = KDefaultSkinElementFlags); - - static QPixmap cachedPart(QS60StyleEnums::SkinParts part, const QSize &size, - QPainter *painter, SkinElementFlags flags = KDefaultSkinElementFlags); - static QPixmap cachedFrame(SkinFrameElements frame, const QSize &size, - SkinElementFlags flags = KDefaultSkinElementFlags); - - // set S60 font for widget - void setFont(QWidget *widget) const; - static void setThemePalette(QWidget *widget); - void setThemePalette(QPalette *palette) const; - static void setThemePaletteHash(QPalette *palette); - static void storeThemePalette(QPalette *palette); - static void deleteThemePalette(); - static bool equalToThemePalette(QColor color, QPalette::ColorRole role); - static bool equalToThemePalette(qint64 cacheKey, QPalette::ColorRole role); - - static QSize partSize(QS60StyleEnums::SkinParts part, - SkinElementFlags flags = KDefaultSkinElementFlags); - static QPixmap part(QS60StyleEnums::SkinParts part, const QSize &size, - QPainter *painter, SkinElementFlags flags = KDefaultSkinElementFlags); - - static QFont s60Font_specific(QS60StyleEnums::FontCategories fontCategory, - int pointSize, bool resolveFontSize); - - static QSize screenSize(); - - // Contains background texture. - static QPixmap *m_background; - // Placeholder pixmap for the real background texture. - static QPixmap *m_placeHolderTexture; - - const static SkinElementFlags KDefaultSkinElementFlags; - // defined theme palette - static QPalette *m_themePalette; - QPalette m_originalPalette; - - QPointer m_focusFrame; - static qint64 m_webPaletteKey; - - static QPointer m_pressedWidget; - -#ifdef Q_WS_S60 - //list of progress bars having animation running - QList m_bars; -#endif - -}; - -QT_END_NAMESPACE - -#endif // QS60STYLE_P_H -- cgit v1.2.3