00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #if !defined(__INCLUDE_TutorialDialogh_INCLUDE__)
00022 #define __INCLUDE_TutorialDialogh_INCLUDE__
00023
00024 #include <GLW/GLWWindow.h>
00025 #include <GLW/GLWListView.h>
00026 #include <GLEXT/GLTexture.h>
00027 #include <graph/TutorialFile.h>
00028
00029 class TutorialDialog :
00030 public GLWWindow,
00031 public GLWListViewI
00032 {
00033 public:
00034 static TutorialDialog *instance();
00035
00036 virtual void display();
00037 virtual void simulate(float frameTime);
00038 virtual void draw();
00039
00040 virtual void url(const char *url);
00041 virtual void event(std::map<std::string, std::string> &event);
00042
00043 void drawHighlight(float x, float y, float w, float h);
00044 protected:
00045 static TutorialDialog *instance_;
00046 float triangleDist_, triangleDir_;
00047 GLWListView *listView_;
00048 GLTexture triangleTex_;
00049 TutorialFile file_;
00050 TutorialFileEntry *current_;
00051
00052 std::map<std::string, std::string> currentEvents_;
00053
00054 void processEvents(bool log = false);
00055 void processHighlight(bool log);
00056 void processMenu(bool log);
00057 void showPage(TutorialFileEntry *entry);
00058 void drawTriangle(float x, float y, float size, int tex);
00059
00060 private:
00061 TutorialDialog();
00062 virtual ~TutorialDialog();
00063
00064 };
00065
00066 #endif