Go to the documentation of this file.00001 #ifndef _OPTIONS_DLG_H_
00002 #define _OPTIONS_DLG_H_
00003
00004 #include <FL/Fl_Window.H>
00005 #include <FL/Fl_Scroll.H>
00006 #include <FL/Fl_Check_Button.H>
00007 #include <FL/Fl_Button.H>
00008
00009 #include <string>
00010 #include <vector>
00011 #include <set>
00012
00013 #include "stage.hh"
00014 #include "option.hh"
00015
00016 namespace Stg {
00017
00018
00019
00020 class OptionsDlg : public Fl_Window {
00021 public:
00022 enum event_t { NO_EVENT, CHANGE, CHANGE_ALL, CLOSE };
00023
00024 private:
00025 std::vector<Option*> options;
00026 Option* changedItem;
00027 Option* showAll;
00028 event_t status;
00029 Fl_Scroll* scroll;
00030 Fl_Check_Button* showAllCheck;
00031 void updateChecks();
00032
00033 static void checkChanged( Fl_Widget* w, void* p );
00034
00035
00036 static const int vm = 4;
00037 const int hm;
00038 static const int boxH = 30;
00039
00040 public:
00041 OptionsDlg( int x, int y, int w, int h );
00042 virtual ~OptionsDlg();
00043
00044 void setOptions( const std::set<Option*>& opts );
00045 void clearOptions() { options.clear(); }
00046 void showAllOpt( Option* opt );
00047 const event_t event() const { return status; }
00048 Option* changed() { return changedItem; }
00049 };
00050
00051 }
00052
00053 #endif
00054