mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00

This is just a proof of concept. If we like this direction, it will move out of the examples directory (likely re-written) and be committed in smaller pieces with unit tests and formal reviews. TBR=abarth BUG= Review URL: https://codereview.chromium.org/971183002
62 lines
1.3 KiB
Dart
62 lines
1.3 KiB
Dart
part of widgets;
|
|
|
|
class Radio extends ButtonBase {
|
|
|
|
Object value;
|
|
Object groupValue;
|
|
ValueChanged onChanged;
|
|
|
|
static Style _style = new Style('''
|
|
display: inline-block;
|
|
-webkit-user-select: none;
|
|
width: 14px;
|
|
height: 14px;
|
|
border-radius: 7px;
|
|
border: 1px solid blue;
|
|
margin: 0 5px;'''
|
|
);
|
|
|
|
static Style _highlightStyle = new Style('''
|
|
display: inline-block;
|
|
-webkit-user-select: none;
|
|
width: 14px;
|
|
height: 14px;
|
|
border-radius: 7px;
|
|
border: 1px solid blue;
|
|
margin: 0 5px;
|
|
background-color: orange;'''
|
|
);
|
|
|
|
static Style _dotStyle = new Style('''
|
|
-webkit-user-select: none;
|
|
width: 10px;
|
|
height: 10px;
|
|
border-radius: 5px;
|
|
background-color: black;
|
|
margin: 2px;'''
|
|
);
|
|
|
|
Radio({
|
|
Object key,
|
|
this.onChanged,
|
|
this.value,
|
|
this.groupValue
|
|
}) : super(key: key);
|
|
|
|
Node render() {
|
|
return new Container(
|
|
style: _highlight ? _highlightStyle : _style,
|
|
onClick: _handleClick,
|
|
onPointerDown: _handlePointerDown,
|
|
onPointerUp: _handlePointerUp,
|
|
onPointerCancel: _handlePointerCancel,
|
|
children: value == groupValue ?
|
|
[new Container( style : _dotStyle )] : null
|
|
);
|
|
}
|
|
|
|
void _handleClick(sky.Event e) {
|
|
onChanged(value);
|
|
}
|
|
}
|