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

abstract page similar to Android's Activity More...

#include <ZFUIPage.h>

Inheritance diagram for ZFUIPage:
ZFObject

Public Types

enum  
 
- Public Types inherited from ZFObject
enum  
 

Public Member Functions

virtual const ZFClassclassData (void)
 get instance's class info
 
virtual zfanyT< ZFUIPageManagerpageManager (void)
 owner page manager
 
virtual ZFUIViewpageView ()
 the page's container view, ensured not null
 
virtual const ZFClass *& pageViewClass ()
 pageView's class, must set before base page's pageOnCreate
 
virtual void pageViewClass (const ZFClass *const &propertyValue)
 see pageViewClass
 
virtual zfstringpageGroupId ()
 page group id, see ZFUIPageManager::pageResumeForGroupId for more info
 
virtual void pageGroupId (zfstring const &propertyValue)
 see pageGroupId
 
virtual zfany const & pageResult ()
 store page result, passed to pageResultCallback of pageCreate
 
virtual void pageResult (zfany const &propertyValue)
 see pageResult
 
virtual zfbool pageCreated ()
 true if page created (true after pageOnCreate called)
 
virtual zfbool pageResumed ()
 true if page resumed (true after pageOnResume called)
 
virtual void pageCreate (ZFUIPage *page, const ZFListener &pageResultCallback=(zft_zfnull))
 util to ZFUIPageManager::pageCreate
 
virtual void pageReplace (ZFUIPage *page)
 util to ZFUIPageManager::pageReplace
 
virtual void pageResume ()
 util to ZFUIPageManager::pageResume
 
virtual void pageDestroy ()
 util to ZFUIPageManager::pageDestroy
 
virtual zfbool isLandscape ()
 whether the page is considered landscape
 
virtual zfintpageAniPriority ()
 page priority to detect for pageAni, see pageAniOnPrepare for more info
 
virtual void pageAniPriority (zfint const &propertyValue)
 see pageAniPriority
 
virtual void pageAni (ZFAnimation *pageAni)
 see pageAniOnPrepare
 
virtual ZFAnimationpageAni ()
 see pageAniOnPrepare
 
- 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_PageOnCreate (void)
 see ZFObject::observerNotify
 
static zfidentity E_PageOnResume (void)
 see ZFObject::observerNotify
 
static zfidentity E_PageOnPause (void)
 see ZFObject::observerNotify
 
static zfidentity E_PageOnDestroy (void)
 see ZFObject::observerNotify
 
static zfidentity E_PageOrientationOnUpdate (void)
 see ZFObject::observerNotify
 
static zfidentity E_PageAniOnPrepare (void)
 see ZFObject::observerNotify
 
static zfidentity E_PageAniOnStart (void)
 see ZFObject::observerNotify
 
static zfidentity E_PageAniOnStop (void)
 see ZFObject::observerNotify
 
- 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 ZFUIPage 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 pageOnCreate (void)
 see ZFUIPage
 
virtual void pageOnResume (ZFUIPageResumeReason reason)
 see ZFUIPage
 
virtual void pageOnPause (ZFUIPagePauseReason reason)
 see ZFUIPage
 
virtual void pageOnDestroy (void)
 see ZFUIPage
 
virtual void pageOrientationOnUpdate (void)
 see E_PageOrientationOnUpdate
 
virtual void pageAniOnPrepare (ZFEnum *resumeOrPauseReason, ZFUIPage *siblingPage)
 called to prepare page animation
 
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 objectOnInit (void)
 override this to init your object
 
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
 

Friends

class ZFUIPageManager
 

Detailed Description

abstract page similar to Android's Activity

a page is an abstract object with those life cycle:

and a ZFUIPageManager is the holder to manage multiple pages
typical usage:

pm->observerAdd(ZFUIPageManager::E_ManagerOnCreate, myPMCreateCallback);
pm->managerCreateForWindow();
ZFUIPageManager::instance(pm);
ZFUIPageManager::instance()->pageCreate(page1);
...
zfobj<ZFUIPage> page2;
page2->observerAdd(ZFUIPage::E_PageOnCreate(), myCreateCallback);
ZFUIPageManager::instance()->pageCreate(page2);
...
page1->pageDestroy();
void observerAdd(zfidentity eventId, const ZFListener &observer, ZFLevel observerLevel=ZFLevelAppNormal)
see observerNotify
static zfidentity E_PageOnCreate(void)
see ZFObject::observerNotify
static zfidentity E_ManagerOnCreate(void)
see ZFObject::observerNotify
util class to alloc and hold ZFObject type
Definition ZFObjectAutoPtr.h:157

at most one page would being resumed, when new page created, the old one would be paused to background, with a page switch animation implemented by pageAniOnPrepare

to implement your own page, by any of these methods:

Member Function Documentation

◆ classData()

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

get instance's class info

Reimplemented from ZFObject.

◆ E_PageOnCreate()

static zfidentity ZFUIPage::E_PageOnCreate ( void )
static

see ZFObject::observerNotify

called when page created

◆ E_PageOnResume()

static zfidentity ZFUIPage::E_PageOnResume ( void )
static

see ZFObject::observerNotify

called when page resumed, param0 is ZFUIPageResumeReason, param1 is the sibling pause page or null

◆ E_PageOnPause()

static zfidentity ZFUIPage::E_PageOnPause ( void )
static

see ZFObject::observerNotify

called when page resumed, param0 is ZFUIPagePauseReason, param1 is the sibling resume page or null

◆ E_PageOnDestroy()

static zfidentity ZFUIPage::E_PageOnDestroy ( void )
static

see ZFObject::observerNotify

called when page destroyed

◆ E_PageOrientationOnUpdate()

static zfidentity ZFUIPage::E_PageOrientationOnUpdate ( void )
static

see ZFObject::observerNotify

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

◆ E_PageAniOnPrepare()

static zfidentity ZFUIPage::E_PageAniOnPrepare ( void )
static

see ZFObject::observerNotify

called when this page resume or pause (only called to page who has higher pageAniPriority), to prepare pageAni for this page and sibling page, param0 is the ZFUIPageResumeReason or ZFUIPagePauseReason, param1 is the sibling page
see pageAniOnPrepare for more info

◆ E_PageAniOnStart()

static zfidentity ZFUIPage::E_PageAniOnStart ( void )
static

see ZFObject::observerNotify

called when page ani start, called once each for pause and resume page, even if no actual animation to start, param0 is the ZFUIPagePauseReason/ZFUIPageResumeReason

◆ E_PageAniOnStop()

static zfidentity ZFUIPage::E_PageAniOnStop ( void )
static

see ZFObject::observerNotify

called when page ani start, called once each for pause and resume page, even if no actual animation to start, param0 is the ZFUIPagePauseReason/ZFUIPageResumeReason

◆ pageCreate()

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

util to ZFUIPageManager::pageCreate

the optional pageResultCallback would be called when page destroyed, sender would be the owner page calling pageCreate, and param0 would be the pageResult of the new page

◆ isLandscape()

virtual zfbool ZFUIPage::isLandscape ( )
virtual

whether the page is considered landscape

page is considered as landscape only if page view's width larger than height

◆ pageAniOnPrepare()

virtual void ZFUIPage::pageAniOnPrepare ( ZFEnum * resumeOrPauseReason,
ZFUIPage * siblingPage )
inlineprotectedvirtual

called to prepare page animation

when switch pages, we would perform animations automatically:

  1. detect page priority by pageAniPriority
  2. pageWithHighPriority->pageAniOnPrepare(xxx);

page with high priority has the chance to setup animations for both itself and its sibling page, and store the result animation to pageAni and siblingPage->pageAni()

◆ objectOnDealloc()

virtual void ZFUIPage::objectOnDealloc ( void )
inlineprotectedvirtual

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: