class FileDialog { public: static char * src_dir; static char * search_string; static char * dialog_name; static char * indicated_file; static char * full_path; static char * this_dir; static const char * valid_drives; static int number_files; static int number_drives; static int number_directories; static int max_filename_length; static char ** filenames; static char ** drivenames; static int selected_drive; static int lit; static int hscroll_pos; public: FileDialog(char * name, char * search, char * dir); ~FileDialog(); char * Execute(); Shutdown(); ////////////////////// // helpers & callbacks ////////////////////// static bool InitializeFileDialog(void * instance); static bool ReceivedFileFromDialog(void * instance); static int __cdecl SortString( const void* arg1, const void *arg2 ); static char * GetDirectory(); static bool FileDialog::ChangeDrive(void * instance); };