ZFFramework
Loading...
Searching...
No Matches
ZFUIPageManager Class Reference

see ZFUIPage More...

#include <ZFUIPage.h>

Inheritance diagram for ZFUIPageManager:
ZFObject

Public Types

enum  
Public Types inherited from ZFObject
enum  

Public Member Functions

virtual const ZFClassclassData (void)
 get instance's class info
virtual void managerCreate ()
 manually create the manager
virtual void managerResume ()
 see managerCreate
virtual void managerPause ()
 see managerCreate
virtual void managerDestroy ()
 see managerCreate
virtual zfbool managerCreated ()
 true if managerCreate called
virtual zfbool managerResumed ()
 true if managerResume called
virtual zfbool isLandscape ()
 whether the manager is considered landscape
virtual ZFUIWindowmanagerCreateForWindow (ZFUIRootWindow *rootWindow=(zft_zfnull))
 util method to create manager and a ZFUIWindow to manage life cycle for most case
virtual ZFUIWindowmanagerOwnerWindow ()
 valid only for managerCreateForWindow
virtual ZFUIViewmanagerContainer ()
 container view of this page manager
virtual ZFUIViewpageContainer ()
 see managerContainer
virtual const ZFClass *& managerContainerClass ()
 see managerContainer
virtual void managerContainerClass (const ZFClass *const &propertyValue)
 see managerContainerClass
virtual const ZFClass *& pageContainerClass ()
 see managerContainer
virtual void pageContainerClass (const ZFClass *const &propertyValue)
 see pageContainerClass
virtual void managerUIBlock (zfbool value)
 enable or disable manager's user interaction
virtual zfbool managerUIBlock ()
 see managerUIBlock
virtual zfindex managerUIBlockCount ()
 see managerUIBlock
virtual zfindex pageCount ()
 page count of this page manager
virtual ZFCoreArray< ZFUIPage * > & pageList ()
 directly access the page list
virtual zfanyT< ZFUIPagepageAt (zfindex index)
 page at index
virtual zfanyT< ZFUIPagecurrentPage ()
 return foreground page or null if no page
virtual zfindex pageIndex (ZFUIPage *page)
 find page index
virtual ZFCoreArray< ZFUIPage * > pageListForGroupId (const zfstring &pageGroupId)
 find page by ZFUIPage::pageGroupId
virtual void pageAniOverride (ZFAnimation *resumeAni, ZFAnimation *pauseAni, zfbool pauseAniHigherPriority=(_ZFT_t_zffalse))
 override animation for next page management, can be called more than once to override sequently, can not undo
virtual void pageCreate (ZFUIPage *page, const ZFListener &pageResultCallback=(zft_zfnull))
 create and resume page
virtual void pageReplace (ZFUIPage *page)
 util to destroy current and create new page
virtual void pageResume (ZFUIPage *page)
 resume page
virtual void pageResume (zfindex pageIndex)
 resume page
virtual void pageResumeForGroupId (const zfstring &pageGroupId)
 resume multiple page for group id
virtual void pageDestroy (ZFUIPage *page)
 destroy page
virtual void pageMoveBegin ()
 advanced page stack management
virtual void pageMoveEnd ()
 see pageMoveBegin
virtual void pageRequest (const ZFListener &callback)
 add a page request to queue, used to ensure execute order when mixed with page management (pageCreate, pageDestroy, etc)
virtual void pageRequestCancel (const ZFListener &callback)
 remove callback for pageRequest
virtual zfindex pageRequestCount ()
 return count of request in queue
Public Member Functions inherited from ZFObject
const ZFClassclassDynamic (void)
 dynamic class of this object, see ZFClassDynamicRegister
zfindex objectRetainCount (void)
 return the object's retain count
void objectInfoOfInstanceT (zfstring &ret)
 see objectInfoOfInstance
zfstring objectInfoOfInstance (void)
 return a short string describe the object instance
void objectInfoT (zfstring &ret)
 see objectInfo
zfstring objectInfo (void)
 return object info
zfidentity objectHash (void)
 get hash of this object
ZFCompareResult objectCompare (ZFObject *anotherObj)
 compare with anotherObj
ZFCompareResult objectCompareValue (ZFObject *anotherObj)
 explicitly compare object by logical value, see objectCompare
virtual zfauto invoke (const zfstring &methodName)
 util method to perform ZFDI_invoke, do nothing if fail
virtual zfauto invoke (const zfstring &methodName, ZFObject *param0, ZFObject *param1=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param2=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param3=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param4=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param5=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param6=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param7=((ZFObject *const &) _ZFP_ZFMP_DEF))
 util method to perform ZFDI_invoke, do nothing if fail
virtual zfbool invokeT (zfauto &ret, zfstring *errorHint, const zfstring &methodName, ZFObject *param0=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param1=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param2=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param3=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param4=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param5=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param6=((ZFObject *const &) _ZFP_ZFMP_DEF), ZFObject *param7=((ZFObject *const &) _ZFP_ZFMP_DEF))
 util method to perform ZFDI_invoke, do nothing if fail
virtual zfauto invokeDetail (const zfstring &methodName, const ZFCoreArray< zfauto > &params, zfbool *success=zft_zfnull, zfstring *errorHint=zft_zfnull)
 util method to perform ZFDI_invoke, do nothing if fail
zfbool objectTagExist (void)
 see objectTag, true if this object has tag, and tag can be checked by objectTagGetAllKeyValue
void objectTag (const zfstring &key, ZFObject *tag)
 used to hold a object for app's use, auto retained
zfany objectTag (const zfstring &key)
 see objectTag
void objectTagGetAllKeyValue (ZFCoreArray< zfstring > &allKey, ZFCoreArray< zfauto > &allValue)
 get all key value
void objectTagRemove (const zfstring &key)
 remove tag, same as set tag to null
zfauto objectTagRemoveAndGet (const zfstring &key)
 remove tag, return removed tag or null if not exist
void objectTagRemoveAll (void)
 remove all tag
void observerAdd (zfidentity eventId, const ZFListener &observer, ZFLevel observerLevel=ZFLevelAppNormal)
 see observerNotify
void observerAddForOnce (zfidentity eventId, const ZFListener &observer, ZFLevel observerLevel=ZFLevelAppNormal)
 see observerNotify
void observerRemove (zfidentity eventId, const ZFListener &callback)
 see observerNotify
void observerRemoveAll (zfidentity eventId)
 see observerNotify
void observerRemoveAll (void)
 see observerNotify
zfbool observerHasAdd (void)
 true if any observer has been added
zfbool observerHasAdd (zfidentity eventId)
 true if any observer with eventId has been added
void observerNotify (zfidentity eventId, ZFObject *param0=zft_zfnull, ZFObject *param1=zft_zfnull)
 notify the observer with eventId
void observerNotifyWithSender (ZFObject *customSender, zfidentity eventId, ZFObject *param0=zft_zfnull, ZFObject *param1=zft_zfnull)
 see observerNotify
void observerNotifyReversely (zfidentity eventId, ZFObject *param0=zft_zfnull, ZFObject *param1=zft_zfnull)
 see observerNotify
void observerNotifyReverselyWithSender (ZFObject *customSender, zfidentity eventId, ZFObject *param0=zft_zfnull, ZFObject *param1=zft_zfnull)
 see observerNotify
ZFObserverobserverHolder (void)
 access the internal observer holder
void on (const zfstring &eventName, const ZFListener &observer, ZFLevel observerLevel=ZFLevelAppNormal)
 util to observerAdd
void on (zfidentity eventId, const ZFListener &observer, ZFLevel observerLevel=ZFLevelAppNormal)
 util to observerAdd
void onInit (const ZFListener &impl)
 util for script to achieve chained call
void onDealloc (const ZFListener &impl)
 util for script to achieve chained call
zfbool objectInstanceStateCheck (ZFObjectInstanceState state)
 object instance's state
zfbool objectInitRunning (void)
 util method to check whether ZFObjectInstanceStateOnInit or ZFObjectInstanceStateOnInitFinish running
zfbool objectDeallocRunning (void)
 util method to check whether ZFObjectInstanceStateOnDeallocPrepare or ZFObjectInstanceStateOnDealloc running
virtual zfbool objectIsInternal (void)
 whether this object is internal object or its class is ZFClass::classIsInternal
virtual zfbool objectIsInternalPrivate (void)
 whether this object is internal private object or its class is ZFClass::classIsInternalPrivate

Static Public Member Functions

static const ZFClassClassData (void)
 get class info
static zfidentity E_ManagerOnCreate (void)
 see ZFObject::observerNotify
static zfidentity E_ManagerOnResume (void)
 see ZFObject::observerNotify
static zfidentity E_ManagerOnPause (void)
 see ZFObject::observerNotify
static zfidentity E_ManagerOnDestroy (void)
 see ZFObject::observerNotify
static zfidentity E_ManagerOrientationOnUpdate (void)
 see ZFObject::observerNotify
static zfidentity E_ManagerUIBlockOnUpdate (void)
 see ZFObject::observerNotify
static zfidentity E_PageOnCreate (void)
 see ZFObject::observerNotify, ZFUIPage::E_PageOnCreate
static zfidentity E_PageOnResume (void)
 see ZFObject::observerNotify, ZFUIPage::E_PageOnResume
static zfidentity E_PageOnPause (void)
 see ZFObject::observerNotify, ZFUIPage::E_PageOnPause
static zfidentity E_PageOnDestroy (void)
 see ZFObject::observerNotify, ZFUIPage::E_PageOnDestroy
static zfidentity E_PageOrientationOnUpdate (void)
 see ZFObject::observerNotify, ZFUIPage::E_PageOrientationOnUpdate
static zfidentity E_PageAniOnPrepare (void)
 see ZFObject::observerNotify, ZFUIPage::E_PageAniOnPrepare
static zfidentity E_PageAniOnStart (void)
 see ZFObject::observerNotify, ZFUIPage::E_PageAniOnStart
static zfidentity E_PageAniOnStop (void)
 see ZFObject::observerNotify, ZFUIPage::E_PageAniOnStop
Static Public Member Functions inherited from ZFObject
static const ZFClassClassData (void)
 get class info
static zfidentity E_ObjectBeforeAlloc (void)
 see ZFObject::observerNotify
static zfidentity E_ObjectAfterAlloc (void)
 see ZFObject::observerNotify
static zfidentity E_ObjectBeforeDealloc (void)
 see ZFObject::observerNotify
static zfidentity E_ObjectPropertyValueOnUpdate (void)
 see ZFObject::observerNotify
static zfidentity E_ObjectPropertyValueOnReset (void)
 see ZFObject::observerNotify

Protected Types

typedef ZFObject zfsuper
 class ref to super
typedef ZFUIPageManager zfself
 class ref to self
Protected Types inherited from ZFObject
typedef _ZFP_Obj_Base zfsuper
 class ref to super
typedef ZFObject zfself
 class ref to self

Protected Member Functions

virtual void managerOnCreate (void)
 for subclass to do actual works
virtual void managerOnResume (void)
 see managerOnCreate
virtual void managerOnPause (void)
 see managerOnCreate
virtual void managerOnDestroy (void)
 see managerOnCreate
virtual void managerOrientationOnUpdate (void)
 see E_ManagerOrientationOnUpdate
virtual void managerUIBlockOnUpdate (void)
 see E_ManagerUIBlockOnUpdate
virtual void objectOnInit (void)
 override this to init your object
virtual void objectOnDealloc (void)
 override this to destroy your object
Protected Member Functions inherited from ZFObject
virtual void objectInfoImpl (zfstring &ret)
 see objectInfo
virtual void objectInfoImplAppend (zfstring &ret)
 see objectInfo
virtual zfidentity objectHashImpl (void)
 see objectHash
virtual ZFCompareResult objectCompareImpl (ZFObject *anotherObj)
 see objectCompare
virtual ZFCompareResult objectCompareValueImpl (ZFObject *anotherObj)
 see objectCompareValue
virtual void observerOnAdd (zfidentity eventId)
 called when add first observer
virtual void observerOnRemove (zfidentity eventId)
 called when remove last observer
virtual void observerOnEvent (const ZFArgs &zfargs)
 notified when observerNotify
virtual void objectOnInitFinish (void)
 called after objectOnInit, safe to call virtual functions here
virtual void objectOnDeallocPrepare (void)
 called before objectOnDealloc, safe to call virtual functions here
virtual void objectOnRetain (void)
 called to retain object
virtual void objectOnRelease (void)
 called to release object
virtual void objectPropertyValueOnUpdate (const ZFProperty *property, const void *oldValue)
 see E_ObjectPropertyValueOnUpdate
virtual void objectPropertyValueOnReset (const ZFProperty *property)
 see E_ObjectPropertyValueOnReset

Detailed Description

Member Function Documentation

◆ classData()

virtual const ZFClass * ZFUIPageManager::classData ( void )
inlinevirtual

get instance's class info

Reimplemented from ZFObject.

◆ E_ManagerOnCreate()

zfidentity ZFUIPageManager::E_ManagerOnCreate ( void )
static

see ZFObject::observerNotify

called when page manager created

◆ E_ManagerOnResume()

zfidentity ZFUIPageManager::E_ManagerOnResume ( void )
static

see ZFObject::observerNotify

called when page manager resumed

◆ E_ManagerOnPause()

zfidentity ZFUIPageManager::E_ManagerOnPause ( void )
static

see ZFObject::observerNotify

called when page manager resumed

◆ E_ManagerOnDestroy()

zfidentity ZFUIPageManager::E_ManagerOnDestroy ( void )
static

see ZFObject::observerNotify

called when page manager destroyed

◆ E_ManagerOrientationOnUpdate()

zfidentity ZFUIPageManager::E_ManagerOrientationOnUpdate ( void )
static

see ZFObject::observerNotify

called when first time to layout page view and each time isLandscape really changed

◆ E_ManagerUIBlockOnUpdate()

zfidentity ZFUIPageManager::E_ManagerUIBlockOnUpdate ( void )
static

◆ E_PageOnCreate()

zfidentity ZFUIPageManager::E_PageOnCreate ( void )
static

◆ E_PageOnResume()

zfidentity ZFUIPageManager::E_PageOnResume ( void )
static

◆ E_PageOnPause()

zfidentity ZFUIPageManager::E_PageOnPause ( void )
static

◆ E_PageOnDestroy()

zfidentity ZFUIPageManager::E_PageOnDestroy ( void )
static

◆ E_PageOrientationOnUpdate()

zfidentity ZFUIPageManager::E_PageOrientationOnUpdate ( void )
static

◆ E_PageAniOnPrepare()

zfidentity ZFUIPageManager::E_PageAniOnPrepare ( void )
static

◆ E_PageAniOnStart()

zfidentity ZFUIPageManager::E_PageAniOnStart ( void )
static

◆ E_PageAniOnStop()

zfidentity ZFUIPageManager::E_PageAniOnStop ( void )
static

◆ managerCreate()

virtual void ZFUIPageManager::managerCreate ( )
virtual

manually create the manager

for most case, it's recommended to use managerCreateForWindow to create with a ZFUIWindow for short
if you want to embed page manager logic to other container, you may manually use these methods to manage the life cycle:

◆ managerOnCreate()

virtual void ZFUIPageManager::managerOnCreate ( void )
protectedvirtual

for subclass to do actual works

similar to ZFUIPage, you may implement your own page manager, by any of these methods:

◆ isLandscape()

virtual zfbool ZFUIPageManager::isLandscape ( )
virtual

whether the manager is considered landscape

manager is considered as landscape only if container view's width larger than height
note manager's landscape state is not always same as ZFUIPage::isLandscape

◆ managerCreateForWindow()

virtual ZFUIWindow * ZFUIPageManager::managerCreateForWindow ( ZFUIRootWindow * rootWindow = (zft_zfnull))
virtual

util method to create manager and a ZFUIWindow to manage life cycle for most case

this method would:

  1. create a ZFUIWindow
  2. attach managerContainer to the window
  3. automatically call managerCreate series according to window's life cycle
  4. when you want to destroy the manager, simply call managerDestroy

◆ managerContainer()

virtual ZFUIView * ZFUIPageManager::managerContainer ( )
virtual

container view of this page manager

view tree:

yourExtraView (title view for example)
page1.pageView
yourExtraView (bottom tab for example)
virtual ZFUIView * pageContainer()
see managerContainer
virtual ZFUIView * managerContainer()
container view of this page manager

the class of the container view can be changed by managerContainerClass/pageContainerClass, but must be set before base manager's managerOnCreate

◆ managerUIBlock()

virtual void ZFUIPageManager::managerUIBlock ( zfbool value)
virtual

enable or disable manager's user interaction

it's useful to disable user interaction when page is doing some heavy works, such as animating switching pages
this method can be embeded but must be paired, last time you call this method to restore enable state would finally restore enable state

◆ pageList()

virtual ZFCoreArray< ZFUIPage * > & ZFUIPageManager::pageList ( )
virtual

directly access the page list

you must not store the list for future use, since its content may change when resolving page request
you must not modify the list
you must not reorder the list, except when using with pageMoveBegin

◆ pageCreate()

virtual void ZFUIPageManager::pageCreate ( ZFUIPage * page,
const ZFListener & pageResultCallback = (zft_zfnull) )
virtual

create and resume page

the optional pageResultCallback would be called when page destroyed, sender would be the owner manager, and param0 would be the ZFUIPage::pageResult of the new page

◆ pageMoveBegin()

virtual void ZFUIPageManager::pageMoveBegin ( )
virtual

advanced page stack management

usage:

pm->pageMoveBegin();
pageList = pm->pageList();
... // change page stack order by modifying the pageList directly
pm->pageMoveEnd();
virtual ZFCoreArray< ZFUIPage * > & pageList()
directly access the page list

◆ objectOnInit()

virtual void ZFUIPageManager::objectOnInit ( void )
protectedvirtual

override this to init your object

subclass must call superclass's objectOnInit before any other code if override
you may also declare objectOnInit with params like this:

zfclass Parent : ... {
...
protected:
virtual void objectOnInit(void) {...};
};
zfclass Child : Parent {
protected:
// override all parent's objectOnInit is also required,
// because of function hiding of C++
virtual void objectOnInit(void) {
}
// custom init entry
virtual void objectOnInit(Params...) {
// your extra init steps
...
}
};
#define zfoverride
dummy macro shows that method override parent's method
Definition ZFCoreTypeDef_ClassType.h:58
#define zfclass
same as class, shows that this class is a ZFObject type
Definition ZFObjectClassTypeFwd.h:38
virtual void objectOnInit(void)
override this to init your object
virtual void objectOnInit(void)
override this to init your object
Warning
objectOnInit and objectOnDealloc is called as a virtual function, take good care of other virtual function call, use zfself::func() instead of this->func() if necessary, or use objectOnInitFinish/objectOnDeallocPrepare, or declare your own constructor with ZFOBJECT_DECLARE_WITH_CUSTOM_CTOR
Note
(ZFTAG_LIMITATION) due to limitations of C++, if your parent type declared objectOnInit with different params, and your child type want to override part of those objectOnInit, then your child type must also override all objectOnInit that parent declared, otherwise, some may be hidden
for objects that designed not to be allocated by user, you should use ZFOBJECT_PRIVATE_ALLOC, typically usage:
zfclass MyObject : zfextend ZFObject {
ZFOBJECT_DECLARE(MyObject, ZFObject)
ZFOBJECT_PRIVATE_ALLOC("should be created by MyObject::instanceForXxx only")
public:
static zfauto instanceForXxx(xxx) {
// can only be allocated by reflection
}
};
static void func(void) {
// MyObject *obj = zfobjAlloc(MyObject); // would compile error
zfauto obj = MyObject::instanceForXxx(xxx); // OK
}
#define zfextend
dummy macro shows class inherit from another
Definition ZFCoreTypeDef_ClassType.h:53
#define ZFOBJECT_DECLARE(ChildClass, SuperClass,...)
necessary for every class inherit from ZFObject
Definition ZFObjectDeclare.h:126
#define ZFOBJECT_PRIVATE_ALLOC(...)
mark this object can not be allocated directly
Definition ZFObjectDeclare.h:245
zfauto newInstance(void) const
make a new instance of ZFObject dynamically, which is described by ZFClass
static const ZFClass * ClassData(void)
get class info
Definition ZFUIPage.h:302
a ZFObject holder which would release content object automatically when destroyed
Definition zfautoFwd.h:34

Reimplemented from ZFObject.

◆ objectOnDealloc()

virtual void ZFUIPageManager::objectOnDealloc ( void )
protectedvirtual

override this to destroy your object

subclass must call superclass's objectOnDealloc after any other code if override
see objectOnInit for more info

Reimplemented from ZFObject.


The documentation for this class was generated from the following file: