Copyright | (c) 2018 Francisco Vallarino |
---|---|
License | BSD-3-Clause (see the LICENSE file) |
Maintainer | fjvallarino@gmail.com |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell2010 |
Input field for numeric types, with support for valid ranges and decimal places.
numericField numericLens
With configuration options:
numericField_ numericLens [minValue 0, maxValue 100, decimals 2]
Supports instances of the FromFractional
typeclass. Several basic types are
implemented, both for integer and floating point types.
Handles mouse wheel and shift + vertical drag to increase/decrease the number.
Synopsis
- data NumericFieldCfg s e a
- type FormattableNumber a = (Eq a, Ord a, Show a, NumericTextConverter a, Typeable a)
- class NumericTextConverter a where
- numericAcceptText :: Maybe a -> Maybe a -> Int -> Text -> (Bool, Bool, Maybe a)
- numericFromText :: Text -> Maybe a
- numericToText :: Int -> a -> Text
- numericToFractional :: Fractional b => a -> Maybe b
- numericFromFractional :: (Real b, Fractional b) => b -> a
- numericField :: (FormattableNumber a, WidgetEvent e) => ALens' s a -> WidgetNode s e
- numericField_ :: (FormattableNumber a, WidgetEvent e) => ALens' s a -> [NumericFieldCfg s e a] -> WidgetNode s e
- numericFieldV :: (FormattableNumber a, WidgetEvent e) => a -> (a -> e) -> WidgetNode s e
- numericFieldV_ :: (FormattableNumber a, WidgetEvent e) => a -> (a -> e) -> [NumericFieldCfg s e a] -> WidgetNode s e
- numericFieldD_ :: forall s e a. (FormattableNumber a, WidgetEvent e) => WidgetData s a -> [NumericFieldCfg s e a] -> WidgetNode s e
Configuration
data NumericFieldCfg s e a Source #
Configuration options for numericField:
validInput
: field indicating if the current input is valid. Useful to show warnings in the UI, or disable buttons if needed.resizeOnChange
: Whether input causes ResizeWidgets requests.selectOnFocus
: Whether all input should be selected when focus is received.readOnly
: Whether to prevent the user changing the input text.minValue
: Minimum valid number.maxValue
: Maximum valid number.wheelRate
: The rate at which wheel movement affects the number.dragRate
: The rate at which drag movement affects the number.onFocus
: event to raise when focus is received.onFocusReq
:WidgetRequest
to generate when focus is received.onBlur
: event to raise when focus is lost.onBlurReq
:WidgetRequest
to generate when focus is lost.onChange
: event to raise when the value changes.onChangeReq
:WidgetRequest
to generate when the value changes.decimals
: the maximum number of digits after the decimal separator. Defaults to zero for integers and two for floating point types.
Instances
type FormattableNumber a = (Eq a, Ord a, Show a, NumericTextConverter a, Typeable a) Source #
Constraints for numeric types accepted by numericField.
class NumericTextConverter a where Source #
Converts a numeric instance to and from Text
. Implementing this typeclass
is not necessary for instances of FromFractional
.
numericAcceptText :: Maybe a -> Maybe a -> Int -> Text -> (Bool, Bool, Maybe a) Source #
numericFromText :: Text -> Maybe a Source #
numericToText :: Int -> a -> Text Source #
numericToFractional :: Fractional b => a -> Maybe b Source #
numericFromFractional :: (Real b, Fractional b) => b -> a Source #
Instances
FromFractional a => NumericTextConverter a Source # | |
Defined in Monomer.Widgets.Singles.NumericField numericAcceptText :: Maybe a -> Maybe a -> Int -> Text -> (Bool, Bool, Maybe a) Source # numericFromText :: Text -> Maybe a Source # numericToText :: Int -> a -> Text Source # numericToFractional :: Fractional b => a -> Maybe b Source # numericFromFractional :: (Real b, Fractional b) => b -> a Source # | |
(FromFractional a, NumericTextConverter a) => NumericTextConverter (Maybe a) Source # | |
Defined in Monomer.Widgets.Singles.NumericField numericAcceptText :: Maybe (Maybe a) -> Maybe (Maybe a) -> Int -> Text -> (Bool, Bool, Maybe (Maybe a)) Source # numericFromText :: Text -> Maybe (Maybe a) Source # numericToText :: Int -> Maybe a -> Text Source # numericToFractional :: Fractional b => Maybe a -> Maybe b Source # numericFromFractional :: (Real b, Fractional b) => b -> Maybe a Source # |
Constructors
numericField :: (FormattableNumber a, WidgetEvent e) => ALens' s a -> WidgetNode s e Source #
Creates a numeric field using the given lens.
numericField_ :: (FormattableNumber a, WidgetEvent e) => ALens' s a -> [NumericFieldCfg s e a] -> WidgetNode s e Source #
Creates a numeric field using the given lens. Accepts config.
numericFieldV :: (FormattableNumber a, WidgetEvent e) => a -> (a -> e) -> WidgetNode s e Source #
Creates a numeric field using the given value and onChange
event handler.
numericFieldV_ :: (FormattableNumber a, WidgetEvent e) => a -> (a -> e) -> [NumericFieldCfg s e a] -> WidgetNode s e Source #
Creates a numeric field using the given value and onChange
event handler.
Accepts config.
numericFieldD_ :: forall s e a. (FormattableNumber a, WidgetEvent e) => WidgetData s a -> [NumericFieldCfg s e a] -> WidgetNode s e Source #
Creates a numeric field providing a WidgetData
instance and config.