1 // $Id: priormenus.h,v 1.3 2011/03/07 06:08:50 bobgian Exp $ 2 3 /* 4 Copyright 2002 Peter Beerli, Mary Kuhner, Jon Yamato and Joseph Felsenstein 5 6 This software is distributed free of charge for non-commercial use 7 and is copyrighted. Of course, we do not guarantee that the software 8 works, and are not responsible for any damage you may cause or have. 9 */ 10 11 #ifndef PRIORMENUS_H 12 #define PRIORMENUS_H 13 14 #include <string> 15 #include "forcesmenus.h" 16 #include "newmenuitems.h" 17 #include "setmenuitem.h" 18 #include "togglemenuitem.h" 19 20 class UIInterface; 21 22 class PriorMenu : public NewMenu 23 { 24 private: 25 PriorMenu(); //undefined 26 public: 27 PriorMenu(UIInterface& ui); 28 virtual ~PriorMenu(); 29 }; 30 31 class PriorMenuCreator : public NewMenuCreator 32 { 33 protected: 34 UIInterface & ui; 35 public: PriorMenuCreator(UIInterface & myui)36 PriorMenuCreator(UIInterface & myui) : ui(myui) {}; ~PriorMenuCreator()37 virtual ~PriorMenuCreator() {}; Create()38 virtual NewMenu_ptr Create() { return NewMenu_ptr(new PriorMenu(ui));}; 39 }; 40 41 class PriorByForceMenuItemGroup : public MenuDisplayGroupBaseImplementation 42 { 43 private: 44 PriorByForceMenuItemGroup(); //undefined 45 public: 46 PriorByForceMenuItemGroup(UIInterface& ui); 47 virtual ~PriorByForceMenuItemGroup(); 48 virtual MenuInteraction_ptr MakeOneHandler(UIId id); 49 virtual UIIdVec1d GetVisibleIds(); 50 virtual string GetKey(UIId id); 51 }; 52 53 class PriorMenuForOneForce : public NewMenu 54 { 55 private: 56 PriorMenuForOneForce(); //undefined 57 public: 58 PriorMenuForOneForce(UIInterface& ui, UIId id); 59 virtual ~PriorMenuForOneForce(); 60 }; 61 62 //These two classes are used for the individual forces' menus. 63 class SubMenuPriorForOneForce : public ForceSubMenuItem 64 { 65 private: 66 SubMenuPriorForOneForce(); //undefined 67 UIId id; 68 public: 69 SubMenuPriorForOneForce(std::string key, UIInterface& ui, UIId id); 70 virtual ~SubMenuPriorForOneForce(); 71 virtual bool IsVisible(); 72 }; 73 74 class PriorMenuForOneForceCreator : public NewMenuCreator 75 { 76 private: 77 PriorMenuForOneForceCreator(); //undefined 78 UIInterface& ui; 79 UIId id; 80 public: PriorMenuForOneForceCreator(UIInterface & myui,UIId myid)81 PriorMenuForOneForceCreator(UIInterface& myui, UIId myid) : 82 ui(myui), id(myid) {}; ~PriorMenuForOneForceCreator()83 virtual ~PriorMenuForOneForceCreator() {}; Create()84 virtual NewMenu_ptr Create() { return NewMenu_ptr(new PriorMenuForOneForce(ui, id));}; 85 }; 86 87 class PriorByParameterMenuItemGroup : public MenuDisplayGroupBaseImplementation 88 { 89 private: 90 PriorByParameterMenuItemGroup(); //undefined 91 UIId m_id; 92 public: 93 PriorByParameterMenuItemGroup(UIInterface& ui, UIId id); 94 virtual ~PriorByParameterMenuItemGroup(); 95 virtual UIIdVec1d GetVisibleIds(); 96 virtual MenuInteraction_ptr MakeOneHandler(UIId id); 97 }; 98 99 class DefaultPriorForForce: public SubMenuItem 100 { 101 private: 102 DefaultPriorForForce(); 103 UIId m_id; 104 public: 105 DefaultPriorForForce(string myKey, UIInterface& myUI, UIId myId); 106 virtual ~DefaultPriorForForce(); 107 virtual string GetVariableText(); 108 }; 109 110 class PriorMenuForOneParameter : public NewMenu 111 { 112 private: 113 PriorMenuForOneParameter(); 114 UIId m_id; 115 public: 116 PriorMenuForOneParameter(UIInterface& ui, UIId id); 117 virtual ~PriorMenuForOneParameter(); 118 virtual string Title(); 119 }; 120 121 class PriorMenuForOneParameterCreator : public NewMenuCreator 122 { 123 protected: 124 UIInterface & ui; 125 UIId id; 126 public: PriorMenuForOneParameterCreator(UIInterface & myui,UIId myid)127 PriorMenuForOneParameterCreator(UIInterface & myui, UIId myid) : 128 ui(myui), id(myid) {}; ~PriorMenuForOneParameterCreator()129 virtual ~PriorMenuForOneParameterCreator() {}; Create()130 virtual NewMenu_ptr Create() { return NewMenu_ptr(new PriorMenuForOneParameter(ui, id));}; 131 }; 132 133 #endif // PRIORMENUS_H 134 135 //____________________________________________________________________________________ 136