Changeset c82d0c for src/UIElements/Menu/MenuDescription.cpp
- Timestamp:
- Dec 4, 2010, 11:47:35 PM (14 years ago)
- Branches:
- Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
- Children:
- b2151f5
- Parents:
- d5240d
- git-author:
- Frederik Heber <heber@…> (11/11/10 18:43:28)
- git-committer:
- Frederik Heber <heber@…> (12/04/10 23:47:35)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/UIElements/Menu/MenuDescription.cpp
rd5240d rc82d0c 24 24 #include <string> 25 25 26 #include "Actions/ActionRegistry.hpp"26 //#include "Actions/ActionRegistry.hpp" 27 27 #include "Menu/MenuDescription.hpp" 28 29 #include "Patterns/Singleton_impl.hpp" 30 31 MenuDescription::TextMap *MenuDescription::MenuDescriptionsMap = NULL; 32 MenuDescription::IterableMap *MenuDescription::MenuPositionMap = NULL; 33 MenuDescription::TextMap *MenuDescription::MenuNameMap = NULL; 34 28 35 29 36 /** Constructor of class MenuDescription. … … 32 39 MenuDescription::MenuDescription() 33 40 { 41 // allocate maps 42 MenuDescriptionsMap = new TextMap(); 43 MenuPositionMap = new IterableMap(); 44 MenuNameMap = new TextMap(); 45 34 46 // put each menu into its place, "" means top level 35 MenuPositionMap ["analysis"] = TopPosition("tools",1);36 MenuPositionMap ["atom"] = TopPosition("edit",1);37 MenuPositionMap ["command"] = TopPosition("",3);38 MenuPositionMap ["edit"] = TopPosition("",2);39 MenuPositionMap ["fragmentation"] = TopPosition("tools",3);40 MenuPositionMap ["molecule"] = TopPosition("edit",2);41 MenuPositionMap ["parser"] = TopPosition("edit",3);42 MenuPositionMap ["selection"] = TopPosition("edit",4);43 MenuPositionMap ["tesselation"] = TopPosition("tools",2);44 MenuPositionMap ["tools"] = TopPosition("",4);45 MenuPositionMap ["world"] = TopPosition("",1);47 MenuPositionMap->insert(std::make_pair("analysis",TopPosition("tools",1))); 48 MenuPositionMap->insert(std::make_pair("atom",TopPosition("edit",1))); 49 MenuPositionMap->insert(std::make_pair("command",TopPosition("",3))); 50 MenuPositionMap->insert(std::make_pair("edit",TopPosition("",2))); 51 MenuPositionMap->insert(std::make_pair("fragmentation",TopPosition("tools",3))); 52 MenuPositionMap->insert(std::make_pair("molecule",TopPosition("edit",2))); 53 MenuPositionMap->insert(std::make_pair("parser",TopPosition("edit",3))); 54 MenuPositionMap->insert(std::make_pair("selection",TopPosition("edit",4))); 55 MenuPositionMap->insert(std::make_pair("tesselation",TopPosition("tools",2))); 56 MenuPositionMap->insert(std::make_pair("tools",TopPosition("",4))); 57 MenuPositionMap->insert(std::make_pair("world",TopPosition("",1))); 46 58 47 59 // put menu description into each menu category 48 MenuDescriptionsMap ["analysis"] = "Analysis (pair correlation, volume)";49 MenuDescriptionsMap ["atom"] = "Edit atoms";50 MenuDescriptionsMap ["command"] = "Configuration";51 MenuDescriptionsMap ["edit"] = "Edit";52 MenuDescriptionsMap ["fragmentation"] = "Fragmentation";53 MenuDescriptionsMap ["molecule"] = "Parse files into system";54 MenuDescriptionsMap ["parser"] = "Edit molecules (load, parse, save)";55 MenuDescriptionsMap ["selection"] = "Select atoms/molecules";56 MenuDescriptionsMap ["tesselation"] = "Tesselate molecules";57 MenuDescriptionsMap ["tools"] = "Various tools";58 MenuDescriptionsMap ["world"] = "Edit world";60 MenuDescriptionsMap->insert(std::make_pair("analysis","Analysis (pair correlation, volume)")); 61 MenuDescriptionsMap->insert(std::make_pair("atom","Edit atoms")); 62 MenuDescriptionsMap->insert(std::make_pair("command","Configuration")); 63 MenuDescriptionsMap->insert(std::make_pair("edit","Edit")); 64 MenuDescriptionsMap->insert(std::make_pair("fragmentation","Fragmentation")); 65 MenuDescriptionsMap->insert(std::make_pair("molecule","Parse files into system")); 66 MenuDescriptionsMap->insert(std::make_pair("parser","Edit molecules (load, parse, save)")); 67 MenuDescriptionsMap->insert(std::make_pair("selection","Select atoms/molecules")); 68 MenuDescriptionsMap->insert(std::make_pair("tesselation","Tesselate molecules")); 69 MenuDescriptionsMap->insert(std::make_pair("tools","Various tools")); 70 MenuDescriptionsMap->insert(std::make_pair("world","Edit world")); 59 71 60 72 // put menu name into each menu category 61 MenuNameMap ["analysis"] = "Analysis";62 MenuNameMap ["atom"] = "Atoms";63 MenuNameMap ["command"] = "Configuration";64 MenuNameMap ["edit"] = "Edit";65 MenuNameMap ["fragmentation"] = "Fragmentation";66 MenuNameMap ["molecule"] = "Molecules";67 MenuNameMap ["parser"] = "Input/Output";68 MenuNameMap ["selection"] = "Selection";69 MenuNameMap ["tesselation"] = "Tesselation";70 MenuNameMap ["tools"] = "Tools";71 MenuNameMap ["world"] = "Globals";73 MenuNameMap->insert(std::make_pair("analysis","Analysis")); 74 MenuNameMap->insert(std::make_pair("atom","Atoms")); 75 MenuNameMap->insert(std::make_pair("command","Configuration")); 76 MenuNameMap->insert(std::make_pair("edit","Edit")); 77 MenuNameMap->insert(std::make_pair("fragmentation","Fragmentation")); 78 MenuNameMap->insert(std::make_pair("molecule","Molecules")); 79 MenuNameMap->insert(std::make_pair("parser","Input/Output")); 80 MenuNameMap->insert(std::make_pair("selection","Selection")); 81 MenuNameMap->insert(std::make_pair("tesselation","Tesselation")); 82 MenuNameMap->insert(std::make_pair("tools","Tools")); 83 MenuNameMap->insert(std::make_pair("world","Globals")); 72 84 } 73 85 … … 76 88 */ 77 89 MenuDescription::~MenuDescription() 78 {} 90 { 91 std::cout << "MenuDescription: clearing maps ... " << std::endl; 92 for (IterableMap::iterator iter = MenuPositionMap->begin(); !MenuPositionMap->empty(); iter = MenuPositionMap->begin()) 93 MenuPositionMap->erase(iter); 94 delete MenuNameMap; 95 delete MenuDescriptionsMap; 96 delete MenuPositionMap; 97 } 79 98 80 99 /** Getter for MenuDescriptionsMap. … … 84 103 const std::string MenuDescription::getDescription(const std::string &token) const 85 104 { 86 if (MenuDescriptionsMap .find(token) != MenuDescriptionsMap.end())87 return MenuDescriptionsMap .find(token)->second;105 if (MenuDescriptionsMap->find(token) != MenuDescriptionsMap->end()) 106 return MenuDescriptionsMap->find(token)->second; 88 107 else 89 108 return std::string(); 90 109 } 91 110 92 /** Getter for MenuNameMap .111 /** Getter for MenuNameMap-> 93 112 * \param token name of menu 94 113 * \return description string of the menu or empty … … 96 115 const std::string MenuDescription::getName(const std::string &token) const 97 116 { 98 if (MenuNameMap .find(token) != MenuNameMap.end())99 return MenuNameMap .find(token)->second;117 if (MenuNameMap->find(token) != MenuNameMap->end()) 118 return MenuNameMap->find(token)->second; 100 119 else 101 120 return std::string(); 102 121 } 103 122 104 / ** Constructs a multimap of all menus running over all actions belonging to it.105 * \return multimap with which actions belongs to which menu.106 */107 std::multimap <std::string, std::string> MenuDescription::getMenuItemsMap() const108 {109 std::multimap <std::string, std::string> result;110 111 ActionRegistry &AR = ActionRegistry::getInstance();112 for (ActionRegistry::const_iterator iter = AR.getBeginIter();iter != AR.getEndIter();++iter) {113 std::cout << "Inserting " << (iter->second)->getName() << " into menu " << (iter->second)->Traits.getMenuName() << std::endl;114 result.insert( std::pair<std::string, std::string> ((iter->second)->Traits.getMenuName(), (iter->second)->getName()));115 }116 // TODO: MenuPosition is not yet realized.117 return result;118 }123 ///** Constructs a multimap of all menus running over all actions belonging to it. 124 // * \return multimap with which actions belongs to which menu. 125 // */ 126 //std::multimap <std::string, std::string> MenuDescription::getMenuItemsMap() const 127 //{ 128 // std::multimap <std::string, std::string> result; 129 // 130 // ActionRegistry &AR = ActionRegistry::getInstance(); 131 // for (ActionRegistry::const_iterator iter = AR.getBeginIter();iter != AR.getEndIter();++iter) { 132 // std::cout << "Inserting " << (iter->second)->getName() << " into menu " << (iter->second)->Traits.getMenuName() << std::endl; 133 // result.insert( std::pair<std::string, std::string> ((iter->second)->Traits.getMenuName(), (iter->second)->getName())); 134 // } 135 // // TODO: MenuPosition is not yet realized. 136 // return result; 137 //} 119 138 120 139 /** Forward iterator from beginning of list of descriptions. … … 123 142 MenuDescription::iterator MenuDescription::getBeginIter() 124 143 { 125 return MenuPositionMap .begin();144 return MenuPositionMap->begin(); 126 145 } 127 146 … … 131 150 MenuDescription::iterator MenuDescription::getEndIter() 132 151 { 133 return MenuPositionMap .end();152 return MenuPositionMap->end(); 134 153 } 135 154 … … 139 158 MenuDescription::const_iterator MenuDescription::getBeginIter() const 140 159 { 141 return MenuPositionMap .begin();160 return MenuPositionMap->begin(); 142 161 } 143 162 … … 147 166 MenuDescription::const_iterator MenuDescription::getEndIter() const 148 167 { 149 return MenuPositionMap .end();168 return MenuPositionMap->end(); 150 169 } 151 170 152 171 CONSTRUCT_SINGLETON(MenuDescription)
Note:
See TracChangeset
for help on using the changeset viewer.