1 module unecht.core.components.editor.ui.assetView; 2 3 version(UEIncludeEditor): 4 5 import unecht; 6 7 import unecht.core.component; 8 import unecht.core.components._editor; 9 import unecht.core.components.sceneNode; 10 import unecht.core.components.editor.ui.assetInspector; 11 import unecht.core.components.editor.ui.dragDropEditor; 12 import unecht.core.assetDatabase; 13 14 import derelict.imgui.imgui; 15 16 /// 17 final class UEEditorAssetView : UEComponent 18 { 19 mixin(UERegisterObject!()); 20 21 private static bool visible=true; 22 23 @MenuItem("view/assets") 24 private static void viewAssets() { visible = !visible; } 25 26 static UEEditorAssetInspector inspector; 27 28 override void onCreate() { 29 super.onCreate; 30 31 inspector = entity.addComponent!UEEditorAssetInspector; 32 } 33 34 //TODO: #127 35 void render(float top) 36 { 37 if(!visible) 38 { 39 inspector.reset(); 40 return; 41 } 42 43 top += igGetItemsLineHeightWithSpacing()+1; 44 45 igSetNextWindowPos(ImVec2(0,top), ImGuiSetCond_Always); 46 igBegin("assets", &visible, ImGuiWindowFlags_NoCollapse|ImGuiWindowFlags_NoMove); 47 scope(exit) igEnd(); 48 49 foreach(a; UEAssetDatabase.assets) 50 { 51 if(UEGui.Selectable(a.path,false)) 52 { 53 inspector.asset = a; 54 } 55 56 UEDragDropEditor.mayStartDrag(a.obj); 57 } 58 59 inspector.render(igGetWindowWidth()+1, top); 60 } 61 }