Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(452)

Side by Side Diff: sky/sdk/lib/widgets/radio.dart

Issue 1218153005: Refactoring to support dark theme better (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: fix import issues Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « sky/sdk/lib/widgets/menu_item.dart ('k') | sky/sdk/lib/widgets/raised_button.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 import 'dart:sky' as sky; 5 import 'dart:sky' as sky;
6 6
7 import '../rendering/object.dart'; 7 import '../rendering/object.dart';
8 import '../theme/colors.dart' as colors;
9 import 'basic.dart'; 8 import 'basic.dart';
10 import 'button_base.dart'; 9 import 'button_base.dart';
10 import 'theme.dart';
11
12 const sky.Color _kLightOffColor = const sky.Color(0x8A000000);
13 const sky.Color _kDarkOffColor = const sky.Color(0xB2FFFFFF);
11 14
12 typedef void ValueChanged(value); 15 typedef void ValueChanged(value);
13 16
14 class Radio extends ButtonBase { 17 class Radio extends ButtonBase {
15 18
16 Radio({ 19 Radio({
17 String key, 20 String key,
18 this.value, 21 this.value,
19 this.groupValue, 22 this.groupValue,
20 this.onChanged 23 this.onChanged
21 }) : super(key: key); 24 }) : super(key: key);
22 25
23 Object value; 26 Object value;
24 Object groupValue; 27 Object groupValue;
25 ValueChanged onChanged; 28 ValueChanged onChanged;
26 29
27 void syncFields(Radio source) { 30 void syncFields(Radio source) {
28 value = source.value; 31 value = source.value;
29 groupValue = source.groupValue; 32 groupValue = source.groupValue;
30 onChanged = source.onChanged; 33 onChanged = source.onChanged;
31 super.syncFields(source); 34 super.syncFields(source);
32 } 35 }
33 36
37 Color get color {
38 ThemeData themeData = Theme.of(this);
39 if (value == groupValue)
40 return themeData.accentColor;
41 return themeData.brightness == ThemeBrightness.light ? _kLightOffColor : _kD arkOffColor;
42 }
43
34 Widget buildContent() { 44 Widget buildContent() {
35 // TODO(jackson): This should change colors with the theme
36 Color color = highlight ? colors.Purple[500] : const Color(0x8A000000);
37 const double kDiameter = 16.0; 45 const double kDiameter = 16.0;
38 const double kOuterRadius = kDiameter / 2; 46 const double kOuterRadius = kDiameter / 2;
39 const double kInnerRadius = 5.0; 47 const double kInnerRadius = 5.0;
40 return new Listener( 48 return new Listener(
41 child: new Container( 49 child: new Container(
42 margin: const EdgeDims.symmetric(horizontal: 5.0), 50 margin: const EdgeDims.symmetric(horizontal: 5.0),
43 width: kDiameter, 51 width: kDiameter,
44 height: kDiameter, 52 height: kDiameter,
45 child: new CustomPaint( 53 child: new CustomPaint(
46 callback: (sky.Canvas canvas, Size size) { 54 callback: (sky.Canvas canvas, Size size) {
(...skipping 15 matching lines...) Expand all
62 ), 70 ),
63 onGestureTap: _handleClick 71 onGestureTap: _handleClick
64 ); 72 );
65 } 73 }
66 74
67 void _handleClick(_) { 75 void _handleClick(_) {
68 onChanged(value); 76 onChanged(value);
69 } 77 }
70 78
71 } 79 }
OLDNEW
« no previous file with comments | « sky/sdk/lib/widgets/menu_item.dart ('k') | sky/sdk/lib/widgets/raised_button.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698