// -*- C++ -*-
#ifndef GENERATECODEDLG_H
#define GENERATECODEDLG_H

#include <GG/Wnd.h>

class GenerateCodeSketch;
class GenerateCodeDlg : public GG::Wnd
{
public:
    enum ExportFiles {
        HEADER_ONLY,
        HEADER_AND_IMPL,
        HEADER_IMPL_AND_SKETCH
    };

    GenerateCodeDlg(const std::string& open_filename);
    ~GenerateCodeDlg();

    bool        EndedWithOk() const;
    std::string BaseFilename() const;
    ExportFiles ExportedFiles() const;
    std::string HeaderExt() const;
    std::string ImplExt() const;
    std::string SketchExt() const;

    virtual void Render();

private:
    bool SettingsValid();
    void BaseFilenameChanged(const std::string&);
    void HeaderExtSelectionChanged(int);
    void CustonHeaderExtChanged(const std::string&);
    void ImplExtSelectionChanged(int);
    void CustonImplExtChanged(const std::string&);
    void SketchExtSelectionChanged(int);
    void CustonSketchExtChanged(const std::string&);
    void OkClicked();
    void CancelClicked();

    GenerateCodeSketch* m_ui;
    bool m_ended_with_ok;
};

#endif // GENERATECODEDLG_H
