Loading files
import { ToolBarWidget, ToolBarSelectorButton } from "toolbar.slint";
import { SolderTechnology } from "../api.slint";
export component SolderTechnologySelector inherits ToolBarWidget {
in-out property <SolderTechnology> value;
out property <image> icon: {
if value == SolderTechnology.hand-large {
hand-large-btn.icon
} else if value == SolderTechnology.hand {
hand-btn.icon
} else if value == SolderTechnology.reflow {
reflow-btn.icon
} else if value == SolderTechnology.wave {
wave-btn.icon
} else {
@image-url("")
}
};
out property <string> text: {
if value == SolderTechnology.hand-large {
@tr("Prefer easy hand-soldering")
} else if value == SolderTechnology.hand {
@tr("Prefer hand-soldering")
} else if value == SolderTechnology.reflow {
@tr("Prefer reflow-soldering")
} else if value == SolderTechnology.wave {
@tr("Prefer wave-soldering")
} else {
@tr("No soldering preference")
}
};
spacing: 5px;
callback value-clicked(SolderTechnology);
value-clicked(v) => {
value = v;
}
hand-large-btn := ToolBarSelectorButton {
icon: @image-url("../../../font-awesome/svgs/solid/child.svg");
checked: value == SolderTechnology.hand-large;
enabled: root.enabled;
accessible-label: "easy hand soldering";
clicked => {
root.focus();
value-clicked(self.checked ? SolderTechnology.none : SolderTechnology.hand-large);
}
}
hand-btn := ToolBarSelectorButton {
icon: @image-url("../../../font-awesome/svgs/solid/hand.svg");
checked: value == SolderTechnology.hand;
enabled: root.enabled;
accessible-label: "hand soldering";
clicked => {
root.focus();
value-clicked(self.checked ? SolderTechnology.none : SolderTechnology.hand);
}
}
reflow-btn := ToolBarSelectorButton {
icon: @image-url("../../../font-awesome/svgs/solid/wind.svg");
icon-rotation: 90deg;
checked: value == SolderTechnology.reflow;
enabled: root.enabled;
accessible-label: "reflow soldering";
clicked => {
root.focus();
value-clicked(self.checked ? SolderTechnology.none : SolderTechnology.reflow);
}
}
wave-btn := ToolBarSelectorButton {
icon: @image-url("../../../font-awesome/svgs/solid/water.svg");
checked: value == SolderTechnology.wave;
enabled: root.enabled;
accessible-label: "wave soldering";
clicked => {
root.focus();
value-clicked(self.checked ? SolderTechnology.none : SolderTechnology.wave);
}
}
key-pressed(event) => {
if event.text == Key.LeftArrow {
if value == SolderTechnology.wave {
value-clicked(SolderTechnology.reflow);
} else if value == SolderTechnology.reflow {
value-clicked(SolderTechnology.hand);
} else {
value-clicked(SolderTechnology.hand-large);
}
return accept;
} else if event.text == Key.RightArrow {
if value == SolderTechnology.hand-large {
value-clicked(SolderTechnology.hand);
} else if value == SolderTechnology.hand {
value-clicked(SolderTechnology.reflow);
} else {
value-clicked(SolderTechnology.wave);
}
return accept;
} else if event.text == Key.Space {
value-clicked(SolderTechnology.none);
return accept;
}
reject
}
}
c730ec352This file is pinned to the selected release. Download the original to open it in your design tool.