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

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

Issue 1215313004: Tab bar should have white indicator if primary and accent color are the same (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: rebase 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 | « no previous file | sky/tests/examples/stocks-expected.txt » ('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:math' as math; 5 import 'dart:math' as math;
6 6
7 import 'package:sky/animation/generators.dart'; 7 import 'package:sky/animation/generators.dart';
8 import 'package:sky/animation/mechanics.dart'; 8 import 'package:sky/animation/mechanics.dart';
9 import 'package:sky/animation/scroll_behavior.dart'; 9 import 'package:sky/animation/scroll_behavior.dart';
10 import 'package:sky/painting/text_style.dart'; 10 import 'package:sky/painting/text_style.dart';
11 import 'package:sky/rendering/box.dart'; 11 import 'package:sky/rendering/box.dart';
12 import 'package:sky/rendering/object.dart'; 12 import 'package:sky/rendering/object.dart';
13 import 'package:vector_math/vector_math.dart'; 13 import 'package:vector_math/vector_math.dart';
14 import 'package:sky/theme/colors.dart' as colors;
14 import 'package:sky/widgets/basic.dart'; 15 import 'package:sky/widgets/basic.dart';
15 import 'package:sky/widgets/icon.dart'; 16 import 'package:sky/widgets/icon.dart';
16 import 'package:sky/widgets/ink_well.dart'; 17 import 'package:sky/widgets/ink_well.dart';
17 import 'package:sky/widgets/scrollable.dart'; 18 import 'package:sky/widgets/scrollable.dart';
18 import 'package:sky/widgets/theme.dart'; 19 import 'package:sky/widgets/theme.dart';
19 import 'package:sky/widgets/widget.dart'; 20 import 'package:sky/widgets/widget.dart';
20 21
21 typedef void SelectedIndexChanged(int selectedIndex); 22 typedef void SelectedIndexChanged(int selectedIndex);
22 typedef void LayoutChanged(Size size, List<double> widths); 23 typedef void LayoutChanged(Size size, List<double> widths);
23 24
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 assert(labels != null && labels.isNotEmpty); 427 assert(labels != null && labels.isNotEmpty);
427 List<Widget> tabs = <Widget>[]; 428 List<Widget> tabs = <Widget>[];
428 bool textAndIcons = false; 429 bool textAndIcons = false;
429 int tabIndex = 0; 430 int tabIndex = 0;
430 for (TabLabel label in labels) { 431 for (TabLabel label in labels) {
431 tabs.add(_toTab(label, tabIndex++)); 432 tabs.add(_toTab(label, tabIndex++));
432 if (label.text != null && label.icon != null) 433 if (label.text != null && label.icon != null)
433 textAndIcons = true; 434 textAndIcons = true;
434 } 435 }
435 436
437 Color backgroundColor = Theme.of(this).primaryColor;
438 Color indicatorColor = Theme.of(this).accentColor;
439 if (indicatorColor == backgroundColor) {
440 indicatorColor = colors.White;
441 }
442
436 TabBarWrapper tabBarWrapper = new TabBarWrapper( 443 TabBarWrapper tabBarWrapper = new TabBarWrapper(
437 children: tabs, 444 children: tabs,
438 selectedIndex: selectedIndex, 445 selectedIndex: selectedIndex,
439 backgroundColor: Theme.of(this).primaryColor, 446 backgroundColor: backgroundColor,
440 indicatorColor: Theme.of(this).accentColor, 447 indicatorColor: indicatorColor,
441 textAndIcons: textAndIcons, 448 textAndIcons: textAndIcons,
442 scrollable: scrollable, 449 scrollable: scrollable,
443 onLayoutChanged: scrollable ? _layoutChanged : null 450 onLayoutChanged: scrollable ? _layoutChanged : null
444 ); 451 );
445 452
446 Matrix4 transform = new Matrix4.identity(); 453 Matrix4 transform = new Matrix4.identity();
447 transform.translate(-scrollOffset, 0.0); 454 transform.translate(-scrollOffset, 0.0);
448 return new Transform(child: tabBarWrapper, transform: transform); 455 return new Transform(child: tabBarWrapper, transform: transform);
449 } 456 }
450 } 457 }
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 selectedIndex: selectedIndex, 499 selectedIndex: selectedIndex,
493 scrollable: scrollable 500 scrollable: scrollable
494 ); 501 );
495 502
496 Widget content = views[selectedIndex].buildContent(); 503 Widget content = views[selectedIndex].buildContent();
497 return new Flex([tabBar, new Flexible(child: content)], 504 return new Flex([tabBar, new Flexible(child: content)],
498 direction: FlexDirection.vertical 505 direction: FlexDirection.vertical
499 ); 506 );
500 } 507 }
501 } 508 }
OLDNEW
« no previous file with comments | « no previous file | sky/tests/examples/stocks-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698