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"
10#include "../ZFUITextView.h"
12
17public:
26
27 // ============================================================
28 // properties
29public:
31 virtual void text(
32 ZF_IN ZFUITextView *textView
33 , ZF_IN const zfstring &text
36 virtual void textAppearance(
37 ZF_IN ZFUITextView *textView
41 virtual void textAlign(
42 ZF_IN ZFUITextView *textView
46 virtual void textColor(
47 ZF_IN ZFUITextView *textView
51 virtual void textSize(
52 ZF_IN ZFUITextView *textView
56 virtual void textSizeAutoMin(
57 ZF_IN ZFUITextView *textView
61 virtual void textSizeAutoMax(
62 ZF_IN ZFUITextView *textView
66 virtual void singleLine(
67 ZF_IN ZFUITextView *textView
71 virtual void textTruncateMode(
72 ZF_IN ZFUITextView *textView
75
76 // ============================================================
77 // layout
78public:
86 ZF_IN ZFUITextView *textView
87 , ZF_IN const ZFUISize &sizeHint
90
95
101 ZF_IN ZFUITextView *textView
102 , ZF_IN const ZFUISize &viewSize
104
105 // ============================================================
106 // util method
107public:
116 ZF_IN ZFUITextView *textView
117 , ZF_IN const ZFUISize &sizeHint
118 ) {
119 zffloat curTextSize = textView->textSize();
120 ZFUISize curSize = this->measureNativeTextView(textView, sizeHint, ZFUISizeApplyScale(curTextSize, textView->UIScaleFixed()));
121
122 if(textView->textSizeAutoMax() > 0) {
123 while(curTextSize < textView->textSizeAutoMax()
124 && ((sizeHint.width <= 0 || curSize.width < sizeHint.width)
125 && (sizeHint.height <= 0 || curSize.height < sizeHint.height))
126 ) {
127 ++curTextSize;
128 curSize = this->measureNativeTextView(textView, sizeHint, ZFUISizeApplyScale(curTextSize, textView->UIScaleFixed()));
129 }
130 }
131
132 if(textView->textSizeAutoMin() > 0) {
133 while(curTextSize > textView->textSizeAutoMin()
134 && ((sizeHint.width > 0 && curSize.width > sizeHint.width)
135 || (sizeHint.height > 0 && curSize.height > sizeHint.height))
136 ) {
137 --curTextSize;
138 curSize = this->measureNativeTextView(textView, sizeHint, ZFUISizeApplyScale(curTextSize, textView->UIScaleFixed()));
139 }
140 }
141
142 return ZFUISizeApplyScale(curTextSize, textView->UIScaleFixed());
143 }
145
147#endif // #ifndef _ZFI_ZFProtocolZFUITextView_h_
148
#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:184
_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:412
#define ZFPROTOCOL_INTERFACE_BEGIN(ZFLIB_, ModuleName)
declare a protocol interface for ZFFramework
Definition ZFProtocol.h:406
#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 textTruncateMode(ZFUITextView *textView, ZFUITextTruncateMode const &textTruncateMode)=0
see ZFUITextView
virtual void textSize(ZFUITextView *textView, zffloat textSize)=0
see ZFUITextView
virtual void textSizeAutoMin(ZFUITextView *textView, zffloat textSizeAutoMin)=0
see ZFUITextView
virtual void singleLine(ZFUITextView *textView, zfbool singleLine)=0
see ZFUITextView
virtual void nativeTextViewDestroy(ZFUITextView *textView)=0
destroy native text view
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
virtual void * nativeTextViewCreate(ZFUITextView *textView)=0
create native text view
zffloat calcTextSizeAuto(ZFUITextView *textView, const ZFUISize &sizeHint)
util method to calculate text size according auto change setting for this text view
Definition ZFProtocolZFUITextView.h:115
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