ZFFramework
 
Loading...
Searching...
No Matches
ZFProtocolZFUIViewFocus.h
Go to the documentation of this file.
1
5
6#ifndef _ZFI_ZFProtocolZFUIViewFocus_h_
7#define _ZFI_ZFProtocolZFUIViewFocus_h_
8
9#include "ZFCore/ZFProtocol.h"
10#include "ZFUIKit/ZFUIView.h"
12
18public:
22 virtual void focusable(
23 ZF_IN ZFUIView *view
33 virtual ZFUIView *focusFind(ZF_IN ZFUIView *view) {
34 if(view->focused()) {
35 return view;
36 }
37 ZFUIView *ret = zfnull;
38 ZFCoreArray<zfautoT<ZFUIView> > children = view->childArray();
39 for(zfindex i = 0; i < children.count(); ++i) {
40 ret = this->focusFind(children[i]);
41 if(ret != zfnull) {
42 return ret;
43 }
44 }
45 children = view->internalFgViewArray();
46 for(zfindex i = 0; i < children.count(); ++i) {
47 ret = this->focusFind(children[i]);
48 if(ret != zfnull) {
49 return ret;
50 }
51 }
52 children = view->internalBgViewArray();
53 for(zfindex i = 0; i < children.count(); ++i) {
54 ret = this->focusFind(children[i]);
55 if(ret != zfnull) {
56 return ret;
57 }
58 }
59 children = view->internalImplViewArray();
60 for(zfindex i = 0; i < children.count(); ++i) {
61 ret = this->focusFind(children[i]);
62 if(ret != zfnull) {
63 return ret;
64 }
65 }
66 return zfnull;
67 }
68
71 virtual void focusRequest(
72 ZF_IN ZFUIView *view
73 , ZF_IN zfbool focus
75
76 // ============================================================
77 // callbacks that implementations must notify
78public:
83 view->_ZFP_ZFUIView_focusOnUpdate();
84 }
85ZFPROTOCOL_INTERFACE_END(ZFUIViewFocus)
86
87
91 ZFPROTOCOL_INTERFACE_CLASS(ZFUIViewFocus) *impl = ZFPROTOCOL_TRY_ACCESS(ZFUIViewFocus);
92 if(impl != zfnull) {
93 impl->notifyViewFocusUpdate(view);
94 }
95}
96
98#endif // #ifndef _ZFI_ZFProtocolZFUIViewFocus_h_
99
#define zffinal
dummy macro shows that a method or class is designed must not to be overrided
Definition ZFCoreTypeDef_ClassType.h:63
#define zfpurevirtual
dummy macro shows that a method is pure virtual method
Definition ZFCoreTypeDef_ClassType.h:68
#define ZF_IN
dummy macro that shows the param used as required input
Definition ZFCoreTypeDef_ClassType.h:180
_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 zfnull
same as NULL, defined for future use
Definition ZFCoreTypeDef_CoreType.h:88
#define ZF_NAMESPACE_GLOBAL_BEGIN
begin namespace ZFFramework
Definition ZFNamespace.h:97
#define ZF_NAMESPACE_GLOBAL_END
end namespace ZFFramework
Definition ZFNamespace.h:98
protocol definitions for ZFFramework
#define ZFPROTOCOL_TRY_ACCESS(ModuleName)
access the protocol implementation
Definition ZFProtocol.h:461
#define ZFPROTOCOL_INTERFACE_OPTIONAL
macro to show that the protocol is optional
Definition ZFProtocol.h:420
#define ZFPROTOCOL_INTERFACE_END(ModuleName)
for more information, please refer to ZFPROTOCOL_INTERFACE_BEGIN
Definition ZFProtocol.h:414
#define ZFPROTOCOL_INTERFACE_CLASS(ModuleName)
access the class name of ZFProtocol for ModuleName
Definition ZFProtocol.h:210
#define ZFPROTOCOL_INTERFACE_BEGIN(ZFLIB_, ModuleName)
declare a protocol interface for ZFFramework
Definition ZFProtocol.h:408
void ZFProtocolZFUIViewFocus_notifyViewFocusUpdate(ZFUIView *view)
convenient method to call notifyViewFocusUpdate of optional protocol ZFUIViewFocus
Definition ZFProtocolZFUIViewFocus.h:90
#define ZFLIB_ZFUIKit
used to export symbols
Definition ZFUIKitDef.h:16
base class of all UI views
light weight array
Definition ZFCoreArray.h:331
virtual zfindex count(void) const
element count of this array
Definition ZFCoreArray.h:920
void notifyViewFocusUpdate(ZFUIView *view)
implementations must notify when view's focus state changed (both obtain or resign)
Definition ZFProtocolZFUIViewFocus.h:82
virtual zfbool focused(ZFUIView *view)=0
see ZFUIView::focused
virtual void focusRequest(ZFUIView *view, zfbool focus)=0
see ZFUIView::focusRequest
virtual void focusable(ZFUIView *view, zfbool focusable)=0
change view's focusable setting
virtual ZFUIView * focusFind(ZFUIView *view)
see ZFUIView::focusFind
Definition ZFProtocolZFUIViewFocus.h:33
base class of all UI views
Definition ZFUIView.h:93