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)
198 ZFEVENT(ViewLayoutOnLayout)
205 ZFEVENT(ViewLayoutOnLayoutFinish)
211 ZFEVENT(NativeImplViewMarginOnUpdate)
212
213 // ============================================================
214 // serialize
215public:
233protected:
236 ZF_IN const ZFSerializableData &serializableData
237 , ZF_OUT_OPT zfstring *outErrorHint = zfnull
238 , ZF_OUT_OPT ZFSerializableData *outErrorPos = zfnull
239 );
242 ZF_IN_OUT ZFSerializableData &serializableData
243 , ZF_OUT_OPT zfstring *outErrorHint = zfnull
244 , ZF_IN_OPT ZFSerializable *refOwner = zfnull
245 );
254 return zftrue;
255 }
256
257public:
258 // ============================================================
259 // properties
269
270
275
288
289 zffinal void _ZFP_ZFUIView_viewTreeInWindow(ZF_IN zfbool viewTreeInWindow);
290
297
304
311
320
326
336
350 , ZFMP_IN(ZFUIRect const &, viewFrame)
352
355
358
361
366 , ZFMP_IN(zffloat const &, propertyValue)
372 , ZFMP_IN(zffloat const &, propertyValue)
378 , ZFMP_IN(zffloat const &, propertyValue)
384 , ZFMP_IN(zffloat const &, propertyValue)
390 , ZFMP_IN(zffloat const &, propertyValue)
396 , ZFMP_IN(zffloat const &, propertyValue)
398
403 , ZFMP_IN(const ZFUISize &, size)
420
426
427 // ============================================================
428 // transform
458
468
478
488
489 // ============================================================
490 // util
491public:
517 , ZFMP_IN(ZFObject *, owner)
518 , ZFMP_IN(const zfstring &, propertyName)
553 , ZFMP_IN(const zfstring &, eventName)
554 , ZFMP_IN(ZFObject *, owner)
555 , ZFMP_IN(const zfstring &, methodName)
561 , ZFMP_IN(zfidentity, eventId)
562 , ZFMP_IN(ZFObject *, owner)
563 , ZFMP_IN(const zfstring &, methodName)
565
566 // ============================================================
567 // init and dealloc
568protected:
570 virtual void objectOnInit(void);
572 virtual void objectOnDealloc(void);
574 virtual void objectOnDeallocPrepare(void);
575
576protected:
579
580 // ============================================================
581public:
613
614protected:
618 virtual void nativeImplView(
620 , 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:
886 , ZFMP_IN(const ZFUISize &, sizeHintOrig)
887 , ZFMP_IN(const ZFUISizeParam &, sizeParam)
908
909public:
910 void _ZFP_ZFUIView_notifyLayoutView(ZF_IN const ZFUIRect &viewFrame);
911protected:
915 virtual void layoutOnLayoutRequest(void);
919 virtual inline void layoutOnMeasurePrepare(
920 ZF_IN const ZFUISize &sizeHintOrig
921 , ZF_IN const ZFUISizeParam &sizeParam
922 ) {
923 }
924
946 virtual inline void layoutOnMeasure(
947 ZF_OUT ZFUISize &ret
948 , ZF_IN const ZFUISize &sizeHint
949 , ZF_IN const ZFUISizeParam &sizeParam
950 ) {
951 }
952
953 virtual inline void layoutOnMeasureFinish(
954 ZF_IN_OUT ZFUISize &measuredSize
955 , ZF_IN const ZFUISize &sizeHint
956 , ZF_IN const ZFUISizeParam &sizeParam
957 ) {
958 }
959
960 virtual inline void layoutOnLayoutPrepare(ZF_IN const ZFUIRect &bounds) {
961 }
962
970 virtual void layoutOnLayout(ZF_IN const ZFUIRect &bounds);
972 virtual inline void layoutOnLayoutFinish(ZF_IN const ZFUIRect &bounds) {
973 }
974
976 }
977
978 // ============================================================
979 // children management
980public:
985 , ZFMP_IN(const zfstring &, viewId)
986 , ZFMP_IN_OPT(zfbool, findRecursively, zftrue)
987 , ZFMP_IN_OPT(zfbool, includeInternalViews, zffalse)
993 , ZFMP_IN(const ZFClass *, cls)
994 , ZFMP_IN_OPT(zfbool, findRecursively, zftrue)
995 , ZFMP_IN_OPT(zfbool, includeInternalViews, zffalse)
1009 , ZFMP_IN(const ZFListener &, impl)
1010 , ZFMP_IN_OPT(zfbool, findRecursively, zftrue)
1011 , ZFMP_IN_OPT(zfbool, includeInternalViews, zffalse)
1013
1014public:
1022 ZF_IN const zfany &view
1023 , ZF_IN_OPT zfindex atIndex = zfindexMax()
1024 );
1029 , ZFMP_IN(ZFUIView *, view)
1035 , ZFMP_IN(zfindex, index)
1049 , ZFMP_IN(zfindex, fromIndex)
1050 , ZFMP_IN(zfindex, toIndexOrIndexMax)
1056 , ZFMP_IN(ZFUIView *, child)
1057 , ZFMP_IN(zfindex, toIndexOrIndexMax)
1064 , ZFMP_IN(zfindex, atIndex)
1065 , ZFMP_IN(ZFUIView *, toReplace)
1075 , ZFMP_IN(zfindex, index)
1081 , ZFMP_IN(ZFUIView *, view)
1087
1101
1102 // ============================================================
1103 // events
1104protected:
1106 virtual void viewTreeInWindowOnUpdate(void);
1108 virtual void viewTreeVisibleOnUpdate(void);
1110 virtual void viewChildOnUpdate(void);
1112 virtual void viewChildOnAdd(
1113 ZF_IN ZFUIView *child
1114 , ZF_IN ZFUIViewChildLayer childLayer
1115 );
1117 virtual void viewChildOnRemove(
1118 ZF_IN ZFUIView *child
1119 , ZF_IN ZFUIViewChildLayer childLayer
1120 );
1122 virtual void viewOnAddToParent(ZF_IN ZFUIView *parent);
1124 virtual void viewOnRemoveFromParent(ZF_IN ZFUIView *parent);
1125
1126 // ============================================================
1127 // internal views
1128public:
1131 , ZFMP_IN(ZFUIView *, view)
1132 , ZFMP_IN_OPT(zfindex, atIndex, zfindexMax())
1136 , ZFMP_IN(ZFUIView *, view)
1140
1141public:
1156 , ZFMP_IN(ZFUIView *, view)
1157 , ZFMP_IN_OPT(zfindex, atIndex, zfindexMax())
1161 , ZFMP_IN(ZFUIView *, view)
1167
1168public:
1171 , ZFMP_IN(ZFUIView *, view)
1172 , ZFMP_IN_OPT(zfindex, atIndex, zfindexMax())
1176 , ZFMP_IN(ZFUIView *, view)
1180
1181 // ============================================================
1182 // other internal view logic
1183public:
1196 , ZFMP_IN(const zfstring &, tag)
1200 , ZFMP_IN(const zfstring &, tag)
1210
1211protected:
1216 virtual inline zfbool internalViewShouldLayout(ZF_IN ZFUIView *internalView) {
1217 return zftrue;
1218 }
1219
1220 virtual void internalViewOnLayout(ZF_IN const ZFUIRect &bounds);
1221
1222 // ============================================================
1223 // UI events
1224public:
1229 , ZFMP_IN(ZFUIEvent *, event)
1231protected:
1239 virtual void viewEventOnEvent(ZF_IN ZFUIEvent *event);
1240
1241 // ============================================================
1242 // events
1243protected:
1256 virtual void viewEventOnMouseEvent(ZF_IN ZFUIMouseEvent *mouseEvent);
1257
1270 virtual void viewEventOnKeyEvent(ZF_IN ZFUIKeyEvent *keyEvent);
1278
1289 virtual void viewEventOnWheelEvent(ZF_IN ZFUIWheelEvent *wheelEvent);
1290
1291 // ============================================================
1292 // utils
1293public:
1311
1312 // ============================================================
1313 // override
1314protected:
1319 virtual void styleableOnCopyFrom(ZF_IN ZFObject *anotherStyleable);
1320
1321protected:
1323 virtual void observerOnAdd(ZF_IN zfidentity eventId);
1325 virtual void observerOnRemove(ZF_IN zfidentity eventId);
1326
1327private:
1328 _ZFP_ZFUIViewPrivate *d;
1329 friend zfclassFwd _ZFP_ZFUIViewPrivate;
1330};
1331
1333#endif // #ifndef _ZFI_ZFUIView_h_
1334
#define ZF_OUT_OPT
dummy macro that shows the param used as optional output
Definition ZFCoreTypeDef_ClassType.h:210
#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:198
#define ZF_IN_OPT
dummy macro that shows the param used as optional input
Definition ZFCoreTypeDef_ClassType.h:202
#define ZF_OUT
dummy macro that shows the param used as required output
Definition ZFCoreTypeDef_ClassType.h:206
#define ZF_IN_OUT
dummy macro that shows the param used as required input and output
Definition ZFCoreTypeDef_ClassType.h:214
#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:692
#define ZFMETHOD_DECLARE_STATIC_0(ReturnType, MethodName)
see ZFMethod
Definition ZFMethodDeclare.h:707
#define ZFMETHOD_DECLARE_2(ReturnType, MethodName, ZFMP_0, ZFMP_1)
see ZFMethod
Definition ZFMethodDeclare.h:1024
#define ZFMETHOD_DECLARE_3(ReturnType, MethodName, ZFMP_0, ZFMP_1, ZFMP_2)
see ZFMethod
Definition ZFMethodDeclare.h:1205
#define ZFMETHOD_DECLARE_1(ReturnType, MethodName, ZFMP_0)
see ZFMethod
Definition ZFMethodDeclare.h:853
#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:122
#define ZFEVENT(YourEvent)
see ZFObject::observerNotify
Definition ZFObjectObserver.h:312
#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:1192
ZFUIColor const & ZFUIColorZero(void)
zero color
Definition ZFUITypeDef.h:1196
void ZFUIRectApplyMarginT(ZFUIRect &ret, const ZFUIRect &rect, const ZFUIMargin &margin)
return a rect excluding the margin
Definition ZFUITypeDef.h:958
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:297
listener as ZFCallback, mostly used by ZFObject::observerNotify
Definition ZFObjectObserver.h:30
void observerNotify(zfidentity eventId, const ZFArgs &zfargs=ZFArgs())
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:646
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 showByWindow()
util to show view in a new ZFUIWindow
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:309
virtual zffloat & alpha()
view's alpha, 1 by default
Definition ZFUIView.h:294
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:418
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:972
virtual zffloat & rotateX()
see transformAvailable
Definition ZFUIView.h:480
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:324
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:626
virtual zfbool focused()
whether the view currently focused
virtual zfbool serializableOnCheckNeedSerializeChildren(void)
whether we should serialize all children
Definition ZFUIView.h:253
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:268
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 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:302
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:470
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:486
virtual zffloat & translateY()
see transformAvailable
Definition ZFUIView.h:463
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:919
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:424
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:483
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:460
virtual const ZFUISize & layoutMeasuredSize()
get measured size, invalid if not measured
virtual void layoutOnLayoutPrepare(const ZFUIRect &bounds)
see E_ViewLayoutOnLayoutPrepare
Definition ZFUIView.h:960
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:1216
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 void layoutChildOffsetOnUpdate(ZFUIPoint &ret)
see layoutChildOffset
Definition ZFUIView.h:975
virtual zfbool & focusObtainWhenClick()
whether try to obtain focus when clicked down, true by default
Definition ZFUIView.h:335
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:953
virtual zfanyT< ZFUIView > parent()
parent view or null if none
virtual zffloat UIScaleInherited()
see UIScale
virtual zffloat & translateZ()
see transformAvailable
Definition ZFUIView.h:466
virtual void hideByWindow()
see showByWindow
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:637
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:273
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:330
virtual ZFUISize & viewSizeMin()
min size, ZFUISizeZero by default
Definition ZFUIView.h:413
virtual zffloat centerY()
see viewFrame
virtual zffloat & scaleY()
see transformAvailable
Definition ZFUIView.h:473
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:946
virtual void viewOnAddToParent(ZFUIView *parent)
see E_ViewOnAddToParent
virtual zffloat & scaleZ()
see transformAvailable
Definition ZFUIView.h:476
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