SARibbon 2.5.2
SARibbon wiki
载入中...
搜索中...
未找到
SARibbonCategoryLayout.h
1#ifndef SARIBBONCATEGORYLAYOUT_H
2#define SARIBBONCATEGORYLAYOUT_H
3#include "SARibbonGlobal.h"
4#include <QLayout>
5#include <QList>
6#include <QMap>
7#include "SARibbonCategory.h"
8
9class SARibbonPanel;
12
24class SA_RIBBON_EXPORT SARibbonCategoryLayout : public QLayout
25{
26 Q_OBJECT
27 SA_RIBBON_DECLARE_PRIVATE(SARibbonCategoryLayout)
28public:
29 Q_PROPERTY(int scrollPosition READ scrollPosition WRITE setScrollPosition)
30public:
35
37 SARibbonCategory* ribbonCategory() const;
38
40 virtual void addItem(QLayoutItem* item) override;
42 virtual QLayoutItem* itemAt(int index) const override;
44 virtual QLayoutItem* takeAt(int index) override;
46 SARibbonCategoryLayoutItem* takePanelItem(int index);
48 SARibbonCategoryLayoutItem* takePanelItem(SARibbonPanel* panel);
50 bool takePanel(SARibbonPanel* panel);
52 virtual int count() const override;
54 void setGeometry(const QRect& rect) override;
56 QSize sizeHint() const override;
58 QSize minimumSize() const override;
60 Qt::Orientations expandingDirections() const override;
62 void invalidate() override;
64 void addPanel(SARibbonPanel* panel);
66 void insertPanel(int index, SARibbonPanel* panel);
68 QSize categoryContentSize() const;
70 void updateGeometryArr();
71
73 void doLayout();
74
76 QList< SARibbonPanel* > panels() const;
77
79 SARibbonPanel* panelByObjectName(const QString& objname) const;
81 SARibbonPanel* panelByName(const QString& panelname) const;
83 SARibbonPanel* panelByIndex(int i) const;
85 void movePanel(int from, int to);
87 int panelCount() const;
89 int panelIndex(SARibbonPanel* p) const;
91 QList< SARibbonPanel* > panelList() const;
93 void scroll(int px);
95 void scrollTo(int targetX);
97 void scrollByAnimate(int px);
99 void scrollToByAnimate(int targetX);
101 int scrollPosition() const;
103 void setScrollPosition(int pos);
105 bool isAnimatingScroll() const;
107 bool isScrolled() const;
109 int categoryTotalWidth() const;
111 void setCategoryAlignment(SARibbonAlignment al);
113 SARibbonAlignment categoryAlignment() const;
115 void setAnimationDuration(int duration);
117 int animationDuration() const;
118private Q_SLOTS:
119 void onLeftScrollButtonClicked();
120 void onRightScrollButtonClicked();
121
122private:
123 void setupAnimateScroll();
124};
125
137class SA_RIBBON_EXPORT SARibbonCategoryLayoutItem : public QWidgetItem
138{
139public:
144 SARibbonSeparatorWidget* separatorWidget;
146 SARibbonPanel* toPanelWidget();
149};
150#endif // SARIBBONCATEGORYLAYOUT_H
Definition SARibbonCategoryLayout.h:138
QRect mWillSetGeometry
panel将要设置的Geometry
Definition SARibbonCategoryLayout.h:147
QRect mWillSetSeparatorGeometry
panel将要设置的Separator的Geometry
Definition SARibbonCategoryLayout.h:148
Definition SARibbonCategoryLayout.h:25
Definition SARibbonCategory.h:32
panel页窗口,panel是ribbon的面板用于承放控件 / Ribbon panel container, used to hold controls
Definition SARibbonPanel.h:100
Definition SARibbonSeparatorWidget.h:17