UNPKG

monaco-editor-core

Version:

A browser based code editor

45 lines (44 loc) 1.79 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { SelectBoxList } from './selectBoxCustom.js'; import { SelectBoxNative } from './selectBoxNative.js'; import { Widget } from '../widget.js'; import { isMacintosh } from '../../../common/platform.js'; import './selectBox.css'; export class SelectBox extends Widget { constructor(options, selected, contextViewProvider, styles, selectBoxOptions) { super(); // Default to native SelectBox for OSX unless overridden if (isMacintosh && !selectBoxOptions?.useCustomDrawn) { this.selectBoxDelegate = new SelectBoxNative(options, selected, styles, selectBoxOptions); } else { this.selectBoxDelegate = new SelectBoxList(options, selected, contextViewProvider, styles, selectBoxOptions); } this._register(this.selectBoxDelegate); } // Public SelectBox Methods - routed through delegate interface get onDidSelect() { return this.selectBoxDelegate.onDidSelect; } setOptions(options, selected) { this.selectBoxDelegate.setOptions(options, selected); } select(index) { this.selectBoxDelegate.select(index); } focus() { this.selectBoxDelegate.focus(); } blur() { this.selectBoxDelegate.blur(); } setFocusable(focusable) { this.selectBoxDelegate.setFocusable(focusable); } render(container) { this.selectBoxDelegate.render(container); } }