summaryrefslogtreecommitdiff
path: root/src/port/ui/ContentBrowser.h
blob: f077f7283509e41726d69fe8bf4aa8f4d84a5634 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#pragma once

#include <libultraship/libultraship.h>
#include "engine/courses/Course.h"

namespace Editor {
class ContentBrowserWindow : public Ship::GuiWindow {
public:
    using Ship::GuiWindow::GuiWindow;
    ~ContentBrowserWindow();

    struct Tracks {
        Course* course;
        std::string SceneFile;
        std::string Name;
        std::string Dir; // Directory
        std::shared_ptr<Ship::Archive> Archive;
    };

    std::vector<Tracks> Tracks;

    std::vector<std::string> Content;

    bool Refresh = true;

    bool ActorContent = false;
    bool ObjectContent = false;
    bool CustomContent = false;
    bool TrackContent = false;
protected:
    void InitElement() override {};
    void DrawElement() override;
    void UpdateElement() override {};
    void AddTrackContent();
    void RemoveCustomTracksFromTrackList(); // Prevents duplicate courses being added to World->Courses array
    void AddActorContent();
    void AddObjectContent();
    void AddCustomContent();
    void FindTracks();
    void FindContent();
    void FolderButton(const char* label, bool& contentFlag, const ImVec2& size = ImVec2(80, 32));
};
}