#ifndef _efpane_H_
#define _efpane_H_
//////////////////////////////////////////////////////////////////////////////
//
// effect panes
//
//////////////////////////////////////////////////////////////////////////////
void SetEffectWindow(Window* pwindow);
void AddPaneFactories(
INameSpace* pns,
Modeler* pmodeler,
IPopupContainer* ppopupContainer,
Number* ptime
);
//////////////////////////////////////////////////////////////////////////////
//
// Black background
//
//////////////////////////////////////////////////////////////////////////////
TRef<Pane> CreateBlackPane(Pane* ppane);
//////////////////////////////////////////////////////////////////////////////
//
// Hover Site
//
//////////////////////////////////////////////////////////////////////////////
class HoverSite : public IObject {
public:
virtual void Enter(float id) = 0;
virtual void Leave(float id) = 0;
virtual Number* GetID() = 0;
};
TRef<HoverSite> CreateHoverSite(float id);
TRef<Pane> CreateHoverPane(HoverSite* psite, float id, Pane* ppane);
//////////////////////////////////////////////////////////////////////////////
//
// ThumbPane
//
//////////////////////////////////////////////////////////////////////////////
class ThumbPane : public Pane {
public:
static TRef<ThumbPane> Create(Modeler* pmodeler,
bool bHorizontal, // false == vertical
TRef<Image> pImageThumb // Set this to NULL for default image
);
};
//////////////////////////////////////////////////////////////////////////////
//
// Trek Scroll Bar
//
//////////////////////////////////////////////////////////////////////////////
TRef<Pane> CreateTrekScrollPane(
unsigned height,
Modeler* pmodeler,
TRef<IIntegerEventSource>& pevent,
TRef<ScrollPane>& pscrollPane
);
/////////////////////////////////////////////////////////////////////////////
//
// Gauge Pane
//
/////////////////////////////////////////////////////////////////////////////
class GaugePane : public Pane {
private:
TRef<Surface> m_psurface;
float m_minValue;
float m_maxValue;
int m_value;
int m_valueOld;
int m_valueFlash;
Time m_timeLastChange;
Color m_colorFlash;
Color m_colorEmpty;
void Paint(Surface* psurface);
public:
GaugePane(Surface* psurface,
const Color& colorFlash = Color::Red(),
float minValue = 0.0f,
float maxValue = 1.0f,
const Color& colorEmpty = Color::Black());
void SetValue(float v, bool fFlash = true);
void Update(Time time);
};
void ParseIntVector(IObject* pobject, TVector<int>& vec);
void ParseFloatVector(IObject* pobject, TVector<int>& vec);
void ParseStringVector(IObject* pobject, TVector<ZString>& vec);
#endif