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
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_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:79

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()

zfidentity ZFUIPage::E_PageOnCreate ( void )
static

see ZFObject::observerNotify

called when page created

◆ E_PageOnResume()

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()

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()

zfidentity ZFUIPage::E_PageOnDestroy ( void )
static

see ZFObject::observerNotify

called when page destroyed

◆ E_PageOrientationOnUpdate()

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()

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()

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()

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: