00001 #ifndef secbrowser_h 00002 #define secbrowser_h 00003 00004 #include <InterViews/monoglyph.h> 00005 #include "ocbrowsr.h" 00006 00007 class TelltaleState; 00008 struct Object; 00009 class SectionBrowserImpl; 00010 class MechSelector; 00011 class OcList; 00012 class PPBImpl; 00013 class HocCommand; 00014 struct Section; 00015 00016 extern void section_menu(double, int, MechSelector* = nil); 00017 00018 class MechVarType : public MonoGlyph { 00019 public: 00020 MechVarType(); 00021 virtual ~MechVarType(); 00022 boolean parameter_select(); 00023 boolean assigned_select(); 00024 boolean state_select(); 00025 private: 00026 boolean select(int); 00027 private: 00028 TelltaleState* tts_[3]; 00029 }; 00030 00031 class MechSelector : public MonoGlyph { 00032 public: 00033 MechSelector(); 00034 virtual ~MechSelector(); 00035 00036 boolean is_selected(int type); 00037 int begin(); 00038 boolean done(); 00039 int next(); 00040 private: 00041 TelltaleState** tts_; 00042 int iterator_; 00043 }; 00044 00045 class OcSectionBrowser : public OcBrowser { 00046 public: 00047 OcSectionBrowser(Object*); 00048 virtual ~OcSectionBrowser(); 00049 virtual void accept(); 00050 virtual void select_section(Section*); 00051 virtual void set_select_action(const char*); 00052 virtual void set_accept_action(const char*); 00053 virtual void select(GlyphIndex); 00054 private: 00055 Section** psec_; 00056 int scnt_; 00057 HocCommand* select_; 00058 HocCommand* accept_; 00059 }; 00060 class SectionBrowser : public OcBrowser { 00061 public: 00062 SectionBrowser(); 00063 SectionBrowser(Object*); 00064 virtual ~SectionBrowser(); 00065 static void make_section_browser(); 00066 void accept(); 00067 00068 virtual void select(GlyphIndex); 00069 private: 00070 SectionBrowserImpl* sbi_; 00071 }; 00072 00073 class PointProcessBrowser : public OcBrowser { 00074 public: 00075 PointProcessBrowser(OcList*); 00076 virtual ~PointProcessBrowser(); 00077 static void make_point_process_browser(OcList*); 00078 void accept(); 00079 00080 virtual void select(GlyphIndex); 00081 virtual void add_pp(Object*); 00082 virtual void remove_pp(); 00083 virtual void append_pp(Object*); 00084 private: 00085 PPBImpl* ppbi_; 00086 }; 00087 00088 #endif