提交 f35fa2bb 编写于 作者: J Joao Moreno

list: useShadows options

上级 e3c4f05e
......@@ -3,7 +3,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { toObject, assign } from 'vs/base/common/objects';
import { toObject, assign, getOrDefault } from 'vs/base/common/objects';
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import { Gesture } from 'vs/base/browser/touch';
import * as DOM from 'vs/base/browser/dom';
......@@ -38,6 +38,14 @@ const MouseEventTypes = [
'contextmenu'
];
export interface IListViewOptions {
useShadows?: boolean;
}
const DefaultOptions: IListViewOptions = {
useShadows: true
};
export class ListView<T> implements IDisposable {
private items: IItem<T>[];
......@@ -56,7 +64,8 @@ export class ListView<T> implements IDisposable {
constructor(
container: HTMLElement,
private delegate: IDelegate<T>,
renderers: IRenderer<T, any>[]
renderers: IRenderer<T, any>[],
options: IListViewOptions = DefaultOptions
) {
this.items = [];
this.itemId = 0;
......@@ -79,7 +88,7 @@ export class ListView<T> implements IDisposable {
canUseTranslate3d: false,
horizontal: ScrollbarVisibility.Hidden,
vertical: ScrollbarVisibility.Auto,
useShadows: false,
useShadows: getOrDefault(options, o => o.useShadows, DefaultOptions.useShadows),
saveLastScrollTimeOnClassName: 'monaco-list-row'
});
......
......@@ -9,7 +9,7 @@ import { isNumber } from 'vs/base/common/types';
import * as DOM from 'vs/base/browser/dom';
import Event, { Emitter, mapEvent, EventBufferer } from 'vs/base/common/event';
import { IDelegate, IRenderer, IListMouseEvent, IFocusChangeEvent, ISelectionChangeEvent } from './list';
import { ListView } from './listView';
import { ListView, IListViewOptions } from './listView';
interface ITraitTemplateData<D> {
container: HTMLElement;
......@@ -146,6 +146,11 @@ class Controller<T> implements IDisposable {
}
}
export interface IListOptions extends IListViewOptions {
}
const DefaultOptions: IListOptions = {};
export class List<T> implements IDisposable {
private static InstanceCount = 0;
......@@ -168,7 +173,8 @@ export class List<T> implements IDisposable {
constructor(
container: HTMLElement,
delegate: IDelegate<T>,
renderers: IRenderer<T, any>[]
renderers: IRenderer<T, any>[],
options: IListOptions = DefaultOptions
) {
this.focus = new FocusTrait(i => this.getElementId(i));
this.selection = new Trait('selected');
......@@ -180,7 +186,7 @@ export class List<T> implements IDisposable {
return r;
});
this.view = new ListView(container, delegate, renderers);
this.view = new ListView(container, delegate, renderers, options);
this.view.domNode.setAttribute('role', 'listbox');
this.controller = new Controller(this, this.view);
}
......
......@@ -364,7 +364,9 @@ export class SuggestWidget implements IContentWidget, IDisposable {
let renderer: IRenderer<CompletionItem, any> = instantiationService.createInstance(Renderer, this, this.editor);
this.delegate = new Delegate(() => this.list);
this.list = new List(this.listElement, this.delegate, [renderer]);
this.list = new List(this.listElement, this.delegate, [renderer], {
useShadows: false
});
this.toDispose = [
editor.onDidBlurEditorText(() => this.onEditorBlur()),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册