📄 asl_gui.h
字号:
//-----------------------------------------------------------------------------
//
// ____ Azure Star Game Engine 蓝星游戏引擎 ____
//
// Copyright (c) 2006, 蓝星工作室
// All rights reserved.
//
// 文件名称: asl_gui.h
// 摘 要: GUI系统类定义
//
// 当前版本: 1.0
// 作 者: 汤 祺
// 创建日期: 2006-8-12
//
//-----------------------------------------------------------------------------
#ifndef ASL_GUI_INCLUDE
#define ASL_GUI_INCLUDE
#pragma once
#include "asl_guiobj.h"
#include "asl_bitmap.h"
#include <list>
//-----------------------------------------------------------------------------
namespace ASL
{
// 取全局唯一实例
#define GUI ASLGui::Instance()
//-----------------------------------------------------------------------------
// 类名: ASLGui
// 功能: GUI系统类
// 本类是GUI系统的总管. 各个控件通过在本类中注册而激活, 本类将负责处理
// 用户输入, 调用各注册控件的事件处理函数, 协调各注册控件间的关系. 本类
// 只有全局唯一实例, 使用Singleton模式实现.
//-----------------------------------------------------------------------------
class ASLGui
{
// 私有构造函数, 析构函数, 仅通过Instance()创建
private:
ASLGui(void);
~ASLGui(void);
// 禁用拷贝构造函数, 赋值函数, 无实现
ASLGui(const ASLGui&);
ASLGui& operator=(const ASLGui&);
// 公有函数
public:
// 取全局唯一实例
static ASLGui& Instance(void);
// 初始化, 设定画布
void Init(ASLBitmap &bmCanvas) { m_pbmCanvas = &bmCanvas; }
// 取画布
ASLBitmap& GetCanvas(void)
{ ASSERT(m_pbmCanvas != NULL); return *m_pbmCanvas; }
// 注册控件
void AddCtrl(ASLControl *pCtrl);
// 注销控件
void DelCtrl(ASLControl *pCtrl);
// 使控件获得焦点
void SetFocus(ASLControl *pCtrl);
// 更新GUI系统
void Update(float fDelta);
// 绘制GUI系统
void Draw(void);
// 添加单选按钮
void AddRadio(ASLRadioButton *pRadio);
// 删除单选按钮
void DelRadio(ASLRadioButton *pRadio);
// 选中单选按钮
void CheckRadio(ASLRadioButton *pRadio);
// 私有函数
private:
// 处理控件的鼠标事件
void ProcessMouseEvent(ASLControl *pCtrl);
// 成员变量
private:
std::list<ASLControl*> m_lstpCtrls; // 控件链表
std::list<ASLRadioButton*> m_lstpRadios; // 单选按钮链表
ASLControl *m_pFocusedCtrl; // 获得焦点的控件
ASLControl *m_pLockedCtrl; // 被锁定的控件
ASLControl *m_pHoveredCtrl; // 鼠标下的控件
ASLBitmap *m_pbmCanvas; // 画布指针
}; // ASLGui类定义结束
} // namespace ASL
#endif // ASL_GUI_INCLUDE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -