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;
88zfclass ZFLIB_ZFUIKit ZFUIView : zfextend ZFStyle {
89 ZFOBJECT_DECLARE(ZFUIView, ZFStyle)
91
92public:
93 // ============================================================
94 // events
100 ZFEVENT(ViewTreeInWindowOnUpdate)
106 ZFEVENT(ViewTreeVisibleOnUpdate)
113 ZFEVENT(ViewChildOnUpdate)
121 ZFEVENT(ViewChildOnAdd)
129 ZFEVENT(ViewChildOnRemove)
136 ZFEVENT(ViewOnAddToParent)
142 ZFEVENT(ViewOnRemoveFromParent)
154 ZFEVENT(ViewFocusOnUpdate)
160 ZFEVENT(ViewOnEvent)
166 ZFEVENT(ViewLayoutOnLayoutRequest)
175 ZFEVENT(ViewLayoutOnMeasurePrepare)
182 ZFEVENT(ViewLayoutOnMeasure)
191 ZFEVENT(ViewLayoutOnLayoutPrepare)
199 ZFEVENT(ViewLayoutOnLayout)
206 ZFEVENT(ViewLayoutOnLayoutFinish)
212 ZFEVENT(NativeImplViewMarginOnUpdate)
213
214 // ============================================================
215 // serialize
216public:
234protected:
237 ZF_IN const ZFSerializableData &serializableData
238 , ZF_OUT_OPT zfstring *outErrorHint = zfnull
239 , ZF_OUT_OPT ZFSerializableData *outErrorPos = zfnull
240 );
243 ZF_IN_OUT ZFSerializableData &serializableData
244 , ZF_OUT_OPT zfstring *outErrorHint = zfnull
245 , ZF_IN_OPT ZFSerializable *refOwner = zfnull
246 );
255 return zftrue;
256 }
257
258public:
259 // ============================================================
260 // properties
270
271
276
289
290 zffinal void _ZFP_ZFUIView_viewTreeInWindow(ZF_IN zfbool viewTreeInWindow);
291
298
305
312
321
327
337
351 , ZFMP_IN(ZFUIRect const &, viewFrame)
353
356
359
362
367 , ZFMP_IN(zffloat const &, propertyValue)
373 , ZFMP_IN(zffloat const &, propertyValue)
379 , ZFMP_IN(zffloat const &, propertyValue)
385 , ZFMP_IN(zffloat const &, propertyValue)
391 , ZFMP_IN(zffloat const &, propertyValue)
397 , ZFMP_IN(zffloat const &, propertyValue)
399
404 , ZFMP_IN(const ZFUISize &, size)
421
427
428 // ============================================================
429 // transform
456
466
476
486
487 // ============================================================
488 // util
489public:
515 , ZFMP_IN(ZFObject *, owner)
516 , ZFMP_IN(const zfstring &, propertyName)
551 , ZFMP_IN(const zfstring &, eventName)
552 , ZFMP_IN(ZFObject *, owner)
553 , ZFMP_IN(const zfstring &, methodName)
559 , ZFMP_IN(zfidentity, eventId)
560 , ZFMP_IN(ZFObject *, owner)
561 , ZFMP_IN(const zfstring &, methodName)
563
564 // ============================================================
565 // init and dealloc
566protected:
568 virtual void objectOnInit(void);
570 virtual void objectOnDealloc(void);
572 virtual void objectOnDeallocPrepare(void);
573
574protected:
577
578 // ============================================================
579public:
611
612protected:
616 virtual void nativeImplView(
618 , ZF_IN ZFUIViewNativeImplViewDeleteCallback nativeImplViewDeleteCallback
619 );
626
632
636 ZF_OUT ZFUIRect &ret
637 , ZF_IN const ZFUIRect &bounds
639 ) {
641 }
642
643 // ============================================================
644protected:
654 virtual void implChildOnAdd(
655 ZF_IN ZFUIView *child
656 , ZF_IN zfindex virtualIndex
657 , ZF_IN ZFUIViewChildLayer childLayer
658 , ZF_IN zfindex childLayerIndex
659 );
663 virtual void implChildOnRemove(
664 ZF_IN ZFUIView *child
665 , ZF_IN zfindex virtualIndex
666 , ZF_IN ZFUIViewChildLayer childLayer
667 , ZF_IN zfindex childLayerIndex
668 );
680
681public:
693 static void _ZFP_ZFUIView_nativeViewNotifyAdd(
694 ZF_IN ZFUIView *view
695 , ZF_IN void *nativeParentView
696 );
697 static void _ZFP_ZFUIView_nativeViewNotifyRemove(ZF_IN ZFUIView *view);
698
699 // ============================================================
700 // view focus
701public:
713 , ZFMP_IN(zfbool, focus)
715 zffinal void _ZFP_ZFUIView_focusOnUpdate(void) {
716 this->focusOnUpdate();
717 }
722protected:
724 virtual inline void focusOnUpdate(void) {
726 }
727
728 // ============================================================
729 // parent
730public:
731 zffinal void _ZFP_ZFUIView_parentOnUpdate(
732 ZF_IN ZFUIView *parentView
733 , ZF_IN ZFUILayoutParam *layoutParam
734 , ZF_IN ZFUIViewChildLayer viewLayer
735 );
740
741
747
748 // ============================================================
749 // scale settings
750public:
811protected:
817 virtual void UIScaleOnUpdate(void);
818
819 // ============================================================
820 // layout logic
821public:
828protected:
834 virtual const ZFClass *layoutParamClass(void);
840
841public:
850 ZFMETHOD_DECLARE_1(void, layoutParam
851 , ZFMP_IN(ZFUILayoutParam *, layoutParam)
860
861public:
884 , ZFMP_IN(const ZFUISize &, sizeHintOrig)
885 , ZFMP_IN(const ZFUISizeParam &, sizeParam)
906
907public:
908 void _ZFP_ZFUIView_notifyLayoutView(ZF_IN const ZFUIRect &viewFrame);
909protected:
913 virtual void layoutOnLayoutRequest(void);
917 virtual inline void layoutOnMeasurePrepare(
918 ZF_IN const ZFUISize &sizeHintOrig
919 , ZF_IN const ZFUISizeParam &sizeParam
920 ) {
921 }
922
944 virtual inline void layoutOnMeasure(
945 ZF_OUT ZFUISize &ret
946 , ZF_IN const ZFUISize &sizeHint
947 , ZF_IN const ZFUISizeParam &sizeParam
948 ) {
949 }
950
951 virtual inline void layoutOnMeasureFinish(
952 ZF_IN_OUT ZFUISize &measuredSize
953 , ZF_IN const ZFUISize &sizeHint
954 , ZF_IN const ZFUISizeParam &sizeParam
955 ) {
956 }
957
958 virtual inline void layoutOnLayoutPrepare(ZF_IN const ZFUIRect &bounds) {
959 }
960
968 virtual void layoutOnLayout(ZF_IN const ZFUIRect &bounds);
970 virtual inline void layoutOnLayoutFinish(ZF_IN const ZFUIRect &bounds) {
971 }
972
974 }
975
976 // ============================================================
977 // children management
978public:
983 , ZFMP_IN(const zfstring &, viewId)
984 , ZFMP_IN_OPT(zfbool, findRecursively, zftrue)
985 , ZFMP_IN_OPT(zfbool, includeInternalViews, zffalse)
991 , ZFMP_IN(const ZFClass *, cls)
992 , ZFMP_IN_OPT(zfbool, findRecursively, zftrue)
993 , ZFMP_IN_OPT(zfbool, includeInternalViews, zffalse)
1007 , ZFMP_IN(const ZFListener &, impl)
1008 , ZFMP_IN_OPT(zfbool, findRecursively, zftrue)
1009 , ZFMP_IN_OPT(zfbool, includeInternalViews, zffalse)
1011
1012public:
1020 ZF_IN const zfany &view
1021 , ZF_IN_OPT zfindex atIndex = zfindexMax()
1022 );
1027 , ZFMP_IN(ZFUIView *, view)
1033 , ZFMP_IN(zfindex, index)
1047 , ZFMP_IN(zfindex, fromIndex)
1048 , ZFMP_IN(zfindex, toIndexOrIndexMax)
1054 , ZFMP_IN(ZFUIView *, child)
1055 , ZFMP_IN(zfindex, toIndexOrIndexMax)
1062 , ZFMP_IN(zfindex, atIndex)
1063 , ZFMP_IN(ZFUIView *, toReplace)
1073 , ZFMP_IN(zfindex, index)
1079 , ZFMP_IN(ZFUIView *, view)
1085
1099
1100 // ============================================================
1101 // events
1102protected:
1104 virtual void viewTreeInWindowOnUpdate(void);
1106 virtual void viewTreeVisibleOnUpdate(void);
1108 virtual void viewChildOnUpdate(void);
1110 virtual void viewChildOnAdd(
1111 ZF_IN ZFUIView *child
1112 , ZF_IN ZFUIViewChildLayer childLayer
1113 );
1115 virtual void viewChildOnRemove(
1116 ZF_IN ZFUIView *child
1117 , ZF_IN ZFUIViewChildLayer childLayer
1118 );
1120 virtual void viewOnAddToParent(ZF_IN ZFUIView *parent);
1122 virtual void viewOnRemoveFromParent(ZF_IN ZFUIView *parent);
1123
1124 // ============================================================
1125 // internal views
1126public:
1129 , ZFMP_IN(ZFUIView *, view)
1130 , ZFMP_IN_OPT(zfindex, atIndex, zfindexMax())
1134 , ZFMP_IN(ZFUIView *, view)
1138
1139public:
1154 , ZFMP_IN(ZFUIView *, view)
1155 , ZFMP_IN_OPT(zfindex, atIndex, zfindexMax())
1159 , ZFMP_IN(ZFUIView *, view)
1165
1166public:
1169 , ZFMP_IN(ZFUIView *, view)
1170 , ZFMP_IN_OPT(zfindex, atIndex, zfindexMax())
1174 , ZFMP_IN(ZFUIView *, view)
1178
1179 // ============================================================
1180 // other internal view logic
1181public:
1194 , ZFMP_IN(const zfstring &, tag)
1198 , ZFMP_IN(const zfstring &, tag)
1208
1209protected:
1214 virtual inline zfbool internalViewShouldLayout(ZF_IN ZFUIView *internalView) {
1215 return zftrue;
1216 }
1217
1218 virtual void internalViewOnLayout(ZF_IN const ZFUIRect &bounds);
1219
1220 // ============================================================
1221 // UI events
1222public:
1227 , ZFMP_IN(ZFUIEvent *, event)
1229protected:
1237 virtual void viewEventOnEvent(ZF_IN ZFUIEvent *event);
1238
1239 // ============================================================
1240 // events
1241protected:
1254 virtual void viewEventOnMouseEvent(ZF_IN ZFUIMouseEvent *mouseEvent);
1255
1268 virtual void viewEventOnKeyEvent(ZF_IN ZFUIKeyEvent *keyEvent);
1276
1287 virtual void viewEventOnWheelEvent(ZF_IN ZFUIWheelEvent *wheelEvent);
1288
1289 // ============================================================
1290 // override
1291protected:
1296 virtual void styleableOnCopyFrom(ZF_IN ZFObject *anotherStyleable);
1297
1298protected:
1300 virtual void observerOnAdd(ZF_IN zfidentity eventId);
1302 virtual void observerOnRemove(ZF_IN zfidentity eventId);
1303
1304private:
1305 _ZFP_ZFUIViewPrivate *d;
1306 friend zfclassFwd _ZFP_ZFUIViewPrivate;
1307};
1308
1310#endif // #ifndef _ZFI_ZFUIView_h_
1311
#define ZF_OUT_OPT
dummy macro that shows the param used as optional output
Definition ZFCoreTypeDef_ClassType.h:203
#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:191
#define ZF_IN_OPT
dummy macro that shows the param used as optional input
Definition ZFCoreTypeDef_ClassType.h:195
#define ZF_OUT
dummy macro that shows the param used as required output
Definition ZFCoreTypeDef_ClassType.h:199
#define ZF_IN_OUT
dummy macro that shows the param used as required input and output
Definition ZFCoreTypeDef_ClassType.h:207
#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:123
#define ZFEVENT(YourEvent)
see ZFObject::observerNotify
Definition ZFObjectObserver.h:316
#define ZFPROPERTY_ASSIGN(Type, Name,...)
see ZFPROPERTY_RETAIN
Definition ZFPropertyDeclare.h:120
#define ZFPROPERTY_ON_UPDATE_DECLARE(Type, Name)
see ZFPROPERTY_ON_INIT_DECLARE
Definition ZFPropertyDeclare.h:223
#define ZFPROPERTY_ON_ATTACH_DECLARE(Type, Name)
see ZFPROPERTY_ON_INIT_DECLARE
Definition ZFPropertyDeclare.h:233
#define ZFSTYLE_DEFAULT_DECLARE(YourStyle)
used to declare a default style, see ZFStyleable
Definition ZFStyleable.h:268
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:1178
ZFUIColor const & ZFUIColorZero(void)
zero color
Definition ZFUITypeDef.h:1182
void ZFUIRectApplyMarginT(ZFUIRect &ret, const ZFUIRect &rect, const ZFUIMargin &margin)
return a rect excluding the margin
Definition ZFUITypeDef.h:944
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:522
wheel event for ui elements
light weight array
Definition ZFCoreArray.h:348
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:600
base class of all UI views
Definition ZFUIView.h:88
virtual void removeFromParent()
remove this view from parent or do nothing if no parent
virtual void internalFgViewRemove(ZFUIView *view)
see internalBgView
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:310
virtual zffloat & alpha()
view's alpha, 1 by default
Definition ZFUIView.h:295
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:419
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:970
virtual zffloat & rotateX()
see transformAvailable
Definition ZFUIView.h:478
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:325
zfanyT< ZFUILayoutParam > child(const zfany &view, zfindex atIndex=((zfindex) -1))
add child and return child's layoutParam
virtual void nativeImplViewMarginImplUpdate(ZFUIMargin &nativeImplViewMargin)
see nativeImplViewMargin, subclass must call super and "append" to existing margin
Definition ZFUIView.h:624
virtual zfbool focused()
whether the view currently focused
virtual zfbool serializableOnCheckNeedSerializeChildren(void)
whether we should serialize all children
Definition ZFUIView.h:254
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 internalBgView
virtual zfstring & viewId()
used to identify a view, empty by default
Definition ZFUIView.h:269
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:629
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 ZFCoreArray< zfautoT< ZFUIView > > internalImplViewArray()
see internalBgView
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 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:303
virtual void focusOnUpdate(void)
see E_ViewFocusOnUpdate
Definition ZFUIView.h:724
virtual zffloat & UIScale()
UI scale for view tree.
Definition ZFUIView.h:800
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:468
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:484
virtual zffloat & translateY()
see transformAvailable
Definition ZFUIView.h:461
virtual void viewEventOnMouseEvent(ZFUIMouseEvent *mouseEvent)
called when mouse event occurred
virtual void internalBgViewRemove(ZFUIView *view)
see internalBgView
virtual zfbool serializableOnSerializeToData(ZFSerializableData &serializableData, zfstring *outErrorHint=zft_zfnull, ZFSerializable *refOwner=zft_zfnull)
corresponding to serializableOnSerializeFromData, return whether the task is success,...
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 void layoutOnMeasurePrepare(const ZFUISize &sizeHintOrig, const ZFUISizeParam &sizeParam)
called during layoutMeasure
Definition ZFUIView.h:917
virtual zfanyT< ZFUILayoutParam > internalFgView(ZFUIView *view, zfindex atIndex=(((zfindex) -1)))
see internalBgView
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:425
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:481
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 zfanyT< ZFUILayoutParam > internalImplView(ZFUIView *view, zfindex atIndex=(((zfindex) -1)))
see internalBgView
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:458
virtual const ZFUISize & layoutMeasuredSize()
get measured size, invalid if not measured
virtual void layoutOnLayoutPrepare(const ZFUIRect &bounds)
see E_ViewLayoutOnLayoutPrepare
Definition ZFUIView.h:958
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 zfauto childForEach(const ZFListener &impl, zfbool findRecursively=(_ZFT_t_zftrue), zfbool includeInternalViews=(_ZFT_t_zffalse))
call custom impl for each child
virtual zfanyT< ZFUILayoutParam > internalBgView(ZFUIView *view, zfindex atIndex=(((zfindex) -1)))
internal view which is independent from normal view
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:1214
virtual zfindex childCount()
get child view count
virtual void layoutParamOnUpdate(ZFUILayoutParam *layoutParam)
see layoutParamCreate
Definition ZFUIView.h:838
virtual const ZFUIRect & viewFramePrev()
previous viewFrame
virtual void layoutChildOffsetOnUpdate(ZFUIPoint &ret)
see layoutChildOffset
Definition ZFUIView.h:973
virtual zfbool & focusObtainWhenClick()
whether try to obtain focus when clicked down, true by default
Definition ZFUIView.h:336
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:951
virtual zfanyT< ZFUIView > parent()
parent view or null if none
virtual zffloat UIScaleInherited()
see UIScale
virtual zffloat & translateZ()
see transformAvailable
Definition ZFUIView.h:464
virtual void viewChildOnRemove(ZFUIView *child, ZFUIViewChildLayer childLayer)
see E_ViewChildOnRemove
virtual const ZFUIMargin & nativeImplViewMargin()
inner margin between ZFUIView and the internal nativeImplView
virtual const ZFUISize & layoutMeasure(const ZFUISize &sizeHintOrig, const ZFUISizeParam &sizeParam)
measure the view
virtual void layoutParam(ZFUILayoutParam *layoutParam)
manually set layout param
virtual zffloat centerX()
see viewFrame
virtual ZFCoreArray< zfautoT< ZFUIView > > internalFgViewArray()
see internalBgView
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:635
virtual ZFUIPoint layoutChildOffset()
get child offset to this view
virtual void internalImplViewRemove(ZFUIView *view)
see internalBgView
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:274
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 ZFUILayoutParam * serializableRefLayoutParamCheckInit(void)
see serializableRefLayoutParam
virtual zfbool & focusable()
whether the view can be focused, false by default
Definition ZFUIView.h:331
virtual ZFUISize & viewSizeMin()
min size, ZFUISizeZero by default
Definition ZFUIView.h:414
virtual zffloat centerY()
see viewFrame
virtual zffloat & scaleY()
see transformAvailable
Definition ZFUIView.h:471
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:944
virtual void viewOnAddToParent(ZFUIView *parent)
see E_ViewOnAddToParent
virtual zffloat & scaleZ()
see transformAvailable
Definition ZFUIView.h:474
virtual void serializableRefLayoutParam(ZFUILayoutParam *serializableRefLayoutParam)
store ref layout param for this view for reducing serialization output size, null by default
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:113
a ZFObject holder which would release content object automatically when destroyed
Definition zfautoFwd.h:34
type restrict version of zfauto
Definition zfautoFwd.h:108