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 ZF_IN zfanyT<ZFUIView> const &view
35 , ZF_IN void *nativeImplView
36 );
37
38// ============================================================
39// ZFUIView
40zfclassFwd _ZFP_ZFUIViewPrivate;
93zfclass ZFLIB_ZFUIKit ZFUIView : zfextend ZFStyle {
94 ZFOBJECT_DECLARE(ZFUIView, ZFStyle)
96
97public:
98 // ============================================================
99 // events
105 ZFEVENT(ViewTreeInWindowOnUpdate)
111 ZFEVENT(ViewTreeVisibleOnUpdate)
118 ZFEVENT(ViewChildOnUpdate)
126 ZFEVENT(ViewChildOnAdd)
134 ZFEVENT(ViewChildOnRemove)
141 ZFEVENT(ViewOnAddToParent)
147 ZFEVENT(ViewOnRemoveFromParent)
159 ZFEVENT(ViewFocusOnUpdate)
165 ZFEVENT(ViewOnEvent)
171 ZFEVENT(ViewLayoutOnLayoutRequest)
178 ZFEVENT(ViewLayoutOnMeasure)
186 ZFEVENT(ViewLayoutOnLayoutPrepare)
194 ZFEVENT(ViewLayoutOnLayout)
201 ZFEVENT(ViewLayoutOnLayoutFinish)
207 ZFEVENT(NativeImplViewMarginOnUpdate)
208
209 // ============================================================
210 // serialize
211public:
224protected:
227 ZF_IN const ZFSerializableData &serializableData
228 , ZF_OUT_OPT zfstring *outErrorHint = zfnull
229 , ZF_OUT_OPT ZFSerializableData *outErrorPos = zfnull
230 );
233 ZF_IN_OUT ZFSerializableData &serializableData
234 , ZF_OUT_OPT zfstring *outErrorHint = zfnull
235 , ZF_IN_OPT ZFSerializable *refOwner = zfnull
236 );
245 return zftrue;
246 }
247
248public:
249 // ============================================================
250 // properties
260
261
266
279
280 zffinal void _ZFP_ZFUIView_viewTreeInWindow(ZF_IN zfbool viewTreeInWindow);
281
288
295
302
311
317
327
341 , ZFMP_IN(ZFUIRect const &, viewFrame)
343
346
349
352
357 , ZFMP_IN(zffloat const &, propertyValue)
363 , ZFMP_IN(zffloat const &, propertyValue)
369 , ZFMP_IN(zffloat const &, propertyValue)
375 , ZFMP_IN(zffloat const &, propertyValue)
381 , ZFMP_IN(zffloat const &, propertyValue)
387 , ZFMP_IN(zffloat const &, propertyValue)
389
394 , ZFMP_IN(const ZFUISize &, size)
411
417
418 // ============================================================
419 // transform
446
456
466
476
477 // ============================================================
478 // util
479public:
505 , ZFMP_IN(ZFObject *, owner)
506 , ZFMP_IN(const zfstring &, propertyName)
541 , ZFMP_IN(const zfstring &, eventName)
542 , ZFMP_IN(ZFObject *, owner)
543 , ZFMP_IN(const zfstring &, methodName)
549 , ZFMP_IN(zfidentity, eventId)
550 , ZFMP_IN(ZFObject *, owner)
551 , ZFMP_IN(const zfstring &, methodName)
553
554 // ============================================================
555 // init and dealloc
556protected:
558 virtual void objectOnInit(void);
560 virtual void objectOnDealloc(void);
562 virtual void objectOnDeallocPrepare(void);
563
564protected:
567
568 // ============================================================
569public:
606
612
613protected:
617 virtual void nativeImplView(
619 , ZF_IN ZFUIViewNativeImplViewDeleteCallback nativeImplViewDeleteCallback
621 );
628
634
638 ZF_OUT ZFUIRect &ret
639 , ZF_IN const ZFUIRect &bounds
641 ) {
643 }
644
645 // ============================================================
646protected:
656 virtual void implChildOnAdd(
657 ZF_IN ZFUIView *child
658 , ZF_IN zfindex virtualIndex
659 , ZF_IN ZFUIViewChildLayer childLayer
660 , ZF_IN zfindex childLayerIndex
661 );
665 virtual void implChildOnRemove(
666 ZF_IN ZFUIView *child
667 , ZF_IN zfindex virtualIndex
668 , ZF_IN ZFUIViewChildLayer childLayer
669 , ZF_IN zfindex childLayerIndex
670 );
682
683public:
695 static void _ZFP_ZFUIView_nativeViewNotifyAdd(
696 ZF_IN ZFUIView *view
697 , ZF_IN void *nativeParentView
698 );
699 static void _ZFP_ZFUIView_nativeViewNotifyRemove(ZF_IN ZFUIView *view);
700
701 // ============================================================
702 // view focus
703public:
715 , ZFMP_IN(zfbool, focus)
717 zffinal void _ZFP_ZFUIView_focusOnUpdate(void) {
718 this->focusOnUpdate();
719 }
724protected:
726 virtual inline void focusOnUpdate(void) {
728 }
729
730 // ============================================================
731 // parent
732public:
733 zffinal void _ZFP_ZFUIView_parentOnUpdate(
734 ZF_IN ZFUIView *parentView
735 , ZF_IN ZFUILayoutParam *layoutParam
736 , ZF_IN ZFUIViewChildLayer viewLayer
737 );
742
743
749
750 // ============================================================
751 // scale settings
752public:
813protected:
819 virtual void UIScaleOnUpdate(void);
820
821 // ============================================================
822 // layout logic
823public:
830protected:
836 virtual const ZFClass *layoutParamClass(void);
842
843public:
852 ZFMETHOD_DECLARE_1(void, layoutParam
853 , ZFMP_IN(ZFUILayoutParam *, layoutParam)
862
863public:
884 , ZFMP_IN(const ZFUISize &, sizeHint)
885 , ZFMP_IN(const ZFUISizeParam &, sizeParam)
906
907public:
908 void _ZFP_ZFUIView_notifyLayoutView(ZF_IN const ZFUIRect &viewFrame);
909protected:
913 virtual void layoutOnLayoutRequest(void);
936 virtual inline void layoutOnMeasure(
937 ZF_OUT ZFUISize &ret
938 , ZF_IN const ZFUISize &sizeHint
939 , ZF_IN const ZFUISizeParam &sizeParam
940 ) {
941 }
942
943 virtual inline void layoutOnMeasureFinish(
944 ZF_IN_OUT ZFUISize &measuredSize
945 , ZF_IN const ZFUISize &sizeHint
946 , ZF_IN const ZFUISizeParam &sizeParam
947 ) {
948 }
949
950 virtual inline void layoutOnLayoutPrepare(ZF_IN const ZFUIRect &bounds) {
951 }
952
960 virtual void layoutOnLayout(ZF_IN const ZFUIRect &bounds);
962 virtual inline void layoutOnLayoutFinish(ZF_IN const ZFUIRect &bounds) {
963 }
964
966 }
967
968 // ============================================================
969 // children management
970public:
975 , ZFMP_IN(const zfstring &, viewId)
976 , ZFMP_IN_OPT(zfbool, findRecursively, zftrue)
977 , ZFMP_IN_OPT(zfbool, includeInternalViews, zffalse)
983 , ZFMP_IN(const ZFClass *, cls)
984 , ZFMP_IN_OPT(zfbool, findRecursively, zftrue)
985 , ZFMP_IN_OPT(zfbool, includeInternalViews, zffalse)
996 , ZFMP_IN(const ZFListener &, impl)
997 , ZFMP_IN_OPT(zfbool, findRecursively, zftrue)
998 , ZFMP_IN_OPT(zfbool, includeInternalViews, zffalse)
1000
1001public:
1011 , ZFMP_IN(ZFUIView *, view)
1013 , ZFMP_IN_OPT(zfindex, atIndex, zfindexMax())
1019 ZF_IN const zfany &view
1020 , ZF_IN_OPT zfindex atIndex = zfindexMax()
1021 );
1026 , ZFMP_IN(ZFUIView *, view)
1032 , ZFMP_IN(zfindex, index)
1046 , ZFMP_IN(zfindex, fromIndex)
1047 , ZFMP_IN(zfindex, toIndexOrIndexMax)
1053 , ZFMP_IN(ZFUIView *, child)
1054 , ZFMP_IN(zfindex, toIndexOrIndexMax)
1061 , ZFMP_IN(zfindex, atIndex)
1062 , ZFMP_IN(ZFUIView *, toReplace)
1072 , ZFMP_IN(zfindex, index)
1078 , ZFMP_IN(ZFUIView *, view)
1084
1098
1099 // ============================================================
1100 // events
1101protected:
1103 virtual void viewTreeInWindowOnUpdate(void);
1105 virtual void viewTreeVisibleOnUpdate(void);
1107 virtual void viewChildOnUpdate(void);
1109 virtual void viewChildOnAdd(
1110 ZF_IN ZFUIView *child
1111 , ZF_IN ZFUIViewChildLayer childLayer
1112 );
1114 virtual void viewChildOnRemove(
1115 ZF_IN ZFUIView *child
1116 , ZF_IN ZFUIViewChildLayer childLayer
1117 );
1119 virtual void viewOnAddToParent(ZF_IN ZFUIView *parent);
1121 virtual void viewOnRemoveFromParent(ZF_IN ZFUIView *parent);
1122
1123 // ============================================================
1124 // internal views
1125public:
1128 , ZFMP_IN(ZFUIView *, view)
1130 , ZFMP_IN_OPT(zfbool, addAsTopMost, zftrue)
1134 , ZFMP_IN(ZFUIView *, view)
1138
1139public:
1158 , ZFMP_IN(ZFUIView *, view)
1160 , ZFMP_IN_OPT(zfbool, addAsTopMost, zftrue)
1164 , ZFMP_IN(ZFUIView *, view)
1170
1171public:
1174 , ZFMP_IN(ZFUIView *, view)
1176 , ZFMP_IN_OPT(zfbool, addAsTopMost, zftrue)
1180 , ZFMP_IN(ZFUIView *, view)
1184
1185 // ============================================================
1186 // other internal view logic
1187public:
1200 , ZFMP_IN(const zfstring &, tag)
1204 , ZFMP_IN(const zfstring &, tag)
1214
1215protected:
1220 virtual inline zfbool internalViewShouldLayout(ZF_IN ZFUIView *internalView) {
1221 return zftrue;
1222 }
1223
1224 virtual void internalViewOnLayout(ZF_IN const ZFUIRect &bounds);
1225
1226 // ============================================================
1227 // UI events
1228public:
1233 , ZFMP_IN(ZFUIEvent *, event)
1235protected:
1243 virtual void viewEventOnEvent(ZF_IN ZFUIEvent *event);
1244
1245 // ============================================================
1246 // events
1247protected:
1260 virtual void viewEventOnMouseEvent(ZF_IN ZFUIMouseEvent *mouseEvent);
1261
1274 virtual void viewEventOnKeyEvent(ZF_IN ZFUIKeyEvent *keyEvent);
1282
1293 virtual void viewEventOnWheelEvent(ZF_IN ZFUIWheelEvent *wheelEvent);
1294
1295 // ============================================================
1296 // override
1297protected:
1302 virtual void styleableOnCopyFrom(ZF_IN ZFObject *anotherStyleable);
1303
1304protected:
1306 virtual void observerOnAdd(ZF_IN zfidentity eventId);
1308 virtual void observerOnRemove(ZF_IN zfidentity eventId);
1309
1310private:
1311 _ZFP_ZFUIViewPrivate *d;
1312 friend zfclassFwd _ZFP_ZFUIViewPrivate;
1313};
1314
1316#endif // #ifndef _ZFI_ZFUIView_h_
1317
#define ZF_OUT_OPT
dummy macro that shows the param used as optional output
Definition ZFCoreTypeDef_ClassType.h:192
#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:180
#define ZF_IN_OPT
dummy macro that shows the param used as optional input
Definition ZFCoreTypeDef_ClassType.h:184
#define ZF_OUT
dummy macro that shows the param used as required output
Definition ZFCoreTypeDef_ClassType.h:188
#define ZF_IN_OUT
dummy macro that shows the param used as required input and output
Definition ZFCoreTypeDef_ClassType.h:196
#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:328
#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:262
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, void *nativeImplView)
see ZFUIView::nativeImplView
Definition ZFUIView.h:33
additional class for ZFUIView
v_ZFUIViewChildLayer::ZFEnumType ZFUIViewChildLayer
see v_ZFUIViewChildLayer
Definition ZFUIViewType.h:511
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:595
base class of all UI views
Definition ZFUIView.h:93
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:300
virtual zffloat & alpha()
view's alpha, 1 by default
Definition ZFUIView.h:285
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:409
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:962
virtual zffloat & rotateX()
see transformAvailable
Definition ZFUIView.h:468
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:315
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:626
virtual zfbool focused()
whether the view currently focused
virtual zfbool serializableOnCheckNeedSerializeChildren(void)
whether we should serialize all children
Definition ZFUIView.h:244
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 ZFUISysWindow 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:259
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:631
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:293
virtual void focusOnUpdate(void)
see E_ViewFocusOnUpdate
Definition ZFUIView.h:726
virtual zffloat & UIScale()
UI scale for view tree.
Definition ZFUIView.h:802
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:458
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:474
virtual zffloat & translateY()
see transformAvailable
Definition ZFUIView.h:451
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:415
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:471
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:448
virtual const ZFUISize & layoutMeasuredSize()
get measured size, invalid if not measured
virtual void layoutOnLayoutPrepare(const ZFUIRect &bounds)
see E_ViewLayoutOnLayoutPrepare
Definition ZFUIView.h:950
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:610
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:1220
virtual zfindex childCount()
get child view count
virtual void layoutParamOnUpdate(ZFUILayoutParam *layoutParam)
see layoutParamCreate
Definition ZFUIView.h:840
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:965
virtual zfbool & focusObtainWhenClick()
whether try to obtain focus when clicked down, true by default
Definition ZFUIView.h:326
virtual ZFCoreArray< zfautoT< ZFUIView > > childArray()
get the child view array
virtual zfbool viewTreeInWindow()
true if added to ZFUISysWindow
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:943
virtual zfanyT< ZFUIView > parent()
parent view or null if none
virtual zffloat UIScaleInherited()
see UIScale
virtual zffloat & translateZ()
see transformAvailable
Definition ZFUIView.h:454
virtual zfbool nativeImplViewRequireVirtualIndex()
whether the nativeImplView cost one virtualIndex
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:637
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:264
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:321
virtual ZFUISize & viewSizeMin()
min size, ZFUISizeZero by default
Definition ZFUIView.h:404
virtual zffloat centerY()
see viewFrame
virtual zffloat & scaleY()
see transformAvailable
Definition ZFUIView.h:461
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:936
virtual void viewOnAddToParent(ZFUIView *parent)
see E_ViewOnAddToParent
virtual zffloat & scaleZ()
see transformAvailable
Definition ZFUIView.h:464
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:106
a ZFObject holder which would release content object automatically when destroyed
Definition zfautoFwd.h:34
type restrict version of zfauto
Definition zfautoFwd.h:110