#pragma once

#include <string>
#include <Windows.h>

namespace UsdLayerManager {

class FileDialog {
public:
    // Open file dialog
    static std::string OpenFile(
        const char* filter = "USD Files (*.usd;*.usda;*.usdc)\0*.usd;*.usda;*.usdc\0All Files (*.*)\0*.*\0",
        const char* title = "Open USD File",
        HWND owner = nullptr
    );
    
    // Save file dialog
    static std::string SaveFile(
        const char* filter = "USD Files (*.usd;*.usda;*.usdc)\0*.usd;*.usda;*.usdc\0All Files (*.*)\0*.*\0",
        const char* title = "Save USD File",
        const char* defaultExt = "usd",
        HWND owner = nullptr
    );

    // Folder picker (Vista-style IFileOpenDialog)
    static std::string BrowseFolder(
        const char* title = "Select Output Folder",
        HWND owner = nullptr
    );
    
private:
    static const int MAX_PATH_LENGTH = 4096;
};

} // namespace UsdLayerManager
