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 |
Option button widget, used for choosing one value from a fixed set. Each instance of optionButton will be associated with a single value.
Its behavior is equivalent to Radio
and
LabeledRadio
, with a different visual representation.
This widget, and the associated ToggleButton
, uses two separate styles for the
On and Off states which can be modified individually for the theme. If you use
any of the the standard style functions (styleBasic, styleHover, etc) in an
optionButton/toggleButton these changes will apply to both On and Off states,
except for the color related styles. The reason for this is that, in general,
you will want to use the same font and padding for both states, but colors will
usually differ. For changing the colors of the Off state you can use
optionButtonOffStyle
, that receives a Style
instance. The values set here
are higher priority than any inherited style from the theme or node text style.
Style
instances can be created this way:
newStyle :: Style = defstyleBasic
[textSize 20]styleHover
[textColor white]
Synopsis
- type OptionButtonValue a = (Eq a, Typeable a)
- data OptionButtonCfg s e a
- optionButtonOffStyle :: Style -> OptionButtonCfg s e a
- optionButton :: OptionButtonValue a => Text -> a -> ALens' s a -> WidgetNode s e
- optionButton_ :: OptionButtonValue a => Text -> a -> ALens' s a -> [OptionButtonCfg s e a] -> WidgetNode s e
- optionButtonV :: (OptionButtonValue a, WidgetEvent e) => Text -> a -> a -> (a -> e) -> WidgetNode s e
- optionButtonV_ :: (OptionButtonValue a, WidgetEvent e) => Text -> a -> a -> (a -> e) -> [OptionButtonCfg s e a] -> WidgetNode s e
- optionButtonD_ :: OptionButtonValue a => Text -> a -> WidgetData s a -> [OptionButtonCfg s e a] -> WidgetNode s e
- makeOptionButton :: OptionButtonValue a => Lens' ThemeState StyleState -> Lens' ThemeState StyleState -> WidgetData s a -> Text -> (a -> Bool) -> (a -> a) -> OptionButtonCfg s e a -> Widget s e
Configuration
type OptionButtonValue a = (Eq a, Typeable a) Source #
Constraints for numeric types accepted by the optionButton widget.
data OptionButtonCfg s e a Source #
Configuration options for optionButton:
ignoreTheme
: whether to load default style from theme or start empty.optionButtonOffStyle
: style to use when the option is not active.trimSpaces
: whether to remove leading/trailing spaces in the caption.ellipsis
: if ellipsis should be used for overflown text.multiline
: if text may be split in multiple lines.maxLines
: maximum number of text lines to show.resizeFactor
: flexibility to have more or less spaced assigned.resizeFactorW
: flexibility to have more or less horizontal spaced assigned.resizeFactorH
: flexibility to have more or less vertical spaced assigned.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/is clicked.onChangeReq
:WidgetRequest
to generate when the value changes/is clicked.
Instances
optionButtonOffStyle :: Style -> OptionButtonCfg s e a Source #
Sets the style for the Off state of the option button.
Constructors
optionButton :: OptionButtonValue a => Text -> a -> ALens' s a -> WidgetNode s e Source #
Creates an optionButton using the given lens.
optionButton_ :: OptionButtonValue a => Text -> a -> ALens' s a -> [OptionButtonCfg s e a] -> WidgetNode s e Source #
Creates an optionButton using the given lens. Accepts config.
optionButtonV :: (OptionButtonValue a, WidgetEvent e) => Text -> a -> a -> (a -> e) -> WidgetNode s e Source #
Creates an optionButton using the given value and onChange
event handler.
optionButtonV_ :: (OptionButtonValue a, WidgetEvent e) => Text -> a -> a -> (a -> e) -> [OptionButtonCfg s e a] -> WidgetNode s e Source #
Creates an optionButton using the given value and onChange
event handler.
Accepts config.
optionButtonD_ :: OptionButtonValue a => Text -> a -> WidgetData s a -> [OptionButtonCfg s e a] -> WidgetNode s e Source #
Creates an optionButton providing a WidgetData
instance and config.
Internal
makeOptionButton :: OptionButtonValue a => Lens' ThemeState StyleState -> Lens' ThemeState StyleState -> WidgetData s a -> Text -> (a -> Bool) -> (a -> a) -> OptionButtonCfg s e a -> Widget s e Source #