1 | import { DisposableDelegate } from '@lumino/disposable';
|
2 | import { Signal } from '@lumino/signaling';
|
3 | import { ToolbarButton } from '@jupyterlab/apputils';
|
4 | import { PACKAGE_NAME, CONFIGURED_CLASS } from '.';
|
5 | import { ICONS } from './icons';
|
6 |
|
7 |
|
8 |
|
9 | export class NotebookFontsButton {
|
10 | constructor() {
|
11 | this.widgetRequested = new Signal(this);
|
12 | }
|
13 | |
14 |
|
15 |
|
16 | createNew(panel, context) {
|
17 | let button = new ToolbarButton({
|
18 | icon: ICONS.fonts,
|
19 | onClick: () => {
|
20 | this.widgetRequested.emit(void 0);
|
21 | },
|
22 | tooltip: 'Customize Notebook Fonts'
|
23 | });
|
24 | const metaUpdated = (metadata) => {
|
25 | const hasMeta = !!metadata.get(PACKAGE_NAME);
|
26 | if (hasMeta) {
|
27 | button.addClass(CONFIGURED_CLASS);
|
28 | }
|
29 | else {
|
30 | button.removeClass(CONFIGURED_CLASS);
|
31 | }
|
32 | };
|
33 | if (panel.model) {
|
34 | panel.model.metadata.changed.connect(metaUpdated);
|
35 | metaUpdated(panel.model.metadata);
|
36 | }
|
37 | panel.toolbar.insertItem(9, 'fonts', button);
|
38 | return new DisposableDelegate(() => {
|
39 | button.dispose();
|
40 | });
|
41 | }
|
42 | }
|
43 |
|
\ | No newline at end of file |