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
G4OpenGLXmSliderBar.cc
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//
27//
28//Slider bar class. Inherits from G4OpenGLXmVWidgetComponent
29
33#include <X11/Intrinsic.h>
34#include <Xm/Scale.h>
35#include "globals.hh"
36
38 XtCallbackRec* c,
39 G4bool sh,
40 short dp,
41 G4double v,
42 G4double max,
43 G4double min,
44 unsigned char o,
45 unsigned char d)
46: sliderbar(0)
47, parent(0)
48{
49 name = n;
50 callback = c;
51 show = sh;
52 decimal_places = dp;
53 initial_value = int(v * std::pow(10.0, (G4double)dp));
54 max_value = int(max * std::pow(10.0, (G4double)dp));
55 min_value = int(min * std::pow(10.0, (G4double)dp));
56 orientation = o;
57 direction = d;
58}
59
61{}
62
64{
65 return name;
66}
67
69{
70 return show;
71}
72
74{
75 return decimal_places;
76}
77
79{
80 return (G4double)initial_value / std::pow(10.0, (G4double)GetDecimalPlaces());
81}
82
84{
85 return (G4double)max_value / std::pow(10.0, (G4double)GetDecimalPlaces());
86}
87
89{
90 return (G4double)min_value / std::pow(10.0, (G4double)GetDecimalPlaces());
91}
92
94{
95 return orientation;
96}
97
99{
100 return direction;
101}
102
103void G4OpenGLXmSliderBar::SetName (const char* n)
104{
105 name = n;
106 XmString sliderbar_string = XmStringCreateLocalized ((char*)name);
107 XtVaSetValues (sliderbar,
108 XmNlabelString, sliderbar_string,
109 NULL);
110 XmStringFree (sliderbar_string);
111}
112
114{
115 show = sh;
116 XtVaSetValues (sliderbar,
117 XmNshowValue, show,
118 NULL);
119
120}
121
123{
124 decimal_places = dp;
125 XtVaSetValues (sliderbar,
126 XmNdecimalPoints, decimal_places,
127 NULL);
128
129}
130
132{
133 initial_value = int(v * std::pow(10.0, (G4double)GetDecimalPlaces()));
134 XtVaSetValues (sliderbar,
135 XmNvalue, initial_value,
136 NULL);
137
138}
139
141{
142 max_value = int(v * std::pow(10.0, (G4double)GetDecimalPlaces()));
143 XtVaSetValues (sliderbar,
144 XmNmaximum, max_value,
145 NULL);
146
147}
148
150{
151 min_value = int(v * std::pow(10.0, (G4double)GetDecimalPlaces()));
152 XtVaSetValues (sliderbar,
153 XmNminimum, min_value,
154 NULL);
155
156}
157
159{
160 orientation = o;
161 XtVaSetValues (sliderbar,
162 XmNorientation, orientation,
163 NULL);
164
165}
166
168{
169 direction = d;
170 XtVaSetValues (sliderbar,
171 XmNprocessingDirection, direction,
172 NULL);
173
174}
175
177{
178
179 pView = container->GetView ();
180 ProcesspView ();
181
182 parent = container->GetPointerToWidget ();
183 XmString name_string = XmStringCreateLocalized ((char*)name);
184 sliderbar = XtVaCreateManagedWidget (name,
185 xmScaleWidgetClass,
186 *parent,
187
188 XmNtitleString, name_string,
189 XmNmaximum, max_value,
190 XmNminimum, min_value,
191 XmNvalue, initial_value,
192 XmNshowValue, show,
193 XmNdecimalPoints, decimal_places,
194 XmNorientation, orientation,
195 XmNprocessingDirection, direction,
196
197 XtNvisual, visual,
198 XtNdepth, depth,
199 XtNcolormap, cmap,
200 XtNborderColor, borcol,
201 XtNbackground, bgnd,
202
203 NULL);
204
205 XtAddCallbacks (sliderbar,
206 XmNvalueChangedCallback,
207 callback);
208
209 XtAddCallbacks (sliderbar,
210 XmNdragCallback,
211 callback);
212 XmStringFree (name_string);
213}
214
216{
217 return parent;
218}
219
221{
222 return &sliderbar;
223}
double G4double
Definition: G4Types.hh:83
bool G4bool
Definition: G4Types.hh:86
void SetName(const char *)
unsigned char GetDirection()
void AddYourselfTo(G4OpenGLXmVWidgetContainer *)
void SetOrientation(unsigned char)
void SetDirection(unsigned char)
G4OpenGLXmSliderBar(const char *=NULL, XtCallbackRec *=NULL, G4bool=False, short=0, G4double=0., G4double=0., G4double=0., unsigned char=XmHORIZONTAL, unsigned char=XmMAX_ON_RIGHT)
void SetInitialValue(G4double)
unsigned char GetOrientation()
virtual Widget * GetPointerToWidget()=0