topic "EditField derived classes";
[2 $$0,0#00000000000000000000000000000000:Default]
[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class]
[l288;2 $$2,0#27521748481378242620020725143825:desc]
[0 $$3,0#96390100711032703541132217272105:end]
[H6;0 $$4,0#05600065144404261032431302351956:begin]
[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item]
[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement]
[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param]
[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam]
[b42;2 $$9,9#13035079074754324216151401829390:normal]
[{_}%EN-US 
[s0; [*@3+150 EditField derived classes]&]
[s9; Widgets editing values in text representation are based on EditField 
and appropriate [^`:`:Convert^ Convert] class. Majority of them 
are defined using simple EditValue, EditMinMax and EditMinMaxNotNull 
template classes:&]
[s3; &]
[s0;%- &]
[ {{10000@3 [s0;%- [*@(229)4 EditValue]]}}&]
[s3; &]
[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 DataType][3 , 
][@(0.0.255)3 class][3 _][*@3;3 Cv][@(0.0.255)3 >]&]
[s1;:EditValue`:`:class:%- [@(0.0.255) class]_[* EditValue]_:_[@(0.0.255) public]_[*@3 EditFie
ld], [@(0.0.255) public]_[*@3 Cv]&]
[s9; This class provides composition of EditField and specific [^topic`:`/`/Core`/src`/Convert`$en`-us`#Convert`:`:class^ C
onvert] class. The advantage of deriving from Convert is that 
all Convert setup methods (like setting min/max value) are directly 
available without using further glue code.&]
[s3; &]
[s0;%- &]
[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&]
[s3;%- &]
[s5;:EditValue`:`:EditValue`(`):%- [* EditValue]()&]
[s2; Constructor assigns [^`:`:Convert^ Convert] class (in fact, `*this) 
as the EditField converter.&]
[s3; &]
[s0;%- &]
[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&]
[s3;%- &]
[s5;:EditValue`:`:operator`=`(const DataType`&`):%- [_^EditValue^ EditValue][@(0.0.255) `&
]_[* operator`=]([@(0.0.255) const]_[*@4 DataType][@(0.0.255) `&]_[*@3 t])&]
[s2; This helper operator allows direct assignment of value type 
to the editor.&]
[s3; &]
[s4;%- &]
[s5;:EditValue`:`:operator DataType`(`)const:%- [* operator_DataType]()_[@(0.0.255) const
]&]
[s2; This helper operator allows direct retrieval of value type from 
the editor.&]
[s3; &]
[s0; &]
[s0; &]
[s0;%- &]
[ {{10000@3 [s0;%- [*@(229)4 EditMinMax]]}}&]
[s3; &]
[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 DataType][3 , 
][@(0.0.255)3 class][3 _][*@4;3 Cv][@(0.0.255)3 >]&]
[s1;:EditMinMax`:`:class:%- [@(0.0.255) class]_[* EditMinMax]_:_[@(0.0.255) public]_[*@3 EditV
alue][@(0.0.255) <][*@4 DataType], [*@4 Cv][@(0.0.255) >]_&]
[s9; Wrapper class for converters providing Min, Max and NotNull 
properties.&]
[s3; &]
[s0;%- &]
[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&]
[s3;%- &]
[s5;:EditMinMax`:`:EditMinMax`(`):%- [* EditMinMax]()&]
[s2; Default constructor.&]
[s3; &]
[s4;%- &]
[s5;:EditMinMax`:`:EditMinMax`(DataType`,DataType`):%- [* EditMinMax]([*@4 DataType]_[*@3 m
in], [*@4 DataType]_[*@3 max])&]
[s2; This constructor sets [* Min] and [* Max] properties.&]
[s3; &]
[s0;%- &]
[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&]
[s3;%- &]
[s5;:EditMinMax`:`:operator`=`(const DataType`&`):%- [_^EditMinMax^ EditMinMax][@(0.0.255) `&
]_[* operator`=]([@(0.0.255) const]_[*@4 DataType][@(0.0.255) `&]_[*@3 t])&]
[s2; This helper operator allows direct assignment of value type 
to the editor.&]
[s3; &]
[s4;%- &]
[s5;:EditMinMax`:`:Min`(DataType`):%- [_^EditMinMax^ EditMinMax][@(0.0.255) `&]_[* Min]([*@4 D
ataType]_[*@3 min])&]
[s5;:EditMinMax`:`:Max`(DataType`):%- [_^EditMinMax^ EditMinMax][@(0.0.255) `&]_[* Max]([*@4 D
ataType]_[*@3 max])&]
[s5;:EditMinMax`:`:NotNull`(bool`):%- [_^EditMinMax^ EditMinMax][@(0.0.255) `&]_[* NotNull](
[@(0.0.255) bool]_[*@3 nn]_`=_[@(0.0.255) true])&]
[s2; Sets [* Min], [* Max] and [* NotNull] properties. In fact, the only 
purpose of these methods is to change the returns value to the 
correctly typed `*this.&]
[s3; &]
[s0; &]
[s0; &]
[s0;%- &]
[ {{10000@3 [s0;%- [*@(229)4 EditMinMaxNotNull]]}}&]
[s3; &]
[s1;:noref:%- [@(0.0.255)3 template][3 _<][@(0.0.255)3 class][3 _][*@4;3 DataType][3 , 
][@(0.0.255)3 class][3 _][*@4;3 Cv][@(0.0.255)3 >]&]
[s1;:EditMinMaxNotNull`:`:class:%- [@(0.0.255) class]_[* EditMinMaxNotNull]_:_[@(0.0.255) pu
blic]_[*@3 EditValue][@(0.0.255) <][*@4 DataType], [*@4 Cv][@(0.0.255) >]_&]
[s9; Similar to EditMinMax template class, but constructs activate 
[* NotNull] property.&]
[s3; &]
[s0; &]
[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&]
[s3;%- &]
[s5;:EditMinMaxNotNull`:`:EditMinMaxNotNull`(`):%- [* EditMinMaxNotNull]()&]
[s2; Default constructor.&]
[s3; &]
[s4;%- &]
[s5;:EditMinMaxNotNull`:`:EditMinMaxNotNull`(DataType`,DataType`):%- [* EditMinMaxNotNu
ll]([*@4 DataType]_[*@3 min], [*@4 DataType]_[*@3 max])&]
[s2; This constructor sets [* Min] and [* Max] properties.&]
[s3; &]
[s0;%- &]
[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&]
[s3;%- &]
[s5;:EditMinMaxNotNull`:`:operator`=`(const DataType`&`):%- [_^EditMinMaxNotNull^ EditM
inMaxNotNull][@(0.0.255) `&]_[* operator`=]([@(0.0.255) const]_[*@4 DataType][@(0.0.255) `&
]_[*@3 t])&]
[s2; This helper operator allows direct assignment of value type 
to the editor.&]
[s3; &]
[s4;%- &]
[s5;:EditMinMaxNotNull`:`:Min`(DataType`):%- [_^EditMinMaxNotNull^ EditMinMaxNotNull][@(0.0.255) `&
]_[* Min]([*@4 DataType]_[*@3 min])&]
[s5;:EditMinMaxNotNull`:`:Max`(DataType`):%- [_^EditMinMaxNotNull^ EditMinMaxNotNull][@(0.0.255) `&
]_[* Max]([*@4 DataType]_[*@3 max])&]
[s5;:EditMinMaxNotNull`:`:NotNull`(bool`):%- [_^EditMinMaxNotNull^ EditMinMaxNotNull][@(0.0.255) `&
]_[* NotNull]([@(0.0.255) bool]_[*@3 nn]_`=_[@(0.0.255) true])&]
[s2; Sets [* Min], [* Max] and [* NotNull] properties. In fact, the only 
purpose of these methods is to change the returns value to the 
correctly typed `*this.&]
[s3; &]
[s0; &]
[s0; &]
[s0; &]
[s0; Based on EditMinMax and EditMinMaxNotNull, basic value editors 
are defined as typedefs:&]
[s3; &]
[s5;:EditDate`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMax^ EditMinMax][@(0.0.255) <][_^Date^ D
ate], [_^ConvertDate^ ConvertDate][@(0.0.255) >]_[* EditDate]&]
[s2; Edit field for date values.&]
[s3;%- &]
[s4;%- &]
[s5;:EditDateNotNull`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMaxNotNull^ EditMinMaxN
otNull][@(0.0.255) <][_^Date^ Date], [_^ConvertDate^ ConvertDate][@(0.0.255) >]_[* EditDate
NotNull]&]
[s2; Edit field for not null date values.&]
[s3;%- &]
[s4;%- &]
[s5;:EditDouble`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMax^ EditMinMax][@(0.0.255) <d
ouble], [_^ConvertDouble^ ConvertDouble][@(0.0.255) >]_[* EditDouble]&]
[s2; Edit field for double values.&]
[s3;%- &]
[s4;%- &]
[s5;:EditDoubleNotNull`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMaxNotNull^ EditMinMa
xNotNull][@(0.0.255) <double], [_^ConvertDouble^ ConvertDouble][@(0.0.255) >]_[* EditDoub
leNotNull]&]
[s2; Edit field for not null double values.&]
[s3;%- &]
[s4;%- &]
[s5;:EditInt`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMax^ EditMinMax][@(0.0.255) <int],
 [_^ConvertInt^ ConvertInt][@(0.0.255) >]_[* EditInt]&]
[s2; Edit field for integer values.&]
[s3;%- &]
[s4;%- &]
[s5;:EditIntNotNull`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMaxNotNull^ EditMinMaxNo
tNull][@(0.0.255) <int], [_^ConvertInt^ ConvertInt][@(0.0.255) >]_[* EditIntNotNull]&]
[s2; Edit field for not null integer values.&]
[s3;%- &]
[s4;%- &]
[s5;:EditInt64`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMax^ EditMinMax][@(0.0.255) <][_^int64^ i
nt64], [_^ConvertInt64^ ConvertInt64][@(0.0.255) >]_[* EditInt64]&]
[s2; Edit field for 64 bit integer values.&]
[s3;%- &]
[s4;%- &]
[s5;:EditTime`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMax^ EditMinMax][@(0.0.255) <][_^Time^ T
ime], [_^ConvertTime^ ConvertTime][@(0.0.255) >]_[* EditTime]&]
[s2; Edit field for time values.&]
[s3;%- &]
[s4;%- &]
[s5;:EditTimeNotNull`:`:typedef:%- [@(0.0.255) typedef]_[_^EditMinMaxNotNull^ EditMinMaxN
otNull][@(0.0.255) <][_^Time^ Time], [_^ConvertTime^ ConvertTime][@(0.0.255) >]_[* EditTime
NotNull]&]
[s2; Edit field for not null time values.&]
[s3;%- &]
[s0;%- &]
[s0; &]
[s0; &]
[s0; Some value editors are not based on EditMinMax and EditMinMaxNotNull:&]
[s3; &]
[s0;%- &]
[ {{10000@3 [s0;%- [*@(229)4 EditString]]}}&]
[s3; &]
[s1;:EditString`:`:class:%- [@(0.0.255)3 class][3 _][*3 EditString][3 _:_][@(0.0.255)3 public][3 _
][*@3;3 EditValue][@(0.0.255)3 <][_^WString^3 WString][3 , ][_^ConvertString^3 ConvertStrin
g][@(0.0.255)3 >][3 _]&]
[s9; EditString is not based on EditMinMax because instead of minimal 
and maximal values, it implements `"maximum number of characters`" 
constraint.&]
[s3; &]
[s0;%- &]
[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&]
[s3;%- &]
[s5;:EditString`:`:EditString`(`):%- [* EditString]()&]
[s2; Default constructor.&]
[s3; &]
[s4;%- &]
[s5;:EditString`:`:EditString`(int`):%- [* EditString]([@(0.0.255) int]_[*@3 maxlen])&]
[s2; This constructor sets [%-*@3 maxlen] as maximum length of contained 
text.&]
[s3; &]
[s0;%- &]
[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&]
[s3;%- &]
[s5;:EditString`:`:operator const WString`&`(`)const:%- [* operator_const_WString`&]()_
[@(0.0.255) const]&]
[s2; This helper operator allows direct retrieval of value type from 
the editor.&]
[s3; &]
[s4;%- &]
[s5;:EditString`:`:operator`=`(const WString`&`):%- [_^EditString^ EditString][@(0.0.255) `&
]_[* operator`=]([@(0.0.255) const]_[_^WString^ WString][@(0.0.255) `&]_[*@3 data])&]
[s5;:EditString`:`:operator`=`(const String`&`):%- [_^EditString^ EditString][@(0.0.255) `&
]_[* operator`=]([@(0.0.255) const]_[_^String^ String][@(0.0.255) `&]_[*@3 data])&]
[s2; These helper operators allow a direct assignment of value type 
to the editor.&]
[s3; &]
[s4;%- &]
[s5;:EditString`:`:MaxLen`(int`):%- [_^EditString^ EditString][@(0.0.255) `&]_[* MaxLen]([@(0.0.255) i
nt]_[*@3 maxlen])&]
[s2; Sets [%-*@3 maxlen] as maximum length of contained text.[%-*@3 maxlen] 
Returns `*this.&]
[s3; &]
[s4;%- &]
[s5;:EditString`:`:NotNull`(bool`):%- [_^EditString^ EditString][@(0.0.255) `&]_[* NotNull](
[@(0.0.255) bool]_[*@3 nn]_`=_[@(0.0.255) true])&]
[s2;%- [%% Sets ][* NotNull] property.&]
[s3; &]
[s0; &]
[s0; &]
[s0;%- &]
[ {{10000@3 [s0;%- [*@(229)4 EditStringNotNull]]}}&]
[s3; &]
[s1;:EditStringNotNull`:`:class:%- [@(0.0.255)3 class][3 _][*3 EditStringNotNull][3 _:_][@(0.0.255)3 p
ublic][3 _][*@3;3 EditString]&]
[s9; This class sets the NotNull property in the constructors.&]
[s3; &]
[s0;%- &]
[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&]
[s3;%- &]
[s5;:EditStringNotNull`:`:EditStringNotNull`(`):%- [* EditStringNotNull]()&]
[s2; Default constructor.&]
[s3; &]
[s4;%- &]
[s5;:EditStringNotNull`:`:EditStringNotNull`(int`):%- [* EditStringNotNull]([@(0.0.255) i
nt]_[*@3 maxlen])&]
[s2; This constructor sets [%-*@3 maxlen] as maximum length of contained 
text.&]
[s3; &]
[s0;%- &]
[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&]
[s3;%- &]
[s5;:EditStringNotNull`:`:operator`=`(const WString`&`):%- [@(0.0.255) virtual] 
[_^EditStringNotNull^ EditStringNotNull][@(0.0.255) `&]_[* operator`=]([@(0.0.255) const]_
[_^WString^ WString][@(0.0.255) `&]_[*@3 data])&]
[s5;:EditStringNotNull`:`:operator`=`(const String`&`):%- [@(0.0.255) virtual] 
[_^EditStringNotNull^ EditStringNotNull][@(0.0.255) `&]_[* operator`=]([@(0.0.255) const]_
[_^String^ String][@(0.0.255) `&]_[*@3 data])&]
[s2; These helper operators allow a direct assignment of value type 
to the editor.&]
[s3; &]
[s0; &]
[s0; &]
[s0;%- &]
[ {{10000@3 [s0;%- [*@(229)4 EditIntSpin]]}}&]
[s3; &]
[s1;:EditIntSpin`:`:class:%- [@(0.0.255)3 class][3 _][*3 EditIntSpin][3 _:_][@(0.0.255)3 public][3 _
][*@3;3 EditInt]&]
[s9; This editor adds spin buttons to the EditInt class.&]
[s3; &]
[s0;%- &]
[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&]
[s3;%- &]
[s5;:EditIntSpin`:`:EditIntSpin`(`):%- [* EditIntSpin]()&]
[s2; Default constructor. Spin buttons are on.&]
[s3; &]
[s4;%- &]
[s5;:EditIntSpin`:`:EditIntSpin`(int`,int`):%- [* EditIntSpin]([@(0.0.255) int]_[*@3 min], 
[@(0.0.255) int]_[*@3 max])&]
[s2; This constructor sets the [%-*@3 min] and [%-*@3 max] values. Spin 
buttons are on.&]
[s3; &]
[s4;%- &]
[s5;:EditIntSpin`:`:`~EditIntSpin`(`):%- [@(0.0.255) `~][* EditIntSpin]()&]
[s2; Default destructor.&]
[s3;%- &]
[s0;%- &]
[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&]
[s3;%- &]
[s5;:EditIntSpin`:`:ShowSpin`(bool`):%- [_^EditIntSpin^ EditIntSpin][@(0.0.255) `&]_[* Show
Spin]([@(0.0.255) bool]_[*@3 s]_`=_[@(0.0.255) true])&]
[s2; Shows/hides spin buttons.&]
[s3; &]
[s4;%- &]
[s5;:EditIntSpin`:`:SetInc`(int`):%- [_^EditIntSpin^ EditIntSpin][@(0.0.255) `&]_[* SetInc](
[@(0.0.255) int]_[*@3 `_inc])&]
[s2; Set the increment factor to [%-*@3 `_inc].&]
[s3; &]
[s4;%- &]
[s5;:EditIntSpin`:`:GetInc`(`)const:%- [@(0.0.255) int]_[* GetInc]()_[@(0.0.255) const]&]
[s2; Returns the increment factor.&]
[s3;%- &]
[s0; &]
[s0; &]
[s0;%- &]
[ {{10000@3 [s0;%- [*@(229)4 EditDoubleSpin]]}}&]
[s3; &]
[s1;:EditDoubleSpin`:`:class:%- [@(0.0.255)3 class][3 _][*3 EditDoubleSpin][3 _:_][@(0.0.255)3 p
ublic][3 _][*@3;3 EditDouble]&]
[s9; This editor adds spin buttons to the EditDouble class.&]
[s3; &]
[s0;%- &]
[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&]
[s3;%- &]
[s5;:EditDoubleSpin`:`:EditDoubleSpin`(double`):%- [* EditDoubleSpin]([@(0.0.255) double]_
[*@3 inc]_`=_[@3 0][@(0.0.255) .][@3 1])&]
[s2; Sets the spin increment to [%-*@3 inc]. Spin buttons are on.&]
[s3; &]
[s4;%- &]
[s5;:EditDoubleSpin`:`:EditDoubleSpin`(double`,double`,double`):%- [* EditDoubleSpin]([@(0.0.255) d
ouble]_[*@3 min], [@(0.0.255) double]_[*@3 max], [@(0.0.255) double]_[*@3 inc]_`=_[@3 0][@(0.0.255) .
][@3 1])&]
[s2; This constructor sets [%-*@3 min], [%-*@3 max] and [%-*@3 inc] values. 
Spin buttons are on.&]
[s3; &]
[s4;%- &]
[s5;:EditDoubleSpin`:`:`~EditDoubleSpin`(`):%- [@(0.0.255) `~][* EditDoubleSpin]()&]
[s2; Default destructor.&]
[s3;%- &]
[s0; &]
[ {{10000F(128)G(128)@1 [s0; [* Public Method List]]}}&]
[s3;%- &]
[s5;:EditDoubleSpin`:`:SetInc`(double`):%- [_^EditDoubleSpin^ EditDoubleSpin][@(0.0.255) `&
]_[* SetInc]([@(0.0.255) double]_[*@3 `_inc]_`=_[@3 0][@(0.0.255) .][@3 1])&]
[s2; Set the spin increment to [%-*@3 `_inc].&]
[s3; &]
[s4;%- &]
[s5;:EditDoubleSpin`:`:GetInc`(`)const:%- [@(0.0.255) double]_[* GetInc]()_[@(0.0.255) cons
t]&]
[s2; Returns current spin increment.&]
[s3; &]
[s4;%- &]
[s5;:EditDoubleSpin`:`:ShowSpin`(bool`):%- [_^EditDoubleSpin^ EditDoubleSpin][@(0.0.255) `&
]_[* ShowSpin]([@(0.0.255) bool]_[*@3 s]_`=_[@(0.0.255) true])&]
[s2; Shows/hides spin buttons.&]
[s3; &]
[s0; &]
[s0; &]
[s0;%- &]
[ {{10000@3 [s0;%- [*@(229)4 EditDoubleNotNullSpin]]}}&]
[s3; &]
[s1;:EditDoubleNotNullSpin`:`:class:%- [@(0.0.255)3 class][3 _][*3 EditDoubleNotNullSpin][3 _
:_][@(0.0.255)3 public][3 _][*@3;3 EditDoubleSpin]&]
[s9; This editor adds spin buttons to the EditDoubleNotNull class.&]
[s3;%- &]
[s0;%- &]
[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&]
[s3; &]
[s5;:EditDoubleNotNullSpin`:`:EditDoubleNotNullSpin`(double`):%- [* EditDoubleNotNullSp
in]([@(0.0.255) double]_[*@3 inc]_`=_[@3 0][@(0.0.255) .][@3 1])&]
[s2; Sets the spin increment to [%-*@3 inc]. Spin buttons are on.&]
[s3; &]
[s4;%- &]
[s5;:EditDoubleNotNullSpin`:`:EditDoubleNotNullSpin`(double`,double`,double`):%- [* Edi
tDoubleNotNullSpin]([@(0.0.255) double]_[*@3 min], [@(0.0.255) double]_[*@3 max], 
[@(0.0.255) double]_[*@3 inc]_`=_[@3 0][@(0.0.255) .][@3 1])&]
[s2; This constructor sets [%-*@3 min], [%-*@3 max] and [%-*@3 inc] values. 
Spin buttons are on.&]
[s3; &]
[s0; ]]