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 }