Quote:
Originally Posted by TheHornet
please--->how?
|
Hi,
Sorry for late response. I was offline for a month because of civil duty. Now, i'm back.
I used serialization for text storage that entered by users on GUI.
Used this code to entry text.
Code:
class TextEntry : public IControl
{
protected:
WDL_String mStr;
public:
TextEntry(IPlugBase* pPlug, IRECT pR, IText* pText, const char* str = ""): IControl(pPlug, pR)
{
mDisablePrompt = true;
mText = *pText;
mStr.Set(str);
}
~TextEntry() {}
bool Draw(IGraphics* pGraphics)
{
return pGraphics->DrawIText(&mText, mStr.Get(), &mRECT);
}
void OnMouseDblClick(int x, int y, IMouseMod* pMod)
{
mPlug->GetGUI()->CreateTextEntry(this, &mText, &mRECT, mStr.Get());
}
char *GetTextEntry()
{
return mStr.Get();
}
void TextFromTextEntry(const char* txt)
{
mStr.Set(txt);
//TODO: update alg
SetDirty(false);
}
};
In plugname.h
Code:
TextEntry* nameEntry1;
WDL_String *SavedString1 = new WDL_String;
In plugname.cpp
Code:
IText textProps(18, &COLOR_BLACK, "Futura", IText::kStyleNormal, IText::kAlignCenter, 0, IText::kQualityAntiAliased);
...
nameEntry1 = new TextEntry(this, R1.GetPadded(0, 642, 0, 642), &textProps, "Track Name");
pGraphics->AttachControl(nameEntry1);
...
bool plugname::SerializeState(ByteChunk* pChunk)
{
IMutexLock lock(this);
SavedString1->Set((const char*)nameEntry1->GetTextEntry());
pChunk->PutStr(SavedString1->Get());
return SerializeParams(pChunk);
}
int plugname::UnserializeState(ByteChunk* pChunk, int startPos)
{
IMutexLock lock(this);
startPos = pChunk->GetStr(SavedString1, startPos);
nameEntry1->TextFromTextEntry(SavedString1->Get());
return UnserializeParams(pChunk, startPos);
}