Accessory sorting due to price.
[scorched3d.git] / src / client / dialogs / TutorialDialog.h
blob7ebdd31f929c2ec920cea8a6d697a1976ddf568c
1 ////////////////////////////////////////////////////////////////////////////////
2 // Scorched3D (c) 2000-2009
3 //
4 // This file is part of Scorched3D.
5 //
6 // Scorched3D is free software; you can redistribute it and/or modify
7 // it under the terms of the GNU General Public License as published by
8 // the Free Software Foundation; either version 2 of the License, or
9 // (at your option) any later version.
11 // Scorched3D is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License
17 // along with Scorched3D; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 ////////////////////////////////////////////////////////////////////////////////
21 #if !defined(__INCLUDE_TutorialDialogh_INCLUDE__)
22 #define __INCLUDE_TutorialDialogh_INCLUDE__
24 #include <GLW/GLWWindow.h>
25 #include <GLW/GLWListView.h>
26 #include <GLEXT/GLTexture.h>
27 #include <graph/TutorialFile.h>
29 class TutorialDialog :
30 public GLWWindow,
31 public GLWListViewI
33 public:
34 static TutorialDialog *instance();
36 virtual void display();
37 virtual void simulate(float frameTime);
38 virtual void draw();
40 virtual void url(const char *url);
41 virtual void event(std::map<std::string, std::string> &event);
43 void drawHighlight(float x, float y, float w, float h);
44 protected:
45 static TutorialDialog *instance_;
46 float triangleDist_, triangleDir_;
47 GLWListView *listView_;
48 GLTexture triangleTex_;
49 TutorialFile file_;
50 TutorialFileEntry *current_;
52 std::map<std::string, std::string> currentEvents_;
54 void processEvents(bool log = false);
55 void processHighlight(bool log);
56 void processMenu(bool log);
57 void showPage(TutorialFileEntry *entry);
58 void drawTriangle(float x, float y, float size, int tex);
60 private:
61 TutorialDialog();
62 virtual ~TutorialDialog();
66 #endif