/***************************************************************************
                          listviews.h  -  description
                             -------------------
    begin                : Mon Mär 3 2003
    copyright            : (C) 2003 by Harald Krippel
    email                : neuro.harald@surfeu.at
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   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 LISTVIEWS_H
#define LISTVIEWS_H

#include <qlistview.h>
#include <plib/ssg.h>
#include <plib/ssgAux.h>
#include <player.h>
#include <barrier.h>
#include <body.h>
#include <main.h>
#include <alsound.h>
#include "spl_prg.h"
#include "netclient.h"
#include "cursor3d.h"

class ssgaSky;

class QListView;
class Glcontrol;
class QPopupMenu;
class GUIText;
class GUIButton;
class GUIOSButton;
class GUIInput;
class TriBarrier;
class Terrain;
class usercamera;
class shader;

class FolderListItem : public QListViewItem
{
//    Q_OBJECT

public:
    FolderListItem( QListView * parent );
    FolderListItem( FolderListItem * parent );
    FolderListItem( QListView * parent, FolderListItem * after );
    FolderListItem( FolderListItem * parent, FolderListItem * after );

    ~FolderListItem();
    
    void updategl();

    QString GetValue(const QString & item);    
    QString GetValue(const QString & item,FolderListItem *i);
    void SetValue(const QString & item, const QString & value);
    void SetValue(const QString & item, const QString & value, FolderListItem *i);
    void addObject(const QString & type);
    void addCoord(FolderListItem *thisItem);
    void updateDialog();
    void setFocus();
    void setFocusLamp();
    void setFocusFog();
    void viewCamera();
    void exportPlib();
    
    Glcontrol       *gl;
    ssgLight        *light;
    ssgTransform    *objtrans;
    ssgaFire        *fire;
    ssgaWaveSystem  *wavesys;
    ssgaSky         *sky;
    void            *dialog;
    Player          *player;
    Barrier         *barrier;
    Body            *body;
    splPrg          *splprog;
    GUIText         *guitext;
    GUIButton       *guibutton;
    GUIOSButton     *guiosbutton;
    GUIInput        *guiinput;
    netclient       *client;
    TriBarrier      *tribarrier;
    Terrain         *terrain;
    usercamera      *usercam;
    shader          *gshader;
    cursor3d        *cursor;
#ifdef KCOPENAL
    AlSound        *sound;
#endif
    int   groundcollision;
    int   collision;
    
protected:

    
protected slots:

};

#endif
