// ============================================================================
//  mainwindow_showcase.h —— MainWindow 类声明
//
//  主窗体的静态结构（central QTextEdit / menuBar / mainToolBar / statusBar /
//  dockWidget / 全部 QAction）在 mainwindow.ui 中用 Qt Designer 设计；
//  本类只负责动态行为：信号槽、运行时操控、状态栏更新、关于对话框。
//
//  槽命名遵循 Qt 自动连接约定 on_<objectName>_<signal>，由 setupUi() 触发的
//  QMetaObject::connectSlotsByName 自动连接，无需手写 connect（KISS）。
// ============================================================================
#ifndef MAINWINDOW_SHOWCASE_H
#define MAINWINDOW_SHOWCASE_H

#include <QMainWindow>
#include <QLabel>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow {
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow() override;

private slots:
    // 文件菜单
    void on_actionNew_triggered();
    void on_actionQuit_triggered();

    // 视图菜单 —— 操控各组件
    void on_actionToggleToolBar_toggled(bool checked);          // 5.2 显示/隐藏工具栏
    void on_actionToggleStatusBar_toggled(bool checked);        // 5.3 显示/隐藏状态栏
    void on_actionToggleToolBarMovable_toggled(bool checked);   // 5.2 工具栏可移动
    void on_actionToggleDockFloating_triggered();               // 5.4 浮动/停靠切换
    void on_actionShowDock_triggered();                         // 5.4 重新显示浮动窗口
    void on_actionHideDock_triggered();                         // 5.4 关闭浮动窗口
    void on_actionToolBarAreaLeft_triggered();                  // 5.2 setAllowedAreas
    void on_actionToolBarAreaRight_triggered();
    void on_actionToolBarAreaTop_triggered();
    void on_actionToolBarAreaBottom_triggered();
    void on_actionToolBarAreaAll_triggered();

    // 帮助菜单
    void on_actionAbout_triggered();

    // 状态栏：根据中心编辑区更新「行:列  字数:N」
    void updateStatusBar();

private:
    Ui::MainWindow *ui;
    QLabel *statusPosLabel;   // 状态栏永久标签（演示 5.3 addPermanentWidget）
};

#endif // MAINWINDOW_SHOWCASE_H
