ZFFramework
 
Loading...
Searching...
No Matches
ZFUIButton.h
Go to the documentation of this file.
1
5
6#ifndef _ZFI_ZFUIButton_h_
7#define _ZFI_ZFUIButton_h_
8
9#include "ZFUIWidgetDef.h"
11
12// ============================================================
13// ZFUIButtonState
18 ZFENUM_VALUE(Normal)
19 ZFENUM_VALUE(Highlighted)
20 ZFENUM_VALUE(Checked)
21 ZFENUM_VALUE(CheckedHighlighted)
22 ZFENUM_VALUE(Disabled)
25 ZFENUM_VALUE_REGISTER(Highlighted)
27 ZFENUM_VALUE_REGISTER(CheckedHighlighted)
28 ZFENUM_VALUE_REGISTER(Disabled)
31
32// ============================================================
33// ZFUIButton
34zfclassFwd _ZFP_ZFUIButtonPrivate;
42zfclass ZFLIB_ZFUIWidget ZFUIButton : zfextend ZFUIView {
43 ZFOBJECT_DECLARE(ZFUIButton, ZFUIView)
45
46public:
47 // ============================================================
48 // event
57 ZFEVENT(ButtonOnClick)
63 ZFEVENT(ButtonStateOnUpdate)
64
71 ZFEVENT(ButtonMouseOnDown)
78 ZFEVENT(ButtonMouseOnMoveEnter)
85 ZFEVENT(ButtonMouseOnMoveExit)
92 ZFEVENT(ButtonMouseOnMoveInside)
99 ZFEVENT(ButtonMouseOnMoveOutside)
106 ZFEVENT(ButtonMouseOnUpInside)
113 ZFEVENT(ButtonMouseOnUp)
114
115public:
116 // ============================================================
117 // properties
120
151
152protected:
154 virtual void objectOnInit(void);
156 virtual void objectOnInitFinish(void);
158 virtual void objectOnDealloc(void);
159
160public:
166
167public:
174 , ZFMP_IN_OPT(ZFUIEvent *, event, zfnull)
176
181 , ZFMP_IN(const ZFListener &, observer)
182 , ZFMP_IN_OPT(ZFLevel, observerLevel, ZFLevelAppNormal)
188 , ZFMP_IN(const ZFListener &, observer)
189 , ZFMP_IN_OPT(ZFLevel, observerLevel, ZFLevelAppNormal)
191
192protected:
194 virtual void viewEventOnMouseEvent(ZF_IN ZFUIMouseEvent *mouseEvent);
196 virtual void viewEventOnKeyEvent(ZF_IN ZFUIKeyEvent *keyEvent);
197
198protected:
200 virtual inline void buttonOnClick(ZF_IN ZFUIEvent *event) {
202 }
203
204protected:
209
213
217
221
225
229
230 virtual void buttonMouseOnUp(ZF_IN ZFUIMouseEvent *event) {
232 }
233
234public:
239
240protected:
242 virtual inline void buttonStateOnUpdate(void) {
244 }
245
246private:
247 _ZFP_ZFUIButtonPrivate *d;
248 friend zfclassFwd _ZFP_ZFUIButtonPrivate;
249};
250
252#endif // #ifndef _ZFI_ZFUIButton_h_
253
#define zfextend
dummy macro shows class inherit from another
Definition ZFCoreTypeDef_ClassType.h:53
#define zfoverride
dummy macro shows that method override parent's method
Definition ZFCoreTypeDef_ClassType.h:58
#define ZF_IN
dummy macro that shows the param used as required input
Definition ZFCoreTypeDef_ClassType.h:180
#define zfclassFwd
forward declaration of a class type
Definition ZFCoreTypeDef_ClassType.h:31
_ZFT_t_zfbool zfbool
bool type
Definition ZFCoreTypeDef_CoreType.h:103
#define zftrue
bool true type
Definition ZFCoreTypeDef_CoreType.h:107
_zft_zftimet zftimet
time unit, ensured at least 64 bit, ensured signed
Definition ZFCoreTypeDef_CoreType.h:203
#define zffalse
bool false type
Definition ZFCoreTypeDef_CoreType.h:111
#define zfnull
same as NULL, defined for future use
Definition ZFCoreTypeDef_CoreType.h:88
#define ZFENUM_SEPARATOR()
see ZFENUM_BEGIN
Definition ZFEnumDeclare.h:158
#define ZFENUM_VALUE_REGISTER(Value)
see ZFENUM_BEGIN
Definition ZFEnumDeclare.h:168
#define ZFENUM_REG(ZFLIB_, EnumName,...)
see ZFENUM_BEGIN
Definition ZFEnumDeclare.h:186
#define ZFENUM_VALUE(Value)
see ZFENUM_BEGIN
Definition ZFEnumDeclare.h:151
#define ZFENUM_BEGIN(ZFLIB_, EnumName)
macros to define reflectable enum type
Definition ZFEnumDeclare.h:147
#define ZFENUM_END(ZFLIB_, EnumName)
see ZFENUM_BEGIN
Definition ZFEnumDeclare.h:172
ZFLevel
level for logic which depends on order
Definition ZFLevel.h:17
@ ZFLevelAppNormal
app
Definition ZFLevel.h:26
#define ZFMP_IN_OPT(ParamType, paramName, DefaultValue)
see ZFMP_IN
Definition ZFMethod.h:108
#define ZFMP_IN(ParamType, paramName)
macro to wrap param types for ZFMETHOD_INLINE_0 series
Definition ZFMethod.h:105
#define ZFMETHOD_DECLARE_0(ReturnType, MethodName)
see ZFMethod
Definition ZFMethodDeclare.h:693
#define ZFMETHOD_DECLARE_2(ReturnType, MethodName, ZFMP_0, ZFMP_1)
see ZFMethod
Definition ZFMethodDeclare.h:1025
#define ZFMETHOD_DECLARE_1(ReturnType, MethodName, ZFMP_0)
see ZFMethod
Definition ZFMethodDeclare.h:854
#define ZF_NAMESPACE_GLOBAL_BEGIN
begin namespace ZFFramework
Definition ZFNamespace.h:97
#define ZF_NAMESPACE_GLOBAL_END
end namespace ZFFramework
Definition ZFNamespace.h:98
#define zfclass
same as class, shows that this class is a ZFObject type
Definition ZFObjectClassTypeFwd.h:38
#define ZFOBJECT_DECLARE(ChildClass, SuperClass,...)
necessary for every class inherit from ZFObject
Definition ZFObjectDeclare.h:126
#define ZFEVENT(YourEvent)
see ZFObject::observerNotify
Definition ZFObjectObserver.h:328
#define ZFPROPERTY_ASSIGN(Type, Name,...)
see ZFPROPERTY_RETAIN
Definition ZFPropertyDeclare.h:128
#define ZFPROPERTY_ON_INIT_DECLARE(Type, Name)
override life cycle callback for the property
Definition ZFPropertyDeclare.h:208
#define ZFPROPERTY_ON_UPDATE_DECLARE(Type, Name)
see ZFPROPERTY_ON_INIT_DECLARE
Definition ZFPropertyDeclare.h:238
#define ZFPROPERTY_ON_ATTACH_DECLARE(Type, Name)
see ZFPROPERTY_ON_INIT_DECLARE
Definition ZFPropertyDeclare.h:248
#define ZFSTYLE_DEFAULT_DECLARE(YourStyle)
used to declare a default style, see ZFStyleable
Definition ZFStyleable.h:262
v_ZFUIButtonState::ZFEnumType ZFUIButtonState
see v_ZFUIButtonState
Definition ZFUIButton.h:29
ZFUIMargin ZFUIMarginCreate(zffloat const &left, zffloat const &top, zffloat const &right, zffloat const &bottom)
make a margin
Definition ZFUITypeDef.h:183
global header for ZFUIWidget module
#define ZFLIB_ZFUIWidget
used to export symbols
Definition ZFUIWidgetDef.h:17
listener as ZFCallback, mostly used by ZFObject::observerNotify
Definition ZFObjectObserver.h:30
void observerNotify(zfidentity eventId, ZFObject *param0=zft_zfnull, ZFObject *param1=zft_zfnull)
notify the observer with eventId
virtual zfbool & enable()
true if the button is enabled, true by default
Definition ZFUIButton.h:124
static zfidentity E_ButtonMouseOnDown(void)
see ZFObject::observerNotify
virtual zfbool & checked()
true if the button is checked, valid only if checkable, false by default
Definition ZFUIButton.h:134
static zfidentity E_ButtonMouseOnMoveEnter(void)
see ZFObject::observerNotify
virtual void objectOnInit(void)
override this to init your object
virtual void buttonMouseOnUpInside(ZFUIMouseEvent *event)
see E_ButtonMouseOnUpInside
Definition ZFUIButton.h:226
virtual zftimet & clickInterval()
if two click event's interval smaller than this value, the second one would be ignored,...
Definition ZFUIButton.h:150
virtual void onClick(const ZFListener &observer, ZFLevel observerLevel=(ZFLevelAppNormal))
util to observe E_ButtonOnClick
static zfanyT< ZFUIButton > DefaultStyle(void)
static zfidentity E_ButtonMouseOnMoveOutside(void)
see ZFObject::observerNotify
virtual void buttonMouseOnUp(ZFUIMouseEvent *event)
see E_ButtonMouseOnUp
Definition ZFUIButton.h:230
static zfidentity E_ButtonOnClick(void)
see ZFObject::observerNotify
virtual void objectOnDealloc(void)
override this to destroy your object
virtual void buttonMouseOnMoveExit(ZFUIMouseEvent *event)
see E_ButtonMouseOnMoveExit
Definition ZFUIButton.h:214
virtual void buttonOnClick(ZFUIEvent *event)
see E_ButtonOnClick
Definition ZFUIButton.h:200
static zfidentity E_ButtonMouseOnMoveInside(void)
see ZFObject::observerNotify
virtual void buttonStateOnUpdate(void)
see E_ButtonStateOnUpdate
Definition ZFUIButton.h:242
virtual void buttonMouseOnMoveInside(ZFUIMouseEvent *event)
see E_ButtonMouseOnMoveInside
Definition ZFUIButton.h:218
virtual void buttonMouseOnDown(ZFUIMouseEvent *event)
see E_ButtonMouseOnDown
Definition ZFUIButton.h:206
virtual void simulateClick(ZFUIEvent *event=(zft_zfnull))
util method to simulate click button
virtual void objectOnInitFinish(void)
called after objectOnInit, safe to call virtual functions here
virtual ZFUIButtonState buttonState()
current button state
virtual void viewEventOnMouseEvent(ZFUIMouseEvent *mouseEvent)
called when mouse event occurred
virtual void buttonMouseOnMoveEnter(ZFUIMouseEvent *event)
see E_ButtonMouseOnMoveEnter
Definition ZFUIButton.h:210
virtual zfbool & checkable()
true if the button is checkable button, false by default
Definition ZFUIButton.h:129
virtual void viewEventOnKeyEvent(ZFUIKeyEvent *keyEvent)
called when key occurred
virtual void onClickForOnce(const ZFListener &observer, ZFLevel observerLevel=(ZFLevelAppNormal))
util to observe E_ButtonOnClick
virtual void buttonMouseOnMoveOutside(ZFUIMouseEvent *event)
see E_ButtonMouseOnMoveOutside
Definition ZFUIButton.h:222
virtual void clickIntervalReset()
reset clickInterval so that next click event would be ensured to be fired
virtual ZFUIMargin & clickTolerance()
mouse up tolerance to detect as click, (0 - ZFUIGlobalStyle::itemMargin) by default
Definition ZFUIButton.h:144
static zfidentity E_ButtonMouseOnMoveExit(void)
see ZFObject::observerNotify
static zfidentity E_ButtonMouseOnUpInside(void)
see ZFObject::observerNotify
static zfidentity E_ButtonStateOnUpdate(void)
see ZFObject::observerNotify
static zfidentity E_ButtonMouseOnUp(void)
see ZFObject::observerNotify
base class of all ui event
Definition ZFUIEvent.h:15
global style for ui elements
Definition ZFUIGlobalStyle.h:15
key event for ui elements
Definition ZFUIKeyEvent.h:17
margin
Definition ZFUITypeDef.h:147
mouse event for ui elements
Definition ZFUIMouseEvent.h:52
2D size
Definition ZFUITypeDef.h:397
virtual zfbool & focusable()
whether the view can be focused, false by default
Definition ZFUIView.h:321
virtual ZFUISize & viewSizeMin()
min size, ZFUISizeZero by default
Definition ZFUIView.h:404