15 using namespace iplug;
16 using namespace igraphics;
18 IGEditorDelegate::IGEditorDelegate(
int nParams)
23 IGEditorDelegate::~IGEditorDelegate()
31 mGraphics = std::unique_ptr<IGraphics>(CreateGraphics());
32 if (mLastWidth && mLastHeight && mLastScale)
33 GetUI()->Resize(mLastWidth, mLastHeight, mLastScale);
37 return mGraphics->OpenWindow(pParent);
51 mLastWidth = mGraphics->Width();
52 mLastHeight = mGraphics->Height();
53 mLastScale = mGraphics->GetDrawScale();
54 mGraphics->CloseWindow();
65 mGraphics->SetScreenScale(scale);
73 IControl* pControl = mGraphics->GetControlWithTag(ctrlTag);
88 IControl* pControl = mGraphics->GetControlWithTag(ctrlTag);
103 value = GetParam(paramIdx)->ToNormalized(value);
105 for (
int c = 0; c < mGraphics->NControls(); c++)
107 IControl* pControl = mGraphics->GetControl(c);
109 int nVals = pControl->
NVals();
111 for(
int v = 0; v < nVals; v++)
130 for (
auto c = 0; c < mGraphics->NControls(); c++)
132 IControl* pControl = mGraphics->GetControl(c);
148 int width = mGraphics ? mGraphics->Width() : mLastWidth;
149 int height = mGraphics ? mGraphics->Height() : mLastHeight;
150 float scale = mGraphics ? mGraphics->GetDrawScale() : mLastScale;
152 savedOK &= data.
Put(&width);
153 savedOK &= data.
Put(&height);
154 savedOK &= data.
Put(&scale);
165 startPos = data.
Get(&width, startPos);
166 startPos = data.
Get(&height, startPos);
167 startPos = data.
Get(&scale, startPos);
171 if (width && height && scale)
172 GetUI()->Resize(width, height, scale);
177 mLastHeight = height;
186 return SerializeEditorSize(chunk);
191 return UnserializeEditorSize(chunk, startPos);
216 return pGraphics->
OnKeyUp(x, y, key);
The lowest level base class of an IGraphics control.
bool GetWantsMidi() const
Encapsulates a MIDI message and provides helper functions.
bool OnKeyDown(const IKeyPress &key) override
KeyDown handler, in order to get keystrokes from certain hosts/plugin formats that send key press mes...
int UnserializeEditorState(const IByteChunk &chunk, int startPos) override
Unserializes editor state (such as scale).
virtual void SetValueFromDelegate(double value, int valIdx=0)
Set the control's value from the delegate This method is called from the class implementing the IEdit...
int Get(T *pDst, int startPos) const
Get arbitary typed data from the IByteChunk.
bool SerializeEditorState(IByteChunk &chunk) const override
Serializes the editor state (such as scale) into a binary chunk.
void CloseWindow() final
If you are not using IGraphics you can if you need to free resources etc when the window closes...
int GetParamIdx(int valIdx=0) const
Get the index of a parameter that the control is linked to Normaly controls are either linked to a si...
This file contains the base IControl implementation, along with some base classes for specific types ...
int Put(const T *pVal)
Copies arbitary typed data into the IByteChunk.
void SetScreenScale(float scale) final
Can be used by a host API to inform the editor of screen scale changes.
bool OnKeyDown(float x, float y, const IKeyPress &key)
Manages a block of memory, for plug-in settings store/recall.
The lowest level base class of an IGraphics context.
An editor delegate base class for a SOMETHING that uses IGraphics for it's UI.
void * OpenWindow(void *pHandle) final
If you are not using IGraphics, you can implement this method to attach to the native parent view e...
bool OnKeyUp(float x, float y, const IKeyPress &key)
The lowest level base class of an IGraphics context.
void SendControlValueFromDelegate(int ctrlTag, double normalizedValue) override
SendControlValueFromDelegate (Abbreviation: SCVFD) WARNING: should not be called on the realtime audi...
virtual void OnMidi(const IMidiMsg &msg)
Implement to receive MIDI messages sent to the control if mWantsMidi == true, see IEditorDelegate:Sen...
This pure virtual interface delegates communication in both directions between a UI editor and someth...
void SendControlMsgFromDelegate(int ctrlTag, int msgTag, int dataSize=0, const void *pData=nullptr) override
SendControlMsgFromDelegate (Abbreviation: SCMFD) WARNING: should not be called on the realtime audio ...
virtual void SendMidiMsgFromDelegate(const IMidiMsg &msg)
SendMidiMsgFromDelegate (Abbreviation: SMMFD) WARNING: should not be called on the realtime audio thr...
int UnserializeEditorSize(const IByteChunk &chunk, int startPos)
Unserializes the size and scale of the IGraphics.
virtual void CloseWindow()
If you are not using IGraphics you can if you need to free resources etc when the window closes...
virtual void SendParameterValueFromDelegate(int paramIdx, double value, bool normalized)
SendParameterValueFromDelegate (Abbreviation: SPVFD) WARNING: should not be called on the realtime au...
virtual void GetMouseLocation(float &x, float &y) const =0
Get the x, y position of the mouse cursor.
virtual void OnMsgFromDelegate(int msgTag, int dataSize, const void *pData)
Implement to receive messages sent to the control, see IEditorDelegate:SendControlMsgFromDelegate() ...
void SendParameterValueFromDelegate(int paramIdx, double value, bool normalized) override
SendParameterValueFromDelegate (Abbreviation: SPVFD) WARNING: should not be called on the realtime au...
bool SerializeEditorSize(IByteChunk &data) const
Serializes the size and scale of the IGraphics.
bool OnKeyUp(const IKeyPress &key) override
KeyDown handler, in order to get keystrokes from certain hosts/plugin formats that send key press mes...
void SendMidiMsgFromDelegate(const IMidiMsg &msg) override
SendMidiMsgFromDelegate (Abbreviation: SMMFD) WARNING: should not be called on the realtime audio thr...
Used for key press info, such as ASCII representation, virtual key (mapped to win32 codes) and modifi...