Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/visualization/OpenGL/src/G4OpenGLXmTextField.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /visualization/OpenGL/src/G4OpenGLXmTextField.cc (Version 11.3.0) and /visualization/OpenGL/src/G4OpenGLXmTextField.cc (Version 11.0.p4)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
 26 //                                                 26 //
 27 //                                                 27 //
 28 //Text field class. Inherits from G4OpenGLXmVW     28 //Text field class. Inherits from G4OpenGLXmVWidgetComponent
 29                                                    29 
 30 #include "G4OpenGLXmViewer.hh"                     30 #include "G4OpenGLXmViewer.hh"
 31 #include "G4OpenGLXmVWidgetComponent.hh"           31 #include "G4OpenGLXmVWidgetComponent.hh"
 32 #include "G4OpenGLXmVWidgetContainer.hh"           32 #include "G4OpenGLXmVWidgetContainer.hh"
 33 #include "G4OpenGLXmTextField.hh"                  33 #include "G4OpenGLXmTextField.hh"
 34                                                    34 
 35 #include <X11/Intrinsic.h>                         35 #include <X11/Intrinsic.h>
 36 #include <Xm/Label.h>                              36 #include <Xm/Label.h>
 37 #include <Xm/TextF.h>                              37 #include <Xm/TextF.h>
 38                                                    38 
 39 #include "globals.hh"                              39 #include "globals.hh"
 40                                                    40 
 41 G4OpenGLXmTextField::G4OpenGLXmTextField (cons     41 G4OpenGLXmTextField::G4OpenGLXmTextField (const char* n,
 42             G4double* val)                         42             G4double* val)
 43 : text_label(0)                                    43 : text_label(0)
 44 , text_field(0)                                    44 , text_field(0)
 45 , parent(0)                                        45 , parent(0)
 46 {                                                  46 {
 47   name = n;                                        47   name = n;
 48   initial = new char[50];                          48   initial = new char[50];
 49   snprintf (initial, 50, "%6.2f", *val);       <<  49   sprintf (initial, "%6.2f", *val);
 50   value = (void*)val;                              50   value = (void*)val;
 51   text=false;                                      51   text=false;
 52 }                                                  52 }
 53                                                    53 
 54 G4OpenGLXmTextField::G4OpenGLXmTextField (cons     54 G4OpenGLXmTextField::G4OpenGLXmTextField (const char* n,
 55             const char* val)                       55             const char* val)
 56 : text_label(0)                                    56 : text_label(0)
 57 , text_field(0)                                    57 , text_field(0)
 58 , parent(0)                                        58 , parent(0)
 59 {                                                  59 {
 60   name = n;                                        60   name = n;
 61   initial = new char[50];                          61   initial = new char[50];
 62   snprintf (initial, 50, "%s", val);           <<  62   sprintf (initial, "%s", val);
 63   value = (void*)val;                              63   value = (void*)val;
 64   text=true;                                       64   text=true;
 65   //  strcpy (initial, val);                       65   //  strcpy (initial, val);
 66 }                                                  66 }
 67                                                    67 
 68 G4OpenGLXmTextField::~G4OpenGLXmTextField ()       68 G4OpenGLXmTextField::~G4OpenGLXmTextField ()
 69 {                                                  69 {
 70   delete[] initial;                                70   delete[] initial;
 71 }                                                  71 }
 72                                                    72 
 73 void G4OpenGLXmTextField::SetName (const char*     73 void G4OpenGLXmTextField::SetName (const char* n) 
 74 {                                                  74 {
 75   name = n;                                        75   name = n;
 76   XmString text_string = XmStringCreateLocaliz     76   XmString text_string = XmStringCreateLocalized ((char*)name);
 77   XtVaSetValues (text_label,                       77   XtVaSetValues (text_label,
 78      XmNlabelString, text_string,                  78      XmNlabelString, text_string,
 79      NULL);                                        79      NULL);
 80   XmStringFree (text_string);                      80   XmStringFree (text_string);
 81 }                                                  81 }
 82                                                    82 
 83 const char* G4OpenGLXmTextField::GetName ()        83 const char* G4OpenGLXmTextField::GetName () 
 84 {                                                  84 {
 85   return name;                                     85   return name;
 86 }                                                  86 }
 87                                                    87 
 88 void G4OpenGLXmTextField::SetValue (G4double v     88 void G4OpenGLXmTextField::SetValue (G4double val)
 89 {                                                  89 {
 90   snprintf (initial, 50, "%6.2f", val);        <<  90   sprintf (initial, "%6.2f", val);
 91                                                    91   
 92   XtVaSetValues (text_field,                       92   XtVaSetValues (text_field,
 93      XmNvalue, (String)initial,                    93      XmNvalue, (String)initial,
 94      NULL);                                        94      NULL);
 95                                                    95   
 96 }                                                  96 }
 97                                                    97 
 98 void G4OpenGLXmTextField::SetValue (const char     98 void G4OpenGLXmTextField::SetValue (const char* val)
 99 {                                                  99 {
100   snprintf (initial, 50, "%s", val);           << 100   sprintf (initial, "%s", val);
101   //  strcpy (initial, val);                      101   //  strcpy (initial, val);
102                                                   102 
103   XtVaSetValues (text_field,                      103   XtVaSetValues (text_field,
104      XmNvalue, (String)initial,                   104      XmNvalue, (String)initial,
105      NULL);                                       105      NULL);
106                                                   106   
107 }                                                 107 }
108                                                   108 
109 const char* G4OpenGLXmTextField::GetValue ()      109 const char* G4OpenGLXmTextField::GetValue ()
110 {                                                 110 {
111   return initial;                                 111   return initial;
112 }                                                 112 }
113                                                   113 
114 void G4OpenGLXmTextField::AddYourselfTo (G4Ope    114 void G4OpenGLXmTextField::AddYourselfTo (G4OpenGLXmVWidgetContainer* container)
115 {                                                 115 {
116                                                   116 
117   pView = container->GetView ();                  117   pView = container->GetView ();
118   ProcesspView ();                                118   ProcesspView ();
119   parent = container->GetPointerToWidget ();      119   parent = container->GetPointerToWidget ();
120                                                   120 
121   char local_w_text[50];                          121   char local_w_text[50];
122   strcpy (local_w_text, name);                    122   strcpy (local_w_text, name);
123                                                   123 
124   char label_name[50];                            124   char label_name[50];
125   strcpy (label_name, name);                      125   strcpy (label_name, name);
126   strcat (label_name, "_label");                  126   strcat (label_name, "_label");
127                                                   127   
128   char text_field_name[50];                       128   char text_field_name[50];
129   strcpy (text_field_name, name);                 129   strcpy (text_field_name, name);
130   strcat (text_field_name, "_text_field");        130   strcat (text_field_name, "_text_field");
131                                                   131   
132   XmString local_text = XmStringCreateLocalize    132   XmString local_text = XmStringCreateLocalized (local_w_text);
133   text_label = XtVaCreateManagedWidget (label_    133   text_label = XtVaCreateManagedWidget (label_name, 
134           xmLabelWidgetClass,                     134           xmLabelWidgetClass,
135           *parent,                                135           *parent,
136                                                   136 
137           XmNlabelString, local_text,             137           XmNlabelString, local_text,
138                                                   138           
139           XtNvisual, visual,                      139           XtNvisual, visual, 
140           XtNdepth, depth,                        140           XtNdepth, depth, 
141           XtNcolormap, cmap,                      141           XtNcolormap, cmap, 
142           XtNborderColor, borcol,                 142           XtNborderColor, borcol,
143           XtNbackground, bgnd,                    143           XtNbackground, bgnd,
144                                                   144           
145           NULL);                                  145           NULL);
146   XmStringFree (local_text);                      146   XmStringFree (local_text);
147                                                   147 
148   text_field = XtVaCreateManagedWidget (text_f    148   text_field = XtVaCreateManagedWidget (text_field_name,
149           xmTextFieldWidgetClass,                 149           xmTextFieldWidgetClass,
150           *parent,                                150           *parent,
151                                                   151 
152           XmNvalue, (String)initial,              152           XmNvalue, (String)initial, 
153                                                   153           
154           XtNvisual, visual,                      154           XtNvisual, visual, 
155           XtNdepth, depth,                        155           XtNdepth, depth, 
156           XtNcolormap, cmap,                      156           XtNcolormap, cmap, 
157           XtNborderColor, borcol,                 157           XtNborderColor, borcol,
158           XtNbackground, bgnd,                    158           XtNbackground, bgnd,
159                                                   159           
160           NULL);                                  160           NULL);
161                                                   161 
162   if (!text) {                                    162   if (!text) {
163     XtAddCallback (text_field,                    163     XtAddCallback (text_field, 
164        XmNvalueChangedCallback,                   164        XmNvalueChangedCallback,
165        G4OpenGLXmViewer::get_double_value_call    165        G4OpenGLXmViewer::get_double_value_callback,
166        value);                                    166        value);
167   } else {                                        167   } else {
168     XtAddCallback (text_field,                    168     XtAddCallback (text_field, 
169        XmNvalueChangedCallback,                   169        XmNvalueChangedCallback,
170        G4OpenGLXmViewer::get_text_callback,       170        G4OpenGLXmViewer::get_text_callback,
171        value);                                    171        value);
172   }                                               172   }
173 }                                                 173 }
174                                                   174 
175 Widget* G4OpenGLXmTextField::GetPointerToParen    175 Widget* G4OpenGLXmTextField::GetPointerToParent ()
176 {                                                 176 {
177   return parent;                                  177   return parent;
178 }                                                 178 }
179                                                   179 
180 Widget* G4OpenGLXmTextField::GetPointerToWidge    180 Widget* G4OpenGLXmTextField::GetPointerToWidget () 
181 {                                                 181 {
182   return &text_field;                             182   return &text_field;
183 }                                                 183 }
184                                                   184