forked from cms-sw/cmssw
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
6 changed files
with
373 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
#ifndef Fireworks_Core_FWLongParameter_h | ||
#define Fireworks_Core_FWLongParameter_h | ||
// -*- C++ -*- | ||
// | ||
// Package: Core | ||
// Class : FWLongParameter | ||
// | ||
/**\class FWLongParameter FWLongParameter.h Fireworks/Core/interface/FWLongParameter.h | ||
Description: Provides access to a simple double parameter | ||
Usage: | ||
If min and max values are both identical than no restriction is placed on the allowed value | ||
*/ | ||
// | ||
// Original Author: Chris Jones | ||
// Created: Fri Mar 7 14:36:34 EST 2008 | ||
// $Id: FWLongParameter.h,v 1.1 2008/03/11 02:43:57 chrjones Exp $ | ||
// | ||
|
||
// system include files | ||
#include <sigc++/signal.h> | ||
|
||
// user include files | ||
#include "Fireworks/Core/interface/FWParameterBase.h" | ||
|
||
// forward declarations | ||
|
||
class FWLongParameter : public FWParameterBase | ||
{ | ||
|
||
public: | ||
FWLongParameter(FWParameterizable* iParent, | ||
const std::string& iName, | ||
long iDefault=0, | ||
long iMin=-1, | ||
long iMax=-1); | ||
//virtual ~FWLongParameter(); | ||
template <class T> | ||
FWLongParameter(FWParameterizable* iParent, | ||
const std::string& iName, | ||
T iCallback, | ||
long iDefault=0, | ||
long iMin=-1, | ||
long iMax=-1): | ||
FWParameterBase(iParent,iName), | ||
m_value(iDefault), | ||
m_min(iMin), | ||
m_max(iMax) | ||
{ | ||
changed_.connect(iCallback); | ||
} | ||
// ---------- const member functions --------------------- | ||
long value() const { | ||
return m_value; | ||
} | ||
long min() const { | ||
return m_min; | ||
} | ||
long max() const { | ||
return m_max; | ||
} | ||
|
||
virtual void addTo(FWConfiguration& ) const ; | ||
// ---------- static member functions -------------------- | ||
|
||
// ---------- member functions --------------------------- | ||
virtual void setFrom(const FWConfiguration&); | ||
void set(long); | ||
|
||
sigc::signal<void,long> changed_; | ||
|
||
private: | ||
FWLongParameter(const FWLongParameter&); // stop default | ||
|
||
const FWLongParameter& operator=(const FWLongParameter&); // stop default | ||
|
||
// ---------- member data -------------------------------- | ||
long m_value; | ||
long m_min; | ||
long m_max; | ||
}; | ||
|
||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
// -*- C++ -*- | ||
// | ||
// Package: Core | ||
// Class : FWLongParameter | ||
// | ||
// Implementation: | ||
// <Notes on implementation> | ||
// | ||
// Original Author: Chris Jones | ||
// Created: Fri Mar 7 14:36:41 EST 2008 | ||
// $Id: FWLongParameter.cc,v 1.1 2008/03/11 02:43:55 chrjones Exp $ | ||
// | ||
|
||
// system include files | ||
#include <assert.h> | ||
#include <sstream> | ||
|
||
// user include files | ||
#include "Fireworks/Core/interface/FWLongParameter.h" | ||
#include "Fireworks/Core/interface/FWConfiguration.h" | ||
|
||
|
||
// | ||
// constants, enums and typedefs | ||
// | ||
|
||
// | ||
// static data member definitions | ||
// | ||
|
||
// | ||
// constructors and destructor | ||
// | ||
FWLongParameter::FWLongParameter(FWParameterizable* iParent, | ||
const std::string& iName, | ||
long iDefault, | ||
long iMin, | ||
long iMax): | ||
FWParameterBase(iParent,iName), | ||
m_value(iDefault), | ||
m_min(iMin), | ||
m_max(iMax) | ||
{ | ||
} | ||
|
||
// FWLongParameter::FWLongParameter(const FWLongParameter& rhs) | ||
// { | ||
// // do actual copying here; | ||
// } | ||
/* | ||
FWLongParameter::~FWLongParameter() | ||
{ | ||
} | ||
*/ | ||
// | ||
// assignment operators | ||
// | ||
// const FWLongParameter& FWLongParameter::operator=(const FWLongParameter& rhs) | ||
// { | ||
// //An exception safe implementation is | ||
// FWLongParameter temp(rhs); | ||
// swap(rhs); | ||
// | ||
// return *this; | ||
// } | ||
|
||
// | ||
// member functions | ||
// | ||
void | ||
FWLongParameter::setFrom(const FWConfiguration& iFrom) | ||
{ | ||
assert(0!=iFrom.valueForKey(name())); | ||
std::istringstream s(iFrom.valueForKey(name())->value()); | ||
s>>m_value; | ||
changed_(m_value); | ||
} | ||
|
||
void | ||
FWLongParameter::set(long iValue) | ||
{ | ||
m_value = iValue; | ||
changed_(iValue); | ||
} | ||
|
||
// | ||
// const member functions | ||
// | ||
void | ||
FWLongParameter::addTo(FWConfiguration& iTo) const | ||
{ | ||
std::ostringstream s; | ||
s<<m_value; | ||
iTo.addKeyValue(name(),FWConfiguration(s.str())); | ||
} | ||
|
||
// | ||
// static member functions | ||
// |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,124 @@ | ||
// -*- C++ -*- | ||
// | ||
// Package: Core | ||
// Class : FWLongParameterSetter | ||
// | ||
// Implementation: | ||
// <Notes on implementation> | ||
// | ||
// Original Author: Chris Jones | ||
// Created: Mon Mar 10 11:22:32 CDT 2008 | ||
// $Id: FWLongParameterSetter.cc,v 1.1 2008/03/11 02:43:55 chrjones Exp $ | ||
// | ||
|
||
// system include files | ||
#include "TGLabel.h" | ||
#include "TGNumberEntry.h" | ||
|
||
#include <iostream> | ||
|
||
// user include files | ||
#include "Fireworks/Core/src/FWLongParameterSetter.h" | ||
#include "Fireworks/Core/interface/FWLongParameter.h" | ||
|
||
|
||
// | ||
// constants, enums and typedefs | ||
// | ||
|
||
// | ||
// static data member definitions | ||
// | ||
|
||
// | ||
// constructors and destructor | ||
// | ||
FWLongParameterSetter::FWLongParameterSetter(): | ||
m_param(0), | ||
m_widget(0) | ||
{ | ||
} | ||
|
||
// FWLongParameterSetter::FWLongParameterSetter(const FWLongParameterSetter& rhs) | ||
// { | ||
// // do actual copying here; | ||
// } | ||
|
||
FWLongParameterSetter::~FWLongParameterSetter() | ||
{ | ||
} | ||
|
||
// | ||
// assignment operators | ||
// | ||
// const FWLongParameterSetter& FWLongParameterSetter::operator=(const FWLongParameterSetter& rhs) | ||
// { | ||
// //An exception safe implementation is | ||
// FWLongParameterSetter temp(rhs); | ||
// swap(rhs); | ||
// | ||
// return *this; | ||
// } | ||
|
||
// | ||
// member functions | ||
// | ||
|
||
void | ||
FWLongParameterSetter::attach(FWParameterBase* iParam) | ||
{ | ||
m_param = dynamic_cast<FWLongParameter*>(iParam); | ||
assert(0!=m_param); | ||
} | ||
|
||
TGFrame* | ||
FWLongParameterSetter::build(TGFrame* iParent) | ||
{ | ||
TGCompositeFrame* frame = new TGHorizontalFrame(iParent); | ||
|
||
// number entry widget | ||
TGNumberFormat::ELimit limits = m_param->min()==m_param->max() ? | ||
TGNumberFormat::kNELNoLimits : | ||
( m_param->min() > m_param->max()? TGNumberFormat::kNELLimitMin : TGNumberFormat::kNELLimitMinMax); | ||
double min = 0; | ||
double max = 1; | ||
if(m_param->min()!=m_param->max()) { | ||
min=m_param->min(); | ||
max=m_param->max(); | ||
} | ||
m_widget = new TGNumberEntry | ||
(frame, m_param->value(), | ||
5, // number of digits | ||
0, // widget ID | ||
TGNumberFormat::kNESInteger, // style | ||
TGNumberFormat::kNEAAnyNumber, // input value filter | ||
limits, // specify limits | ||
min, // min value | ||
max); // max value | ||
|
||
frame->AddFrame(m_widget, new TGLayoutHints(kLHintsLeft|kLHintsCenterY, 2,8,2,2)); | ||
m_widget->Connect("ValueSet(Long_t)", "FWLongParameterSetter", this, "doUpdate(Long_t)"); | ||
|
||
// label | ||
frame->AddFrame(new TGLabel(frame,m_param->name().c_str()), | ||
new TGLayoutHints(kLHintsLeft|kLHintsCenterY) ); | ||
return frame; | ||
} | ||
|
||
void | ||
FWLongParameterSetter::doUpdate(Long_t) | ||
{ | ||
//std::cout <<"doUpdate called"<<std::endl; | ||
assert(0!=m_param); | ||
assert(0!=m_widget); | ||
//std::cout <<m_widget->GetNumberEntry()->GetNumber()<<std::endl; | ||
m_param->set(m_widget->GetNumberEntry()->GetIntNumber()); | ||
update(); | ||
} | ||
// | ||
// const member functions | ||
// | ||
|
||
// | ||
// static member functions | ||
// |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
#ifndef Fireworks_Core_FWLongParameterSetter_h | ||
#define Fireworks_Core_FWLongParameterSetter_h | ||
// -*- C++ -*- | ||
// | ||
// Package: Core | ||
// Class : FWLongParameterSetter | ||
// | ||
/**\class FWLongParameterSetter FWLongParameterSetter.h Fireworks/Core/interface/FWLongParameterSetter.h | ||
Description: <one line class summary> | ||
Usage: | ||
<usage> | ||
*/ | ||
// | ||
// Original Author: Chris Jones | ||
// Created: Mon Mar 10 11:22:26 CDT 2008 | ||
// $Id: FWLongParameterSetter.h,v 1.1 2008/03/11 02:43:55 chrjones Exp $ | ||
// | ||
|
||
// system include files | ||
#include <Rtypes.h> | ||
|
||
// user include files | ||
#include "Fireworks/Core/interface/FWParameterSetterBase.h" | ||
|
||
// forward declarations | ||
class FWLongParameter; | ||
class TGNumberEntry; | ||
|
||
class FWLongParameterSetter : public FWParameterSetterBase | ||
{ | ||
|
||
public: | ||
FWLongParameterSetter(); | ||
virtual ~FWLongParameterSetter(); | ||
|
||
// ---------- const member functions --------------------- | ||
|
||
// ---------- static member functions -------------------- | ||
|
||
// ---------- member functions --------------------------- | ||
virtual void attach(FWParameterBase*) ; | ||
virtual TGFrame* build(TGFrame* iParent) ; | ||
void doUpdate(Long_t); | ||
|
||
private: | ||
FWLongParameterSetter(const FWLongParameterSetter&); // stop default | ||
|
||
const FWLongParameterSetter& operator=(const FWLongParameterSetter&); // stop default | ||
|
||
// ---------- member data -------------------------------- | ||
FWLongParameter* m_param; | ||
TGNumberEntry* m_widget; | ||
}; | ||
|
||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters