guichan 0.8.2代码阅读
一、类结构:
(一)简单类型:
Exception:
异常类基类,使用GCN_EXCEPTION宏打印源码位置。
Color:
拥有rgba颜色属性
Rectangle:
拥有矩形范围属性
ClipRectangle:
Rectangle扩展类,拥有int型xOffset和yOffset属性
Key:
按键值,用于KeyEvent和KeyInput
KeyInput:
按键队列元素,用于GenericInput内置队列
MouseInput:
鼠标队列元素,用于GenericInput内置队列
(二)事件
Event:
拥有Widget*型source属性
ActionEvent :
Event扩展类, 拥有string型id属性
SelectionEvent
Event扩展类
InputEvent:
Event扩展类,记录输入事件属性
KeyEvent:
InputEvent扩展类,记录Key型key属性和按键类型。
MouseEvent:
InputEvent的扩展类,记录鼠标状态。
(三)事件监听器:
ActionListener :
封装action回调函数
DeathListener:
封装death回调函数
FocusListener:
封装focusGained和focusLost回调函数
KeyListener:
封装keyPressed和keyReleased回调函数
MouseListener:
封装mouseEntered等回调函数
SelectionListener:
封装valueChanged回调函数
WidgetListener:
封装widgetResized等回调函数
(四)平台抽象接口类:
Graphics:
图形接口类,由Gui::setGraphics(全局变量的方法)指定
Image:
图片接口类,由ImageLoader::load(静态全局变量的方法)指定
Font:
字体接口类。由Widget::setGlobalFont(静态方法)或Widget::setFont指定
Input:
输入接口类,由Gui::setGraphics(全局变量的方法)指定
ImageLoader:
图片加载器接口类,由Image::setImageLoader(静态方法)指定
ListModel:
列表元素接口类,由ListBox::ListBox或DropDown::DropDown指定
(五)简单实现类
DefaultFont:
Font的实现类,用矩形画字体。
ImageFont:
Font的实现类,用图片画字体。
GenericInput:
Input的实现类,简单的KeyInput和MouseInput输入队列
(六)核心逻辑处理的抽象类:
Gui:
全局单实例类,由main函数创建
FocusHandler:
Gui创建的成员
Widget:
部件类(未实现draw方法故不可实例化),由BasicContainer::add指定。
BasicContainer:
容器(可包含部件的部件)类(未实现draw方法故不可实例化),继承自Widget,由Gui::setTop(全局变量的方法)指定。
(七)全局函数和定义
platform.hpp
guichan.hpp / guichan.cpp
opengl.hpp
sdl.hpp
(八)部件类
DropDown / ScrollArea / Tab / TabbedArea
继承自BasicContainer
Container
继承自BasicContainer
AdjustingContainer / Window
继承自Container
Button / CheckBox / Icon / Label / ListBox / RadioButton
Slider / TextBox / TextField
继承自Widget
ImageButton
继承自Button
(九)平台实现类(只列举SDL实现):
SDLGraphics
Graphics实现类
SDLImage
Image实现类
SDLTrueTypeFont:
Font实现类
SDLInput
Input实现类
SDLImageLoader
ImageLoader实现类
(TODO:待补充)