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 9.5)


  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 // $Id: G4OpenGLXmTextField.cc,v 1.9 2009-02-04 16:48:41 lgarnier Exp $
                                                   >>  28 // GEANT4 tag $Name: not supported by cvs2svn $
 27 //                                                 29 //
 28 //Text field class. Inherits from G4OpenGLXmVW     30 //Text field class. Inherits from G4OpenGLXmVWidgetComponent
 29                                                    31 
                                                   >>  32 #ifdef G4VIS_BUILD_OPENGLXM_DRIVER
                                                   >>  33 
 30 #include "G4OpenGLXmViewer.hh"                     34 #include "G4OpenGLXmViewer.hh"
 31 #include "G4OpenGLXmVWidgetComponent.hh"           35 #include "G4OpenGLXmVWidgetComponent.hh"
 32 #include "G4OpenGLXmVWidgetContainer.hh"           36 #include "G4OpenGLXmVWidgetContainer.hh"
 33 #include "G4OpenGLXmTextField.hh"                  37 #include "G4OpenGLXmTextField.hh"
 34                                                    38 
 35 #include <X11/Intrinsic.h>                         39 #include <X11/Intrinsic.h>
 36 #include <Xm/Label.h>                              40 #include <Xm/Label.h>
 37 #include <Xm/TextF.h>                              41 #include <Xm/TextF.h>
 38                                                    42 
 39 #include "globals.hh"                              43 #include "globals.hh"
 40                                                    44 
 41 G4OpenGLXmTextField::G4OpenGLXmTextField (cons     45 G4OpenGLXmTextField::G4OpenGLXmTextField (const char* n,
 42             G4double* val)                         46             G4double* val)
 43 : text_label(0)                                << 
 44 , text_field(0)                                << 
 45 , parent(0)                                    << 
 46 {                                                  47 {
 47   name = n;                                        48   name = n;
 48   initial = new char[50];                          49   initial = new char[50];
 49   snprintf (initial, 50, "%6.2f", *val);       <<  50   sprintf (initial, "%6.2f", *val);
 50   value = (void*)val;                              51   value = (void*)val;
 51   text=false;                                      52   text=false;
 52 }                                                  53 }
 53                                                    54 
 54 G4OpenGLXmTextField::G4OpenGLXmTextField (cons     55 G4OpenGLXmTextField::G4OpenGLXmTextField (const char* n,
 55             const char* val)                       56             const char* val)
 56 : text_label(0)                                << 
 57 , text_field(0)                                << 
 58 , parent(0)                                    << 
 59 {                                                  57 {
 60   name = n;                                        58   name = n;
 61   initial = new char[50];                          59   initial = new char[50];
 62   snprintf (initial, 50, "%s", val);           <<  60   sprintf (initial, "%s", val);
 63   value = (void*)val;                              61   value = (void*)val;
 64   text=true;                                       62   text=true;
 65   //  strcpy (initial, val);                       63   //  strcpy (initial, val);
 66 }                                                  64 }
 67                                                    65 
 68 G4OpenGLXmTextField::~G4OpenGLXmTextField ()       66 G4OpenGLXmTextField::~G4OpenGLXmTextField ()
 69 {                                                  67 {
 70   delete[] initial;                                68   delete[] initial;
 71 }                                                  69 }
 72                                                    70 
 73 void G4OpenGLXmTextField::SetName (const char*     71 void G4OpenGLXmTextField::SetName (const char* n) 
 74 {                                                  72 {
 75   name = n;                                        73   name = n;
 76   XmString text_string = XmStringCreateLocaliz     74   XmString text_string = XmStringCreateLocalized ((char*)name);
 77   XtVaSetValues (text_label,                       75   XtVaSetValues (text_label,
 78      XmNlabelString, text_string,                  76      XmNlabelString, text_string,
 79      NULL);                                        77      NULL);
 80   XmStringFree (text_string);                      78   XmStringFree (text_string);
 81 }                                                  79 }
 82                                                    80 
 83 const char* G4OpenGLXmTextField::GetName ()        81 const char* G4OpenGLXmTextField::GetName () 
 84 {                                                  82 {
 85   return name;                                     83   return name;
 86 }                                                  84 }
 87                                                    85 
 88 void G4OpenGLXmTextField::SetValue (G4double v     86 void G4OpenGLXmTextField::SetValue (G4double val)
 89 {                                                  87 {
 90   snprintf (initial, 50, "%6.2f", val);        <<  88   sprintf (initial, "%6.2f", val);
 91                                                    89   
 92   XtVaSetValues (text_field,                       90   XtVaSetValues (text_field,
 93      XmNvalue, (String)initial,                    91      XmNvalue, (String)initial,
 94      NULL);                                        92      NULL);
 95                                                    93   
 96 }                                                  94 }
 97                                                    95 
 98 void G4OpenGLXmTextField::SetValue (const char     96 void G4OpenGLXmTextField::SetValue (const char* val)
 99 {                                                  97 {
100   snprintf (initial, 50, "%s", val);           <<  98   sprintf (initial, "%s", val);
101   //  strcpy (initial, val);                       99   //  strcpy (initial, val);
102                                                   100 
103   XtVaSetValues (text_field,                      101   XtVaSetValues (text_field,
104      XmNvalue, (String)initial,                   102      XmNvalue, (String)initial,
105      NULL);                                       103      NULL);
106                                                   104   
107 }                                                 105 }
108                                                   106 
109 const char* G4OpenGLXmTextField::GetValue ()      107 const char* G4OpenGLXmTextField::GetValue ()
110 {                                                 108 {
111   return initial;                                 109   return initial;
112 }                                                 110 }
113                                                   111 
114 void G4OpenGLXmTextField::AddYourselfTo (G4Ope    112 void G4OpenGLXmTextField::AddYourselfTo (G4OpenGLXmVWidgetContainer* container)
115 {                                                 113 {
116                                                   114 
117   pView = container->GetView ();                  115   pView = container->GetView ();
118   ProcesspView ();                                116   ProcesspView ();
119   parent = container->GetPointerToWidget ();      117   parent = container->GetPointerToWidget ();
120                                                   118 
121   char local_w_text[50];                          119   char local_w_text[50];
122   strcpy (local_w_text, name);                    120   strcpy (local_w_text, name);
123                                                   121 
124   char label_name[50];                            122   char label_name[50];
125   strcpy (label_name, name);                      123   strcpy (label_name, name);
126   strcat (label_name, "_label");                  124   strcat (label_name, "_label");
127                                                   125   
128   char text_field_name[50];                       126   char text_field_name[50];
129   strcpy (text_field_name, name);                 127   strcpy (text_field_name, name);
130   strcat (text_field_name, "_text_field");        128   strcat (text_field_name, "_text_field");
131                                                   129   
132   XmString local_text = XmStringCreateLocalize    130   XmString local_text = XmStringCreateLocalized (local_w_text);
133   text_label = XtVaCreateManagedWidget (label_    131   text_label = XtVaCreateManagedWidget (label_name, 
134           xmLabelWidgetClass,                     132           xmLabelWidgetClass,
135           *parent,                                133           *parent,
136                                                   134 
137           XmNlabelString, local_text,             135           XmNlabelString, local_text,
138                                                   136           
139           XtNvisual, visual,                      137           XtNvisual, visual, 
140           XtNdepth, depth,                        138           XtNdepth, depth, 
141           XtNcolormap, cmap,                      139           XtNcolormap, cmap, 
142           XtNborderColor, borcol,                 140           XtNborderColor, borcol,
143           XtNbackground, bgnd,                    141           XtNbackground, bgnd,
144                                                   142           
145           NULL);                                  143           NULL);
146   XmStringFree (local_text);                      144   XmStringFree (local_text);
147                                                   145 
148   text_field = XtVaCreateManagedWidget (text_f    146   text_field = XtVaCreateManagedWidget (text_field_name,
149           xmTextFieldWidgetClass,                 147           xmTextFieldWidgetClass,
150           *parent,                                148           *parent,
151                                                   149 
152           XmNvalue, (String)initial,              150           XmNvalue, (String)initial, 
153                                                   151           
154           XtNvisual, visual,                      152           XtNvisual, visual, 
155           XtNdepth, depth,                        153           XtNdepth, depth, 
156           XtNcolormap, cmap,                      154           XtNcolormap, cmap, 
157           XtNborderColor, borcol,                 155           XtNborderColor, borcol,
158           XtNbackground, bgnd,                    156           XtNbackground, bgnd,
159                                                   157           
160           NULL);                                  158           NULL);
161                                                   159 
162   if (!text) {                                    160   if (!text) {
163     XtAddCallback (text_field,                    161     XtAddCallback (text_field, 
164        XmNvalueChangedCallback,                   162        XmNvalueChangedCallback,
165        G4OpenGLXmViewer::get_double_value_call    163        G4OpenGLXmViewer::get_double_value_callback,
166        value);                                    164        value);
167   } else {                                        165   } else {
168     XtAddCallback (text_field,                    166     XtAddCallback (text_field, 
169        XmNvalueChangedCallback,                   167        XmNvalueChangedCallback,
170        G4OpenGLXmViewer::get_text_callback,       168        G4OpenGLXmViewer::get_text_callback,
171        value);                                    169        value);
172   }                                               170   }
173 }                                                 171 }
174                                                   172 
175 Widget* G4OpenGLXmTextField::GetPointerToParen    173 Widget* G4OpenGLXmTextField::GetPointerToParent ()
176 {                                                 174 {
177   return parent;                                  175   return parent;
178 }                                                 176 }
179                                                   177 
180 Widget* G4OpenGLXmTextField::GetPointerToWidge    178 Widget* G4OpenGLXmTextField::GetPointerToWidget () 
181 {                                                 179 {
182   return &text_field;                             180   return &text_field;
183 }                                                 181 }
                                                   >> 182 
                                                   >> 183 #endif
184                                                   184