/usr/include/root/TToggle.h is in libroot-core-dev 5.34.14-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | // @(#)root/meta:$Id$
// Author: Piotr Golonka 30/07/97
/*************************************************************************
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifndef ROOT_TToggle
#define ROOT_TToggle
//////////////////////////////////////////////////////////////////////////
// //
// TToggle //
// //
// This class defines toggling facility for both - object's method or //
// variables. //
// Assume that user provides an object with a two-state field, and //
// methods to Get/Set value of this field. This object enables to switch//
// values via this method when the only thing you know about the field //
// is the name of the method (or method itself) which sets the field. //
// This facility is required in context popup menu, when the only //
// information about how to toggle a field is a name of method which //
// sets it. //
// This Object may be also used for toggling an integer variable, //
// which may be important while building universal objects... //
// When user provides a "set-method" of name SetXXX this object tries //
// automaticaly to find a matching "get-method" by looking for a method //
// with name GetXXX or IsXXX for given object. //
// //
//////////////////////////////////////////////////////////////////////////
#ifndef ROOT_TObject
#include "TObject.h"
#endif
#ifndef ROOT_TMethodCall
#include "TMethodCall.h"
#endif
#ifndef ROOT_TMethod
#include "TMethod.h"
#endif
#ifndef ROOT_TNamed
#include "TNamed.h"
#endif
class TToggle: public TNamed {
private:
Bool_t fState; //Object's state - "a local copy"
Long_t fOnValue; //Value recognized as switched ON (Def=1)
Long_t fOffValue; //Value recognized as switched OFF(Def=0)
Long_t fValue; //Local copy of a value returned by called function
protected:
Bool_t fInitialized; //True if either SetToggledObject or SetToggledVariable called - enables Toggle() method.
TObject *fObject; //The object this Toggle belongs to
TMethodCall *fGetter; //Method to Get a value of fObject;
TMethodCall *fSetter; //Method to Set a value of fObject;
Int_t *fTglVariable; //Alternatively: pointer to an integer value to be Toggled instead of TObjectl
public:
TToggle();
virtual void SetToggledObject(TObject *obj, TMethod *anymethod);
// you just provide any method which has got an initialized pointer
// to TDataMember... The rest is done automatically...
virtual void SetToggledVariable(Int_t &var);
virtual Bool_t IsInitialized(){return fInitialized;};
virtual Bool_t GetState();
virtual void SetState(Bool_t state);
virtual void Toggle();
virtual void SetOnValue(Long_t lon){fOnValue=lon;};
virtual Long_t GetOnValue(){return fOnValue;};
virtual void SetOffValue(Long_t lof){fOffValue=lof;};
virtual Long_t GetOffValue(){return fOffValue;};
virtual Int_t GetValue(){return fValue;};
virtual void SetValue(Long_t val);
TMethodCall *GetGetter() const { return fGetter; }
TMethodCall *GetSetter() const { return fSetter; }
ClassDef(TToggle,0) //Facility for toggling datamembers on/off
};
#endif
|