14#include <interface/SEvtArgs-i.h>
15#include <interface/sstring-i.h>
18#include <sobject/Sobject.hpp>
19#include <helper/obj-ref-impl.hpp>
24typedef struct IWindow IWindow;
175class SOUI_EXP SEvtArgs :
public TObjRefImpl<SObjectImpl<IEvtArgs>> {
176 DEF_SOBJECT(SObjectImpl<IEvtArgs>, L
"event")
189 STDMETHOD_(IObject *, Sender)(THIS)
198 STDMETHOD_(
int, IdFrom)(THIS) SCONST
207 STDMETHOD_(
void, SetIdFrom)(THIS_
int id)
216 STDMETHOD_(LPCWSTR, NameFrom)(THIS) SCONST
225 STDMETHOD_(
void, SetNameFrom)(THIS_ LPCWSTR name)
234 STDMETHOD_(BOOL, IsBubbleUp)(THIS) SCONST
243 STDMETHOD_(
void, SetBubbleUp)(THIS_ BOOL bSet)
252 STDMETHOD_(UINT, HandleCount)(THIS) SCONST
260 STDMETHOD_(
void, IncreaseHandleCount)(THIS)
269 STDMETHOD_(LPVOID, Data)(THIS)
279 SEvtArgs(IObject *pSender)
286 idFrom = sender->GetID();
287 nameFrom = sender->GetName();
311#define DEF_EVT_CLASS(evt, id, evt_name, evtData, api) \
315 DEF_SOBJECT(SEvtArgs, WIDESTR(evt_name)) \
317 STDMETHOD_(int, GetID)(THIS) const \
319 return evt::EventID; \
321 STDMETHOD_(LPCWSTR, GetName)(THIS) const \
323 return evt::GetClassName(); \
325 STDMETHOD_(LPVOID, Data)(THIS) \
327 return (evtData *)this; \
333 evt(SNS::IObject *pSender = NULL) \
334 : SEvtArgs(pSender) \
339#define EVENTID(x) x::EventID, x::GetClassName()
343#define DEF_EVT_STRUCT(n, x) typedef struct n x n;
346#define DEF_EVENT(evt, id, name, x, api) \
347 DEF_EVT_STRUCT(St##evt, x) \
348 DEF_EVT_CLASS(evt, id, name, St##evt, api)
350#define DEF_EVENT(evt, id, name, x, api) DEF_EVT_STRUCT(St##evt, x)
353#define DEF_EVT(evt, id, name, x) DEF_EVENT(evt, id, name, x, SOUI_EXP)
354#define DEF_EVT_EXT(evt, id, x) DEF_EVENT(evt, id, on_##evt, x, )
356DEF_EVT(EventInit,
EVT_INIT, on_init, {
int fake; })
358DEF_EVT(EventExit,
EVT_EXIT, on_exit, {
int fake; })
360DEF_EVT(EventTimer,
EVT_TIMER, on_timer, {
365DEF_EVT(EventGetCaret,
EVT_GET_CARET, on_get_caret, { IStringW *strCaret; })
379DEF_EVT(EventSwndCreate,
EVT_CREATE, on_create, {
int fake; })
380DEF_EVT(EventSwndInitFinish,
EVT_INIT_FINISH, on_init_finish, {
int fake; })
381DEF_EVT(EventSwndDestroy,
EVT_DESTROY, on_destroy, {
int fake; })
383DEF_EVT(EventSwndSize,
EVT_SIZE, on_size, { SIZE szWnd; })
384DEF_EVT(EventSwndPos,
EVT_POS, on_pos, { RECT rcWnd; })
398inline BOOL EventSwndStateChanged_CheckState(EventSwndStateChanged *pEvt, DWORD dwState)
400 return (pEvt->dwOldState & dwState) != (pEvt->dwNewState & dwState);
404DEF_EVT(EventSwndCaptureChanged,
EVT_CAPTURECHANGED, on_capture_changed, { BOOL bCaptured; })
406DEF_EVT(EventSwndVisibleChanged,
EVT_VISIBLECHANGED, on_visible_changed, { BOOL bVisible; })
408DEF_EVT(EventSwndAnimationStart,
EVT_ANIMATION_START, on_animation_start, { IAnimation *pAni; })
410DEF_EVT(EventSwndAnimationStop,
EVT_ANIMATION_STOP, on_animation_stop, { IAnimation *pAni; })
411DEF_EVT(EventSwndAnimationRepeat,
EVT_ANIMATION_REPEAT, on_animation_repeat, { IAnimation *pAni; })
419DEF_EVT(EventSwndMouseLeave,
EVT_MOUSE_LEAVE, on_mouse_leave, {
int fake; })
421DEF_EVT(EventSwndMouseHover,
EVT_MOUSE_HOVER, on_mouse_hover, {
int fake; })
424 IStringT *strToolTip;
466 MouseClickId clickId;
470DEF_EVT(EventCmd,
EVT_CMD, on_command, {
int fake; })
472DEF_EVT(EventMenuCmd,
EVT_MENU_CMD, on_menu_command, {
int menuId; })
474DEF_EVT(EventCtxMenu,
EVT_CTXMENU, on_conext_menu, {
479DEF_EVT(EventSetFocus,
EVT_SETFOCUS, on_set_focus, { SWND wndOld; })
481DEF_EVT(EventKillFocus,
EVT_KILLFOCUS, on_kill_focus, { SWND wndFocus; })
493DEF_EVT(EventOfEvent,
EVT_OFEVENT, on_event_of_event, { IEvtArgs *pOrgEvt; })
495DEF_EVT(EventOfPanel,
EVT_OFPANEL, on_event_of_panel, {
526DEF_EVT(EventLBDbClick,
EVT_LB_DBCLICK, on_listbox_item_dbclick, {
int nCurSel; })
556DEF_EVT(EventREMenu,
EVT_RE_MENU, on_richedit_menu, { UINT uCmd; })
558typedef enum _SliderBarAction
567 SliderBarAction action;
598DEF_EVT(EventCBSelChange,
EVT_CB_SELCHANGE, on_combobox_sel_change, {
int nCurSel; })
602 const IStringT *strInput;
605DEF_EVT(EventCBBeforeCloseUp,
EVT_CB_BEFORE_CLOSEUP, on_combobox_before_closeup, { BOOL bCloseBlock; })
618DEF_EVT(EventLCDbClick,
EVT_LC_DBCLICK, on_listctrl_item_dbclick, {
int nCurSel; })
639DEF_EVT(EventDateTimeChanged,
EVT_DATETIME_CHANGED, on_datetime_changed, { SYSTEMTIME newTime; })
657DEF_EVT(EventTCExpand,
EVT_TC_EXPAND, on_treectrl_item_expand, {
663DEF_EVT(EventTCDbClick,
EVT_TC_DBCLICK, on_treectrl_item_dbclick, {
672DEF_EVT(EventImageAnimateStop,
EVT_IMAGE_ANI_STOP, on_image_animate_stop, {
int fake; })
695DEF_EVT(EventRealWndInit,
EVT_REALWND_INIT, on_real_wnd_init, { BOOL bRet; })
_SOUI_EVENTS
定义了SOUI系统中的事件ID
@ EVT_ITEMPANEL_CLICK
面板点击事件
@ EVT_HEADER_ITEMCHANGING
表头项改变中事件
@ EVT_REALWND_DESTROY
真实窗口销毁事件
@ EVT_TC_SELCHANGING
树形控件选择改变中事件
@ EVT_EXTERNAL_BEGIN
外部事件开始ID
@ EVT_CALENDAREX_CHANGED
扩展日历改变事件
@ EVT_LB_SELCHANGED
列表框选择改变事件
@ EVT_CB_BEFORE_CLOSEUP
组合框关闭前事件
@ EVT_LC_SELCHANGED
列表控件选择改变事件
@ EVT_CB_SELCHANGE
组合框选择改变事件
@ EVT_REALWND_CREATE
真实窗口创建事件
@ EVT_RE_NOTIFY
丰富编辑控件通知事件
@ EVT_LC_ITEMDELETED
列表控件项删除事件
@ EVT_TV_SELCHANGED
树控件选择改变事件
@ EVT_HEADER_ITEMCHANGED
表头项改变事件
@ EVT_SPIN_VALUE2STRING
旋转框值转字符串事件
@ EVT_TV_SELCHANGING
树控件选择改变中事件
@ EVT_IMAGE_ANI_START
图片动画开始事件
@ EVT_HEADER_ITEMSWAP
表头项交换事件
@ EVT_ANIMATION_REPEAT
动画重复事件
@ EVT_ITEMPANEL_RCLICK
面板右键点击事件
@ EVT_ITEMPANEL_DBCLICK
面板双击事件
@ EVT_ANIMATION_STOP
动画停止事件
@ EVT_TC_CHECKSTATE
树形控件检查状态改变事件
@ EVT_ITEMPANEL_RCLICK_UP
面板右键点击释放事件
@ EVT_LC_SELCHANGING
列表控件选择改变中事件
@ EVT_CAPTURECHANGED
捕获改变事件
@ EVT_REALWND_POSITION
真实窗口位置改变事件
@ EVT_IMAGE_ANI_REPEAT
图片动画重复事件
@ EVT_SCROLLVIEW_ORIGINCHANGED
滚动视图原点改变事件
@ EVT_SPLIT_PANE_MOVED
分割窗格移动事件
@ EVT_TAB_SELCHANGED
选项卡选择改变事件
@ EVT_LV_SELCHANGED
列表视图选择改变事件
@ EVT_ITEMPANEL_HOVER
面板悬停事件
@ EVT_OFPANEL
面板中的消息二次包装事件
@ EVT_TC_SELCHANGED
树形控件选择改变事件
@ EVT_IMAGE_ANI_STOP
图片动画停止事件
@ EVT_REALWND_INIT
真实窗口初始化事件
@ EVT_LV_ITEMCLICK
列表视图项点击事件
@ EVT_SLIDER_VALUETIP
滑块值提示事件
@ EVT_CALENDAR_SETDATE
日历设置日期事件
@ EVT_TAB_ITEMLEAVE
选项卡项离开事件
@ EVT_RADIOGROUP_CHECK_CHANGED
单选按钮组选中状态改变事件
@ EVT_ITEMPANEL_CLICK_UP
面板点击释放事件
@ EVT_ANIMATION_START
动画开始事件
@ EVT_TAB_SELCHANGING
选项卡选择改变中事件
@ EVT_TAB_ITEMHOVER
选项卡项悬停事件
@ EVT_SCROLLVIEW_SIZECHANGED
滚动视图大小改变事件
@ EVT_HEADER_RELAYOUT
表头重新布局事件
@ EVT_UPDATE_TOOLTIP
更新工具提示事件
@ EVT_DATETIME_CHANGED
日期时间改变事件
@ EVT_ITEMPANEL_LEAVE
面板离开事件
@ EVT_VISIBLECHANGED
可见性改变事件
@ EVT_LB_SELCHANGING
列表框选择改变中事件
@ EVT_LV_SELCHANGING
列表视图选择改变中事件
@ EVT_CALENDAR_SELDAY
日历选择日期事件
Template class implementing the IObjRef interface.