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

Unified Diff: sky/sdk/lib/widgets/tabs.dart

Issue 1235443002: Support for icon theming (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: fix tests 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 side-by-side diff with in-line comments
Download patch
Index: sky/sdk/lib/widgets/tabs.dart
diff --git a/sky/sdk/lib/widgets/tabs.dart b/sky/sdk/lib/widgets/tabs.dart
index f171edf852385275d9372c5423083c980e559063..5e93d20be8622d85a1325bb7a310e4292070335f 100644
--- a/sky/sdk/lib/widgets/tabs.dart
+++ b/sky/sdk/lib/widgets/tabs.dart
@@ -12,8 +12,11 @@ import 'package:sky/rendering/box.dart';
import 'package:sky/rendering/object.dart';
import 'package:vector_math/vector_math.dart';
import 'package:sky/theme/colors.dart' as colors;
+import 'package:sky/theme/typography.dart' as typography;
import 'package:sky/widgets/basic.dart';
+import 'package:sky/widgets/default_text_style.dart';
import 'package:sky/widgets/icon.dart';
+import 'package:sky/widgets/icon_theme.dart';
import 'package:sky/widgets/ink_well.dart';
import 'package:sky/widgets/scrollable.dart';
import 'package:sky/widgets/theme.dart';
@@ -301,7 +304,7 @@ class Tab extends Component {
Widget _buildLabelText() {
assert(label.text != null);
- TextStyle textStyle = Theme.of(this).toolbarText.button.merge(_kTabTextStyle);
+ TextStyle textStyle = DefaultTextStyle.of(this).merge(_kTabTextStyle);
return new Text(label.text, style: textStyle);
}
@@ -434,25 +437,46 @@ class TabBar extends Scrollable {
textAndIcons = true;
}
- Color backgroundColor = Theme.of(this).primaryColor;
- Color indicatorColor = Theme.of(this).accentColor;
+ ThemeData themeData = Theme.of(this);
+ Color backgroundColor = themeData.primaryColor;
+ Color indicatorColor = themeData.accentColor;
if (indicatorColor == backgroundColor) {
indicatorColor = colors.White;
}
- TabBarWrapper tabBarWrapper = new TabBarWrapper(
- children: tabs,
- selectedIndex: selectedIndex,
- backgroundColor: backgroundColor,
- indicatorColor: indicatorColor,
- textAndIcons: textAndIcons,
- scrollable: scrollable,
- onLayoutChanged: scrollable ? _layoutChanged : null
- );
+ TextStyle textStyle;
+ IconThemeColor iconThemeColor;
+ switch (themeData.primaryColorBrightness) {
+ case ThemeBrightness.light:
+ textStyle = typography.black.button;
+ iconThemeColor = IconThemeColor.black;
+ break;
+ case ThemeBrightness.dark:
+ textStyle = typography.white.button;
+ iconThemeColor = IconThemeColor.white;
+ break;
+ }
Matrix4 transform = new Matrix4.identity();
transform.translate(-scrollOffset, 0.0);
- return new Transform(child: tabBarWrapper, transform: transform);
+ return new Transform(
+ transform: transform,
+ child: new IconTheme(
+ data: new IconThemeData(color: iconThemeColor),
+ child: new DefaultTextStyle(
+ style: textStyle,
+ child: new TabBarWrapper(
+ children: tabs,
+ selectedIndex: selectedIndex,
+ backgroundColor: backgroundColor,
+ indicatorColor: indicatorColor,
+ textAndIcons: textAndIcons,
+ scrollable: scrollable,
+ onLayoutChanged: scrollable ? _layoutChanged : null
+ )
+ )
+ )
+ );
}
}

Powered by Google App Engine
This is Rietveld 408576698