From d331a98c222a8bc4c450b3600aef5f9fcafe59f0 Mon Sep 17 00:00:00 2001 From: Collin Jackson Date: Tue, 7 Jul 2015 16:44:29 -0700 Subject: [PATCH] Support for selected menu items R=ianh@google.com Review URL: https://codereview.chromium.org/1226583005 . --- sdk/example/stocks/lib/stock_home.dart | 1 + sdk/lib/widgets/menu_item.dart | 15 ++++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/sdk/example/stocks/lib/stock_home.dart b/sdk/example/stocks/lib/stock_home.dart index 64de6f0c779..30471b8a436 100644 --- a/sdk/example/stocks/lib/stock_home.dart +++ b/sdk/example/stocks/lib/stock_home.dart @@ -127,6 +127,7 @@ class StockHome extends StatefulComponent { new DrawerHeader(children: [new Text('Stocks')]), new MenuItem( icon: 'action/assessment', + selected: true, children: [new Text('Stock List')]), new MenuItem( icon: 'action/account_balance', diff --git a/sdk/lib/widgets/menu_item.dart b/sdk/lib/widgets/menu_item.dart index 76c5de84f16..98de178cf1a 100644 --- a/sdk/lib/widgets/menu_item.dart +++ b/sdk/lib/widgets/menu_item.dart @@ -26,17 +26,19 @@ const BoxDecoration _kHighlightBoring = const BoxDecoration( ); class MenuItem extends ButtonBase { - MenuItem({ String key, this.icon, this.children, this.onPressed }) + MenuItem({ String key, this.icon, this.children, this.onPressed, this.selected: false }) : super(key: key); String icon; List children; Function onPressed; + bool selected; void syncFields(MenuItem source) { icon = source.icon; children = source.children; onPressed = source.onPressed; + selected = source.selected; super.syncFields(source); } @@ -61,7 +63,7 @@ class MenuItem extends ButtonBase { if (icon != null) { flexChildren.add( new Opacity( - opacity: highlight ? 1.0 : 0.45, + opacity: selected ? 1.0 : 0.45, child: new Padding( padding: const EdgeDims.symmetric(horizontal: 16.0), child: new Icon(type: "${icon}_${iconSuffix}", size: 24) @@ -87,9 +89,12 @@ class MenuItem extends ButtonBase { }, child: new Container( height: 48.0, - decoration: highlight ? _kHighlightDecoration : _kHighlightBoring, - child: new InkWell( - child: new Flex(flexChildren) + decoration: selected ? _kHighlightDecoration : _kHighlightBoring, + child: new Container( + decoration: highlight ? _kHighlightDecoration : _kHighlightBoring, + child: new InkWell( + child: new Flex(flexChildren) + ) ) ) );