/**** * * Implementation of file-menu.h. * * The implementation is partially stubbed in that it supplies only dummy * parameter values to model functions. * */ #include "file-menu.h" FileMenu::FileMenu(Name* n, File* f) : View(NULL, f) { /* * For convenience, save a copy of the model as a downcast value. */ this->f = f; /* * Make the window of this an IV pulldown menu. */ w = pm = new PulldownMenu(n->ConstConvert()); } FileMenu::~FileMenu() { } void FileMenu::Compose() { /* * Insert the six menu items, passing each the File model for subsequent * access in menu item Do functions. */ pm->Include(new NewMenuItem(f)); pm->Include(new OpenMenuItem(f)); pm->Include(new CloseMenuItem(f)); pm->Include(new CloseAllMenuItem(f)); pm->Include(new SaveMenuItem(f)); pm->Include(new SaveAsMenuItem(f)); pm->Include(new SaveAllMenuItem(f)); pm->Include(new PrintMenuItem(f)); pm->Include(new QuitMenuItem(f)); // pm->Include(new SystemTestMenuItem(f)); } NewMenuItem::NewMenuItem(File* f) : MenuItem("New") { this->f = f; } OpenMenuItem::OpenMenuItem(File* f) : MenuItem("Open ...") { this->f = f; } CloseMenuItem::CloseMenuItem(File* f) : MenuItem("Close") { this->f = f; } CloseAllMenuItem::CloseAllMenuItem(File* f) : MenuItem("Close All") { this->f = f; } SaveMenuItem::SaveMenuItem(File* f) : MenuItem("Save") { this->f = f; } SaveAsMenuItem::SaveAsMenuItem(File* f) : MenuItem("Save As ...") { this->f = f; } SaveAllMenuItem::SaveAllMenuItem(File* f) : MenuItem("Save All") { this->f = f; } PrintMenuItem::PrintMenuItem(File* f) : MenuItem("Print ...") { this->f = f; } QuitMenuItem::QuitMenuItem(File* f) : MenuItem("Quit") { this->f = f; } SystemTestMenuItem::SystemTestMenuItem(File* f) : MenuItem("System Test") { this->f = f; } void NewMenuItem::Do() { /* * Call the File::New model function. */ f->New(); } void OpenMenuItem::Do() { /* * Call the File::Open model function. */ f->Open(NULL); } void CloseMenuItem::Do() { /* * Call the File::Close model function. */ f->Close(); } void CloseAllMenuItem::Do() { /* * Call the File::CloseAll model function. */ f->CloseAll(); } void SaveMenuItem::Do() { /* * Call the File::Save model function. */ f->Save(); } void SaveAsMenuItem::Do() { /* * Call the File::SaveAs model function. */ f->SaveAs(NULL); } void SaveAllMenuItem::Do() { /* * Call the File::SaveAll model function. */ f->SaveAll(); } void PrintMenuItem::Do() { /* * Call the File::Print model function. */ f->Print(); } void QuitMenuItem::Do() { /* * Call the File::Quit model function. */ f->Quit(); } void SystemTestMenuItem::Do() { /* * Call whatever you feel like at the moment. */ }