blob: d9eb6723e9e8ee7e6d441f69da72046710d2cb97 [file] [log] [blame]
# *************************************************************
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
# *************************************************************
** MetricField:
+ in vcl:
class VCL_DLLPUBLIC CurrencyField : public SpinField, public CurrencyFormatter
class VCL_DLLPUBLIC CurrencyFormatter : public NumericFormatter
class VCL_DLLPUBLIC MetricFormatter : public NumericFormatter
class VCL_DLLPUBLIC NumericFormatter : public FormatterBase
MetricFormatter - very simple sal_Int64 wrapping ...
+ no doubles ...
+ *Could* replicate this with the same interface:
+ prolly easier / better to add an XMetricField interface.
vcl's MetricField - itself does a load of (double) casting ...
+ to get the value it wants :-)
+ Urgh ! ...
** Can we just twist VCLXCurrencyField to this purpose ?
+ what differences would we want ?
+ LongCurrencyFormatter -> 'MetricFormatter' ...
** Interesting !
+ VCLXCurrencyField is based on 'LongCurrencyField' not CurrencyField ...
+ this is really based on 'BigInt' [ curious ] - so even more precision loss.
+ So ... cut/paste VCLXCurencyField -> VCLXMetricField
+ Look at 'VCLXNumericField' interface ...
+ Use 'XNumericField' instead (?)
+ why does this just not "just work" ?
+ The 'MetricField' (is also a MetricFormatter)
+ MetricFormatter [ unusually ] has 'Unit' support
+ API grep shows:
+ a) requires 'fieldunit'
+ b) has "UserValue"
+ c) => new IDL interface required ...
+ sub-set / expand NumericField ?
+ add 'CustomConvert' ?
+ add '[SG]etFirst'/Last
+ Properties:
+ 'Unit'
+ 'CustomUnitText'
+ 'spin-size' -> 'value-step'
+ 'BaseValue' ...
+ sal_Int64 ... [!?] ...
+ CorrectedValue
+ Want properties for the UI designer (?)
+ move that stuff out into there ?
+ FIXME:
+ rationalise the 'Modify' event crud ...
+ share the code in a base-class ...
+ Wrapper:
+ need to have static methods 'ConvertDoubleValue' etc.
+ also 'ConvertValue' etc.
+ GetCorrectedValue - never used ...