Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4UIcommandTree.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26// G4UIcommandTree
27//
28// Class description:
29//
30// This class is exclusively used by G4UImanager for handling the
31// tree structure of the commands. The user MUST NOT construct/use
32// this class object
33
34// Author: Makoto Asai (SLAC), 1998
35// --------------------------------------------------------------------
36#ifndef G4UIcommandTree_hh
37#define G4UIcommandTree_hh 1
38
39#include <vector>
40
41#include "globals.hh"
42#include "G4UIcommand.hh"
43
45{
46 public:
47
48 G4UIcommandTree() = default;
49 G4UIcommandTree(const char* thePathName);
50
52
53 G4bool operator==(const G4UIcommandTree& right) const;
54 G4bool operator!=(const G4UIcommandTree& right) const;
55
56 void AddNewCommand(G4UIcommand* newCommand, G4bool workerThreadOnly = false);
57 void RemoveCommand(G4UIcommand* aCommand, G4bool workerThreadOnly = false);
58 G4UIcommand* FindPath(const char* commandPath) const;
59 G4UIcommandTree* FindCommandTree(const char* commandPath);
60 G4String GetFirstMatchedString(const G4String&, const G4String&) const;
61
62 G4String CompleteCommandPath(const G4String& commandPath);
63 // Complete most available characters in common into command path in the
64 // command line given
65
66 void List() const;
67 void ListCurrent() const;
68 void ListCurrentWithNum() const;
69 void CreateHTML(const G4String& = "");
70
71 inline const G4UIcommand* GetGuidance() const { return guidance; }
72 inline const G4String& GetPathName() const { return pathName; }
73 inline G4int GetTreeEntry() const { return G4int(tree.size()); }
74 inline G4int GetCommandEntry() const { return G4int(command.size()); }
75 inline G4UIcommandTree* GetTree(G4int i) { return tree[i - 1]; }
76 G4UIcommandTree* GetTree(const char* comNameC);
77 inline G4UIcommand* GetCommand(G4int i) { return command[i - 1]; }
78 inline const G4String GetTitle() const
79 {
80 return (guidance == nullptr) ? G4String("...Title not available...")
81 : guidance->GetTitle();
82 }
83
84 private:
85
86 G4String CreateFileName(const char* pName);
87 G4String ModStr(const char* strS);
88
89 std::vector<G4UIcommand*> command;
90 std::vector<G4UIcommandTree*> tree;
91 G4UIcommand* guidance = nullptr;
92 G4String pathName;
93 G4bool broadcastCommands = true;
94 G4bool ifSort = false;
95 G4int createHTMLTreeLevel = 0;
96};
97
98#endif
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
G4bool operator!=(const G4UIcommandTree &right) const
G4int GetCommandEntry() const
G4UIcommandTree()=default
const G4UIcommand * GetGuidance() const
G4UIcommand * GetCommand(G4int i)
const G4String & GetPathName() const
G4int GetTreeEntry() const
G4UIcommandTree * GetTree(G4int i)
void List() const
G4bool operator==(const G4UIcommandTree &right) const
void AddNewCommand(G4UIcommand *newCommand, G4bool workerThreadOnly=false)
G4UIcommandTree * FindCommandTree(const char *commandPath)
void ListCurrentWithNum() const
const G4String GetTitle() const
G4String CompleteCommandPath(const G4String &commandPath)
G4String GetFirstMatchedString(const G4String &, const G4String &) const
void CreateHTML(const G4String &="")
G4UIcommand * FindPath(const char *commandPath) const
void ListCurrent() const
void RemoveCommand(G4UIcommand *aCommand, G4bool workerThreadOnly=false)
const G4String GetTitle() const
Definition: G4UIcommand.hh:166