窗口基类:
CL_GUIComponent
类似于mfc中的cwnd
主要功能:
管理窗口属性.
维护窗口父子层关系.
基本消息处理
///////////////////////////////////////////////////////////////////////////////////////数据部分///////////////////////////////////////////////////////////////////////////////////////////////////////
//窗口关系数
CL_GUIComponent *component; //自己
CL_GUIComponent *parent;
CL_GUIComponent *prev_sibling;
CL_GUIComponent *next_sibling;
CL_GUIComponent *first_child;
CL_GUIComponent *last_child;
CL_GUIComponent::FocusPolicy focus_policy; //激活类型
CL_GUILayout layout; //layout(布局?)
//属性
CL_String type_name; //类型名
CL_String class_name; //类名
CL_String id_name; //ID名
bool allow_resize; //是否允许拖动改变大小
bool clip_children; //是否裁剪子窗口
bool enabled;
bool visible;
bool activated;
bool click_through; //字面意思应该是是否过滤鼠标点击
CL_Rect geometry; //窗口矩形
mutable CL_String element_name; //
bool default_handler; //缺省ok?
bool cancel_handler; //缺省取消?
bool constant_repaint; //
bool blocks_default_action_when_focused;
bool is_selected_in_group;
CL_String group_name;
然后是一系列的接口回调函数
CL_Callback_v2<CL_GraphicContext &, const CL_Rect &> func_render; //绘制
CL_Callback_v1<CL_GUIMessage &> func_process_message; //消息处理
CL_Callback_0<bool> func_close;//关闭
CL_Callback_0<bool> func_activated;//激活
CL_Callback_0<bool> func_deactivated;//激活解除
CL_Callback_0<bool> func_focus_lost;//失去焦点
CL_Callback_0<bool> func_focus_gained;//获得焦点
CL_Callback_0<bool> func_pointer_enter;//光标进入
CL_Callback_0<bool> func_pointer_exit;//光标离开
CL_Callback_1<bool, const CL_InputEvent &> func_input;//键盘输入
CL_Callback_1<bool, const CL_InputEvent &> func_input_pressed;//按键按下
CL_Callback_1<bool, const CL_InputEvent &> func_input_released;//按键放开
CL_Callback_1<bool, const CL_InputEvent &> func_input_doubleclick;//双击
CL_Callback_1<bool, const CL_InputEvent &> func_input_pointer_moved;//关闭移动
CL_Callback_v0 func_style_changed;//风格改变
CL_Callback_v0 func_enablemode_changed;//
CL_Callback_v0 func_resized;//大小改变
CL_Callback_v1<CL_GUIMessage &> func_filter_message;//消息过滤
CL_Callback_2<CL_GUIComponent*, CL_GUIComponent*, CL_String> func_create_custom_component;//定制窗口
CL_Callback_v1<bool> func_visibility_change;//显示改变
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////函数////////////////////////////////////////////////////////////////////////////////////////////////////////
posted on 2010-06-29 16:16
我风 阅读(320)
评论(0) 编辑 收藏 引用 所属分类:
ClanLib