mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-10 13:44:39 +08:00
Move and rename files. NOAUTOREVERT=true NOPRESUBMIT=true NOTREECHECKS=true Bug: 768828 TBR=darin@chromium.org NOTRY=true Change-Id: I66d3b155808bc5bdbf237b80208e1e552bcf7f28 Reviewed-on: https://chromium-review.googlesource.com/1001153 Reviewed-by: Blink Reformat <blink-reformat@chromium.org> Commit-Queue: Blink Reformat <blink-reformat@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#549061} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 0aee4434a4dba42a42abaea9bfbc0cd196a63bc1
48 lines
1.2 KiB
JavaScript
48 lines
1.2 KiB
JavaScript
// Copyright 2018 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.
|
|
|
|
UI.SegmentedButton = class extends UI.HBox {
|
|
constructor() {
|
|
super(true);
|
|
/** @type {!Map<string, !Element>} */
|
|
this._buttons = new Map();
|
|
|
|
/** @type {?string} */
|
|
this._selected = null;
|
|
this.registerRequiredCSS('ui/segmentedButton.css');
|
|
this.contentElement.classList.add('segmented-button');
|
|
}
|
|
|
|
/**
|
|
* @param {string} label
|
|
* @param {string} value
|
|
* @param {string=} tooltip
|
|
*/
|
|
addSegment(label, value, tooltip) {
|
|
const button = this.contentElement.createChild('button', 'segmented-button-segment');
|
|
button.textContent = label;
|
|
button.title = tooltip;
|
|
this._buttons.set(value, button);
|
|
button.addEventListener('click', () => this.select(value));
|
|
}
|
|
|
|
/**
|
|
* @param {string} value
|
|
*/
|
|
select(value) {
|
|
if (this._selected === value)
|
|
return;
|
|
this._selected = value;
|
|
for (const key of this._buttons.keys())
|
|
this._buttons.get(key).classList.toggle('segmented-button-segment-selected', key === this._selected);
|
|
}
|
|
|
|
/**
|
|
* @return {?string}
|
|
*/
|
|
selected() {
|
|
return this._selected;
|
|
}
|
|
};
|