/*
 * This file is part of the Code::Blocks IDE and licensed under the GNU General Public License, version 3
 * http://www.gnu.org/licenses/gpl-3.0.html
 *
 * $Revision: 13010 $
 * $Id: config.script 13010 2022-11-10 15:52:54Z wh11204 $
 * $HeadURL: https://svn.code.sf.net/p/codeblocks/code/branches/release-25.03/src/plugins/scriptedwizard/resources/config.script $
 */

//
// Main wizards configuration script.
// Here, we register all the available wizards.
//

function RegisterWizards()
{
    //
    // project wizards
    //
    RegisterWizard(wizProject,     _T("empty"),        _("Empty project"),         _("Console"));
    RegisterWizard(wizProject,     _T("fortran/app"),  _("Fortran application"),   _("Fortran"));
    RegisterWizard(wizProject,     _T("fortran/lib"),  _("Fortran library"),       _("Fortran"));
    RegisterWizard(wizProject,     _T("fortran/dll"),  _("Fortran DLL"),           _("Fortran"));
    RegisterWizard(wizProject,     _T("console"),      _("Console application"),   _("Console"));
    RegisterWizard(wizProject,     _T("d"),            _("D application"),         _("D language"));
    if (PLATFORM == PLATFORM_MSW)
    {
        RegisterWizard(wizProject, _T("directx"),      _("Direct/X project"),      _("2D/3D Graphics"));
        RegisterWizard(wizProject, _T("dll"),          _("Dynamic Link Library"),  _("Console"));
        RegisterWizard(wizProject, _T("sys"),          _("Kernel Mode Driver"),    _("Native"));
    }
    RegisterWizard(wizProject,     _T("fltk"),         _("FLTK project"),          _("GUI"));
    RegisterWizard(wizProject,     _T("glfw"),         _("GLFW project"),          _("2D/3D Graphics"));
    RegisterWizard(wizProject,     _T("glut"),         _("GLUT project"),          _("2D/3D Graphics"));
    RegisterWizard(wizProject,     _T("gtk"),          _("GTK+ project"),          _("GUI"));
    RegisterWizard(wizProject,     _T("irrlicht"),     _("Irrlicht project"),      _("2D/3D Graphics"));
    RegisterWizard(wizProject,     _T("java"),         _("Java application"),      _("Java"));
    RegisterWizard(wizProject,     _T("lf"),           _("Lightfeather project"),  _("2D/3D Graphics"));
    RegisterWizard(wizProject,     _T("matlab_csf"),   _("Matlab project"),        _("Console"));
    RegisterWizard(wizProject,     _T("opencv"),       _("OpenCV project"),        _("Console"));
    RegisterWizard(wizProject,     _T("opengl"),       _("OpenGL project"),        _("2D/3D Graphics"));
    RegisterWizard(wizProject,     _T("ogre"),         _("Ogre project"),          _("2D/3D Graphics"));
    RegisterWizard(wizProject,     _T("plugins"),      _("Code::Blocks plugin"),   _("Code::Blocks"));
    RegisterWizard(wizProject,     _T("qt4"),          _("QT4 project"),           _("GUI"));
    RegisterWizard(wizProject,     _T("qt4dll"),       _("QT4 (shared) project"),  _("GUI"));
    RegisterWizard(wizProject,     _T("qt5"),          _("QT5 project"),           _("GUI"));
    RegisterWizard(wizProject,     _T("sdl"),          _("SDL project"),           _("2D/3D Graphics"));
    RegisterWizard(wizProject,     _T("sdl2"),         _("SDL2 project"),          _("2D/3D Graphics"));
    RegisterWizard(wizProject,     _T("sfml"),         _("SFML project"),          _("2D/3D Graphics"));
    if (PLATFORM == PLATFORM_MSW)
        RegisterWizard(wizProject, _T("smartwin"),     _("SmartWin project"),      _("GUI"));
    RegisterWizard(wizProject,     _T("staticlib"),    _("Static library"),        _("Console"));
    if (PLATFORM == PLATFORM_MSW)
        RegisterWizard(wizProject, _T("stlport"),      _("STL port application"),  _("Console"));
    RegisterWizard(wizProject,     _T("sharedlib"),    _("Shared library"),        _("Console"));
    if (PLATFORM == PLATFORM_MSW)
        RegisterWizard(wizProject, _T("win32gui"),     _("Win32 GUI project"),     _("GUI"));
    RegisterWizard(wizProject,     _T("wxwidgets"),    _("wxWidgets project"),     _("GUI"));

    //
    // build target wizards
    //
    RegisterWizard(wizTarget,      _T("console"),      _("Console"),               _("Console"));
    RegisterWizard(wizTarget,      _T("staticlib"),    _("Static library"),        _("Console"));
    if (PLATFORM == PLATFORM_MSW)
        RegisterWizard(wizTarget,  _T("dll"),          _("Dynamic Link Library"),  _("Console"));
    RegisterWizard(wizTarget,      _T("wxwidgets"),    _("wxWidgets"),             _("GUI"));

    RegisterWizard(wizProject,     _T("arduino"),      _("Arduino Project"),       _("Embedded Systems"));
    RegisterWizard(wizProject,     _T("arm"),          _("ARM Project"),           _("Embedded Systems"));
    RegisterWizard(wizProject,     _T("avr"),          _("AVR Project"),           _("Embedded Systems"));
    RegisterWizard(wizProject,     _T("msp430"),       _("MSP430 Project"),        _("Embedded Systems"));
    RegisterWizard(wizProject,     _T("tricore"),      _("TriCore Project"),       _("Embedded Systems"));
    RegisterWizard(wizProject,     _T("ppc"),          _("PowerPC Project"),       _("Embedded Systems"));
    RegisterWizard(wizProject,     _T("mcs51"),        _("MCS51 Project"),         _("Embedded Systems"));
    //
    // file wizards
    //
    RegisterWizard(wizFiles,       _T("empty_file"),   _("Empty file"),            _("C/C++"));
    RegisterWizard(wizFiles,       _T("c_file"),       _("C/C++ source"),          _("C/C++"));
    RegisterWizard(wizFiles,       _T("d_source"),     _("D source"),              _("D language"));
    RegisterWizard(wizFiles,       _T("h_file"),       _("C/C++ header"),          _("C/C++"));
    RegisterWizard(wizFiles,       _T("fortran/file"), _("Fortran source"),        _("Fortran"));
    RegisterWizard(wizFiles,       _T("java/file"),    _("Java source"),           _("Java"));
}

function RegisterWizard(type, folder, title, category)
{
    // syntax:
    // AddWizard(type, title, category, script, template_png, wizard_png, xrc)

    Wizard.AddWizard(type,
                     title,
                     category,
                     folder + _T("/wizard.script"),
                     folder + _T("/logo.png"),
                     folder + _T("/wizard.png"),
                     folder + _T("/wizard.xrc"));
}
