Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/intercoms/include/G4UIparameter.hh

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 /intercoms/include/G4UIparameter.hh (Version 11.3.0) and /intercoms/include/G4UIparameter.hh (Version 10.2.p1)


  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 // G4UIparameter                               << 
 27 //                                                 26 //
 28 // Class description:                          <<  27 // $Id: G4UIparameter.hh 67965 2013-03-13 09:35:29Z gcosmo $
 29 //                                                 28 //
 30 // This class represents a parameter which wil <<  29 // 
 31 // object. In case a command is defined by con <<  30 // ---------------------------------------------------------------------
 32 // it automatically creates necessary paramete <<  31 
 33 // not to create parameter object(s). In case  <<  32 #ifndef G4UIparameter_h
 34 // command directly instantiated by G4UIcomman <<  33 #define G4UIparameter_h 1
 35 // a parameter object(s)                       << 
 36                                                << 
 37 // Author: Makoto Asai, 1997                   << 
 38 // ------------------------------------------- << 
 39 #ifndef G4UIparameter_hh                       << 
 40 #define G4UIparameter_hh 1                     << 
 41                                                    34 
 42 #include "globals.hh"                              35 #include "globals.hh"
                                                   >>  36 #include "G4UItokenNum.hh"
                                                   >>  37 
                                                   >>  38 // class description:
                                                   >>  39 //
                                                   >>  40 //  This class represents a parameter which will be taken by a G4UIcommand
                                                   >>  41 // object. In case a command is defined by constructing G4UIcmdXXX class,
                                                   >>  42 // it automatically creates necessary parameter objects, thus the user needs 
                                                   >>  43 // not to create parameter object(s) by him/herself. In case the user wants 
                                                   >>  44 // to create a command directly instansiated by G4UIcommand class, he/she
                                                   >>  45 // must create parameter object(s) by him/herself.
 43                                                    46 
 44 class G4UIparameter                            <<  47 class G4UIparameter 
 45 {                                                  48 {
                                                   >>  49   public: // with description
                                                   >>  50       G4UIparameter();
                                                   >>  51       G4UIparameter(char theType);
                                                   >>  52       G4UIparameter(const char * theName, char theType, G4bool theOmittable);
                                                   >>  53       // Constructors, where "theName" is the name of the parameter which will
                                                   >>  54       // be used by the range checking, "theType" is the type of the parameter
                                                   >>  55       // (currently "b" (boolean), "i" (integer), "d" (double), and "s" (string)
                                                   >>  56       // are supported), and "theOmittable" is a boolean flag to set whether
                                                   >>  57       // the user of the command can ommit the parameter or not. If "theOmittable"
                                                   >>  58       // is true, the default value must be given.
                                                   >>  59       ~G4UIparameter();
                                                   >>  60       // Destructor. When a command is destructed, the delete operator(s) for 
                                                   >>  61       // associating parameter(s) are AUTOMATICALLY invoked. Thus the user needs 
                                                   >>  62       // NOT to invoke this by him/herself.
                                                   >>  63 
 46   public:                                          64   public:
 47     // Default constructor                     <<  65       G4int operator==(const G4UIparameter &right) const;
 48     G4UIparameter() = default;                 <<  66       G4int operator!=(const G4UIparameter &right) const;
 49                                                    67 
 50     // Constructors, where "theName" is the na <<  68       G4int CheckNewValue(const char* newValue);
 51     // be used by the range checking, "theType <<  69       void List();
 52     // (currently "b" (Boolean), "i" (integer) << 
 53     // and "s" (string) are supported).        << 
 54     // "theOmittable" is a Boolean flag to set << 
 55     // the user of the command can omit the pa << 
 56     // If "theOmittable" is true, the default  << 
 57     G4UIparameter(char theType);               << 
 58     G4UIparameter(const char* theName, char th << 
 59                                                << 
 60     // Destructor. When a command is destructe << 
 61     // associated parameter(s) are AUTOMATICAL << 
 62     ~G4UIparameter();                          << 
 63                                                << 
 64     G4int CheckNewValue(const char* newValue); << 
 65     void List();                               << 
 66                                                << 
 67     // These methods set the default value of  << 
 68     inline void SetDefaultValue(const char* th << 
 69     void SetDefaultValue(G4int theDefaultValue << 
 70     void SetDefaultValue(G4long theDefaultValu << 
 71     void SetDefaultValue(G4double theDefaultVa << 
 72                                                << 
 73     // This method can be used for a string-ty << 
 74     // used to specify a unit. This method is  << 
 75     // string-type parameter                   << 
 76     void SetDefaultUnit(const char* theDefault << 
 77                                                << 
 78     inline const G4String& GetDefaultValue() c << 
 79     inline char GetParameterType() const { ret << 
 80                                                << 
 81     // Defines the range the parameter can tak << 
 82     // The variable name appearing in the rang << 
 83     // same as the name of the parameter.      << 
 84     // All the C++ syntax of relational operat << 
 85     // range expression                        << 
 86     inline void SetParameterRange(const char*  << 
 87                                                << 
 88     inline const G4String& GetParameterRange() << 
 89                                                << 
 90     inline void SetParameterName(const char* p << 
 91     inline const G4String& GetParameterName()  << 
 92                                                << 
 93     // This method is meaningful if the type o << 
 94     // The candidates listed in the argument m << 
 95     inline void SetParameterCandidates(const c << 
 96                                                << 
 97     inline const G4String& GetParameterCandida << 
 98                                                << 
 99     inline void SetOmittable(G4bool om) { omit << 
100     inline G4bool IsOmittable() const { return << 
101                                                << 
102     inline void SetCurrentAsDefault(G4bool val << 
103     inline G4bool GetCurrentAsDefault() const  << 
104                                                << 
105     // Obsolete methods                        << 
106     //                                         << 
107     inline const G4String& GetParameterGuidanc << 
108     inline void SetGuidance(const char* theGui << 
109                                                    70 
110   private:                                         71   private:
111     G4bool TypeCheck(const char* newValue);    <<  72       G4String parameterName;
112     G4bool CandidateCheck(const char* newValue <<  73       G4String parameterGuidance;
                                                   >>  74       G4String defaultValue;
                                                   >>  75       G4String parameterRange;
                                                   >>  76       G4String parameterCandidate;
                                                   >>  77       char parameterType;
                                                   >>  78       G4bool omittable;
                                                   >>  79       G4bool currentAsDefaultFlag;
                                                   >>  80       G4int widget;
                                                   >>  81 
                                                   >>  82   public: // with description
                                                   >>  83       inline void SetDefaultValue(const char * theDefaultValue)
                                                   >>  84       { defaultValue = theDefaultValue; }
                                                   >>  85       void SetDefaultValue(G4int theDefaultValue);
                                                   >>  86       void SetDefaultValue(G4double theDefaultValue);
                                                   >>  87       // These methods set the default value of the parameter.
                                                   >>  88   public:
                                                   >>  89       inline G4String GetDefaultValue() const
                                                   >>  90       { return defaultValue; }
                                                   >>  91       inline char GetParameterType() const
                                                   >>  92       { return parameterType; }
                                                   >>  93 
                                                   >>  94   public: // with description
                                                   >>  95       inline void SetParameterRange(const char * theRange)
                                                   >>  96       { parameterRange = theRange; }
                                                   >>  97       //  Defines the range the parameter can take.
                                                   >>  98       //  The variable name appear in the range expression must be same
                                                   >>  99       // as the name of the parameter.
                                                   >> 100       //  All the C++ syntax of relational operators are allowed for the
                                                   >> 101       // range expression.
                                                   >> 102   public:
                                                   >> 103       inline G4String GetParameterRange() const
                                                   >> 104       { return parameterRange; }
                                                   >> 105     
                                                   >> 106     // parameterName
                                                   >> 107       inline void SetParameterName(const char * theName)
                                                   >> 108       { parameterName = theName; }
                                                   >> 109       inline G4String GetParameterName() const
                                                   >> 110       { return parameterName; }
                                                   >> 111     
                                                   >> 112   public: // with description
                                                   >> 113       inline void SetParameterCandidates(const char * theString)
                                                   >> 114       { parameterCandidate = theString; }
                                                   >> 115       //  This method is meaningful if the type of the parameter is string.
                                                   >> 116       // The candidates listed in the argument must be separated by space(s).
                                                   >> 117   public:
                                                   >> 118       inline G4String GetParameterCandidates() const
                                                   >> 119       { return parameterCandidate; }
                                                   >> 120     
                                                   >> 121     // omittable
                                                   >> 122       inline void SetOmittable(G4bool om)
                                                   >> 123       { omittable = om; }
                                                   >> 124       inline G4bool IsOmittable() const
                                                   >> 125       { return omittable; }
                                                   >> 126     
                                                   >> 127     // currentAsDefaultFlag
                                                   >> 128       inline void SetCurrentAsDefault(G4bool val)
                                                   >> 129       { currentAsDefaultFlag = val; }
                                                   >> 130       inline G4bool GetCurrentAsDefault() const
                                                   >> 131       { return currentAsDefaultFlag; }
                                                   >> 132     
                                                   >> 133     // out of date methods
                                                   >> 134       inline void SetWidget(G4int theWidget)
                                                   >> 135       { widget = theWidget; }
                                                   >> 136       inline const G4String GetParameterGuidance() const
                                                   >> 137       { return parameterGuidance; }
                                                   >> 138       inline void SetGuidance(const char * theGuidance)
                                                   >> 139       { parameterGuidance = theGuidance; }
113                                                   140 
114   private:                                        141   private:
115     G4String parameterName;                    << 142     // --- the following is used by CheckNewValue() -------
116     G4String parameterGuidance;                << 143     G4int TypeCheck(const char* newValue );
117     G4String defaultValue;                     << 144     G4int RangeCheck(const char* newValue );
118     G4String rangeExpression;                  << 145     G4int CandidateCheck(const char* newValue );
119     G4String parameterCandidate;               << 146     G4int IsInt(const char* str, short maxDigit);
120     char parameterType = '\0';                 << 147     G4int IsDouble(const char* str);
121     G4bool omittable = false;                  << 148     G4int ExpectExponent(const char* str);
122     G4bool currentAsDefaultFlag = false;       << 149     //  syntax nodes
                                                   >> 150     yystype Expression( void );
                                                   >> 151     yystype LogicalORExpression( void );
                                                   >> 152     yystype LogicalANDExpression( void );
                                                   >> 153     yystype EqualityExpression ( void );
                                                   >> 154     yystype RelationalExpression( void );
                                                   >> 155     yystype AdditiveExpression( void );
                                                   >> 156     yystype MultiplicativeExpression( void );
                                                   >> 157     yystype UnaryExpression( void );
                                                   >> 158     yystype PrimaryExpression( void );
                                                   >> 159     //  semantics routines
                                                   >> 160     G4int Eval2( yystype arg1, G4int op, yystype arg2 );
                                                   >> 161     G4int CompareInt( G4int arg1, G4int op, G4int arg2);
                                                   >> 162     G4int CompareDouble( double arg1, G4int op, double arg2);
                                                   >> 163     //  utility 
                                                   >> 164     tokenNum Yylex( void );     // returns next token
                                                   >> 165     G4int G4UIpGetc( void );     // read one char from rangeBuf
                                                   >> 166     G4int G4UIpUngetc( G4int c );  // put back  
                                                   >> 167     G4int Backslash( G4int c );
                                                   >> 168     G4int Follow( G4int expect, G4int ifyes, G4int ifno );
                                                   >> 169     G4String TokenToStr(G4int token);
                                                   >> 170     //void PrintToken(void);  // debug
                                                   >> 171     //  data
                                                   >> 172     G4String rangeBuf;
                                                   >> 173     G4int bp;                  // buffer pointer for rangeBuf
                                                   >> 174     tokenNum token;
                                                   >> 175     yystype yylval;
                                                   >> 176     yystype newVal;
                                                   >> 177     G4int paramERR;
                                                   >> 178    //------------ end of CheckNewValue() related member --------------
                                                   >> 179 
123 };                                                180 };
124                                                   181 
125 #endif                                            182 #endif
                                                   >> 183 
126                                                   184