Program Listing for File file_viewer.h

Return to documentation for file (editor/gui/file_viewer.h)

#pragma once

#include "common/common.h"

#include "event_manager.h"
#include "resource_file.h"
#include "audio_player.h"
#include "image_viewer.h"
#include "text_viewer.h"
#include "material_viewer.h"

class FileViewer
{
    EventBinder<FileViewer> m_Binder;

    bool m_IsFileOpened;
    bool m_IsEventJustReceived;

    AudioPlayer m_AudioPlayer;
    ImageViewer m_ImageViewer;
    TextViewer m_TextViewer;
    MaterialViewer m_MaterialViewer;

    Ref<ResourceFile> m_OpenFile;

    void drawFileInfo();

    Variant unloadAllResources(const Event* event);
    Variant openFile(const Event* event);

public:
    FileViewer();
    FileViewer(FileViewer&) = delete;
    ~FileViewer() = default;

    void draw(float deltaMilliseconds);
};