// C++ code Copyright (C) David R. Evans G4AMJ/NQ0I // classes for VGA mode of MIDAS #ifndef SMVGAMODEH #define SMVGAMODEH #include #include class vga_mode; extern vga_mode* vmode; class vgamemberfunctionlist { typedef int (vga_mode::*VPMFSS)(DREstring&, DREstring&); VPMFSS array[50]; int index; public: vgamemberfunctionlist(void) : index(0) { } inline void operator+=(VPMFSS vpmfss) { array[index++] = vpmfss; } inline int length(void) { return index; } inline VPMFSS operator[](const int n) { return array[n]; } }; class vga_mode : public batch_mode { boolean Record, Play; char* Tmpdir; FILE* Record_file, *Play_file; vgamemberfunctionlist dispatch_functions; vga vga_screen; DREstring _get_command(void); void _prompt(const char*, const int); void _generate_command_list(void); void _display_text(DREstring& msg, DREstring& title, const int clr = 7, const boolean centered = false); typedef void (vga_mode::*PMFV)(void); PMFV _screen_dump_function; int _query(DREstring&, DREstring&); int _cd(DREstring&, DREstring&); int _dir(DREstring&, DREstring&); int _drive(DREstring&, DREstring&); int _last(DREstring&, DREstring&); int _play(DREstring&, DREstring&); int _pwd(DREstring&, DREstring&); int _record(DREstring&, DREstring&); int _replot(DREstring&, DREstring&); int _set(DREstring&, DREstring&); void _dump_to_pcl(void); public: vga_mode(const float); ~vga_mode(void); void execute(void); void clear_status(void) { display_status((DREstring)""); } void display_status(DREstring&); void error(DREstring&); }; #endif