Changeset 65b6e0 for src


Ignore:
Timestamp:
Dec 16, 2009, 12:30:16 PM (15 years ago)
Author:
Frederik Heber <heber@…>
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:
21c246
Parents:
4aa424
git-author:
Tillmann Crueger <crueger@…> (12/15/09 17:12:30)
git-committer:
Frederik Heber <heber@…> (12/16/09 12:30:16)
Message:

Added basic menu and action framework

  • Added action base class
  • Added class to make actions from methods
  • Added Menu base class
  • Added TextMenu class to produce text menus
  • Added MenuItem base class for menu items
  • Added ActionMenuItem for menu items using an action
  • Added SubMenuItem class for menu items presenting a submenu
  • Added SeperatorItem class for menu seperators without functioninality

Signed-off-by: Tillmann Crueger <crueger@…>

Location:
src
Files:
16 added
4 edited

Legend:

Unmodified
Added
Removed
  • src/Makefile.am

    r4aa424 r65b6e0  
    55ANALYSISHEADER = analysis_bonds.hpp analysis_correlation.hpp
    66
    7 SOURCE = ${ANALYSISSOURCE} ${ATOMSOURCE} bond.cpp bondgraph.cpp boundary.cpp config.cpp element.cpp ellipsoid.cpp errorlogger.cpp graph.cpp helpers.cpp leastsquaremin.cpp linkedcell.cpp log.cpp logger.cpp memoryusageobserver.cpp moleculelist.cpp molecule.cpp molecule_dynamics.cpp molecule_fragmentation.cpp molecule_geometry.cpp molecule_graph.cpp molecule_pointcloud.cpp parser.cpp periodentafel.cpp tesselation.cpp tesselationhelpers.cpp vector.cpp verbose.cpp menu.cpp
    8 HEADER = ${ANALYSISHEADER} ${ATOMHEADER} bond.hpp bondgraph.hpp boundary.hpp config.hpp defs.hpp element.hpp ellipsoid.hpp errorlogger.hpp graph.hpp helpers.hpp leastsquaremin.hpp linkedcell.hpp lists.hpp log.hpp logger.hpp memoryallocator.hpp memoryusageobserver.hpp molecule.hpp molecule_template.hpp parser.hpp periodentafel.hpp stackclass.hpp tesselation.hpp tesselationhelpers.hpp vector.hpp verbose.hpp menu.hpp
     7ACTIONSSOURCE = Actions/Action.cpp Actions/MethodAction.cpp
     8ACTIONSHEADER = Actions/Action.hpp Actions/MethodAction.hpp
     9
     10MENUSOURCE = ${ACTIONSSOURCE} Menu/Menu.cpp Menu/TextMenu.cpp Menu/MenuItem.cpp Menu/SubMenuItem.cpp Menu/ActionMenuItem.cpp Menu/SeperatorItem.cpp
     11MENUHEADER = ${ACTIONSHEADER} Menu/Menu.hpp Menu/TextMenu.hpp Menu/MenuItem.hpp Menu/SubMenuItem.hpp Menu/ActionMenuItem.hpp Menu/SeperatorItem.hpp
     12
     13SOURCE = ${ANALYSISSOURCE} ${ATOMSOURCE} ${MENUSOURCE} bond.cpp bondgraph.cpp boundary.cpp config.cpp element.cpp ellipsoid.cpp errorlogger.cpp graph.cpp helpers.cpp leastsquaremin.cpp linkedcell.cpp log.cpp logger.cpp memoryusageobserver.cpp moleculelist.cpp molecule.cpp molecule_dynamics.cpp molecule_fragmentation.cpp molecule_geometry.cpp molecule_graph.cpp molecule_pointcloud.cpp parser.cpp periodentafel.cpp tesselation.cpp tesselationhelpers.cpp vector.cpp verbose.cpp menu.cpp
     14HEADER = ${ANALYSISHEADER} ${ATOMHEADER} ${MENUHEADER} bond.hpp bondgraph.hpp boundary.hpp config.hpp defs.hpp element.hpp ellipsoid.hpp errorlogger.hpp graph.hpp helpers.hpp leastsquaremin.hpp linkedcell.hpp lists.hpp log.hpp logger.hpp memoryallocator.hpp memoryusageobserver.hpp molecule.hpp molecule_template.hpp parser.hpp periodentafel.hpp stackclass.hpp tesselation.hpp tesselationhelpers.hpp vector.hpp verbose.hpp menu.hpp
    915
    1016BOOST_LIB = $(BOOST_LDFLAGS) $(BOOST_MPL_LIB)
     
    2531
    2632#EXTRA_DIST = ${molecuilder_DATA}
     33
  • src/builder.cpp

    r4aa424 r65b6e0  
    7878 */
    7979static int ParseCommandLineOptions(int argc, char **argv, MoleculeListClass *&molecules, periodentafel *&periode,\
    80                                    config& configuration, char *&ConfigFileName, menu *main_menu)
     80                                   config& configuration, char *&ConfigFileName, oldmenu *main_menu)
    8181{
    8282  Vector x,y,z,n;  // coordinates for absolute point in cell volume
     
    904904    char *ConfigFileName = NULL;
    905905    int j;
    906     menu *main_menu;
    907     main_menu = new menu;
     906    oldmenu *main_menu;
     907    main_menu = new oldmenu;
    908908    setVerbosity(0);
    909909    /* main menu is needed to call actions inside the menu */
  • src/menu.cpp

    r4aa424 r65b6e0  
    2424#include "periodentafel.hpp"
    2525
     26#include "Menu/Menu.hpp"
     27#include "Menu/TextMenu.hpp"
     28#include "Menu/ActionMenuItem.hpp"
     29#include "Menu/SeperatorItem.hpp"
     30#include "Actions/MethodAction.hpp"
     31
     32
     33#include <boost/bind.hpp>
     34
    2635/* copied methods for refactoring */
    2736/*TODO: Move these methods inside menu class
     
    3443 * \param *molecule molecules with atoms
    3544 */
    36 void menu::AddAtoms(periodentafel *periode, molecule *mol)
     45void oldmenu::AddAtoms(periodentafel *periode, molecule *mol)
    3746{
    3847  atom *first, *second, *third, *fourth;
     
    232241 * \param *mol molecule with all the atoms
    233242 */
    234 void menu::CenterAtoms(molecule *mol)
     243void oldmenu::CenterAtoms(molecule *mol)
    235244{
    236245  Vector x, y, helper;
     
    290299 * \param *mol molecule with all the atoms
    291300 */
    292 void menu::AlignAtoms(periodentafel *periode, molecule *mol)
     301void oldmenu::AlignAtoms(periodentafel *periode, molecule *mol)
    293302{
    294303  atom *first, *second, *third;
     
    358367 * \param *mol molecule with all the atoms
    359368 */
    360 void menu::MirrorAtoms(molecule *mol)
     369void oldmenu::MirrorAtoms(molecule *mol)
    361370{
    362371  atom *first, *second, *third;
     
    405414 * \param *mol molecule with all the atoms
    406415 */
    407 void menu::RemoveAtoms(molecule *mol)
     416void oldmenu::RemoveAtoms(molecule *mol)
    408417{
    409418  atom *first, *second;
     
    469478 * \param *mol molecule with all the atoms
    470479 */
    471 void menu::MeasureAtoms(periodentafel *periode, molecule *mol, config *configuration)
     480void oldmenu::MeasureAtoms(periodentafel *periode, molecule *mol, config *configuration)
    472481{
    473482  atom *first, *second, *third;
     
    589598 * \param *configuration configuration structure for the to be written config files of all fragments
    590599 */
    591 void menu::FragmentAtoms(molecule *mol, config *configuration)
     600void oldmenu::FragmentAtoms(molecule *mol, config *configuration)
    592601{
    593602  int Order1;
     
    612621 * \param *molecules list of molecules whose atoms are to be manipulated
    613622 */
    614 void menu::ManipulateAtoms(periodentafel *periode, MoleculeListClass *molecules, config *configuration)
     623void oldmenu::ManipulateAtoms(periodentafel *periode, MoleculeListClass *molecules, config *configuration)
    615624{
    616625  atom *first, *second;
     
    731740 * \param *molecules list of molecule to manipulate
    732741 */
    733 void menu::ManipulateMolecules(periodentafel *periode, MoleculeListClass *molecules, config *configuration)
     742void oldmenu::ManipulateMolecules(periodentafel *periode, MoleculeListClass *molecules, config *configuration)
    734743{
    735744  atom *first = NULL;
     
    890899 * \param *molecules list of molecules to add to
    891900 */
    892 void menu::EditMolecules(periodentafel *periode, MoleculeListClass *molecules)
     901void oldmenu::EditMolecules(periodentafel *periode, MoleculeListClass *molecules)
    893902{
    894903  char choice;  // menu choice char
     
    10061015 * \param *molecules list of molecules to add to
    10071016 */
    1008 void menu::MergeMolecules(periodentafel *periode, MoleculeListClass *molecules)
     1017void oldmenu::MergeMolecules(periodentafel *periode, MoleculeListClass *molecules)
    10091018{
    10101019  char choice;  // menu choice char
     
    11201129 * \param *molecules list of molecules
    11211130 */
    1122 void menu::testroutine(MoleculeListClass *molecules)
     1131void oldmenu::testroutine(MoleculeListClass *molecules)
    11231132{
    11241133  // the current test routine checks the functionality of the KeySet&Graph concept:
     
    11981207};
    11991208
    1200 menu::menu()
     1209oldmenu::oldmenu()
    12011210{
    12021211  // TODO Auto-generated constructor stub
    12031212}
    12041213
    1205 menu::~menu()
     1214oldmenu::~oldmenu()
    12061215{
    12071216  // TODO Auto-generated destructor stub
    12081217}
    12091218
    1210 void menu::perform(MoleculeListClass *molecules, config *configuration, periodentafel *periode, char *ConfigFileName)
    1211 {
     1219void oldmenu::perform(MoleculeListClass *molecules, config *configuration, periodentafel *periode, char *ConfigFileName)
     1220{
     1221  TextMenu *main_menu = new TextMenu(Log() << Verbose(0), "Main Menu");
     1222
     1223  ActionMenuItem *setMolecule = new ActionMenuItem('a',"set molecule (in)active",main_menu,new MethodAction());
     1224  ActionMenuItem *editMolecule = new ActionMenuItem('e',"edit molecules (load, parse, save)",main_menu,new MethodAction());
     1225  ActionMenuItem *manipulateAtomsGlobal = new ActionMenuItem('g',"globally manipulate atoms in molecule",main_menu,new MethodAction());
     1226  ActionMenuItem *mergeMolecules = new ActionMenuItem('M',"Merge molecules",main_menu,new MethodAction());
     1227  ActionMenuItem *manipulateAtoms = new ActionMenuItem('m',"manipulate atoms",main_menu,new MethodAction());
     1228
     1229  new SeperatorItem(main_menu);
     1230  ActionMenuItem *editConfig = new ActionMenuItem('c',"edit the current configuration",main_menu,new MethodAction());
     1231  new SeperatorItem(main_menu);
     1232  ActionMenuItem *saveSetup = new ActionMenuItem('s',"save current setup to config file",main_menu,new MethodAction());
     1233  ActionMenuItem *callTest = new ActionMenuItem('T',"call the current test routine",main_menu,new MethodAction());
     1234
     1235  MethodAction *quitAction = new MethodAction();
     1236  quitAction->executeMethod = boost::bind(&TextMenu::doQuit,main_menu);
     1237  new ActionMenuItem('q',"quit",main_menu,quitAction);
     1238
     1239
     1240  /*main_menu->addItem(setMolecule);
     1241  main_menu->addItem(editMolecule);
     1242  main_menu->addItem(manipulateAtomsGlobal);
     1243  main_menu->addItem(mergeMolecules);
     1244  main_menu->addItem(manipulateAtoms);
     1245  //TODO: Seperator
     1246  main_menu->addItem(editConfig);
     1247  //TODO: Seperator
     1248  main_menu->addItem(saveSetup);
     1249  main_menu->addItem(callTest);
     1250  main_menu->addItem(quit);
     1251
     1252*/
     1253  main_menu->display();
     1254
     1255
     1256
     1257#if 0
    12121258    char choice;
    12131259    int j;
     
    12791325    };
    12801326  } while (choice != 'q');
     1327#endif
    12811328};
    12821329
     
    12871334 * \param *molecules list of molecules structure with all the atoms and coordinates
    12881335 */
    1289 void menu::SaveConfig(char *ConfigFileName, config *configuration, periodentafel *periode, MoleculeListClass *molecules)
     1336void oldmenu::SaveConfig(char *ConfigFileName, config *configuration, periodentafel *periode, MoleculeListClass *molecules)
    12901337{
    12911338  char filename[MAXSTRINGSIZE];
  • src/menu.hpp

    r4aa424 r65b6e0  
    1616class molecule;
    1717
    18 class menu
     18class oldmenu
    1919{
    2020public:
    21   menu();
    22   virtual ~menu();
     21  oldmenu();
     22  virtual ~oldmenu();
    2323
    2424  void perform(MoleculeListClass *, config *, periodentafel *, char *);
Note: See TracChangeset for help on using the changeset viewer.