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 (ZFUISysWindow *ownerSysWindow=(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 managerUIBlocked (zfbool value)
 enable or disable manager's user interaction
 
virtual zfbool managerUIBlocked ()
 see managerUIBlocked
 
virtual zfindex managerUIBlockedCount ()
 see managerUIBlocked
 
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
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_ManagerUIBlockedOnUpdate (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 managerUIBlockedOnUpdate (void)
 see E_ManagerUIBlockedOnUpdate
 
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()

static zfidentity ZFUIPageManager::E_ManagerOnCreate ( void )
static

see ZFObject::observerNotify

called when page manager created

◆ E_ManagerOnResume()

static zfidentity ZFUIPageManager::E_ManagerOnResume ( void )
static

see ZFObject::observerNotify

called when page manager resumed

◆ E_ManagerOnPause()

static zfidentity ZFUIPageManager::E_ManagerOnPause ( void )
static

see ZFObject::observerNotify

called when page manager resumed

◆ E_ManagerOnDestroy()

static zfidentity ZFUIPageManager::E_ManagerOnDestroy ( void )
static

see ZFObject::observerNotify

called when page manager destroyed

◆ E_ManagerOrientationOnUpdate()

static zfidentity ZFUIPageManager::E_ManagerOrientationOnUpdate ( void )
static

see ZFObject::observerNotify

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

◆ E_ManagerUIBlockedOnUpdate()

static zfidentity ZFUIPageManager::E_ManagerUIBlockedOnUpdate ( void )
static

◆ E_PageOnCreate()

static zfidentity ZFUIPageManager::E_PageOnCreate ( void )
static

◆ E_PageOnResume()

static zfidentity ZFUIPageManager::E_PageOnResume ( void )
static

◆ E_PageOnPause()

static zfidentity ZFUIPageManager::E_PageOnPause ( void )
static

◆ E_PageOnDestroy()

static zfidentity ZFUIPageManager::E_PageOnDestroy ( void )
static

◆ E_PageOrientationOnUpdate()

static zfidentity ZFUIPageManager::E_PageOrientationOnUpdate ( void )
static

◆ E_PageAniOnPrepare()

static zfidentity ZFUIPageManager::E_PageAniOnPrepare ( void )
static

◆ E_PageAniOnStart()

static zfidentity ZFUIPageManager::E_PageAniOnStart ( void )
static

◆ E_PageAniOnStop()

static 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 ( ZFUISysWindow * ownerSysWindow = (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

◆ managerUIBlocked()

virtual void ZFUIPageManager::managerUIBlocked ( 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 = zfAlloc(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: