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 }