aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/button
diff options
context:
space:
mode:
authorGeireann Lindfield Roberts <60007097+geireann@users.noreply.github.com>2023-07-17 23:11:35 -0400
committerGeireann Lindfield Roberts <60007097+geireann@users.noreply.github.com>2023-07-17 23:11:35 -0400
commit54308259a8cd3ac98aaee550ea01ad97f17172e6 (patch)
treed3bd71ed669ac12eb6173a8a0632e5b276578d3b /src/client/views/nodes/button
parent241332557f10fa97718200821374755b68e4fe10 (diff)
so many updates
Diffstat (limited to 'src/client/views/nodes/button')
-rw-r--r--src/client/views/nodes/button/FontIconBox.scss438
-rw-r--r--src/client/views/nodes/button/FontIconBox.tsx385
2 files changed, 0 insertions, 823 deletions
diff --git a/src/client/views/nodes/button/FontIconBox.scss b/src/client/views/nodes/button/FontIconBox.scss
deleted file mode 100644
index 9d9fa26b0..000000000
--- a/src/client/views/nodes/button/FontIconBox.scss
+++ /dev/null
@@ -1,438 +0,0 @@
-@import '../../global/globalCssVariables';
-
-.menuButton {
- height: 100%;
- display: flex;
- justify-content: center;
- align-items: center;
- font-size: 80%;
- border-radius: $standard-border-radius;
- transition: 0.15s;
-
- .menuButton-wrap {
- grid-column: 1;
- justify-content: center;
- align-items: center;
- text-align: center;
- }
-
- .fontIconBox-label {
- color: $white;
- bottom: -1;
- position: absolute;
- text-align: center;
- font-size: 7px;
- letter-spacing: normal;
- background-color: inherit;
- border-radius: 8px;
- padding: 0;
- width: 100%;
- font-family: 'system-ui';
- text-transform: uppercase;
- font-weight: bold;
- transition: 0.15s;
- }
-
- .fontIconBox-icon {
- width: 80%;
- height: 80%;
- }
-
- &.clickBtn,
- &.clickBtnLabel {
- cursor: pointer;
- flex-direction: column;
-
- svg {
- width: 50% !important;
- height: 50%;
- }
- }
-
- &.clickBtnLabel {
- svg {
- margin-top: -4px;
- }
- }
-
- &.textBtn {
- display: grid;
- /* grid-row: auto; */
- grid-auto-flow: column;
- cursor: pointer;
- width: 100%;
- justify-content: center;
- align-items: center;
- justify-items: center;
- }
-
- &.tglBtn,
- &.tglBtnLabel {
- cursor: pointer;
- flex-direction: column;
-
- &.switch {
- //TOGGLE
-
- .switch {
- position: relative;
- display: inline-block;
- width: 100%;
- height: 25px;
- margin: 0;
- }
-
- .switch input {
- opacity: 0;
- width: 0;
- height: 0;
- }
-
- .slider {
- position: absolute;
- cursor: pointer;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- background-color: lightgrey;
- -webkit-transition: 0.4s;
- transition: 0.4s;
- }
-
- .slider:before {
- position: absolute;
- content: '';
- height: 21px;
- width: 21px;
- left: 2px;
- bottom: 2px;
- background-color: $white;
- -webkit-transition: 0.4s;
- transition: 0.4s;
- }
-
- input:checked + .slider {
- background-color: $medium-blue;
- }
-
- input:focus + .slider {
- box-shadow: 0 0 1px $medium-blue;
- }
-
- input:checked + .slider:before {
- -webkit-transform: translateX(26px);
- -ms-transform: translateX(26px);
- transform: translateX(26px);
- }
-
- /* Rounded sliders */
- .slider.round {
- border-radius: $standard-border-radius;
- }
-
- .slider.round:before {
- border-radius: $standard-border-radius;
- }
- }
-
- svg {
- width: 50% !important;
- height: 50%;
- }
-
- &:hover {
- background-color: rgba(0, 0, 0, 0.3);
- }
- }
-
- &.tglBtnLabel {
- svg {
- margin-top: -4px;
- }
- }
-
- &.toolBtn,
- &.toolBtnLabel {
- cursor: pointer;
- width: 100%;
- border-radius: 100%;
- flex-direction: column;
- // margin-top: -4px;
-
- svg {
- width: 60% !important;
- height: 60%;
- }
- }
-
- &.toolBtnLabel {
- svg {
- margin-top: -4px;
- }
- }
-
- &.menuBtn {
- cursor: pointer !important;
- border-radius: 0px;
- flex-direction: column;
-
- svg {
- width: 45% !important;
- height: 45%;
- }
-
- &:hover {
- filter: brightness(0.85);
- }
- }
-
- &.colorBtn,
- &.colorBtnLabel {
- color: black;
- cursor: pointer;
- flex-direction: column;
- background: transparent;
-
- .colorButton-color {
- margin-top: 3px;
- width: 80%;
- height: 3px;
- }
-
- .menuButton-dropdownBox {
- position: absolute;
- width: fit-content;
- height: fit-content;
- color: black;
- top: 100%;
- left: 0;
- z-index: 21;
- background-color: #e3e3e3;
- box-shadow: 0px 3px 4px rgba(0, 0, 0, 0.3);
- border-radius: 3px;
- }
- }
-
- &.colorBtnLabel {
- svg {
- margin-top: -4px;
- }
- }
-
- &.drpdownList {
- width: 100%;
- display: grid;
- grid-auto-columns: 80px 20px;
- justify-items: center;
- font-family: 'Roboto';
- white-space: nowrap;
- text-overflow: ellipsis;
- font-size: 13;
- font-weight: 600;
- overflow: hidden;
- cursor: pointer;
- background: transparent;
- align-content: center;
- align-items: center;
-
- .menuButton-dropdownList {
- position: absolute;
- width: 150px;
- height: fit-content;
- top: 100%;
- z-index: 21;
- background-color: $white;
- box-shadow: 0px 3px 4px rgba(0, 0, 0, 0.3);
- padding: 1px;
-
- .list-item {
- color: $black;
- width: 100%;
- height: 25px;
- font-weight: 400;
- display: flex;
- justify-content: left;
- align-items: center;
- padding-left: 5px;
- }
-
- .list-item:hover {
- background-color: lightgrey;
- }
- }
- }
-
- &.numBtn {
- cursor: pointer;
- background: transparent;
-
- &.slider {
- color: $white;
- cursor: pointer;
- flex-direction: column;
- background: transparent;
-
- .menu-slider {
- width: 100px;
- }
-
- .menuButton-dropdownBox {
- position: absolute;
- width: fit-content;
- height: fit-content;
- top: 100%;
- z-index: 21;
- background-color: #e3e3e3;
- box-shadow: 0px 3px 4px rgba(0, 0, 0, 0.3);
- border-radius: $standard-border-radius;
-
- .menu-slider {
- height: 10px;
- }
- input[type='range']::-webkit-slider-runnable-track {
- background: gray;
- height: 3px;
- }
-
- input[type='range']::-webkit-slider-thumb {
- box-shadow: 1px 1px 1px #000000;
- border: 1px solid #000000;
- height: 10px;
- width: 10px;
- border-radius: 5px;
- background: #ffffff;
- cursor: pointer;
- -webkit-appearance: none;
- margin-top: -4px;
- }
- }
- }
-
- .button {
- width: 25%;
- display: flex;
- align-items: center;
- justify-content: center;
-
- &.number {
- width: 50%;
-
- .button-input {
- background: none;
- border: none;
- text-align: right;
- width: 100%;
- color: $white;
- height: 100%;
- text-align: center;
- }
-
- .button-input:focus {
- outline: none;
- }
- }
- }
-
- &.list {
- width: 100%;
- justify-content: space-around;
- border: $standard-border;
-
- .menuButton-dropdownList {
- position: absolute;
- width: fit-content;
- height: fit-content;
- min-width: 50%;
- max-height: 50vh;
- overflow-y: scroll;
- top: 100%;
- z-index: 21;
- background-color: $white;
- box-shadow: 0px 3px 4px rgba(0, 0, 0, 0.3);
- padding: 1px;
-
- .list-item {
- color: $black;
- width: 100%;
- height: 25px;
- font-weight: 400;
- display: flex;
- justify-content: center;
- align-items: center;
- }
-
- .list-item:hover {
- background-color: lightgrey;
- }
- }
- }
- }
-
- &.editableText {
- cursor: text;
- display: flex;
- flex-direction: row;
- gap: 5px;
- padding-left: 10px;
- justify-content: flex-start;
- color: black;
- background-color: $light-gray;
- padding: 5px;
- padding-left: 10px;
- width: 100%;
- height: 100%;
- }
-
- &.drpDownBtn {
- cursor: pointer;
- background: transparent;
- border: solid 0.5px grey;
-
- &.true {
- background: rgba(0, 0, 0, 0.3);
- }
-
- .menuButton-dropdownBox {
- position: absolute;
- width: 150px;
- height: 250px;
- top: 100%;
- background-color: #e3e3e3;
- box-shadow: 0px 3px 4px rgba(0, 0, 0, 0.3);
- border-radius: $standard-border-radius;
- }
- }
-
- .menuButton-dropdown {
- display: flex;
- justify-content: center;
- align-items: center;
- font-size: 15px;
- grid-column: 2;
- border-radius: 0px 7px 7px 0px;
- width: 13px;
- height: 100%;
- right: 0;
- }
-
- .menuButton-dropdown-header {
- width: 100%;
- font-weight: 300;
- padding: 5px;
- overflow: hidden;
- font-size: 12px;
- white-space: nowrap;
- text-overflow: ellipsis;
- }
-
- .dropbox-background {
- width: 200vw;
- height: 200vh;
- top: -100vh;
- z-index: 20;
- left: -100vw;
- background: transparent;
- position: fixed;
- }
-}
diff --git a/src/client/views/nodes/button/FontIconBox.tsx b/src/client/views/nodes/button/FontIconBox.tsx
deleted file mode 100644
index e31407f4b..000000000
--- a/src/client/views/nodes/button/FontIconBox.tsx
+++ /dev/null
@@ -1,385 +0,0 @@
-import { IconProp } from '@fortawesome/fontawesome-svg-core';
-import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
-import { Button, ColorPicker, Dropdown, DropdownType, EditableText, IconButton, IListItemProps, NumberDropdown, NumberDropdownType, Size, Toggle, ToggleType, Type } from 'browndash-components';
-import { action, computed, observable } from 'mobx';
-import { observer } from 'mobx-react';
-import * as React from 'react';
-import { Doc, StrListCast } from '../../../../fields/Doc';
-import { ScriptField } from '../../../../fields/ScriptField';
-import { BoolCast, Cast, NumCast, ScriptCast, StrCast } from '../../../../fields/Types';
-import { CollectionViewType, DocumentType } from '../../../documents/DocumentTypes';
-import { SelectionManager } from '../../../util/SelectionManager';
-import { undoable, UndoManager } from '../../../util/UndoManager';
-import { ContextMenu } from '../../ContextMenu';
-import { DocComponent } from '../../DocComponent';
-import { EditableView } from '../../EditableView';
-import { Colors } from '../../global/globalEnums';
-import { StyleProp } from '../../StyleProvider';
-import { FieldView, FieldViewProps } from '.././FieldView';
-import { OpenWhere } from '../DocumentView';
-import { RichTextMenu } from '../formattedText/RichTextMenu';
-import './FontIconBox.scss';
-
-export enum ButtonType {
- TextButton = 'textBtn',
- MenuButton = 'menuBtn',
- DropdownList = 'drpdownList',
- DropdownButton = 'drpdownBtn',
- ClickButton = 'clickBtn',
- DoubleButton = 'dblBtn',
- ToggleButton = 'tglBtn',
- ColorButton = 'colorBtn',
- ToolButton = 'toolBtn',
- NumberSliderButton = 'numSliderBtn',
- NumberDropdownButton = 'numDropdownBtn',
- NumberInlineButton = 'numInlineBtn',
- EditableText = 'editableText',
-}
-
-export interface ButtonProps extends FieldViewProps {
- type?: ButtonType;
-}
-@observer
-export class FontIconBox extends DocComponent<ButtonProps>() {
- public static LayoutString(fieldKey: string) {
- return FieldView.LayoutString(FontIconBox, fieldKey);
- }
- @observable noTooltip = false;
- showTemplate = (): void => {
- const dragFactory = Cast(this.layoutDoc.dragFactory, Doc, null);
- dragFactory && this.props.addDocTab(dragFactory, OpenWhere.addRight);
- };
- dragAsTemplate = (): void => {
- this.layoutDoc.onDragStart = ScriptField.MakeFunction('getCopy(this.dragFactory, true)');
- };
- useAsPrototype = (): void => {
- this.layoutDoc.onDragStart = ScriptField.MakeFunction('makeDelegate(this.dragFactory, true)');
- };
-
- specificContextMenu = (): void => {
- if (!Doc.noviceMode) {
- const cm = ContextMenu.Instance;
- cm.addItem({ description: 'Show Template', event: this.showTemplate, icon: 'tag' });
- cm.addItem({ description: 'Use as Render Template', event: this.dragAsTemplate, icon: 'tag' });
- cm.addItem({ description: 'Use as Prototype', event: this.useAsPrototype, icon: 'tag' });
- }
- };
-
- static GetShowLabels() {
- return BoolCast(Doc.UserDoc()._showLabel);
- }
- static SetShowLabels(show: boolean) {
- Doc.UserDoc()._showLabel = show;
- }
- static GetRecognizeGestures() {
- return BoolCast(Doc.UserDoc()._recognizeGestures);
- }
- static SetRecognizeGestures(show: boolean) {
- Doc.UserDoc()._recognizeGestures = show;
- }
-
- // Determining UI Specs
- @computed get label() {
- return StrCast(this.rootDoc.icon_label, StrCast(this.rootDoc.title));
- }
- Icon = (color: string, iconFalse?: boolean) => {
- let icon;
- if (iconFalse ) {
- icon = StrCast(this.dataDoc[this.fieldKey ?? 'iconFalse'] ?? this.dataDoc.icon, 'user') as any;
- if (icon) return <FontAwesomeIcon className={`fontIconBox-icon-${this.type}`} icon={icon} color={color} />
- else return null
- }
- icon = StrCast(this.dataDoc[this.fieldKey ?? 'icon'] ?? this.dataDoc.icon, 'user') as any;
- const trailsIcon = () => <img src={`/assets/${'presTrails.png'}`} style={{ width: 30, height: 30, filter: `invert(${color === Colors.DARK_GRAY ? '0%' : '100%'})` }} />;
- return !icon ? null : icon === 'pres-trail' ? trailsIcon() : <FontAwesomeIcon className={`fontIconBox-icon-${this.type}`} icon={icon} color={color} />;
- };
- @computed get dropdown() {
- return BoolCast(this.rootDoc.dropDownOpen);
- }
- @computed get buttonList() {
- return StrListCast(this.rootDoc.btnList);
- }
- @computed get type() {
- return StrCast(this.rootDoc.btnType);
- }
-
- /**
- * Types of buttons in dash:
- * - Main menu button (LHS)
- * - Tool button
- * - Expandable button (CollectionLinearView)
- * - Button inside of CollectionLinearView vs. outside of CollectionLinearView
- * - Action button
- * - Dropdown button
- * - Color button
- * - Dropdown list
- * - Number button
- **/
-
- _batch: UndoManager.Batch | undefined = undefined;
- /**
- * Number button
- */
- @computed get numberDropdown() {
- let type: NumberDropdownType;
- switch(this.type) {
- case ButtonType.NumberDropdownButton:
- type = 'dropdown'
- break;
- case ButtonType.NumberInlineButton:
- type = 'input'
- break;
- case ButtonType.NumberSliderButton:
- default:
- type = 'slider'
- break;
- }
- const numScript = (value?: number) => ScriptCast(this.rootDoc.script).script.run({ self: this.rootDoc, value, _readOnly_: value === undefined });
- const color = this.props.styleProvider?.(this.rootDoc, this.props, StyleProp.Color);
- // Script for checking the outcome of the toggle
- const checkResult = Number(Number(numScript().result ?? 0).toPrecision(NumCast(this.dataDoc.numPrecision, 3)));
- const label = !FontIconBox.GetShowLabels() ? null : <div className="fontIconBox-label">{this.label}</div>;
-
- return <NumberDropdown
- color={color}
- numberDropdownType={type}
- showPlusMinus={false}
- min={NumCast(this.rootDoc.numBtnMin, 0)}
- max={NumCast(this.rootDoc.numBtnMax, 100)}
- number={checkResult}
- setNumber={undoable(value => numScript(value), `${this.rootDoc.title} button set from list`)}
- />
- }
-
- /**
- * Dropdown button
- */
- @computed get dropdownButton() {
- const active: string = StrCast(this.rootDoc.dropDownOpen);
- const color = this.props.styleProvider?.(this.rootDoc, this.props, StyleProp.Color);
- const backgroundColor = this.props.styleProvider?.(this.rootDoc, this.props, StyleProp.BackgroundColor);
- return (
- <div
- className={`menuButton ${this.type} ${active}`}
- style={{ color: color, backgroundColor: backgroundColor, borderBottomLeftRadius: this.dropdown ? 0 : undefined }}
- onClick={action(() => {
- this.rootDoc.dropDownOpen = !this.rootDoc.dropDownOpen;
- this.noTooltip = this.rootDoc.dropDownOpen;
- Doc.UnBrushAllDocs();
- })}>
- {this.Icon(color)}
- {!this.label || !FontIconBox.GetShowLabels() ? null : (
- <div className="fontIconBox-label" style={{ color: color, backgroundColor: backgroundColor }}>
- {' '}
- {this.label}{' '}
- </div>
- )}
- <div className="menuButton-dropdown" style={{ borderBottomRightRadius: this.dropdown ? 0 : undefined }}>
- <FontAwesomeIcon icon={'caret-down'} color={color} size="sm" />
- </div>
- {this.rootDoc.dropDownOpen ? <div className="menuButton-dropdownBox">{/* DROPDOWN BOX CONTENTS */}</div> : null}
- </div>
- );
- }
-
- /**
- * Dropdown list
- */
- @computed get dropdownListButton() {
- const active: string = StrCast(this.rootDoc.dropDownOpen);
- const color = this.props.styleProvider?.(this.rootDoc, this.props, StyleProp.Color);
- const backgroundColor = this.props.styleProvider?.(this.rootDoc, this.props, StyleProp.BackgroundColor);
-
- const script = ScriptCast(this.rootDoc.script);
-
- let noviceList: string[] = [];
- let text: string | undefined;
- let dropdown = true;
- let icon: IconProp = 'caret-down';
- try {
- if (script?.script.originalScript.startsWith('setView')) {
- const selected = SelectionManager.Docs().lastElement();
- console.log('selected')
- if (selected) {
- if (StrCast(selected.type) === DocumentType.COL) {
- text = StrCast(selected._type_collection);
- } else {
- console.log("doc selected", selected.title)
- dropdown = false;
- text = selected.type === DocumentType.RTF ? 'Text' : StrCast(selected.type);
- icon = Doc.toIcon(selected);
- return <div>Hi!</div>
- }
- } else {
- dropdown = false;
- icon = 'globe-asia';
- text = 'User Default';
- return <div>Hi!</div>
- }
- noviceList = [CollectionViewType.Freeform, CollectionViewType.Schema, CollectionViewType.Stacking, CollectionViewType.NoteTaking];
- } else text = StrCast((RichTextMenu.Instance?.TextView?.EditorView ? RichTextMenu.Instance : Doc.UserDoc()).fontFamily);
- } catch (e) {
- console.log(e);
- }
-
- console.log("current item: ", text);
-
- // Get items to place into the list
- const list: IListItemProps[] = this.buttonList
- .filter(value => !Doc.noviceMode || !noviceList.length || noviceList.includes(value))
- .map(value => (
- {
- text: value,
- val: value,
- style: { fontFamily: value },
- onClick: undoable(() => script.script.run({ self: this.rootDoc, value }), value)
- // shortcut: '#',
- }
- ));
-
-
- return (
- <Dropdown
- selectedVal={text}
- setSelectedVal={undoable((val) => script.script.run({ self: this.rootDoc, val }), `dropdown select ${this.label}`)}
- color={Colors.WHITE}
- type={Type.PRIM}
- dropdownType={DropdownType.SELECT}
- items={list}
- tooltip={this.label}
- />
- )
- }
-
-
- @computed get colorScript() {
- return ScriptCast(this.rootDoc.script);
- }
-
- /**
- * Color button
- */
- @computed get colorButton() {
- const color = this.props.styleProvider?.(this.rootDoc, this.props, StyleProp.Color);
- const backgroundColor = this.props.styleProvider?.(this.rootDoc, this.props, StyleProp.BackgroundColor);
- const curColor = this.colorScript?.script.run({ self: this.rootDoc, value: undefined, _readOnly_: true }).result ?? 'transparent';
- const tooltip: string = StrCast(this.rootDoc.toolTip);
-
- return (
- <ColorPicker
- setSelectedColor={(value) => {
- const s = this.colorScript;
- s && undoable(() => s.script.run({ self: this.rootDoc, value: value, _readOnly_: false }).result, `Set ${tooltip} to ${value}`)();
- }}
- selectedColor={curColor}
- type={Type.PRIM}
- color={color}
- icon={this.Icon(color)!}
- tooltip={tooltip}
- label={this.label}
- />
- )
- }
-
- @computed get toggleButton() {
- // Determine the type of toggle button
- const switchToggle: boolean = BoolCast(this.rootDoc.switchToggle);
- const buttonText: string = StrCast(this.rootDoc.buttonText);
- const tooltip: string = StrCast(this.rootDoc.toolTip);
-
- // Colors
- const color = this.props.styleProvider?.(this.rootDoc, this.props, StyleProp.Color);
- const backgroundColor = this.props.styleProvider?.(this.rootDoc, this.props, StyleProp.BackgroundColor);
-
- console.log(buttonText, tooltip);
- return (
- <Toggle tooltip={`Toggle + ${tooltip}`} toggleType={ToggleType.BUTTON} type={Type.PRIM} toggleStatus={switchToggle} text={buttonText} color={color} icon={this.Icon(color)!} label={this.label}/>
- )
- }
-
- /**
- * Default
- */
- @computed get defaultButton() {
- const color = this.props.styleProvider?.(this.rootDoc, this.props, StyleProp.Color);
- const backgroundColor = this.props.styleProvider?.(this.rootDoc, this.props, StyleProp.BackgroundColor);
- const tooltip: string = StrCast(this.rootDoc.toolTip);
-
- return (
- <IconButton tooltip={tooltip} icon={this.Icon(color)!} label={this.label}/>
- )
- }
-
- @computed get editableText() {
- // Script for running the toggle
- const script = ScriptCast(this.rootDoc.script);
- // Function to run the script
- const checkResult = script?.script.run({ value: '', _readOnly_: true }).result;
-
- const setValue = (value: string, shiftDown?: boolean): boolean => script?.script.run({ value, _readOnly_: false }).result;
-
- return <EditableText
- editing={false} onEdit={() => {}} setEditing={(editing: boolean) => {}}
- />
-
- return (
- <div className="menuButton editableText">
- <FontAwesomeIcon className={`fontIconBox-icon-${this.type}`} icon={'lock'} />
- <div style={{ width: 'calc(100% - .875em)', paddingLeft: '4px' }}>
- <EditableView GetValue={() => script?.script.run({ value: '', _readOnly_: true }).result} SetValue={setValue} oneLine={true} contents={checkResult} />
- </div>
- </div>
- );
- }
-
- render() {
- // determine dash button metadata
- const color = this.props.styleProvider?.(this.rootDoc, this.props, StyleProp.Color);
- const backgroundColor = this.props.styleProvider?.(this.rootDoc, this.props, StyleProp.BackgroundColor);
- const tooltip: string = StrCast(this.rootDoc.toolTip);
-
- // TODO:glr Add label of button type
- let button: JSX.Element = this.defaultButton;
- // prettier-ignore
- switch (this.type) {
- case ButtonType.EditableText:
- button = this.editableText;
- break;
- case ButtonType.DropdownList:
- button = this.dropdownListButton;
- break;
- case ButtonType.ColorButton:
- button = this.colorButton;
- break;
- case ButtonType.NumberDropdownButton:
- case ButtonType.NumberInlineButton:
- case ButtonType.NumberSliderButton:
- button = this.numberDropdown;
- break;
- case ButtonType.DropdownButton:
- button = this.dropdownButton;
- break;
- case ButtonType.ToggleButton: button = this.toggleButton; break;
- case ButtonType.TextButton:
- // Script for checking the outcome of the toggle
- const script = ScriptCast(this.rootDoc.script);
- const checkResult = script?.script.run({ _readOnly_: true }).result;
- button = (
- <Button tooltip={tooltip} color={checkResult ?? backgroundColor} icon={this.Icon(color)!} text={StrCast(this.rootDoc.buttonText)} label={this.label}/>
- );
- break;
- case ButtonType.ClickButton:
- case ButtonType.ToolButton:
- button = (
- <IconButton tooltip={tooltip} color={color} icon={this.Icon(color)!} label={this.label}/>
- );
- break;
- case ButtonType.MenuButton: button = (
- <IconButton tooltip={tooltip} tooltipPlacement='right' size={Size.LARGE} color={color} icon={this.Icon(color)!} label={this.label}/>
- );
- break;
- }
-
- return button;
- }
-}