1 // $Id: overviewmenus.h,v 1.16 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 OVERVIEWMENUS_H 12 #define OVERVIEWMENUS_H 13 14 #include <string> 15 #include "menudefs.h" 16 #include "newmenu.h" 17 #include "newmenuitems.h" 18 #include "setmenuitem.h" 19 #include "twodtable.h" 20 21 class Display; 22 class UIInterface; 23 24 class ChainTable : public TwoDTable 25 { 26 protected: 27 virtual long ColCount(UIInterface & ui); 28 virtual long RowCount(UIInterface & ui); 29 virtual std::string Title(UIInterface & ui); 30 virtual std::string ColLabel(UIInterface & ui, long index); 31 virtual std::string RowLabel(UIInterface & ui, long index); 32 virtual std::string Cell(UIInterface & ui, long rowIndex, long colIndex); 33 public: 34 ChainTable(UIInterface &); 35 virtual ~ChainTable(); 36 }; 37 38 class ForceEventTable : public TwoDTable 39 { 40 protected: 41 virtual const std::string forceName(long); 42 virtual const std::string forceMaxEvents(long); 43 virtual long getForceIndex(UIInterface & ui, long index); 44 virtual long ColCount(UIInterface & ui); 45 virtual long RowCount(UIInterface & ui); 46 virtual std::string Title(UIInterface & ui); 47 virtual std::string ColLabel(UIInterface & ui, long index); 48 virtual std::string RowLabel(UIInterface & ui, long index); 49 virtual std::string Cell(UIInterface & ui, long rowIndex, long colIndex); 50 public: 51 ForceEventTable(UIInterface &); 52 virtual ~ForceEventTable(); 53 }; 54 55 class StartParamTable : public TwoDTable 56 { 57 protected: 58 virtual long ColCount(UIInterface & ui); 59 virtual long RowCount(UIInterface & ui); 60 virtual std::string Title(UIInterface & ui); 61 virtual std::string RowHeader(UIInterface & ui); 62 virtual std::string ColLabel(UIInterface & ui, long index); 63 virtual std::string RowLabel(UIInterface & ui, long index); 64 virtual std::string Cell(UIInterface & ui, long rowIndex, long colIndex); 65 public: 66 StartParamTable(UIInterface &); 67 virtual ~StartParamTable(); 68 }; 69 70 class TemperatureTable : public TwoDTable 71 { 72 protected: 73 virtual long ColCount(UIInterface & ui); 74 virtual long RowCount(UIInterface & ui); 75 virtual std::string Title(UIInterface & ui); 76 virtual std::string ColLabel(UIInterface & ui, long index); 77 virtual std::string RowLabel(UIInterface & ui, long index); 78 virtual std::string Cell(UIInterface & ui, long rowIndex, long colIndex); 79 public: 80 TemperatureTable(UIInterface &); 81 virtual ~TemperatureTable(); 82 virtual bool IsVisible(); 83 }; 84 85 class DisplayOnlyMenuItem : public OutputOnlyMenuItem 86 { 87 protected: 88 UIInterface & ui; 89 UIId keyId; 90 public: 91 DisplayOnlyMenuItem(const std::string &,UIInterface&); 92 DisplayOnlyMenuItem(const std::string &,UIInterface&,UIId); 93 virtual ~DisplayOnlyMenuItem(); 94 virtual UIId GetKeyid(); 95 virtual std::string GetText(); 96 virtual std::string GetVariableText(); 97 }; 98 99 class DisplayOnlyMenuItemIfTrue : public DisplayOnlyMenuItem 100 { 101 protected: 102 std::string guard; 103 public: 104 DisplayOnlyMenuItemIfTrue( 105 const std::string &, 106 const std::string &, 107 UIInterface &); 108 DisplayOnlyMenuItemIfTrue( 109 const std::string &, 110 const std::string &, 111 UIInterface &, 112 UIId); 113 virtual bool IsVisible(); 114 virtual ~DisplayOnlyMenuItemIfTrue(); 115 }; 116 117 class DisplayOnlyMenuItemIfNonZero : public DisplayOnlyMenuItem 118 { 119 public: 120 DisplayOnlyMenuItemIfNonZero( 121 const std::string &, 122 UIInterface &); 123 virtual ~DisplayOnlyMenuItemIfNonZero(); 124 virtual bool IsVisible(); 125 }; 126 127 class DisplayOnlyMenu : public NewMenu 128 { 129 public: 130 DisplayOnlyMenu(UIInterface & myui, const std::string &,const std::string &); 131 virtual ~DisplayOnlyMenu(); 132 }; 133 134 class FileOverviewMenu : public DisplayOnlyMenu 135 { 136 public: 137 FileOverviewMenu(UIInterface & myui); 138 virtual ~FileOverviewMenu(); 139 }; 140 141 class FileOverviewMenuCreator : public NewMenuCreator 142 { 143 protected: 144 UIInterface & ui; 145 public: FileOverviewMenuCreator(UIInterface & myui)146 FileOverviewMenuCreator(UIInterface & myui) : ui(myui) {}; ~FileOverviewMenuCreator()147 virtual ~FileOverviewMenuCreator() {}; Create()148 NewMenu_ptr Create() { return NewMenu_ptr(new FileOverviewMenu(ui));}; 149 }; 150 151 class DataOverviewMenuItem : public OutputOnlyMenuItem 152 { 153 protected: 154 UIInterface & ui; 155 UIId m_id; 156 public: 157 DataOverviewMenuItem(UIInterface & myui,UIId id); 158 virtual ~DataOverviewMenuItem(); 159 virtual std::string GetText(); 160 }; 161 162 class RegionDataOverviewMenu : public DisplayOnlyMenu 163 { 164 protected: 165 UIId m_id; 166 public: 167 RegionDataOverviewMenu(UIInterface & ui,UIId id); 168 virtual ~RegionDataOverviewMenu(); 169 }; 170 171 class DataOverviewMenuItemGroup : public MenuDisplayGroupBaseImplementation 172 { 173 protected: 174 MenuInteraction_ptr MakeOneHandler(UIId id); 175 public: 176 DataOverviewMenuItemGroup(UIInterface & ui); 177 ~DataOverviewMenuItemGroup(); 178 vector<UIId> GetVisibleIds(); 179 std::string GetText(UIId id); 180 std::string GetVariableText(UIId id); 181 }; 182 183 class DataOverviewMenu : public DisplayOnlyMenu 184 { 185 public: 186 DataOverviewMenu(UIInterface & ui); 187 virtual ~DataOverviewMenu(); 188 }; 189 190 class DataOverviewMenuCreator : public NewMenuCreator 191 { 192 protected: 193 UIInterface & ui; 194 public: DataOverviewMenuCreator(UIInterface & myui)195 DataOverviewMenuCreator(UIInterface & myui) : ui(myui) {}; ~DataOverviewMenuCreator()196 virtual ~DataOverviewMenuCreator() {}; Create()197 NewMenu_ptr Create() { return NewMenu_ptr(new DataOverviewMenu(ui));}; 198 }; 199 200 class ForceOverviewMenu : public DisplayOnlyMenu 201 { 202 public: 203 ForceOverviewMenu(UIInterface & myui); 204 virtual ~ForceOverviewMenu(); 205 }; 206 207 class ForceOverviewMenuCreator : public NewMenuCreator 208 { 209 protected: 210 UIInterface & ui; 211 public: ForceOverviewMenuCreator(UIInterface & myui)212 ForceOverviewMenuCreator(UIInterface & myui) : ui(myui) {}; ~ForceOverviewMenuCreator()213 virtual ~ForceOverviewMenuCreator() {}; Create()214 NewMenu_ptr Create() { return NewMenu_ptr(new ForceOverviewMenu(ui));}; 215 }; 216 217 class ReplicatesMenuItemIfMoreThanOne : public DisplayOnlyMenuItem 218 { 219 public: 220 ReplicatesMenuItemIfMoreThanOne(UIInterface&); 221 virtual ~ReplicatesMenuItemIfMoreThanOne(); 222 virtual bool IsVisible(); 223 }; 224 225 class SearchOverviewMenu : public DisplayOnlyMenu 226 { 227 public: 228 SearchOverviewMenu(UIInterface & myui); 229 virtual ~SearchOverviewMenu(); 230 }; 231 232 class SearchOverviewMenuCreator : public NewMenuCreator { 233 protected: 234 UIInterface & ui; 235 public: SearchOverviewMenuCreator(UIInterface & myui)236 SearchOverviewMenuCreator(UIInterface & myui) : ui(myui) {}; ~SearchOverviewMenuCreator()237 virtual ~SearchOverviewMenuCreator() {}; Create()238 NewMenu_ptr Create() { return NewMenu_ptr(new SearchOverviewMenu(ui));}; 239 }; 240 241 class ResultsOverviewMenu : public DisplayOnlyMenu 242 { 243 public: 244 ResultsOverviewMenu(UIInterface & myui); 245 virtual ~ResultsOverviewMenu(); 246 }; 247 248 class ResultsOverviewMenuCreator : public NewMenuCreator 249 { 250 protected: 251 UIInterface & ui; 252 public: ResultsOverviewMenuCreator(UIInterface & myui)253 ResultsOverviewMenuCreator(UIInterface & myui) : ui(myui) {}; ~ResultsOverviewMenuCreator()254 virtual ~ResultsOverviewMenuCreator() {}; Create()255 NewMenu_ptr Create() { return NewMenu_ptr(new ResultsOverviewMenu(ui));}; 256 }; 257 258 class BayesianPriorsOverviewMenu : public DisplayOnlyMenu 259 { 260 public: 261 BayesianPriorsOverviewMenu(UIInterface & myui); 262 ~BayesianPriorsOverviewMenu(); 263 }; 264 265 class BayesianPriorsOverviewMenuCreator : public NewMenuCreator 266 { 267 protected: 268 UIInterface & ui; 269 public: BayesianPriorsOverviewMenuCreator(UIInterface & myui)270 BayesianPriorsOverviewMenuCreator(UIInterface & myui) : ui(myui) {}; ~BayesianPriorsOverviewMenuCreator()271 virtual ~BayesianPriorsOverviewMenuCreator() {}; Create()272 NewMenu_ptr Create() { return NewMenu_ptr(new BayesianPriorsOverviewMenu(ui));}; 273 }; 274 275 //------------------------------------------------------------------------------------ 276 277 class BayesianPriorsOverviewMenuItemGroup : public MenuDisplayGroupBaseImplementation 278 { 279 public: 280 BayesianPriorsOverviewMenuItemGroup(UIInterface& ui); 281 virtual ~BayesianPriorsOverviewMenuItemGroup(); 282 virtual vector<UIId> GetVisibleIds(); 283 virtual string GetText(UIId id); 284 virtual string GetVariableText(UIId id); 285 virtual MenuInteraction_ptr MakeOneHandler(UIId id); 286 }; 287 288 //------------------------------------------------------------------------------------ 289 290 class TraitMappingOverviewMenu : public DisplayOnlyMenu 291 { 292 public: 293 TraitMappingOverviewMenu(UIInterface & myui); 294 ~TraitMappingOverviewMenu(); 295 }; 296 297 class TraitMappingOverviewMenuCreator : public NewMenuCreator 298 { 299 protected: 300 UIInterface & ui; 301 public: TraitMappingOverviewMenuCreator(UIInterface & myui)302 TraitMappingOverviewMenuCreator(UIInterface & myui) : ui(myui) {}; ~TraitMappingOverviewMenuCreator()303 virtual ~TraitMappingOverviewMenuCreator() {}; Create()304 NewMenu_ptr Create() { return NewMenu_ptr(new TraitMappingOverviewMenu(ui));}; 305 }; 306 307 //------------------------------------------------------------------------------------ 308 309 class TraitMappingOverviewMenuItemGroup : public MenuDisplayGroupBaseImplementation 310 { 311 public: 312 TraitMappingOverviewMenuItemGroup(UIInterface& ui); 313 virtual ~TraitMappingOverviewMenuItemGroup(); 314 virtual vector<UIId> GetVisibleIds(); 315 virtual string GetText(UIId id); 316 virtual string GetVariableText(UIId id); 317 virtual MenuInteraction_ptr MakeOneHandler(UIId id); 318 }; 319 320 #endif // OVERVIEWMENUS_H 321 322 //____________________________________________________________________________________ 323