mirror of
https://github.com/vsariola/sointu.git
synced 2025-07-23 07:24:47 -04:00
retro commit for released version 3.0.1
This commit is contained in:
628
4klang_source/Go4kVSTi/source/common/vstcontrols.h
Normal file
628
4klang_source/Go4kVSTi/source/common/vstcontrols.h
Normal file
@ -0,0 +1,628 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// VST Plug-Ins SDK
|
||||
// Simple user interface framework for VST plugins
|
||||
// Standard control objects
|
||||
//
|
||||
// Version 1.0
|
||||
//
|
||||
// First version : Wolfgang Kundrus
|
||||
// Added new objects : Michael Schmidt 08.97
|
||||
// Added new objects : Yvan Grabit 01.98
|
||||
//
|
||||
// (c)1999 Steinberg Soft+Hardware GmbH
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#ifndef __vstcontrols__
|
||||
#define __vstcontrols__
|
||||
|
||||
#ifndef __vstgui__
|
||||
#include "vstgui.h"
|
||||
#endif
|
||||
|
||||
//------------------
|
||||
// defines
|
||||
//------------------
|
||||
#ifndef kPI
|
||||
#define kPI 3.14159265358979323846
|
||||
#endif
|
||||
|
||||
#ifndef k2PI
|
||||
#define k2PI 6.28318530717958647692
|
||||
#endif
|
||||
|
||||
#ifndef kPI_2
|
||||
#define kPI_2 1.57079632679489661923f
|
||||
#endif
|
||||
#ifndef kPI_4
|
||||
#define kPI_4 0.78539816339744830962
|
||||
#endif
|
||||
|
||||
#ifndef kE
|
||||
#define kE 2.7182818284590452354
|
||||
#endif
|
||||
|
||||
#ifndef kLN2
|
||||
#define kLN2 0.69314718055994530942
|
||||
#endif
|
||||
|
||||
|
||||
//------------------
|
||||
// CControlEnum type
|
||||
//------------------
|
||||
enum CControlEnum
|
||||
{
|
||||
kHorizontal = 1 << 0,
|
||||
kVertical = 1 << 1,
|
||||
kShadowText = 1 << 2,
|
||||
kLeft = 1 << 3,
|
||||
kRight = 1 << 4,
|
||||
kTop = 1 << 5,
|
||||
kBottom = 1 << 6,
|
||||
k3DIn = 1 << 7,
|
||||
k3DOut = 1 << 8,
|
||||
kPopupStyle = 1 << 9,
|
||||
kCheckStyle = 1 << 10
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
class CControlListener
|
||||
{
|
||||
public:
|
||||
virtual void valueChanged (CDrawContext *context, CControl *control) = 0;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
class CControl : public CView
|
||||
{
|
||||
public:
|
||||
CControl (CRect &size, CControlListener *listener, int tag);
|
||||
virtual ~CControl ();
|
||||
|
||||
virtual void draw (CDrawContext *context) = 0;
|
||||
virtual void update (CDrawContext *context);
|
||||
virtual void doIdleStuff () { if (parent) parent->doIdleStuff (); }
|
||||
|
||||
virtual void setValue (float val) { value = val; }
|
||||
virtual float getValue () { return value; };
|
||||
|
||||
virtual void setMin (float val) { vmin = val; }
|
||||
virtual float getMin () { return vmin; }
|
||||
virtual void setMax (float val) { vmax = val; }
|
||||
virtual float getMax () { return vmax; }
|
||||
|
||||
virtual void setOldValue (float val) { oldValue = val; }
|
||||
virtual float getOldValue (void) { return oldValue; }
|
||||
virtual void setDefaultValue (float val) { defaultValue = val; }
|
||||
virtual float getDefaultValue (void) { return defaultValue; }
|
||||
|
||||
inline int getTag () { return tag; }
|
||||
|
||||
virtual void setMouseEnabled (bool bEnable = true) { bMouseEnabled = bEnable; }
|
||||
virtual bool getMouseEnabled () { return bMouseEnabled; }
|
||||
|
||||
protected:
|
||||
CControlListener *listener;
|
||||
long tag;
|
||||
bool dirty;
|
||||
bool bMouseEnabled;
|
||||
float oldValue;
|
||||
float defaultValue;
|
||||
float value;
|
||||
float vmin;
|
||||
float vmax;
|
||||
float step;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
class COnOffButton : public CControl
|
||||
{
|
||||
public:
|
||||
COnOffButton (CRect &size, CControlListener *listener, int tag,
|
||||
CBitmap *handle);
|
||||
virtual ~COnOffButton ();
|
||||
|
||||
virtual void draw (CDrawContext*);
|
||||
virtual void mouse (CDrawContext *context, CPoint &where);
|
||||
|
||||
protected:
|
||||
CBitmap *handle;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
class CParamDisplay : public CControl
|
||||
{
|
||||
public:
|
||||
CParamDisplay (CRect &size, CBitmap *background = 0, int style = 0);
|
||||
virtual ~CParamDisplay ();
|
||||
|
||||
virtual void setFont (CFont fontID);
|
||||
virtual void setFontColor (CColor color);
|
||||
virtual void setBackColor (CColor color);
|
||||
virtual void setFrameColor (CColor color);
|
||||
virtual void setShadowColor (CColor color);
|
||||
|
||||
virtual void setHoriAlign (CHoriTxtAlign hAlign);
|
||||
virtual void setBackOffset (CPoint &offset);
|
||||
virtual void setStringConvert (void (*stringConvert) (float value, char *string));
|
||||
|
||||
virtual void draw (CDrawContext *context);
|
||||
|
||||
protected:
|
||||
void drawText (CDrawContext *context, char *string, CBitmap *newBack = 0);
|
||||
|
||||
CHoriTxtAlign horiTxtAlign;
|
||||
int style;
|
||||
|
||||
CFont fontID;
|
||||
CColor fontColor;
|
||||
CColor backColor;
|
||||
CColor frameColor;
|
||||
CColor shadowColor;
|
||||
CPoint offset;
|
||||
|
||||
CBitmap *background;
|
||||
|
||||
private:
|
||||
void (*stringConvert) (float value, char *string);
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
class CTextEdit : public CParamDisplay
|
||||
{
|
||||
public:
|
||||
CTextEdit (CRect &size, CControlListener *listener, int tag, const char *txt = 0,
|
||||
CBitmap *background = 0,
|
||||
int style = 0);
|
||||
~CTextEdit ();
|
||||
|
||||
virtual void setText (char *txt);
|
||||
virtual void getText (char *txt);
|
||||
|
||||
virtual void draw (CDrawContext *context);
|
||||
virtual void mouse (CDrawContext *context, CPoint &where);
|
||||
|
||||
virtual void setTextEditConvert (void (*stringConvert) (char *input, char *string));
|
||||
|
||||
virtual void takeFocus ();
|
||||
virtual void looseFocus ();
|
||||
|
||||
protected:
|
||||
void *platformControl;
|
||||
void *platformFont;
|
||||
char text[256];
|
||||
|
||||
private:
|
||||
void (*stringConvert) (char *input, char *string);
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
#define MAX_ENTRY 128
|
||||
class COptionMenu : public CParamDisplay
|
||||
{
|
||||
public:
|
||||
COptionMenu (CRect &size, CControlListener *listener, int tag,
|
||||
CBitmap *background = 0, CBitmap *bgWhenClick = 0,
|
||||
int style = 0);
|
||||
~COptionMenu ();
|
||||
|
||||
virtual bool addEntry (char *txt, int index = -1);
|
||||
virtual int getCurrent (char *txt = 0);
|
||||
virtual bool setCurrent (int index);
|
||||
virtual bool getEntry (int index, char *txt);
|
||||
virtual bool removeEntry (int index);
|
||||
virtual bool removeAllEntry ();
|
||||
virtual int getNbEntries () { return nbEntries; }
|
||||
|
||||
virtual void draw (CDrawContext *context);
|
||||
virtual void mouse (CDrawContext *context, CPoint &where);
|
||||
|
||||
virtual void takeFocus ();
|
||||
virtual void looseFocus ();
|
||||
|
||||
#if MOTIF
|
||||
void setCurrentSelected (void *itemSelected);
|
||||
#endif
|
||||
|
||||
protected:
|
||||
void *platformControl;
|
||||
char *entry[MAX_ENTRY];
|
||||
|
||||
#if MOTIF
|
||||
void *itemWidget[MAX_ENTRY];
|
||||
#endif
|
||||
|
||||
int nbEntries;
|
||||
int currentIndex;
|
||||
CBitmap *bgWhenClick;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
class CKnob : public CControl
|
||||
{
|
||||
public:
|
||||
CKnob (CRect &size, CControlListener *listener, int tag,
|
||||
CBitmap *background,
|
||||
CBitmap *handle, CPoint &offset);
|
||||
virtual ~CKnob ();
|
||||
|
||||
virtual void draw (CDrawContext*);
|
||||
virtual void mouse (CDrawContext *context, CPoint &where);
|
||||
|
||||
virtual void valueToPoint (CPoint &point);
|
||||
virtual float valueFromPoint (CPoint &point);
|
||||
|
||||
virtual void setBackground (CBitmap* background);
|
||||
virtual CBitmap *getBackground () { return background; }
|
||||
|
||||
protected:
|
||||
int inset;
|
||||
CBitmap *background;
|
||||
CBitmap *handle;
|
||||
CPoint offset;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
class CAnimKnob : public CKnob
|
||||
{
|
||||
public:
|
||||
CAnimKnob (CRect &size, CControlListener *listener, int tag,
|
||||
int subPixmaps, // number of subPixmaps
|
||||
int heightOfOneImage, // pixel
|
||||
CBitmap *handle, CPoint &offset);
|
||||
virtual ~CAnimKnob ();
|
||||
|
||||
virtual void draw (CDrawContext*);
|
||||
|
||||
protected:
|
||||
int subPixmaps; // number of subPixmaps
|
||||
int heightOfOneImage;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
class CVerticalSwitch : public CControl
|
||||
{
|
||||
public:
|
||||
CVerticalSwitch (CRect &size, CControlListener *listener, int tag,
|
||||
int subPixmaps, // number of subPixmaps
|
||||
int heightOfOneImage, // pixel
|
||||
int iMaxPositions,
|
||||
CBitmap *handle, CPoint &offset);
|
||||
virtual ~CVerticalSwitch ();
|
||||
|
||||
virtual void draw (CDrawContext*);
|
||||
virtual void mouse (CDrawContext *context, CPoint &where);
|
||||
|
||||
protected:
|
||||
CBitmap *handle;
|
||||
CPoint offset;
|
||||
int subPixmaps; // number of subPixmaps
|
||||
int heightOfOneImage;
|
||||
int iMaxPositions;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
class CHorizontalSwitch : public CControl
|
||||
{
|
||||
public:
|
||||
CHorizontalSwitch (CRect &size, CControlListener *listener, int tag,
|
||||
int subPixmaps, // number of subPixmaps
|
||||
int heightOfOneImage, // pixel
|
||||
int iMaxPositions,
|
||||
CBitmap *handle,
|
||||
CPoint &offset);
|
||||
virtual ~CHorizontalSwitch ();
|
||||
|
||||
virtual void draw (CDrawContext*);
|
||||
virtual void mouse (CDrawContext *context, CPoint &where);
|
||||
|
||||
protected:
|
||||
CBitmap *handle;
|
||||
CPoint offset;
|
||||
int subPixmaps; // number of subPixmaps
|
||||
int heightOfOneImage;
|
||||
int iMaxPositions;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
class CRockerSwitch : public CControl
|
||||
{
|
||||
public:
|
||||
CRockerSwitch (CRect &size, CControlListener *listener, int tag,
|
||||
int heightOfOneImage, // pixel
|
||||
CBitmap *handle, CPoint &offset);
|
||||
virtual ~CRockerSwitch ();
|
||||
|
||||
virtual void draw (CDrawContext*);
|
||||
virtual void mouse (CDrawContext *context, CPoint &where);
|
||||
|
||||
protected:
|
||||
CBitmap *handle;
|
||||
CPoint offset;
|
||||
int heightOfOneImage;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
class CMovieBitmap : public CControl
|
||||
{
|
||||
public:
|
||||
CMovieBitmap (CRect &size, CControlListener *listener, int tag,
|
||||
int subPixmaps, // number of subPixmaps
|
||||
int heightOfOneImage, // pixel
|
||||
CBitmap *handle, CPoint &offset);
|
||||
virtual ~CMovieBitmap ();
|
||||
|
||||
virtual void draw (CDrawContext*);
|
||||
|
||||
protected:
|
||||
CBitmap *handle;
|
||||
CPoint offset;
|
||||
int subPixmaps; // number of subPixmaps
|
||||
int heightOfOneImage;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
class CMovieButton : public CControl
|
||||
{
|
||||
public:
|
||||
CMovieButton (CRect &size, CControlListener *listener, int tag,
|
||||
int heightOfOneImage, // pixel
|
||||
CBitmap *handle, CPoint &offset);
|
||||
virtual ~CMovieButton ();
|
||||
|
||||
virtual void draw (CDrawContext*);
|
||||
virtual void mouse (CDrawContext *context, CPoint &where);
|
||||
|
||||
protected:
|
||||
CBitmap *handle;
|
||||
CPoint offset;
|
||||
int heightOfOneImage;
|
||||
float buttonState;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
// displays bitmaps within a (child-) window
|
||||
class CAutoAnimation : public CControl
|
||||
{
|
||||
public:
|
||||
CAutoAnimation (CRect &size, CControlListener *listener, int tag,
|
||||
int subPixmaps, // number of subPixmaps...
|
||||
int heightOfOneImage, // pixel
|
||||
CBitmap *handle, CPoint &offset);
|
||||
virtual ~CAutoAnimation ();
|
||||
|
||||
virtual void draw (CDrawContext*);
|
||||
virtual void mouse (CDrawContext *context, CPoint &where);
|
||||
|
||||
virtual void openWindow (void);
|
||||
virtual void closeWindow (void);
|
||||
|
||||
virtual void nextPixmap (void);
|
||||
virtual void previousPixmap (void);
|
||||
|
||||
bool isWindowOpened () { return windowOpened; }
|
||||
|
||||
protected:
|
||||
CBitmap *handle;
|
||||
CPoint offset;
|
||||
|
||||
int subPixmaps;
|
||||
int heightOfOneImage;
|
||||
|
||||
bool windowOpened;
|
||||
int totalHeightOfBitmap;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
// Vertical Slider
|
||||
class CVerticalSlider : public CControl
|
||||
{
|
||||
public:
|
||||
CVerticalSlider (CRect &size, CControlListener *listener, int tag,
|
||||
int iMinYPos, // min Y position in pixel
|
||||
int iMaxYPos, // max Y position in pixel
|
||||
CBitmap *handle, // bitmap slider
|
||||
CBitmap *background, // bitmap background
|
||||
CPoint &offset,
|
||||
int style = kBottom); // style (kBottom, kTop))
|
||||
|
||||
virtual ~CVerticalSlider ();
|
||||
|
||||
virtual void draw (CDrawContext*);
|
||||
virtual void mouse (CDrawContext *context, CPoint &where);
|
||||
|
||||
virtual void setDrawTransparentHandle (bool val) { drawTransparentEnabled = val; }
|
||||
virtual void setOffsetHandle (CPoint &val) { offsetHandle = val; }
|
||||
|
||||
protected:
|
||||
CBitmap *handle;
|
||||
CBitmap *background;
|
||||
|
||||
int widthOfSlider; // size of the handle-slider
|
||||
int heightOfSlider;
|
||||
|
||||
CPoint offset;
|
||||
CPoint offsetHandle;
|
||||
|
||||
int iMinYPos; // min Y position in pixel
|
||||
int iMaxYPos; // max Y position in pixel
|
||||
int style;
|
||||
|
||||
int actualYPos;
|
||||
bool drawTransparentEnabled;
|
||||
|
||||
int minTmp;
|
||||
int maxTmp;
|
||||
int widthControl;
|
||||
int heightControl;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
// Horizontal Slider
|
||||
class CHorizontalSlider : public CControl
|
||||
{
|
||||
public:
|
||||
CHorizontalSlider (CRect &size, CControlListener *listener, int tag,
|
||||
int iMinXPos, // min X position in pixel
|
||||
int iMaxXPos, // max X position in pixel
|
||||
CBitmap *handle, // bitmap slider
|
||||
CBitmap *background, // bitmap background
|
||||
CPoint &offset,
|
||||
int style = kRight); // style (kRight, kLeft));
|
||||
|
||||
virtual ~CHorizontalSlider ();
|
||||
|
||||
virtual void draw (CDrawContext*);
|
||||
virtual void mouse (CDrawContext *context, CPoint &where);
|
||||
|
||||
virtual void setDrawTransparentHandle (bool val) { drawTransparentEnabled = val; }
|
||||
virtual void setOffsetHandle (CPoint &val) { offsetHandle = val; }
|
||||
|
||||
protected:
|
||||
CBitmap *handle;
|
||||
CBitmap *background;
|
||||
|
||||
int widthOfSlider; // size of the handle-slider
|
||||
int heightOfSlider;
|
||||
|
||||
CPoint offset;
|
||||
CPoint offsetHandle;
|
||||
|
||||
int iMinXPos; // min X position in pixel
|
||||
int iMaxXPos; // max X position in pixel
|
||||
int style;
|
||||
|
||||
int actualXPos;
|
||||
bool drawTransparentEnabled;
|
||||
|
||||
int minTmp;
|
||||
int maxTmp;
|
||||
int widthControl;
|
||||
int heightControl;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
// special display with custom numbers (0...9)
|
||||
class CSpecialDigit : public CControl
|
||||
{
|
||||
public:
|
||||
CSpecialDigit (CRect &size, CControlListener *listener, int tag, // tag identifier
|
||||
long dwPos, // actual value
|
||||
int iNumbers, // amount of numbers (max 7)
|
||||
int *xpos, // array of all XPOS
|
||||
int *ypos, // array of all YPOS
|
||||
int width, // width of ONE number
|
||||
int height, // height of ONE number
|
||||
CBitmap *handle); // bitmap numbers
|
||||
virtual ~CSpecialDigit ();
|
||||
|
||||
virtual void draw (CDrawContext*);
|
||||
|
||||
virtual float getNormValue (void);
|
||||
|
||||
protected:
|
||||
CBitmap *handle;
|
||||
int iNumbers; // amount of numbers
|
||||
int xpos[7]; // array of all XPOS, max 7 possible
|
||||
int ypos[7]; // array of all YPOS, max 7 possible
|
||||
int width; // width of ONE number
|
||||
int height; // height of ONE number
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
class CKickButton : public CControl
|
||||
{
|
||||
public:
|
||||
CKickButton (CRect &size, CControlListener *listener, int tag,
|
||||
int heightOfOneImage, // pixel
|
||||
CBitmap *handle, CPoint &offset);
|
||||
virtual ~CKickButton ();
|
||||
|
||||
virtual void draw (CDrawContext*);
|
||||
virtual void mouse (CDrawContext *context, CPoint &where);
|
||||
|
||||
protected:
|
||||
CBitmap *handle;
|
||||
CPoint offset;
|
||||
int heightOfOneImage;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
class CSplashScreen : public CControl
|
||||
{
|
||||
public:
|
||||
CSplashScreen (CRect &size, CControlListener *listener, int tag,
|
||||
CBitmap *handle,
|
||||
CRect &toDisplay,
|
||||
CPoint &offset);
|
||||
virtual ~CSplashScreen ();
|
||||
|
||||
virtual void draw (CDrawContext*);
|
||||
virtual void mouse (CDrawContext *context, CPoint &where);
|
||||
|
||||
protected:
|
||||
CRect toDisplay;
|
||||
CRect keepSize;
|
||||
CBitmap *handle;
|
||||
CPoint offset;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
class CVuMeter : public CControl
|
||||
{
|
||||
public:
|
||||
CVuMeter (CRect& size, CBitmap *onBitmap, CBitmap *offBitmap,
|
||||
int nbLed, const int style = kVertical);
|
||||
virtual ~CVuMeter ();
|
||||
|
||||
virtual void setDecreaseStepValue (float value) { decreaseValue = value; }
|
||||
|
||||
virtual void draw (CDrawContext *context);
|
||||
|
||||
protected:
|
||||
CBitmap *onBitmap;
|
||||
CBitmap *offBitmap;
|
||||
int nbLed;
|
||||
int style;
|
||||
float decreaseValue;
|
||||
|
||||
CRect rectOn;
|
||||
CRect rectOff;
|
||||
};
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user