/**** * * Implementation of rolodex-menu.h. * * The implementation is partially stubbed in that it supplies only dummy * parameter values to model functions. In particular, no data input dialogs * are displayed. * */ #include "rolodex-menu.h" RolodexMenu::RolodexMenu(Name* n, Rolodex* r, RolodexMenuUI* rmui) : View(NULL, r) { /* * For convenience, save a copy of the model as a downcast value. */ this->r = r; /* * Store the parent view. Note that the parent view is not used in this * stubbed implementation. */ this->rmui = rmui; /* * Make the window of this an IV pulldown menu. */ w = pm = new PulldownMenu(n->ConstConvert()); } RolodexMenu::~RolodexMenu() { } void RolodexMenu::Compose() { /* * Insert the six menu items, passing each the File model for subsequent * access in menu item Do functions. */ pm->Include(new AddMenuItem(r, rmui)); pm->Include(new DeleteMenuItem(r, rmui)); pm->Include(new ChangeMenuItem(r, rmui)); pm->Include(new FindMenuItem(r, rmui)); } AddMenuItem::AddMenuItem(Rolodex* r, RolodexMenuUI* rmui) : MenuItem("Add ...") { this->r = r; this->rmui = rmui; } DeleteMenuItem::DeleteMenuItem(Rolodex* r, RolodexMenuUI* rmui) : MenuItem("Delete ...") { this->r = r; this->rmui = rmui; } ChangeMenuItem::ChangeMenuItem(Rolodex* r, RolodexMenuUI* rmui) : MenuItem("Change ...") { this->r = r; this->rmui = rmui; } FindMenuItem::FindMenuItem(Rolodex* r, RolodexMenuUI* rmui) : MenuItem("Find ...") { this->r = r; this->rmui = rmui; } void AddMenuItem::Do() { /* * Call the Rolodex::Add model function. */ r->Add(NULL); } void DeleteMenuItem::Do() { /* * Call the Rolodex::Delete model function. */ r->Delete(0); } void ChangeMenuItem::Do() { /* * Call the Rolodex::Change model function. */ r->Change(0, NULL); } void FindMenuItem::Do() { /* * Call the Rolodex::Find model function. */ r->Find(NULL); }