58 void TToggle::SetToggledVariable(Int_t &var)
68 Bool_t TToggle::GetState()
71 if (fGetter) fGetter->Execute(fObject, fValue);
72 return (fState = (fValue == fOnValue));
79 void TToggle::SetState(Bool_t state)
84 snprintf(stringon,
sizeof(stringon),
"%li",fOnValue);
85 snprintf(stringoff,
sizeof(stringoff),
"%li",fOffValue);
87 fSetter->Execute(fObject, state ? stringon:stringoff);
89 fValue= ( state ? fOnValue : fOffValue);
97 void TToggle::SetValue(Long_t val)
101 snprintf(stringval,
sizeof(stringval),
"%li",val);
102 fSetter->Execute(fObject, stringval);
103 fState=(val==fOnValue);
111 void TToggle::Toggle()
115 *fTglVariable = !(*fTglVariable);
116 fValue=(*fTglVariable);
117 fState=*fTglVariable;
119 if (fGetter && fSetter){
120 fGetter->Execute(fObject,fValue);
121 fValue=( (fValue==fOnValue) ? fOffValue:fOnValue);
122 fState=(!(fValue!=fOnValue));
124 snprintf(stringon,
sizeof(stringon),
"%li",fValue);
125 fSetter->Execute(fObject, stringon);
134 void TToggle::SetToggledObject(TObject *obj, TMethod *anymethod)
137 TDataMember *m = anymethod->FindDataMember();
141 if (anymethod->GetterMethod()) {
142 fGetter = anymethod->GetterMethod();
143 fSetter = anymethod->SetterMethod();
146 Error(
"SetToggledObject",
"cannot determine getter method for %s", anymethod->GetName());
148 fGetter = m->GetterMethod(obj->IsA());
149 fSetter = m->SetterMethod(obj->IsA());