5#ifndef QQC2QSTYLE_P_P_H
6#define QQC2QSTYLE_P_P_H
19#include <private/qobject_p.h>
20#include <private/qqc2qstyle_p.h>
22#include <QtGui/qguiapplication.h>
30 Q_DECLARE_PUBLIC(QStyle)
40 const qreal pixelRatio = qApp->devicePixelRatio();
41 QImage cacheImage = QImage(size * pixelRatio, QImage::Format_ARGB32_Premultiplied);
42 cacheImage.setDevicePixelRatio(pixelRatio);
48 const qreal pixelRatio = qApp->devicePixelRatio();
49 QPixmap cachePixmap = QPixmap(size * pixelRatio);
50 cachePixmap.setDevicePixelRatio(pixelRatio);
54#define BEGIN_STYLE_PIXMAPCACHE(a)
55 QRect rect = option->rect;
56 QPixmap internalPixmapCache;
58 QPainter *p = painter;
59 QString unique = QStyleHelper::uniqueName((a), option, option->rect.size());
60 int txType = painter->deviceTransform().type() | painter->worldTransform().type();
61 bool doPixmapCache = (!option->rect.isEmpty())
62 && ((txType <= QTransform::TxTranslate) || (painter->deviceTransform().type() == QTransform::TxScale));
63 if (doPixmapCache && QPixmapCache::find(unique, &internalPixmapCache)) {
64 painter->drawPixmap(option->rect.topLeft(), internalPixmapCache);
67 rect.setRect(0
, 0
, option->rect.width(), option->rect.height());
68 imageCache = styleCacheImage(option->rect.size());
70 p = new QPainter(&imageCache);
73#define END_STYLE_PIXMAPCACHE
77 internalPixmapCache = QPixmap::fromImage(imageCache);
78 painter->drawPixmap(option->rect.topLeft(), internalPixmapCache);
79 QPixmapCache::insert(unique, internalPixmapCache);
const QStyle * proxy() const
virtual QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt=nullptr) const =0
virtual QRect itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const
virtual QPalette standardPalette() const
virtual QSize sizeFromContents(ContentsType ct, const QStyleOption *opt, const QSize &contentsSize) const =0
static Qt::Alignment visualAlignment(Qt::LayoutDirection direction, Qt::Alignment alignment)
virtual int pixelMetric(PixelMetric metric, const QStyleOption *option=nullptr) const =0
virtual void handleThemeChange()
@ SC_SearchFieldEditField
@ SC_TitleBarNormalButton
@ SC_TitleBarUnshadeButton
@ SC_ComboBoxListBoxPopup
@ SC_TitleBarContextHelpButton
virtual void drawItemPixmap(QPainter *painter, const QRect &rect, int alignment, const QPixmap &pixmap) const
virtual void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p) const =0
virtual QRect itemTextRect(const QFontMetrics &fm, const QRect &r, int flags, bool enabled, const QString &text) const
@ SE_DateTimeEditLayoutItem
@ SE_PushButtonLayoutItem
@ SE_TabBarTearIndicatorRight
@ SE_DockWidgetTitleBarText
@ SE_TabBarScrollLeftButton
@ SE_TabWidgetRightCorner
@ SE_ToolButtonLayoutItem
@ SE_ItemViewItemDecoration
@ SE_RadioButtonIndicator
@ SE_ItemViewItemFocusRect
@ SE_TabBarTabRightButton
@ SE_RadioButtonLayoutItem
@ SE_RadioButtonFocusRect
@ SE_RadioButtonClickRect
@ SE_DockWidgetCloseButton
@ SE_TabBarScrollRightButton
@ SE_SearchFieldLayoutItem
@ SE_DockWidgetFloatButton
@ SE_TreeViewDisclosureItem
@ SE_ProgressBarLayoutItem
@ SE_TabBarTearIndicatorLeft
@ SE_TabWidgetTabContents
@ SE_ItemViewItemCheckIndicator
virtual void drawControl(ControlElement element, const QStyleOption *opt, QPainter *p) const =0
virtual QFont font(ControlElement element, const QStyle::State state) const =0
static QRect alignedRect(Qt::LayoutDirection direction, Qt::Alignment alignment, const QSize &size, const QRect &rectangle)
virtual void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p) const =0
static int sliderPositionFromValue(int min, int max, int val, int space, bool upsideDown=false)
virtual QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc) const =0
RequestSoftwareInputPanel
@ RSIP_OnMouseClickAndAlreadyFocused
static QRect visualRect(Qt::LayoutDirection direction, const QRect &boundingRect, const QRect &logicalRect)
virtual QRect subElementRect(SubElement subElement, const QStyleOption *option) const =0
static int sliderValueFromPosition(int min, int max, int pos, int space, bool upsideDown=false)
virtual QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const =0
@ SH_Menu_SpaceActivatesItem
@ SH_MenuBar_AltKeyNavigation
@ SH_Slider_StopMouseOverSlider
@ SH_Splitter_OpaqueResize
@ SH_TitleBar_ModifyNotification
@ SH_DialogButtonBox_ButtonsHaveIcons
@ SH_FontDialog_SelectAssociatedText
@ SH_TabBar_SelectMouseType
@ SH_Menu_SubMenuSloppyCloseTimeout
@ SH_ItemView_EllipsisLocation
@ SH_MenuBar_MouseTracking
@ SH_BlinkCursorWhenTextSelected
@ SH_LineEdit_PasswordMaskDelay
@ SH_TabBar_PreferNoArrows
@ SH_ScrollBar_ScrollWhenPointerLeavesControl
@ SH_ComboBox_UseNativePopup
@ SH_ToolBox_SelectedPageTitleBold
@ SH_Slider_AbsoluteSetButtons
@ SH_ItemView_ArrowKeysNavigateIntoChildren
@ SH_FormLayoutWrapPolicy
@ SH_ItemView_MovementWithoutUpdatingSelection
@ SH_Menu_FillScreenWithScroll
@ SH_TitleBar_ShowToolTipsOnButtons
@ SH_ItemView_ChangeHighlightOnFocus
@ SH_Widget_ShareActivation
@ SH_RichText_FullWidthSelection
@ SH_GroupBox_TextLabelColor
@ SH_Header_ArrowAlignment
@ SH_ScrollView_FrameOnlyAroundContents
@ SH_FormLayoutLabelAlignment
@ SH_ScrollBar_RollBetweenButtons
@ SH_TabWidget_DefaultTabPosition
@ SH_Menu_AllowActiveAndDisabled
@ SH_Workspace_FillSpaceOnMaximize
@ SH_GroupBox_TextLabelVerticalAlignment
@ SH_Menu_FlashTriggeredItem
@ SH_MessageBox_TextInteractionFlags
@ SH_ItemView_ShowDecorationSelected
@ SH_ProgressDialog_CenterCancelButton
@ SH_ComboBox_LayoutDirection
@ SH_Slider_SloppyKeyEvents
@ SH_ProgressDialog_TextLabelAlignment
@ SH_PrintDialog_RightAlignButtons
@ SH_RequestSoftwareInputPanel
@ SH_ToolTip_FallAsleepDelay
@ SH_ItemView_ActivateItemOnSingleClick
@ SH_SpinBox_ClickAutoRepeatThreshold
@ SH_ComboBox_PopupFrameStyle
@ SH_SpinBox_AnimateButton
@ SH_ComboBox_ListMouseTracking
@ SH_FormLayoutFormAlignment
@ SH_TextControl_FocusIndicatorTextCharFormat
@ SH_ScrollBar_ContextMenu
@ SH_DialogButtons_DefaultButton
@ SH_Slider_PageSetButtons
@ SH_Menu_SubMenuUniDirectionFailCount
@ SH_ListViewExpand_SelectMouseType
@ SH_FormLayoutFieldGrowthPolicy
@ SH_ToolButton_PopupDelay
@ SH_SpellCheckUnderlineStyle
@ SH_SpinBox_ButtonsInsideFrame
@ SH_ScrollBar_LeftClickAbsolutePosition
@ SH_DrawMenuBarSeparator
@ SH_MessageBox_UseBorderForButtonSpacing
@ SH_TabBar_CloseButtonPosition
@ SH_Menu_SubMenuSloppySelectOtherActions
@ SH_MessageBox_CenterButtons
@ SH_MainWindow_SpaceBelowMenuBar
@ SH_DockWidget_ButtonsHaveFrame
@ SH_SpinBox_ClickAutoRepeatRate
@ SH_ScrollBar_MiddleClickAbsolutePosition
@ SH_FocusFrame_AboveWidget
@ SH_Widget_Animation_Duration
@ SH_SpinControls_DisableOnBounds
@ SH_Menu_SupportsSections
@ SH_ItemView_DrawDelegateFrame
@ SH_ComboBox_AllowWheelScrolling
@ SH_Menu_SubMenuDontStartSloppyOnLeave
@ SH_TabBar_ChangeCurrentDelay
@ SH_LineEdit_PasswordCharacter
@ SH_Menu_SubMenuResetWhenReenteringParent
@ SH_ToolTipLabel_Opacity
@ SH_Menu_SubMenuUniDirection
@ SH_SpinBox_StepModifier
@ SH_SpinBox_KeyPressAutoRepeatRate
@ SH_Menu_SubMenuPopupDelay
@ SH_ItemView_PaintAlternatingRowColorsForEmptyArea
virtual int styleHint(StyleHint stylehint, const QStyleOption *opt=nullptr, QStyleHintReturn *returnData=nullptr) const =0
@ State_KeyboardFocusChange
virtual QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *option=nullptr) const =0
virtual void drawItemText(QPainter *painter, const QRect &rect, int flags, const QPalette &pal, bool enabled, const QString &text, QPalette::ColorRole textRole=QPalette::NoRole) const
@ SP_TitleBarContextHelpButton
@ SP_MessageBoxInformation
@ SP_FileDialogDetailedView
@ SP_RestoreDefaultsButton
@ SP_FileDialogContentsView
@ SP_ToolBarVerticalExtensionButton
@ SP_TitleBarNormalButton
@ SP_TitleBarUnshadeButton
@ SP_DockWidgetCloseButton
@ SP_ToolBarHorizontalExtensionButton
@ SP_DialogYesToAllButton
virtual QMargins ninePatchMargins(ComplexControl cc, const QStyleOptionComplex *opt, const QSize &imageSize) const =0
virtual SubControl hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, const QPoint &pt) const =0
virtual QMargins ninePatchMargins(ControlElement ce, const QStyleOption *opt, const QSize &imageSize) const =0
static QPoint visualPos(Qt::LayoutDirection direction, const QRect &boundingRect, const QPoint &logicalPos)
QPixmap styleCachePixmap(const QSize &size)
QImage styleCacheImage(const QSize &size)
Combined button and popup list for selecting options.