ZFFramework
 
Loading...
Searching...
No Matches
ZFUIView.h
Go to the documentation of this file.
1
5
6#ifndef _ZFI_ZFUIView_h_
7#define _ZFI_ZFUIView_h_
8
9#include "ZFUIViewType.h"
10#include "ZFUIMouseEvent.h"
11#include "ZFUIKeyEvent.h"
12#include "ZFUIWheelEvent.h"
13
15
17#define ZFSerializableKeyword_ZFUIView_internalImplView "internalImplView"
19#define ZFSerializableKeyword_ZFUIView_internalBgView "internalBgView"
21#define ZFSerializableKeyword_ZFUIView_internalFgView "internalFgView"
22
24#define ZFSerializableKeyword_ZFUIView_child "child"
26#define ZFSerializableKeyword_ZFUIView_layoutParam "layoutParam"
27
28// ============================================================
34
35// ============================================================
36// ZFUIView
37zfclassFwd _ZFP_ZFUIViewPrivate;
90zfclass ZFLIB_ZFUIKit ZFUIView : zfextend ZFStyle {
91 ZFOBJECT_DECLARE(ZFUIView, ZFStyle)
93
94public:
95 // ============================================================
96 // events
102 ZFEVENT(ViewTreeInWindowOnUpdate)
108 ZFEVENT(ViewTreeVisibleOnUpdate)
115 ZFEVENT(ViewChildOnUpdate)
123 ZFEVENT(ViewChildOnAdd)
131 ZFEVENT(ViewChildOnRemove)
138 ZFEVENT(ViewOnAddToParent)
144 ZFEVENT(ViewOnRemoveFromParent)
156 ZFEVENT(ViewFocusOnUpdate)
162 ZFEVENT(ViewOnEvent)
168 ZFEVENT(ViewLayoutOnLayoutRequest)
175 ZFEVENT(ViewLayoutOnMeasure)
183 ZFEVENT(ViewLayoutOnLayoutPrepare)
191 ZFEVENT(ViewLayoutOnLayout)
198 ZFEVENT(ViewLayoutOnLayoutFinish)
204 ZFEVENT(NativeImplViewMarginOnUpdate)
205
206 // ============================================================
207 // serialize
208public:
221protected:
224 ZF_IN const ZFSerializableData &serializableData
225 , ZF_OUT_OPT zfstring *outErrorHint = zfnull
226 , ZF_OUT_OPT ZFSerializableData *outErrorPos = zfnull
227 );
230 ZF_IN_OUT ZFSerializableData &serializableData
231 , ZF_OUT_OPT zfstring *outErrorHint = zfnull
232 , ZF_IN_OPT ZFSerializable *refOwner = zfnull
233 );
242 return zftrue;
243 }
244
245public:
246 // ============================================================
247 // properties
257
258
263
276
277 zffinal void _ZFP_ZFUIView_viewTreeInWindow(ZF_IN zfbool viewTreeInWindow);
278
285
292
299
308
314
324
338 , ZFMP_IN(ZFUIRect const &, viewFrame)
340
343
346
349
354 , ZFMP_IN(zffloat const &, propertyValue)
360 , ZFMP_IN(zffloat const &, propertyValue)
366 , ZFMP_IN(zffloat const &, propertyValue)
372 , ZFMP_IN(zffloat const &, propertyValue)
378 , ZFMP_IN(zffloat const &, propertyValue)
384 , ZFMP_IN(zffloat const &, propertyValue)
386
391 , ZFMP_IN(const ZFUISize &, size)
408
414
415 // ============================================================
416 // transform
443
453
463
473
474 // ============================================================
475 // util
476public:
502 , ZFMP_IN(ZFObject *, owner)
503 , ZFMP_IN(const zfstring &, propertyName)
538 , ZFMP_IN(const zfstring &, eventName)
539 , ZFMP_IN(ZFObject *, owner)
540 , ZFMP_IN(const zfstring &, methodName)
546 , ZFMP_IN(zfidentity, eventId)
547 , ZFMP_IN(ZFObject *, owner)
548 , ZFMP_IN(const zfstring &, methodName)
550
551 // ============================================================
552 // init and dealloc
553protected:
555 virtual void objectOnInit(void);
557 virtual void objectOnDealloc(void);
559 virtual void objectOnDeallocPrepare(void);
560
561protected:
564
565 // ============================================================
566public:
599
605
606protected:
610 virtual void nativeImplView(
612 , ZF_IN ZFUIViewNativeImplViewDeleteCallback nativeImplViewDeleteCallback
613 );
620
626
630 ZF_OUT ZFUIRect &ret
631 , ZF_IN const ZFUIRect &bounds
633 ) {
635 }
636
637 // ============================================================
638protected:
648 virtual void implChildOnAdd(
649 ZF_IN ZFUIView *child
650 , ZF_IN zfindex virtualIndex
651 , ZF_IN ZFUIViewChildLayer childLayer
652 , ZF_IN zfindex childLayerIndex
653 );
657 virtual void implChildOnRemove(
658 ZF_IN ZFUIView *child
659 , ZF_IN zfindex virtualIndex
660 , ZF_IN ZFUIViewChildLayer childLayer
661 , ZF_IN zfindex childLayerIndex
662 );
674
675public:
687 static void _ZFP_ZFUIView_nativeViewNotifyAdd(
688 ZF_IN ZFUIView *view
689 , ZF_IN void *nativeParentView
690 );
691 static void _ZFP_ZFUIView_nativeViewNotifyRemove(ZF_IN ZFUIView *view);
692
693 // ============================================================
694 // view focus
695public:
707 , ZFMP_IN(zfbool, focus)
709 zffinal void _ZFP_ZFUIView_focusOnUpdate(void) {
710 this->focusOnUpdate();
711 }
716protected:
718 virtual inline void focusOnUpdate(void) {
720 }
721
722 // ============================================================
723 // parent
724public:
725 zffinal void _ZFP_ZFUIView_parentOnUpdate(
726 ZF_IN ZFUIView *parentView
727 , ZF_IN ZFUILayoutParam *layoutParam
728 , ZF_IN ZFUIViewChildLayer viewLayer
729 );
734
735
741
742 // ============================================================
743 // scale settings
744public:
805protected:
811 virtual void UIScaleOnUpdate(void);
812
813 // ============================================================
814 // layout logic
815public:
822protected:
828 virtual const ZFClass *layoutParamClass(void);
834
835public:
844 ZFMETHOD_DECLARE_1(void, layoutParam
845 , ZFMP_IN(ZFUILayoutParam *, layoutParam)
854
855public:
876 , ZFMP_IN(const ZFUISize &, sizeHint)
877 , ZFMP_IN(const ZFUISizeParam &, sizeParam)
898
899public:
900 void _ZFP_ZFUIView_notifyLayoutView(ZF_IN const ZFUIRect &viewFrame);
901protected:
905 virtual void layoutOnLayoutRequest(void);
928 virtual inline void layoutOnMeasure(
929 ZF_OUT ZFUISize &ret
930 , ZF_IN const ZFUISize &sizeHint
931 , ZF_IN const ZFUISizeParam &sizeParam
932 ) {
933 }
934
935 virtual inline void layoutOnMeasureFinish(
936 ZF_IN_OUT ZFUISize &measuredSize
937 , ZF_IN const ZFUISize &sizeHint
938 , ZF_IN const ZFUISizeParam &sizeParam
939 ) {
940 }
941
942 virtual inline void layoutOnLayoutPrepare(ZF_IN const ZFUIRect &bounds) {
943 }
944
952 virtual void layoutOnLayout(ZF_IN const ZFUIRect &bounds);
954 virtual inline void layoutOnLayoutFinish(ZF_IN const ZFUIRect &bounds) {
955 }
956
958 }
959
960 // ============================================================
961 // children management
962public:
967 , ZFMP_IN(const zfstring &, viewId)
968 , ZFMP_IN_OPT(zfbool, findRecursively, zftrue)
969 , ZFMP_IN_OPT(zfbool, includeInternalViews, zffalse)
975 , ZFMP_IN(const ZFClass *, cls)
976 , ZFMP_IN_OPT(zfbool, findRecursively, zftrue)
977 , ZFMP_IN_OPT(zfbool, includeInternalViews, zffalse)
991 , ZFMP_IN(const ZFListener &, impl)
992 , ZFMP_IN_OPT(zfbool, findRecursively, zftrue)
993 , ZFMP_IN_OPT(zfbool, includeInternalViews, zffalse)
995
996public:
1006 , ZFMP_IN(ZFUIView *, view)
1008 , ZFMP_IN_OPT(zfindex, atIndex, zfindexMax())
1014 ZF_IN const zfany &view
1015 , ZF_IN_OPT zfindex atIndex = zfindexMax()
1016 );
1021 , ZFMP_IN(ZFUIView *, view)
1027 , ZFMP_IN(zfindex, index)
1041 , ZFMP_IN(zfindex, fromIndex)
1042 , ZFMP_IN(zfindex, toIndexOrIndexMax)
1048 , ZFMP_IN(ZFUIView *, child)
1049 , ZFMP_IN(zfindex, toIndexOrIndexMax)
1056 , ZFMP_IN(zfindex, atIndex)
1057 , ZFMP_IN(ZFUIView *, toReplace)
1067 , ZFMP_IN(zfindex, index)
1073 , ZFMP_IN(ZFUIView *, view)
1079
1093
1094 // ============================================================
1095 // events
1096protected:
1098 virtual void viewTreeInWindowOnUpdate(void);
1100 virtual void viewTreeVisibleOnUpdate(void);
1102 virtual void viewChildOnUpdate(void);
1104 virtual void viewChildOnAdd(
1105 ZF_IN ZFUIView *child
1106 , ZF_IN ZFUIViewChildLayer childLayer
1107 );
1109 virtual void viewChildOnRemove(
1110 ZF_IN ZFUIView *child
1111 , ZF_IN ZFUIViewChildLayer childLayer
1112 );
1114 virtual void viewOnAddToParent(ZF_IN ZFUIView *parent);
1116 virtual void viewOnRemoveFromParent(ZF_IN ZFUIView *parent);
1117
1118 // ============================================================
1119 // internal views
1120public:
1123 , ZFMP_IN(ZFUIView *, view)
1125 , ZFMP_IN_OPT(zfbool, addAsTopMost, zftrue)
1129 , ZFMP_IN(ZFUIView *, view)
1133
1134public:
1153 , ZFMP_IN(ZFUIView *, view)
1155 , ZFMP_IN_OPT(zfbool, addAsTopMost, zftrue)
1159 , ZFMP_IN(ZFUIView *, view)
1165
1166public:
1169 , ZFMP_IN(ZFUIView *, view)
1171 , ZFMP_IN_OPT(zfbool, addAsTopMost, zftrue)
1175 , ZFMP_IN(ZFUIView *, view)
1179
1180 // ============================================================
1181 // other internal view logic
1182public:
1195 , ZFMP_IN(const zfstring &, tag)
1199 , ZFMP_IN(const zfstring &, tag)
1209
1210protected:
1215 virtual inline zfbool internalViewShouldLayout(ZF_IN ZFUIView *internalView) {
1216 return zftrue;
1217 }
1218
1219 virtual void internalViewOnLayout(ZF_IN const ZFUIRect &bounds);
1220
1221 // ============================================================
1222 // UI events
1223public:
1228 , ZFMP_IN(ZFUIEvent *, event)
1230protected:
1238 virtual void viewEventOnEvent(ZF_IN ZFUIEvent *event);
1239
1240 // ============================================================
1241 // events
1242protected:
1255 virtual void viewEventOnMouseEvent(ZF_IN ZFUIMouseEvent *mouseEvent);
1256
1269 virtual void viewEventOnKeyEvent(ZF_IN ZFUIKeyEvent *keyEvent);
1277
1288 virtual void viewEventOnWheelEvent(ZF_IN ZFUIWheelEvent *wheelEvent);
1289
1290 // ============================================================
1291 // override
1292protected:
1297 virtual void styleableOnCopyFrom(ZF_IN ZFObject *anotherStyleable);
1298
1299protected:
1301 virtual void observerOnAdd(ZF_IN zfidentity eventId);
1303 virtual void observerOnRemove(ZF_IN zfidentity eventId);
1304
1305private:
1306 _ZFP_ZFUIViewPrivate *d;
1307 friend zfclassFwd _ZFP_ZFUIViewPrivate;
1308};
1309
1311#endif // #ifndef _ZFI_ZFUIView_h_
1312
#define ZF_OUT_OPT
dummy macro that shows the param used as optional output
Definition ZFCoreTypeDef_ClassType.h:196
#define zffinal
dummy macro shows that a method or class is designed must not to be overrided
Definition ZFCoreTypeDef_ClassType.h:63
#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:184
#define ZF_IN_OPT
dummy macro that shows the param used as optional input
Definition ZFCoreTypeDef_ClassType.h:188
#define ZF_OUT
dummy macro that shows the param used as required output
Definition ZFCoreTypeDef_ClassType.h:192
#define ZF_IN_OUT
dummy macro that shows the param used as required input and output
Definition ZFCoreTypeDef_ClassType.h:200
#define zfclassFwd
forward declaration of a class type
Definition ZFCoreTypeDef_ClassType.h:31
_ZFT_t_zfbool zfbool
bool type
Definition ZFCoreTypeDef_CoreType.h:103
_ZFT_t_zfindex zfindex
similar to size_t, used for index and size only
Definition ZFCoreTypeDef_CoreType.h:154
#define zftrue
bool true type
Definition ZFCoreTypeDef_CoreType.h:107
_zft_zfidentity zfidentity
identity type, ensured at least 32 bit, ensured unsigned
Definition ZFCoreTypeDef_CoreType.h:225
#define zfindexMax()
(zfindex)-1, indicate a max index value, see zfindex
Definition ZFCoreTypeDef_CoreType.h:159
_zft_zffloat zffloat
same as float, see zfindex
Definition ZFCoreTypeDef_CoreType.h:183
#define zffalse
bool false type
Definition ZFCoreTypeDef_CoreType.h:111
#define zfnull
same as NULL, defined for future use
Definition ZFCoreTypeDef_CoreType.h:88
zft_zfstring< zfchar > zfstring
see zft_zfstring
Definition ZFCoreTypeDef_StringType.h:15
#define ZFMP_IN_OUT(ParamType, paramName)
see ZFMP_IN
Definition ZFMethod.h:117
#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_STATIC_0(ReturnType, MethodName)
see ZFMethod
Definition ZFMethodDeclare.h:708
#define ZFMETHOD_DECLARE_2(ReturnType, MethodName, ZFMP_0, ZFMP_1)
see ZFMethod
Definition ZFMethodDeclare.h:1025
#define ZFMETHOD_DECLARE_3(ReturnType, MethodName, ZFMP_0, ZFMP_1, ZFMP_2)
see ZFMethod
Definition ZFMethodDeclare.h:1206
#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:310
#define ZFPROPERTY_ASSIGN(Type, Name,...)
see ZFPROPERTY_RETAIN
Definition ZFPropertyDeclare.h:128
#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:260
key event for ui elements
#define ZFLIB_ZFUIKit
used to export symbols
Definition ZFUIKitDef.h:16
mouse event for ui elements
_zft_ZFUIColor ZFUIColor
color with AARRGGBB format
Definition ZFUITypeDef.h:1184
ZFUIColor const & ZFUIColorZero(void)
zero color
Definition ZFUITypeDef.h:1188
void ZFUIRectApplyMarginT(ZFUIRect &ret, const ZFUIRect &rect, const ZFUIMargin &margin)
return a rect excluding the margin
Definition ZFUITypeDef.h:950
ZFUISize const & ZFUISizeInvalid(void)
(-1, -1)
Definition ZFUITypeDef.h:428
void(* ZFUIViewNativeImplViewDeleteCallback)(zfanyT< ZFUIView > const &view)
see ZFUIView::nativeImplView
Definition ZFUIView.h:33
additional class for ZFUIView
v_ZFUIViewChildLayer::ZFEnumType ZFUIViewChildLayer
see v_ZFUIViewChildLayer
Definition ZFUIViewType.h:531
wheel event for ui elements
light weight array
Definition ZFCoreArray.h:331
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
ZFSerializable's data container, see ZFSerializable.
Definition ZFSerializableData.h:74
base class of all ui event
Definition ZFUIEvent.h:15
key event for ui elements
Definition ZFUIKeyEvent.h:17
base class of all layout param in ZFUIView
Definition ZFUIViewType.h:123
margin
Definition ZFUITypeDef.h:147
mouse event for ui elements
Definition ZFUIMouseEvent.h:52
2D point
Definition ZFUITypeDef.h:62
2D rectangle
Definition ZFUITypeDef.h:636
2D size
Definition ZFUITypeDef.h:397
2D size
Definition ZFUIViewType.h:41
see v_ZFUITransform, ZFUITransformFlagsToString, ZFUITransformFlagsFromString
Definition ZFUIViewType.h:615
base class of all UI views
Definition ZFUIView.h:90
virtual void removeFromParent()
remove this view from parent or do nothing if no parent
virtual void internalFgViewRemove(ZFUIView *view)
see internalBgViewAdd
virtual ZFCoreArray< zfstring > internalViewAutoSerializeTagGetAll()
see internalViewAutoSerializeTagAdd
virtual zfbool & viewUIEnableTree()
whether the view as well as all its children should receive user interaction, see viewUIEnable
Definition ZFUIView.h:297
virtual zffloat & alpha()
view's alpha, 1 by default
Definition ZFUIView.h:282
virtual void viewFrameReset()
see viewFrame
virtual zffloat width()
see viewFrame
virtual ZFUISize & viewSizeMax()
max size, negative value means not set, ZFUISizeInvalid by default
Definition ZFUIView.h:406
virtual void implChildOnRemoveAllForDealloc(void)
called to remove all children during parent dealloc for performance
virtual void layoutOnLayoutFinish(const ZFUIRect &bounds)
see E_ViewLayoutOnLayoutFinish
Definition ZFUIView.h:954
virtual zffloat & rotateX()
see transformAvailable
Definition ZFUIView.h:465
virtual void observerOnAdd(zfidentity eventId)
called when add first observer
virtual zfbool & mouseHoverEnable()
whether enable mouse hover event, see ZFUIView::viewEventOnMouseEvent, false by default
Definition ZFUIView.h:312
zfanyT< ZFUILayoutParam > child(const zfany &view, zfindex atIndex=((zfindex) -1))
add child and return child's layoutParam, see childWithParam
virtual void nativeImplViewMarginImplUpdate(ZFUIMargin &nativeImplViewMargin)
see nativeImplViewMargin, subclass must call super and "append" to existing margin
Definition ZFUIView.h:618
virtual zfbool focused()
whether the view currently focused
virtual zfbool serializableOnCheckNeedSerializeChildren(void)
whether we should serialize all children
Definition ZFUIView.h:241
virtual zffloat UIScaleForImpl()
see UIScale
virtual void * nativeImplView()
native implementation view
virtual void objectInfoImplAppend(zfstring &ret)
see objectInfo
virtual zfbool viewTreeVisible()
true only if added to ZFUIRootWindow and all of parents are visible
virtual void internalViewOnLayout(const ZFUIRect &bounds)
see internalBgViewAdd
virtual zfstring & viewId()
used to identify a view, empty by default
Definition ZFUIView.h:256
virtual zfbool layouting()
true if currently being layouted
virtual void * nativeView()
native container view
virtual const ZFClass * layoutParamClass(void)
see layoutParamCreate
virtual void internalViewAutoSerializeTagRemoveAll()
see internalViewAutoSerializeTagAdd
virtual ZFCoreArray< zfautoT< ZFUIView > > childRawArray()
return all children including internal views, see childArray
virtual void nativeImplViewMarginOnUpdate(void)
see E_NativeImplViewMarginOnUpdate
Definition ZFUIView.h:623
virtual ZFUIViewChildLayer viewLayer()
this view belongs to which layer of parent, valid only if parent is not null
static zfidentity E_NativeImplViewMarginOnUpdate(void)
see ZFObject::observerNotify
virtual void objectOnDealloc(void)
override this to destroy your object
virtual zfanyT< ZFUILayoutParam > internalImplViewAdd(ZFUIView *view, ZFUILayoutParam *layoutParam=(zft_zfnull), zfbool addAsTopMost=(_ZFT_t_zftrue))
see internalBgViewAdd
virtual ZFCoreArray< zfautoT< ZFUIView > > internalImplViewArray()
see internalBgViewAdd
virtual zffloat UIScaleFixed()
see UIScale
virtual void viewSizeFixed(const ZFUISize &size)
util method to set fixed size, by setting both of viewSizeMin and viewSizeMax
virtual zfanyT< ZFUILayoutParam > internalFgViewAdd(ZFUIView *view, ZFUILayoutParam *layoutParam=(zft_zfnull), zfbool addAsTopMost=(_ZFT_t_zftrue))
see internalBgViewAdd
virtual void layoutRequest()
set need layout
virtual void viewOnRemoveFromParent(ZFUIView *parent)
see E_ViewOnRemoveFromParent
virtual void childRemoveAt(zfindex index)
remove view at index or assert fail if index out of range
virtual zfbool layoutRequested()
true if need layout
virtual zfbool viewFrameOverrided()
true if viewFrame changed by user, use viewFrameReset to reset
virtual void internalViewAutoSerializeTagGetAllT(ZFCoreArray< zfstring > &ret)
see internalViewAutoSerializeTagAdd
virtual void viewEventOnEvent(ZFUIEvent *event)
notified when a ZFUIEvent occurred
virtual void implChildOnAdd(ZFUIView *child, zfindex virtualIndex, ZFUIViewChildLayer childLayer, zfindex childLayerIndex)
called to add or remove view to impl
virtual zfbool & viewUIEnable()
whether the view should receive user interaction (doesn't affect children, see viewUIEnableTree)
Definition ZFUIView.h:290
virtual void focusOnUpdate(void)
see E_ViewFocusOnUpdate
Definition ZFUIView.h:718
virtual zffloat & UIScale()
UI scale for view tree.
Definition ZFUIView.h:794
virtual zfbool serializableOnSerializeFromData(const ZFSerializableData &serializableData, zfstring *outErrorHint=zft_zfnull, ZFSerializableData *outErrorPos=zft_zfnull)
for serializable data that has "category" attribute, ZFSerializable would ignore it and leave it to s...
virtual void bindEvent(const zfstring &eventName, ZFObject *owner, const zfstring &methodName)
util method to bind this view's event to owner's method
virtual zfbool viewUIEnableTreeFixed()
true if viewUIEnableTree and all of parents are viewUIEnableTree
virtual zffloat UIScaleForPixel()
see UIScale
virtual void viewEventOnWheelEvent(ZFUIWheelEvent *wheelEvent)
called when wheel event occurred
virtual zffloat & scaleX()
see transformAvailable
Definition ZFUIView.h:455
virtual ZFUIRect const & viewFrame()
the view's frame
virtual void objectOnInit(void)
override this to init your object
virtual zffloat & rotateZ()
see transformAvailable
Definition ZFUIView.h:471
virtual zffloat & translateY()
see transformAvailable
Definition ZFUIView.h:448
virtual void viewEventOnMouseEvent(ZFUIMouseEvent *mouseEvent)
called when mouse event occurred
virtual void internalBgViewRemove(ZFUIView *view)
see internalBgViewAdd
virtual zfbool serializableOnSerializeToData(ZFSerializableData &serializableData, zfstring *outErrorHint=zft_zfnull, ZFSerializable *refOwner=zft_zfnull)
corresponding to serializableOnSerializeFromData, return whether the task is success,...
virtual const ZFUISize & layoutMeasure(const ZFUISize &sizeHint, const ZFUISizeParam &sizeParam)
measure the view
static zfidentity E_ViewFocusOnUpdate(void)
see ZFObject::observerNotify
virtual void layoutOnLayout(const ZFUIRect &bounds)
called by viewFrame to layout the view and children
virtual void implChildOnRemove(ZFUIView *child, zfindex virtualIndex, ZFUIViewChildLayer childLayer, zfindex childLayerIndex)
see implChildOnAdd, implChildOnRemoveAllForDealloc
virtual const ZFUIRect & nativeImplViewFrame()
frame of nativeImplView
virtual void layoutOnLayoutRequest(void)
called during layoutRequest
virtual void objectOnDeallocPrepare(void)
called before objectOnDealloc, safe to call virtual functions here
virtual void childRemove(ZFUIView *view)
remove view or do nothing if view isn't added to this view
virtual zfautoT< ZFUILayoutParam > layoutParamCreate()
create layout param, calling layoutParamClass to create instance and layoutParamOnUpdate to update
virtual ZFUIColor & bgColor()
background color, ZFUIColorZero by default
Definition ZFUIView.h:412
virtual zfanyT< ZFUIView > childAt(zfindex index)
get child view at index or assert fail if out of range
virtual zffloat & rotateY()
see transformAvailable
Definition ZFUIView.h:468
static ZFUITransformFlags transformAvailable()
whether transform is supported
virtual zfanyT< ZFUIView > childFindByClass(const ZFClass *cls, zfbool findRecursively=(_ZFT_t_zftrue), zfbool includeInternalViews=(_ZFT_t_zffalse))
find view by class, return the view or null if not found
virtual ZFCoreArray< zfautoT< ZFUIView > > internalBgViewArray()
usually for debug use only, try to avoid use this in your app for other purpose
virtual void viewChildOnAdd(ZFUIView *child, ZFUIViewChildLayer childLayer)
see E_ViewChildOnAdd
virtual zffloat height()
see viewFrame
virtual void viewEventSend(ZFUIEvent *event)
directly send a event, use with caution
virtual void internalViewAutoSerializeTagAdd(const zfstring &tag)
used to apply auto serialize logic to internal views
virtual zfindex childFind(ZFUIView *view)
return index of view or zfindexMax() if not child of this view
virtual void viewTreeVisibleOnUpdate(void)
see E_ViewTreeVisibleOnUpdate
virtual zffloat & translateX()
see transformAvailable
Definition ZFUIView.h:445
virtual const ZFUISize & layoutMeasuredSize()
get measured size, invalid if not measured
virtual void layoutOnLayoutPrepare(const ZFUIRect &bounds)
see E_ViewLayoutOnLayoutPrepare
Definition ZFUIView.h:942
virtual void childReplaceAt(zfindex atIndex, ZFUIView *toReplace)
replace child at index, assert fail if index out of range or view to replace already has parent
virtual void UIScaleOnUpdate(void)
see UIScale, ensured called only when scale value actually changed
virtual void viewChildOnUpdate(void)
see E_ViewChildOnUpdate
virtual void observerOnRemove(zfidentity eventId)
called when remove last observer
virtual ZFUIMargin & nativeImplViewMarginCustom()
see nativeImplViewMargin, ZFUIMarginZero by default
Definition ZFUIView.h:603
virtual zfauto childForEach(const ZFListener &impl, zfbool findRecursively=(_ZFT_t_zftrue), zfbool includeInternalViews=(_ZFT_t_zffalse))
call custom impl for each child
virtual void viewEventOnKeyEvent(ZFUIKeyEvent *keyEvent)
called when key occurred
virtual zfbool internalViewShouldLayout(ZFUIView *internalView)
called to check whether the internal view should be layouted using default layout logic,...
Definition ZFUIView.h:1215
virtual zfindex childCount()
get child view count
virtual void layoutParamOnUpdate(ZFUILayoutParam *layoutParam)
see layoutParamCreate
Definition ZFUIView.h:832
virtual const ZFUIRect & viewFramePrev()
previous viewFrame
virtual zfanyT< ZFUILayoutParam > childWithParam(ZFUIView *view, ZFUILayoutParam *layoutParam, zfindex atIndex=(((zfindex) -1)))
add view with layout param, param must be created by layoutParamCreate
virtual void layoutChildOffsetOnUpdate(ZFUIPoint &ret)
see layoutChildOffset
Definition ZFUIView.h:957
virtual zfbool & focusObtainWhenClick()
whether try to obtain focus when clicked down, true by default
Definition ZFUIView.h:323
virtual ZFCoreArray< zfautoT< ZFUIView > > childArray()
get the child view array
virtual zfbool viewTreeInWindow()
true if added to ZFUIRootWindow
virtual zfbool viewUIEnableFixed()
true if viewUIEnable and all of parents are viewUIEnableTree
virtual void internalViewAutoSerializeTagRemove(const zfstring &tag)
see internalViewAutoSerializeTagAdd
virtual void layoutOnMeasureFinish(ZFUISize &measuredSize, const ZFUISize &sizeHint, const ZFUISizeParam &sizeParam)
see E_ViewLayoutOnMeasure
Definition ZFUIView.h:935
virtual zfanyT< ZFUIView > parent()
parent view or null if none
virtual zffloat UIScaleInherited()
see UIScale
virtual zffloat & translateZ()
see transformAvailable
Definition ZFUIView.h:451
virtual void viewChildOnRemove(ZFUIView *child, ZFUIViewChildLayer childLayer)
see E_ViewChildOnRemove
virtual const ZFUIMargin & nativeImplViewMargin()
inner margin between ZFUIView and the internal nativeImplView
virtual void layoutParam(ZFUILayoutParam *layoutParam)
manually set layout param
virtual zffloat centerX()
see viewFrame
virtual ZFCoreArray< zfautoT< ZFUIView > > internalFgViewArray()
see internalBgViewAdd
virtual void nativeImplViewMarginUpdate()
see nativeImplViewMargin, layoutRequest if the final value actually changed
virtual void nativeImplViewOnLayout(ZFUIRect &ret, const ZFUIRect &bounds, const ZFUIMargin &nativeImplViewMargin)
called to layout nativeImplView
Definition ZFUIView.h:629
virtual ZFUIPoint layoutChildOffset()
get child offset to this view
virtual void internalImplViewRemove(ZFUIView *view)
see internalBgViewAdd
virtual zfanyT< ZFUIView > focusFind()
recursively to find focused child, take care of performance
virtual void focusRequest(zfbool focus)
request to obtain or resign focus, result can be checked by focused
virtual void bind(ZFObject *owner, const zfstring &propertyName)
util method to bind this view to owner's property, and auto setup viewId if not set
virtual zffloat x()
see viewFrame
virtual zfbool & visible()
visible or not, zftrue by default
Definition ZFUIView.h:261
virtual zfanyT< ZFUILayoutParam > internalBgViewAdd(ZFUIView *view, ZFUILayoutParam *layoutParam=(zft_zfnull), zfbool addAsTopMost=(_ZFT_t_zftrue))
internal view which is independent from normal view
virtual void layoutIfNeed()
force to layout if need
virtual void childRemoveAll()
remove all child view
virtual void styleableOnCopyFrom(ZFObject *anotherStyleable)
for a view, copy style would also copy all of it's children
virtual void viewTreeInWindowOnUpdate(void)
see E_ViewTreeInWindowOnUpdate
virtual zfbool & focusable()
whether the view can be focused, false by default
Definition ZFUIView.h:318
virtual ZFUISize & viewSizeMin()
min size, ZFUISizeZero by default
Definition ZFUIView.h:401
virtual zffloat centerY()
see viewFrame
virtual zffloat & scaleY()
see transformAvailable
Definition ZFUIView.h:458
virtual void viewEventOnKeyEventResolveFocus(ZFUIKeyEvent *keyEvent)
called by viewEventOnKeyEvent to resolve focus move key event
virtual void layoutOnMeasure(ZFUISize &ret, const ZFUISize &sizeHint, const ZFUISizeParam &sizeParam)
called by layoutMeasure to decide the view's size
Definition ZFUIView.h:928
virtual void viewOnAddToParent(ZFUIView *parent)
see E_ViewOnAddToParent
virtual zffloat & scaleZ()
see transformAvailable
Definition ZFUIView.h:461
virtual void serializableRefLayoutParam(ZFUILayoutParam *serializableRefLayoutParam)
store ref layout param for this view for reducing serialization output size
virtual zffloat y()
see viewFrame
virtual void childMove(zfindex fromIndex, zfindex toIndexOrIndexMax)
move view, make toIndexOrIndexMax as zfindexMax() to move to top most, and 0 to bottom most,...
wheel event for ui elements
Definition ZFUIWheelEvent.h:16
util method to cast ZFObject types freely
Definition zfany.h:35
see zfany
Definition zfany.h:109
a ZFObject holder which would release content object automatically when destroyed
Definition zfautoFwd.h:34
type restrict version of zfauto
Definition zfautoFwd.h:113