Files
blackbird/lci/include/gui/gui.hpp
T
2026-08-02 20:15:07 +08:00

100 lines
2.0 KiB
C++

#ifndef PMC_GUI_HPP
#define PMC_GUI_HPP
/**
* @file gui.hpp
* @brief pmc项目GUI模块主入口
*
* 提供GTK GUI模块的统一入口,简化GUI开发。
*/
#include "gui/GTK.hpp"
namespace pmc {
namespace gui {
/**
* @brief 初始化GUI模块
* @param argc 命令行参数数量
* @param argv 命令行参数数组
* @return 初始化是否成功
*/
bool init(int argc, char** argv);
/**
* @brief 运行GUI主循环
*/
void run();
/**
* @brief 退出GUI主循环
*/
void quit();
/**
* @brief 创建主窗口
* @param title 窗口标题
* @param width 窗口宽度
* @param height 窗口高度
* @return 窗口指针
*/
GTKWindow* create_main_window(const std::string& title = "PMC Application",
int width = 800, int height = 600);
/**
* @brief 创建聊天窗口
* @param parent 父窗口
* @return 聊天窗口指针
*/
GTKWindow* create_chat_window(GTKWindow* parent = nullptr);
/**
* @brief 创建设置窗口
* @param parent 父窗口
* @return 设置窗口指针
*/
GTKWindow* create_settings_window(GTKWindow* parent = nullptr);
/**
* @brief 显示关于对话框
* @param parent 父窗口
*/
void show_about_dialog(GTKWindow* parent);
/**
* @brief 显示状态栏
* @param parent 父窗口
* @param message 状态消息
*/
void show_status_bar(GTKWindow* parent, const std::string& message);
/**
* @brief 更新状态栏消息
* @param message 新状态消息
*/
void update_status_bar(const std::string& message);
/**
* @brief 显示进度对话框
* @param parent 父窗口
* @param title 对话框标题
* @param message 进度消息
*/
void show_progress_dialog(GTKWindow* parent, const std::string& title, const std::string& message);
/**
* @brief 更新进度对话框
* @param progress 进度值 (0.0-1.0)
* @param message 进度消息
*/
void update_progress_dialog(double progress, const std::string& message);
/**
* @brief 关闭进度对话框
*/
void close_progress_dialog();
} // namespace gui
} // namespace pmc
#endif // PMC_GUI_HPP