Files
2026-05-24 23:21:33 +02:00

122 lines
4.4 KiB
C++

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include "SARibbonMainWindow.h"
class SARibbonCategory;
class SARibbonContextCategory;
class SARibbonCustomizeWidget;
class SARibbonActionsManager;
class SARibbonQuickAccessBar;
class SARibbonButtonGroupWidget;
class SARibbonPannel;
class QTextEdit;
class QComboBox;
class QCloseEvent;
class QLineEdit;
class MainWindow : public SARibbonMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget* par = nullptr);
private:
// 创建ribbon-application菜单示例
void createRibbonApplicationButton();
// 创建main菜单示例
void createCategoryMain(SARibbonCategory* page);
void createCategoryOther(SARibbonCategory* page);
void createCategoryDelete(SARibbonCategory* page);
void createCategorySize(SARibbonCategory* page);
void createCategoryColor(SARibbonCategory* page);
void createContextCategory1();
void createContextCategory2();
void createContextCategoryPage1(SARibbonCategory* page);
void createContextCategoryPage2(SARibbonCategory* page);
void createQuickAccessBar();
void createRightButtonGroup();
void createWindowButtonGroupBar();
// 创建ActionsManager,实现actions的管理以及SARibbonBar的自定义
void createActionsManager();
QAction* createAction(const QString& text, const QString& iconurl, const QString& objName);
QAction* createAction(const QString& text, const QString& iconurl);
private Q_SLOTS:
void onMenuButtonPopupCheckableTest(bool b);
void onInstantPopupCheckableTest(bool b);
void onDelayedPopupCheckableTest(bool b);
void onMenuButtonPopupCheckabletriggered(bool b);
void onInstantPopupCheckabletriggered(bool b);
void onDelayedPopupCheckabletriggered(bool b);
void onShowContextCategory(bool on);
void onStyleClicked(int id);
void onActionCustomizeTriggered();
void onActionCustomizeAndSaveTriggered();
void onActionCustomizeAndSaveWithApplyTriggered();
void onActionHelpTriggered();
void onActionRemoveAppBtnTriggered(bool b);
void onActionUseQssTriggered();
void onActionLoadCustomizeXmlFileTriggered();
void onActionWindowFlagNormalButtonTriggered(bool b);
void onFontComWidgetCurrentFontChanged(const QFont& f);
void onActionFontLargerTriggered();
void onActionFontSmallerTriggered();
void onActionWordWrapTriggered(bool b);
void onButtonGroupActionTriggered(QAction* act);
void onColorButtonColorClicked(const QColor& c, bool on);
void onRibbonThemeComboBoxCurrentIndexChanged(int index);
void onActionHideActionTriggered(bool on);
// 切换所有action是否可见
void onActionVisibleAllTriggered(bool on);
// 居中对齐checkbox的槽
void onCheckBoxAlignmentCenterClicked(bool checked);
//
void onSpinBoxRibbonTitleHeightChanged(int h);
void onSpinBoxRibbonTabHeightChanged(int h);
void onSpinBoxRibbonCategoryHeightChanged(int h);
void onSpinBoxRibbonPannelTtitleHeightChanged(int h);
void onSpinBoxRibbonPannelSpacingChanged(int h);
void onSpinBoxRibbonPannelToolBtnIconSizeChanged(int h);
private:
// 创建其它actions,这些actions并不在SARibbonBar管理
void createOtherActions();
protected:
void closeEvent(QCloseEvent* e) override;
private:
SARibbonContextCategory* mContextCategory;
SARibbonContextCategory* mContextCategory2;
SARibbonCustomizeWidget* mWidgetForCustomize;
QTextEdit* mTextedit;
SARibbonActionsManager* mActionsManager;
int mTagForActionText;
int mTagForActionIcon;
QMenu* mMenuApplicationBtn;
QComboBox* mComboboxRibbonTheme;
QLineEdit* mSearchEditor { nullptr };
//
QAction* mActionWordWrap { nullptr };
QAction* mActionDisable { nullptr };
QAction* mActionUnlock { nullptr };
QAction* mActionSetTextTest { nullptr };
QAction* mActionShowTest { nullptr };
QAction* mActionHideAction2 { nullptr };
QAction* mActionHideAction4 { nullptr };
QAction* mActionHideShowTextAct2 { nullptr };
QAction* mActionHideShowTextAct3 { nullptr };
QAction* mActionHideShowTextAct4 { nullptr };
//
QAction* mOtherAction1 { nullptr };
QAction* mOtherAction2 { nullptr };
QAction* mOtherAction3 { nullptr };
QAction* mOtherAction4 { nullptr };
QAction* mOtherAction5 { nullptr };
QAction* mOtherActionIcon1 { nullptr };
SARibbonPannel* mPannelVisbileExample { nullptr };
//
QAction* mActionVisibleAll { nullptr }; ///< 控制所有action是否可见的开关
bool mHasApplyCustomizeXmlFile { false }; /// 程序启动后是否应用上次修改
};
#endif // MAINWINDOW_H