1 /*
2     Copyright © 2020, Inochi2D Project
3     Distributed under the 2-Clause BSD License, see LICENSE file.
4     
5     Authors: Luna Nielsen
6 */
7 module creator.widgets.toolbar;
8 import creator.widgets;
9 import creator.core;
10 import creator;
11 
12 void incToolbar() {
13     auto flags = 
14         ImGuiWindowFlags.NoSavedSettings |
15         ImGuiWindowFlags.NoScrollbar |
16         ImGuiWindowFlags.MenuBar;
17 
18     igPushStyleVar(ImGuiStyleVar.FramePadding, ImVec2(0, 10));
19     if (igBeginViewportSideBar("##Toolbar", igGetMainViewport(), ImGuiDir.Up, 32, flags)) {
20         
21         if (igBeginMenuBar()) {
22             igPopStyleVar();
23             
24             ImVec2 avail;
25             igGetContentRegionAvail(&avail);
26             
27             igDummy(ImVec2(avail.x-144, 0));
28 
29             igPushStyleVar(ImGuiStyleVar.FramePadding, ImVec2(0, 0));
30             igPushStyleVar(ImGuiStyleVar.FrameRounding, 0);
31                 igPushFont(incIconFont());
32 
33                     igPushStyleVar(ImGuiStyleVar.ItemSpacing, ImVec2(0, 0));
34                         if (igButton(incEditMode == EditMode.ModelEdit ? "" : "", ImVec2(32, 32))) {
35                             incSetEditMode(EditMode.ModelEdit);
36                         }
37                         incTooltip("Edit Model");
38 
39                         if (igButton(incEditMode == EditMode.DeformEdit ? "" : "", ImVec2(32, 32))) {
40                             incSetEditMode(EditMode.DeformEdit);
41                         }
42                         incTooltip("Edit Deformation");
43 
44                         if (igButton(incEditMode == EditMode.VertexEdit ? "" : "", ImVec2(32, 32))) {
45                             incSetEditMode(EditMode.VertexEdit);
46                         }
47                         incTooltip("Edit Mesh");
48                     igPopStyleVar();
49 
50                     igSpacing();
51 
52                     igButton("", ImVec2(32, 32));
53                     incTooltip("Test Model");
54 
55                 igPopFont();
56             igPopStyleVar(2);
57 
58             igEndMenuBar();
59         } else {
60             igPopStyleVar();
61         }
62 
63         igEnd();
64     } else {
65         igPopStyleVar();
66     }
67 }