1#ifndef SARIBBONBUTTONLAYOUTSTRATEGY_H
2#define SARIBBONBUTTONLAYOUTSTRATEGY_H
4#include "SARibbonGlobal.h"
5#include <QStyleOptionToolButton>
17enum class SARibbonButtonType
38 indicatorRect = QRect();
43 return iconRect.isValid() || textRect.isValid() || indicatorRect.isValid();
54 const QWidget* buttonWidget {
nullptr };
56 int indicatorLength { 8 };
57 QSize largeIconSize { 32, 32 };
58 QSize smallIconSize { 16, 16 };
59 qreal twoLineHeightFactor { 2.05 };
60 qreal oneLineHeightFactor { 1.2 };
61 qreal buttonMaximumAspectRatio { 1.4 };
62 bool enableWordWrap {
true };
63 mutable bool isTextNeedWrap {
false };
64 int maximumWidth { QWIDGETSIZE_MAX };
115 virtual int estimateTextWidth(
int buttonHeight,
118 const QFontMetrics& fm,
125 static bool hasIndicator(
const QStyleOptionToolButton& opt);
130 static QSize adjustIconSize(
const QRect& buttonRect,
const QSize& originIconSize);
135 static QString simplifiedText(
const QString& str);
144 void calculateDrawRects(
const QStyleOptionToolButton& opt,
153 void calculateIconOnlyRects(
const QStyleOptionToolButton& opt,
157 void calculateTextOnlyRects(
const QStyleOptionToolButton& opt,
161 void calculateIconAndTextRects(
const QStyleOptionToolButton& opt,
172 void calculateDrawRects(
const QStyleOptionToolButton& opt,
181 void calculateIconOnlyRects(
const QStyleOptionToolButton& opt,
185 void calculateTextOnlyRects(
const QStyleOptionToolButton& opt,
189 void calculateIconAndTextRects(
const QStyleOptionToolButton& opt,
200 static std::unique_ptr< SARibbonButtonLayoutStrategy > createStrategy(SARibbonButtonType type);
布局上下文
Definition SARibbonButtonLayoutStrategy.h:53