    /***************************************************************************
                              fileselector.h  -  description
                                 -------------------
        begin                : Fri Jan 26 2001
        copyright            : (C) 2001 by Jan Walter
        email                : jan@blender.nl
     ***************************************************************************/

    /***************************************************************************
     *                                                                         *
     *   This program is free software; you can redistribute it and/or modify  *
     *   it under the terms of the GNU General Public License as published by  *
     *   the Free Software Foundation; either version 2 of the License, or     *
     *   (at your option) any later version.                                   *
     *                                                                         *
     ***************************************************************************/

    #ifndef FILESELECTOR_H
    #define FILESELECTOR_H

    #include <gui.h>

    struct PyObject;

    /**A file selector can be seen in Blender when you load (F1) or save (F2) a file. For the Python API you want to use the same mechanism to get access to the filename and the path a user can select interactively. You have to activate the FileSelector with a callback function (in Python). When the user has finished his selection the callback function is called and you can access the filename and the path in the callback function.
      *@author Jan Walter
      */

    class FileSelector : public GUI  {
    public:
    	FileSelector();
    	~FileSelector();
      /** With this function you start the user interaction with a file selector. The callback function is called after finishing the interaction and you can give access to the FileSelector instance by giving the callback function an (optional) argument. */
      PyObject* activate(PyObject* callback, PyObject* callbackArgs);
    private: // Private attributes
      /** This holds the file name (with path) of the selected file. */
      PyObject* filename;
    };

    #endif