00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: 00005 00006 #ifndef BALL_DEMOTUTORIALDIALOG_H 00007 #define BALL_DEMOTUTORIALDIALOG_H 00008 00009 #ifndef BALL_VIEW_KERNEL_MODULARWIDGET_H 00010 # include <BALL/VIEW/KERNEL/modularWidget.h> 00011 #endif 00012 00013 #ifndef BALL_VIEW_PRIMITIV_MESH_H 00014 # include <BALL/VIEW/PRIMITIVES/mesh.h> 00015 #endif 00016 00017 #include <BALL/DATATYPE/regularData3D.h> 00018 00019 #include "ui_demoTutorialDialog.h" 00020 00021 #include <QtGui/QDialog> 00022 00023 namespace BALL 00024 { 00025 class System; 00026 class Composite; 00027 00028 namespace VIEW 00029 { 00032 class DemoTutorialDialog : 00033 public QDialog, 00034 public Ui_DemoTutorialDialogData, 00035 public ModularWidget 00036 { 00037 Q_OBJECT 00038 BALL_EMBEDDABLE(DemoTutorialDialog,ModularWidget) 00039 00040 public: 00041 00043 DemoTutorialDialog(QWidget *parent = NULL, const char *name = NULL ); 00044 00046 virtual ~DemoTutorialDialog(); 00047 00049 virtual void onNotify(Message *message); 00050 00051 virtual void initializeWidget(MainControl& main_control); 00052 00054 void setDemoMode(bool state) { demo_mode_ = state;} 00055 00056 public slots: 00057 00059 void show(); 00060 00062 void showDemo(); 00063 00065 void showTutorial(); 00066 00068 void nextStepClicked(); 00069 00070 virtual void checkMenu(MainControl& main_control); 00071 00072 protected: 00073 00074 void nextStepDemo_(); 00075 void nextStepTutorial_(); 00076 00077 void initDemo_(); 00078 void initTutorial_(); 00079 00080 void enableNextStep_(); 00081 00082 virtual void onNotifyTutorial_(Message *message); 00083 virtual void onNotifyDemo_(Message *message); 00084 00085 String getBaseDir_(); 00086 00087 private: 00088 00089 std::list<Composite*> composites_; 00090 RegularData3D* grid_; 00091 System* system_; 00092 00093 String prefix_; 00094 bool demo_mode_; 00095 Position current_step_; 00096 Mesh* surface_; 00097 QAction* demo_action_, *tutorial_action_; 00098 }; 00099 00100 } } // namespaces 00101 00102 #endif // BALL_DEMOTUTORIALDIALOG_H