/*
14 * Copyright (C) 2024 PBS
16 * Released under GNU GPL v2+, read the file
'COPYING' for more information.
56 std::unique_ptr<Toolbar> (*create)();
59template <
typename T,
auto... args>
60auto create = [] () -> std::unique_ptr<Toolbar> {
return std::make_unique<T>(args...); };
62auto const toolbar_data = std::unordered_map<std::string, ToolbarData>{
64 {
"/tools/select", {
"Select", create<SelectToolbar>}},
65 {
"/tools/nodes", {
"Node", create<NodeToolbar>}},
66 {
"/tools/booleans", {
"Booleans", create<BooleansToolbar>}},
67 {
"/tools/marker", {
"Marker", create<MarkerToolbar>}},
68 {
"/tools/shapes/rect", {
"Rect", create<RectToolbar>}},
69 {
"/tools/shapes/arc", {
"Arc", create<ArcToolbar>}},
70 {
"/tools/shapes/star", {
"Star", create<StarToolbar>}},
71 {
"/tools/shapes/3dbox", {
"3DBox", create<Box3DToolbar>}},
72 {
"/tools/shapes/spiral", {
"Spiral", create<SpiralToolbar>}},
73 {
"/tools/freehand/pencil", {
"Pencil", create<PencilToolbar, true>}},
74 {
"/tools/freehand/pen", {
"Pen", create<PencilToolbar, false>}},
75 {
"/tools/calligraphic", {
"Calligraphic", create<CalligraphyToolbar>}},
76 {
"/tools/text", {
"Text", create<TextToolbar>}},
77 {
"/tools/gradient", {
"Gradient", create<GradientToolbar>}},
78 {
"/tools/mesh", {
"Mesh", create<MeshToolbar>}},
79 {
"/tools/zoom", {
"Zoom", create<ZoomToolbar>}},
80 {
"/tools/measure", {
"Measure", create<MeasureToolbar>}},
81 {
"/tools/dropper", {
"Dropper", create<DropperToolbar>}},
82 {
"/tools/tweak", {
"Tweak", create<TweakToolbar>}},
83 {
"/tools/spray", {
"Spray", create<SprayToolbar>}},
84 {
"/tools/connector", {
"Connector", create<ConnectorToolbar>}},
85 {
"/tools/pages", {
"Pages", create<PageToolbar>}},
86 {
"/tools/paintbucket", {
"Paintbucket", create<PaintbucketToolbar>}},
87 {
"/tools/eraser", {
"Eraser", create<EraserToolbar>}},
88 {
"/tools/lpetool", {
"LPETool", create<LPEToolbar>}},
89 {
"/tools/picker", {
"ObjectPicker", create<ObjectPickerToolbar>}},
116 if (!toolbars_entry) {
119 toolbars_entry =
data.create();
120 toolbars_entry->set_name(
data.name +
"Toolbar");
121 toolbars_entry->set_hexpand();
125 toolbar = toolbars_entry.get();
static void append(std::vector< T > &target, std::vector< T > &&source)