ZFFramework
 
Loading...
Searching...
No Matches
ZFProtocolZFUITextView.h
Go to the documentation of this file.
1
5
6#ifndef _ZFI_ZFProtocolZFUITextView_h_
7#define _ZFI_ZFProtocolZFUITextView_h_
8
9#include "ZFCore/ZFProtocol.h"
12
17public:
21 virtual void *nativeTextViewCreate(
22 ZF_IN ZFUITextView *textView
23 , ZF_OUT zfbool &nativeImplViewRequireVirtualIndex
29 ZF_IN ZFUITextView *textView
30 , ZF_IN void *nativeTextView
32
33 // ============================================================
34 // properties
35public:
37 virtual void text(
38 ZF_IN ZFUITextView *textView
39 , ZF_IN const zfstring &text
42 virtual void textAppearance(
43 ZF_IN ZFUITextView *textView
47 virtual void textAlign(
48 ZF_IN ZFUITextView *textView
52 virtual void textColor(
53 ZF_IN ZFUITextView *textView
57 virtual void textSize(
58 ZF_IN ZFUITextView *textView
62 virtual void textSizeAutoMin(
63 ZF_IN ZFUITextView *textView
67 virtual void textSizeAutoMax(
68 ZF_IN ZFUITextView *textView
72 virtual void singleLine(
73 ZF_IN ZFUITextView *textView
77 virtual void textTruncateMode(
78 ZF_IN ZFUITextView *textView
81
82 // ============================================================
83 // layout
84public:
92 ZF_IN ZFUITextView *textView
93 , ZF_IN const ZFUISize &sizeHint
96
101
107 ZF_IN ZFUITextView *textView
108 , ZF_IN const ZFUISize &viewSize
110
111 // ============================================================
112 // util method
113public:
122 ZF_IN ZFUITextView *textView
123 , ZF_IN const ZFUISize &sizeHint
124 ) {
125 zffloat curTextSize = textView->textSize();
126 ZFUISize curSize = this->measureNativeTextView(textView, sizeHint, ZFUISizeApplyScale(curTextSize, textView->UIScaleFixed()));
127
128 if(textView->textSizeAutoMax() > 0) {
129 while(curTextSize < textView->textSizeAutoMax()
130 && ((sizeHint.width <= 0 || curSize.width < sizeHint.width)
131 && (sizeHint.height <= 0 || curSize.height < sizeHint.height))
132 ) {
133 ++curTextSize;
134 curSize = this->measureNativeTextView(textView, sizeHint, ZFUISizeApplyScale(curTextSize, textView->UIScaleFixed()));
135 }
136 }
137
138 if(textView->textSizeAutoMin() > 0) {
139 while(curTextSize > textView->textSizeAutoMin()
140 && ((sizeHint.width > 0 && curSize.width > sizeHint.width)
141 || (sizeHint.height > 0 && curSize.height > sizeHint.height))
142 ) {
143 --curTextSize;
144 curSize = this->measureNativeTextView(textView, sizeHint, ZFUISizeApplyScale(curTextSize, textView->UIScaleFixed()));
145 }
146 }
147
148 return ZFUISizeApplyScale(curTextSize, textView->UIScaleFixed());
149 }
151
153#endif // #ifndef _ZFI_ZFProtocolZFUITextView_h_
154
#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
#define ZF_OUT
dummy macro that shows the param used as required output
Definition ZFCoreTypeDef_ClassType.h:188
_ZFT_t_zfbool zfbool
bool type
Definition ZFCoreTypeDef_CoreType.h:103
_zft_zffloat zffloat
same as float, see zfindex
Definition ZFCoreTypeDef_CoreType.h:183
zft_zfstring< zfchar > zfstring
see zft_zfstring
Definition ZFCoreTypeDef_StringType.h:15
#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_INTERFACE_END(ModuleName)
for more information, please refer to ZFPROTOCOL_INTERFACE_BEGIN
Definition ZFProtocol.h:414
#define ZFPROTOCOL_INTERFACE_BEGIN(ZFLIB_, ModuleName)
declare a protocol interface for ZFFramework
Definition ZFProtocol.h:408
#define ZFLIB_ZFUIKit
used to export symbols
Definition ZFUIKitDef.h:16
view to display plain text
v_ZFUITextAppearance::ZFEnumType ZFUITextAppearance
see v_ZFUITextAppearance
Definition ZFUITypeDef.h:1409
zffloat ZFUISizeApplyScale(zffloat const &v, zffloat scale)
return a scaled int
Definition ZFUITypeDef.h:30
_zft_ZFUIColor ZFUIColor
color with AARRGGBB format
Definition ZFUITypeDef.h:1184
v_ZFUITextTruncateMode::ZFEnumType ZFUITextTruncateMode
see v_ZFUITextTruncateMode
Definition ZFUITypeDef.h:1427
virtual void textAlign(ZFUITextView *textView, ZFUIAlignFlags const &textAlign)=0
see ZFUITextView
virtual void layoutNativeTextView(ZFUITextView *textView, const ZFUISize &viewSize)=0
layout text view after ZFUIView's layout step, so that the view may shrink text size if necessary
virtual void textSizeAutoMax(ZFUITextView *textView, zffloat textSizeAutoMax)=0
see ZFUITextView
virtual void textAppearance(ZFUITextView *textView, ZFUITextAppearance const &textAppearance)=0
see ZFUITextView
virtual void textColor(ZFUITextView *textView, ZFUIColor const &textColor)=0
see ZFUITextView
virtual void nativeTextViewDestroy(ZFUITextView *textView, void *nativeTextView)=0
destroy native text view
virtual void textTruncateMode(ZFUITextView *textView, ZFUITextTruncateMode const &textTruncateMode)=0
see ZFUITextView
virtual void textSize(ZFUITextView *textView, zffloat textSize)=0
see ZFUITextView
virtual void * nativeTextViewCreate(ZFUITextView *textView, zfbool &nativeImplViewRequireVirtualIndex)=0
create native text view
virtual void textSizeAutoMin(ZFUITextView *textView, zffloat textSizeAutoMin)=0
see ZFUITextView
virtual void singleLine(ZFUITextView *textView, zfbool singleLine)=0
see ZFUITextView
virtual void text(ZFUITextView *textView, const zfstring &text)=0
see ZFUITextView
virtual ZFUISize measureNativeTextView(ZFUITextView *textView, const ZFUISize &sizeHint, zffloat textSize)=0
measure text view using size hint
zffloat calcTextSizeAuto(ZFUITextView *textView, const ZFUISize &sizeHint)
util method to calculate text size according auto change setting for this text view
Definition ZFProtocolZFUITextView.h:121
virtual zffloat textSizeCurrent(ZFUITextView *textView)=0
see ZFUITextView::textSizeCurrent
see v_ZFUIAlign, ZFUIAlignFlagsToString, ZFUIAlignFlagsFromString
Definition ZFUITypeDef.h:1075
2D size
Definition ZFUITypeDef.h:397
zffloat height
height
Definition ZFUITypeDef.h:400
zffloat width
width
Definition ZFUITypeDef.h:399
view to display plain text
Definition ZFUITextView.h:21