From 19ac520f78e4f47634afd2897d161b6c2c9bd1d2 Mon Sep 17 00:00:00 2001 From: paul Date: Mon, 23 Sep 2024 23:13:36 +0530 Subject: [PATCH] feat: added spinbox --- .../tkinter/assets/widgets/spinbox.png | Bin 0 -> 9915 bytes src/frameworks/tkinter/sidebarWidgets.js | 8 +++ src/frameworks/tkinter/widgets/input.js | 2 +- src/frameworks/tkinter/widgets/spinBox.js | 54 ++++++++++++++---- 4 files changed, 51 insertions(+), 13 deletions(-) create mode 100644 src/frameworks/tkinter/assets/widgets/spinbox.png diff --git a/src/frameworks/tkinter/assets/widgets/spinbox.png b/src/frameworks/tkinter/assets/widgets/spinbox.png new file mode 100644 index 0000000000000000000000000000000000000000..de9d58ce1d48d140a917cc0622bd87aa28947ef2 GIT binary patch literal 9915 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 this.setAttrValue("placeHolder", value) - } + spinProps: { + label: "Properties", + display: "horizontal", + min: { + label: "Min", + tool: Tools.NUMBER_INPUT, // the tool to display, can be either HTML ELement or a constant string + toolProps: { placeholder: "min" }, + value: 0, + onChange: (value) => this.setAttrValue("spinProps.min", value) + }, + max: { + label: "Max", + tool: Tools.NUMBER_INPUT, + toolProps: { placeholder: "max"}, + value: 100, + onChange: (value) => this.setAttrValue("spinProps.max", value) + }, + step: { + label: "Step", + tool: Tools.NUMBER_INPUT, + toolProps: { placeholder: "max", stringMode: true, step: "0.1"}, + value: 1, + onChange: (value) => this.setAttrValue("spinProps.step", value) + }, + default: { + label: "Default", + tool: Tools.NUMBER_INPUT, + toolProps: { placeholder: "max", stringMode: true, step: "0.1"}, + value: 0, + onChange: (value) => this.setAttrValue("spinProps.default", value) + } + }, } } @@ -45,7 +71,7 @@ class SpinBox extends Widget{ componentDidMount(){ super.componentDidMount() this.setAttrValue("styling.backgroundColor", "#fff") - this.setWidgetName("Entry") + this.setWidgetName("SpinBox") } getToolbarAttrs(){ @@ -66,9 +92,13 @@ class SpinBox extends Widget{ renderContent(){ return (
-
-
- {this.getAttrValue("placeHolder")} +
+
+ {this.getAttrValue("spinProps.default")} +
+
+ +