| <!-- |
| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| --> |
| <import src="sky-element.sky" /> |
| <import src="material-element.sky" /> |
| <import src="sky-icon.sky" /> |
| |
| <sky-element attributes="icon:string"> |
| <template> |
| <style> |
| :host { |
| display: flex; |
| align-items: center; |
| height: 48px; |
| -webkit-user-select: none; |
| } |
| #background { |
| display: flex; |
| align-items: center; |
| height: 100%; |
| flex: 1; |
| } |
| #background[highlight] { |
| background: rgba(153, 153, 153, 0.4); |
| } |
| sky-icon { |
| padding: 0px 16px; |
| } |
| #label { |
| font-family: 'Roboto Medium', 'Helvetica'; |
| color: #212121; |
| padding: 0px 16px; |
| flex: 1; |
| } |
| </style> |
| <div id="background"> |
| <sky-icon size="24" /> |
| <div id="label"> |
| <content /> |
| </div> |
| </div> |
| </template> |
| <script> |
| import "dart:sky"; |
| |
| @Tagname('sky-menu-item') |
| class SkyMenuItem extends MaterialElement { |
| SkyIcon _icon; |
| Element _label; |
| |
| SkyMenuItem() { |
| addEventListener('pointerdown', _handlePointerDown); |
| addEventListener('pointerup', _handlePointerUp); |
| addEventListener('pointercancel', _handlePointerUp); |
| } |
| |
| void shadowRootReady() { |
| _icon = shadowRoot.querySelector('sky-icon'); |
| _icon.type = "${icon}_grey600"; |
| } |
| |
| void iconChanged(String oldValue, String newValue) { |
| if (_icon != null) |
| _icon.type = "${newValue}_grey600"; |
| } |
| |
| void _handlePointerDown(Event event) { |
| shadowRoot.getElementById('background').setAttribute('highlight', ''); |
| } |
| |
| void _handlePointerUp(Event event) { |
| shadowRoot.getElementById('background').removeAttribute('highlight'); |
| } |
| } |
| |
| _init(script) => register(script, SkyMenuItem); |
| </script> |
| </sky-element> |