QtCanpool 3.3.0
载入中...
搜索中...
未找到
ribbonbar_p.h
浏览该文件的文档.
1
5#pragma once
6
7#include "qxribbon_global.h"
8#include "ribbonbar.h"
9#include "ribboncontainers.h"
10
11#include <QStackedWidget>
12
14
15class RibbonTabBar;
16class RibbonQuickAccessBar;
17class RibbonControlButton;
18
19class RibbonStackedWidget : public QStackedWidget
20{
21 Q_OBJECT
22public:
23 explicit RibbonStackedWidget(QWidget *parent = Q_NULLPTR);
24 virtual ~RibbonStackedWidget();
25
26 bool isPopup() const;
27 void setPopup(bool popup);
28
29 void moveWidget(int from, int to);
30
31Q_SIGNALS:
34protected:
35 virtual bool event(QEvent *event);
36private:
37 bool m_isPopup;
38};
39
40/* RibbonQuickAccessBarContainer */
42{
43 Q_OBJECT
44public:
47public:
48 RibbonQuickAccessBar *quickAccessBar() const;
49private:
50 RibbonQuickAccessBar *m_quickAccessBar;
51};
52
54{
55public:
57 QList<int> tabPageIndex;
58 bool operator==(const RibbonPageContext *pageContext)
59 {
60 return (this->pageContext == pageContext);
61 }
62};
63
65{
66public:
68 int index;
70 : page(Q_NULLPTR)
71 , index(-1)
72 {
73 }
74};
75
76class RibbonBarPrivate : public QObject
77{
78 Q_OBJECT
80public:
82
83 void init();
84
85 void setApplicationButton(QAbstractButton *btn);
86 bool isPageContextVisible(RibbonPageContext *pageContext);
87
88 void setMinimizedFlag(bool flag);
89 void updateMinimumButtonIcon();
90
91 QColor getPageContextColor();
92
93 bool isOfficeStyle() const
94 {
95 return ((m_ribbonStyle & 0x00FF) == 0);
96 }
97 bool isTwoRowStyle() const
98 {
99 return ((m_ribbonStyle & 0xFF00) != 0);
100 }
101
102 void updateTabData();
103 void updatePageContextManagerData();
104 void updateRibbonElementGeometry();
105 void updateRibbonBarHeight();
106
107 void paintInOfficeStyle(QPainter &p);
108 void paintInWpsLiteStyle(QPainter &p);
109 void paintBackground(QPainter &painter);
110 void paintWindowTitle(QPainter &painter, const QString &title, const QRect &titleRegion);
111 void paintPageContextTab(QPainter &painter, const QString &title, QRect contextRect, const QColor &color);
112
113 void resizeInOfficeStyle();
114 void resizeInWpsLiteStyle();
115 void resizeStackedWidget();
116 void resizeRibbon();
117
118 int minimumWidthInOfficeStyle() const;
119 int minimumWidthInWpsLiteStyle() const;
120
121 int calcMinTabBarWidth() const;
122 int mainBarHeight() const;
123
124 int tabIndex(RibbonPage *page) const;
125
126 RibbonButtonGroup *createButtonGroup();
127
128public Q_SLOTS:
129 void onWindowTitleChanged(const QString &title);
130 void onWindowIconChanged(const QIcon &icon);
131 void onPageWindowTitleChanged(const QString &title);
132 void onPageContextAdded(RibbonPage *page);
133 void onCurrentRibbonTabChanged(int index);
134 void onCurrentRibbonTabClicked(int index);
135 void onCurrentRibbonTabDoubleClicked(int index);
136 void onTabMoved(int from, int to);
137 void onStackWidgetHided();
138 void onFontChanged();
139public:
140 QAbstractButton *m_applicationButton;
144 QList<PageContextManagerData> m_currentShowingPageContextList;
145 QList<RibbonPageContext *> m_pageContextList;
146 QList<RibbonTabData> m_hidedPage;
161 Qt::Alignment m_titleAligment;
167};
168
170
bool operator==(const RibbonPageContext *pageContext)
Definition ribbonbar_p.h:58
RibbonPageContext * pageContext
Definition ribbonbar_p.h:56
Qt::Alignment m_titleAligment
RibbonBar::TabBarPosition m_tabBarPosition
RibbonQuickAccessBarContainer * m_quickAccessBar
QList< PageContextManagerData > m_currentShowingPageContextList
RibbonButtonGroup * m_bottomLeftButtonGroup
QList< RibbonPageContext * > m_pageContextList
RibbonControlButton * m_minimumPageButton
隐藏面板按钮
RibbonButtonGroup * m_topLeftButtonGroup
QList< RibbonTabData > m_hidedPage
RibbonBar::RibbonStyle m_lastShowStyle
RibbonBar::RibbonStyle m_ribbonStyle
RibbonStackedWidget * m_stack
RibbonBar::QuickAccessBarPosition m_quickAccessBarPosition
RibbonButtonGroup * m_bottomRightButtonGroup
在 tabbar 右边的按钮群
int m_iconRightBorderPosition
标题栏x值的最小值,在有图标和快捷启动按钮,此值都需要变化
QList< QColor > m_pageContextColorList
QAbstractButton * m_applicationButton
RibbonButtonGroup * m_topRightButtonGroup
RibbonBar 继承 QMenuBar, 在 RibbonWindow 中直接替换了原来的 QMenuBar
Definition ribbonbar.h:99
管理上下文标签的类
一项 ribbon tab 页
Definition ribbonpage.h:30
#define QX_DECLARE_PUBLIC(Class)
#define Q_NULLPTR
Copyleft (C) 2025 maminjie canpool@163.com SPDX-License-Identifier: MulanPSL-2.0
#define QX_RIBBON_END_NAMESPACE
#define QX_RIBBON_BEGIN_NAMESPACE
#define QX_RIBBON_PREPEND_NAMESPACE(name)