1 ////////////////////////////////////////////////////////////////////////////////
2 // Scorched3D (c) 2000-2009
4 // This file is part of Scorched3D.
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
:
34 static TutorialDialog
*instance();
36 virtual void display();
37 virtual void simulate(float frameTime
);
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
);
45 static TutorialDialog
*instance_
;
46 float triangleDist_
, triangleDir_
;
47 GLWListView
*listView_
;
48 GLTexture triangleTex_
;
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
);
62 virtual ~TutorialDialog();