Add tool switching
This commit is contained in:
parent
8eee3c9a1c
commit
e7b316be1f
|
@ -3,7 +3,7 @@ import { VerticalBox, HorizontalBox } from "widgets/components.slint";
|
||||||
|
|
||||||
import { EditorBar } from "editor_bar.slint";
|
import { EditorBar } from "editor_bar.slint";
|
||||||
import { StatusBar } from "status_bar.slint";
|
import { StatusBar } from "status_bar.slint";
|
||||||
import { ToolBar } from "tool_bar.slint";
|
import { ToolBar, ToolType } from "tool_bar.slint";
|
||||||
import { ObjectToolPanel } from "object_tool_panel.slint";
|
import { ObjectToolPanel } from "object_tool_panel.slint";
|
||||||
|
|
||||||
export component AppWindow inherits Window {
|
export component AppWindow inherits Window {
|
||||||
|
@ -22,9 +22,9 @@ export component AppWindow inherits Window {
|
||||||
p-padding: 0px;
|
p-padding: 0px;
|
||||||
p-spacing: Metrics.spacing-sm;
|
p-spacing: Metrics.spacing-sm;
|
||||||
|
|
||||||
ToolBar { }
|
c-toolbar := ToolBar { }
|
||||||
|
|
||||||
ObjectToolPanel { }
|
if (c-toolbar.p-current-tool == ToolType.Object): ObjectToolPanel { }
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
Text {
|
Text {
|
||||||
|
|
|
@ -1,6 +1,22 @@
|
||||||
import { Metrics, DarkPalette } from "theme.slint";
|
import { Metrics, DarkPalette } from "theme.slint";
|
||||||
import { Box, Button, HorizontalSeparator, VerticalBox } from "widgets/components.slint";
|
import { Box, Button, HorizontalSeparator, VerticalBox } from "widgets/components.slint";
|
||||||
|
|
||||||
|
export enum ToolType {
|
||||||
|
Select,
|
||||||
|
Move,
|
||||||
|
Rotate,
|
||||||
|
Scale,
|
||||||
|
Brush,
|
||||||
|
Light,
|
||||||
|
Area,
|
||||||
|
Object,
|
||||||
|
Flow,
|
||||||
|
Room,
|
||||||
|
Texture,
|
||||||
|
Timeline,
|
||||||
|
Multibrush,
|
||||||
|
}
|
||||||
|
|
||||||
component ToolBarItem inherits Button {
|
component ToolBarItem inherits Button {
|
||||||
width: Metrics.size-lg;
|
width: Metrics.size-lg;
|
||||||
height: Metrics.size-lg;
|
height: Metrics.size-lg;
|
||||||
|
@ -11,59 +27,100 @@ export component ToolBar inherits VerticalBox {
|
||||||
width: Metrics.size-xl;
|
width: Metrics.size-xl;
|
||||||
p-alignment: start;
|
p-alignment: start;
|
||||||
|
|
||||||
|
out property <ToolType> p-current-tool: ToolType.Select;
|
||||||
|
|
||||||
ToolBarItem {
|
ToolBarItem {
|
||||||
p-text: "s";
|
p-text: "s";
|
||||||
|
a-clicked => {
|
||||||
|
p-current-tool = ToolType.Select;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolBarItem {
|
ToolBarItem {
|
||||||
p-text: "m";
|
p-text: "m";
|
||||||
|
a-clicked => {
|
||||||
|
p-current-tool = ToolType.Move;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolBarItem {
|
ToolBarItem {
|
||||||
p-text: "r";
|
p-text: "r";
|
||||||
|
a-clicked => {
|
||||||
|
p-current-tool = ToolType.Rotate;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolBarItem {
|
ToolBarItem {
|
||||||
p-text: "s";
|
p-text: "s";
|
||||||
|
a-clicked => {
|
||||||
|
p-current-tool = ToolType.Scale;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
HorizontalSeparator { }
|
HorizontalSeparator { }
|
||||||
|
|
||||||
ToolBarItem {
|
ToolBarItem {
|
||||||
p-text: "b";
|
p-text: "b";
|
||||||
|
a-clicked => {
|
||||||
|
p-current-tool = ToolType.Brush;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolBarItem {
|
ToolBarItem {
|
||||||
p-text: "o";
|
p-text: "o";
|
||||||
|
a-clicked => {
|
||||||
|
p-current-tool = ToolType.Object;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolBarItem {
|
ToolBarItem {
|
||||||
p-text: "f";
|
p-text: "f";
|
||||||
|
a-clicked => {
|
||||||
|
p-current-tool = ToolType.Flow;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolBarItem {
|
ToolBarItem {
|
||||||
p-text: "r";
|
p-text: "r";
|
||||||
|
a-clicked => {
|
||||||
|
p-current-tool = ToolType.Room;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolBarItem {
|
ToolBarItem {
|
||||||
p-text: "l";
|
p-text: "l";
|
||||||
|
a-clicked => {
|
||||||
|
p-current-tool = ToolType.Light;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolBarItem {
|
ToolBarItem {
|
||||||
p-text: "a";
|
p-text: "a";
|
||||||
|
a-clicked => {
|
||||||
|
p-current-tool = ToolType.Area;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
HorizontalSeparator { }
|
HorizontalSeparator { }
|
||||||
|
|
||||||
ToolBarItem {
|
ToolBarItem {
|
||||||
p-text: "t";
|
p-text: "t";
|
||||||
|
a-clicked => {
|
||||||
|
p-current-tool = ToolType.Texture;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolBarItem {
|
ToolBarItem {
|
||||||
p-text: "t";
|
p-text: "t";
|
||||||
|
a-clicked => {
|
||||||
|
p-current-tool = ToolType.Timeline;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolBarItem {
|
ToolBarItem {
|
||||||
p-text: "m";
|
p-text: "m";
|
||||||
|
a-clicked => {
|
||||||
|
p-current-tool = ToolType.Multibrush;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue