source: trunk/source/visualization/management/include/G4VisCommandsListManager.hh@ 1200

Last change on this file since 1200 was 954, checked in by garnier, 17 years ago

remise a jour

  • Property svn:mime-type set to text/cpp
File size: 6.2 KB
Line 
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// $Id: G4VisCommandsListManager.hh,v 1.3 2006/06/29 21:28:38 gunter Exp $
27// GEANT4 tag $Name: $
28//
29// Jane Tinslay, John Allison, Joseph Perl October 2005
30//
31// Class Description:
32// Templated list manager commands which control list manager listing and
33// selection.
34// Class Description - End:
35
36#ifndef G4VISCOMMANDLISTMANAGER_HH
37#define G4VISCOMMANDLISTMANAGER_HH
38
39#include "G4UImessenger.hh"
40#include "G4String.hh"
41#include "G4UIcmdWithAString.hh"
42#include "G4UIcommand.hh"
43
44template <typename Manager>
45class G4VisCommandListManagerList : public G4UImessenger {
46
47public: // With description
48
49 G4VisCommandListManagerList(Manager*, const G4String& placement);
50 // Input list manager and command placement
51
52 virtual ~G4VisCommandListManagerList();
53
54 G4String GetCurrentValue(G4UIcommand*);
55 void SetNewValue(G4UIcommand* command, G4String newValue);
56
57 G4String Placement() const;
58
59private:
60
61 // Data members
62 Manager* fpManager;
63 G4String fPlacement;
64
65 G4UIcmdWithAString* fpCommand;
66
67};
68
69// List command
70template <typename Manager>
71G4VisCommandListManagerList<Manager>::G4VisCommandListManagerList(Manager* manager, const G4String& placement)
72 :fpManager(manager)
73 ,fPlacement(placement)
74{
75 G4String command = Placement()+"/list";
76
77 fpCommand = new G4UIcmdWithAString(command, this);
78 fpCommand->SetGuidance("List objects registered with list manager");
79 fpCommand->SetParameterName("name", true);
80}
81
82template <typename Manager>
83G4VisCommandListManagerList<Manager>::~G4VisCommandListManagerList()
84{
85 delete fpCommand;
86}
87
88template <typename Manager>
89G4String
90G4VisCommandListManagerList<Manager>::Placement() const
91{
92 return fPlacement;
93}
94
95template <typename Manager>
96G4String
97G4VisCommandListManagerList<Manager>::GetCurrentValue(G4UIcommand*)
98{
99 return "";
100}
101
102template <typename Manager>
103void G4VisCommandListManagerList<Manager>::SetNewValue(G4UIcommand*, G4String name)
104{
105 G4cout<<"Listing models available in "<<Placement()<<G4endl;
106
107 assert (0 != fpManager);
108 fpManager->Print(G4cout, name);
109}
110
111//Select command
112template <typename Manager>
113class G4VisCommandListManagerSelect : public G4UImessenger {
114
115public: // With description
116
117 G4VisCommandListManagerSelect(Manager*, const G4String& placement);
118 // Input list manager and command placement
119
120 virtual ~G4VisCommandListManagerSelect();
121
122 G4String GetCurrentValue(G4UIcommand*);
123 void SetNewValue (G4UIcommand* command, G4String newValue);
124
125private:
126
127 Manager* fpManager;
128 G4String fPlacement;
129
130 G4UIcmdWithAString* fpCommand;
131
132};
133
134template <typename Manager>
135G4VisCommandListManagerSelect<Manager>::G4VisCommandListManagerSelect(Manager* manager, const G4String& placement)
136 :fpManager(manager)
137 ,fPlacement(placement)
138{
139 G4String command = placement+"/select";
140 G4String guidance = "Select created object";
141
142 fpCommand = new G4UIcmdWithAString(command, this);
143 fpCommand->SetGuidance(guidance);
144 fpCommand->SetParameterName("name", false);
145}
146
147template <typename Manager>
148G4VisCommandListManagerSelect<Manager>::~G4VisCommandListManagerSelect()
149{
150 delete fpCommand;
151}
152
153template <typename Manager>
154G4String
155G4VisCommandListManagerSelect<Manager>::GetCurrentValue(G4UIcommand*)
156{
157 return "";
158}
159
160template <typename Manager>
161void G4VisCommandListManagerSelect<Manager>::SetNewValue(G4UIcommand*, G4String name)
162{
163 assert (0 != fpManager);
164 fpManager->SetCurrent(name);
165}
166
167// Mode command
168template <typename Manager>
169class G4VisCommandManagerMode : public G4UImessenger {
170
171public: // With description
172
173 G4VisCommandManagerMode(Manager*, const G4String& placement);
174
175 virtual ~G4VisCommandManagerMode();
176
177 G4String GetCurrentValue(G4UIcommand*);
178 void SetNewValue (G4UIcommand* command, G4String newValue);
179
180private:
181
182 Manager* fpManager;
183 G4String fPlacement;
184
185 G4UIcmdWithAString* fpCommand;
186
187};
188template <typename Manager>
189G4VisCommandManagerMode<Manager>::G4VisCommandManagerMode(Manager* manager, const G4String& placement)
190 :fpManager(manager)
191 ,fPlacement(placement)
192{
193 G4String command = fPlacement+"/mode";
194
195 fpCommand = new G4UIcmdWithAString(command, this);
196 fpCommand->SetGuidance("Set mode of operation");
197 fpCommand->SetParameterName("mode", false);
198 fpCommand->SetCandidates("soft hard");
199}
200
201template <typename Manager>
202G4VisCommandManagerMode<Manager>::~G4VisCommandManagerMode()
203{
204 delete fpCommand;
205}
206
207template <typename Manager>
208G4String
209G4VisCommandManagerMode<Manager>::GetCurrentValue(G4UIcommand*)
210{
211 return "";
212}
213
214template <typename Manager>
215void G4VisCommandManagerMode<Manager>::SetNewValue(G4UIcommand*, G4String name)
216{
217 assert (0 != fpManager);
218 fpManager->SetMode(name);
219}
220
221#endif
Note: See TracBrowser for help on using the repository browser.