Initial release
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
// This file is part of VSTGUI. It is subject to the license terms
|
||||
// in the LICENSE file found in the top-level directory of this
|
||||
// distribution and at http://github.com/steinbergmedia/vstgui/LICENSE
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "../enumbitset.h"
|
||||
#include "ccontrol.h"
|
||||
|
||||
namespace VSTGUI {
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// CVuMeter Declaration
|
||||
//!
|
||||
/// @ingroup controls
|
||||
//-----------------------------------------------------------------------------
|
||||
class CVuMeter : public CControl
|
||||
{
|
||||
public:
|
||||
enum class Style : int32_t
|
||||
{
|
||||
kHorizontal,
|
||||
kVertical,
|
||||
};
|
||||
|
||||
CVuMeter (const CRect& size, CBitmap* onBitmap, CBitmap* offBitmap, int32_t nbLed,
|
||||
Style style = Style::kVertical);
|
||||
CVuMeter (const CVuMeter& vuMeter);
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
/// @name CVuMeter Methods
|
||||
//-----------------------------------------------------------------------------
|
||||
//@{
|
||||
float getDecreaseStepValue () const { return decreaseValue; }
|
||||
virtual void setDecreaseStepValue (float value) { decreaseValue = value; }
|
||||
|
||||
virtual CBitmap* getOnBitmap () const { return getBackground (); }
|
||||
virtual CBitmap* getOffBitmap () const { return offBitmap; }
|
||||
virtual void setOnBitmap (CBitmap* bitmap) { setBackground (bitmap); }
|
||||
virtual void setOffBitmap (CBitmap* bitmap);
|
||||
|
||||
int32_t getNbLed () const { return nbLed; }
|
||||
void setNbLed (int32_t nb) { nbLed = nb; invalid (); }
|
||||
|
||||
void setStyle (Style newStyle)
|
||||
{
|
||||
style = newStyle;
|
||||
invalid ();
|
||||
}
|
||||
Style getStyle () const { return style; }
|
||||
//@}
|
||||
|
||||
// overrides
|
||||
void setDirty (bool state) override;
|
||||
void draw (CDrawContext* pContext) override;
|
||||
void setViewSize (const CRect& newSize, bool invalid = true) override;
|
||||
bool sizeToFit () override;
|
||||
void onIdle () override;
|
||||
|
||||
CLASS_METHODS(CVuMeter, CControl)
|
||||
protected:
|
||||
~CVuMeter () noexcept override;
|
||||
|
||||
CBitmap* offBitmap;
|
||||
|
||||
int32_t nbLed;
|
||||
Style style;
|
||||
float decreaseValue;
|
||||
|
||||
CRect rectOn;
|
||||
CRect rectOff;
|
||||
};
|
||||
|
||||
} // VSTGUI
|
||||
Reference in New Issue
Block a user