@@ -61,7 +61,8 @@ m_Name(Info.Name), | |||||
m_ID(-1), | m_ID(-1), | ||||
m_DelMe(false), | m_DelMe(false), | ||||
m_IsTerminal(Terminal), | m_IsTerminal(Terminal), | ||||
m_Minimised(true) | |||||
m_Minimised(true), | |||||
m_Maximising(false) | |||||
{ | { | ||||
for (int n=0; n<512; n++) Numbers[n]=n; | for (int n=0; n<512; n++) Numbers[n]=n; | ||||
@@ -104,11 +105,10 @@ m_Minimised(true) | |||||
m_PluginWindow = PW; | m_PluginWindow = PW; | ||||
if (m_PluginWindow) { | if (m_PluginWindow) { | ||||
m_PluginWindow->hide(); | m_PluginWindow->hide(); | ||||
add (m_PluginWindow); | |||||
add (m_PluginWindow); | |||||
m_PluginWindow->ResizeCallback (&cb_Resize, this); | |||||
} | } | ||||
resizable(NULL); | resizable(NULL); | ||||
//Add the input/output ports | //Add the input/output ports | ||||
Setup(Info, true); | Setup(Info, true); | ||||
} | } | ||||
@@ -118,6 +118,15 @@ void Fl_DeviceGUI::Clear() | |||||
end(); | end(); | ||||
} | } | ||||
inline void Fl_DeviceGUI::cb_Resize_i (void) { | |||||
if (m_PluginWindow && !m_DelMe && !m_Minimised && !m_Maximising) Maximise(); | |||||
} | |||||
void Fl_DeviceGUI::cb_Resize (Fl_DeviceGUI *o) { | |||||
o->cb_Resize_i(); | |||||
} | |||||
int Fl_DeviceGUI::handle (int event) { | int Fl_DeviceGUI::handle (int event) { | ||||
int t=Fl_Group::handle(event); | int t=Fl_Group::handle(event); | ||||
@@ -128,13 +137,7 @@ int Fl_DeviceGUI::handle (int event) { | |||||
} | } | ||||
} | } | ||||
if (m_PluginWindow && !m_DelMe) { | |||||
if (m_PluginWindow->needs_resize() && !m_Minimised) { | |||||
Maximise(); | |||||
m_PluginWindow->needs_resize(false); | |||||
} | |||||
} | |||||
// this bit might be supposed to be in cb_resize_i, I'm not sure - Andy Preston | |||||
if (!m_Minimised && !m_PluginWindow->visible()) { | if (!m_Minimised && !m_PluginWindow->visible()) { | ||||
Minimise(); | Minimise(); | ||||
if (m_IconButton) m_IconButton->show(); | if (m_IconButton) m_IconButton->show(); | ||||
@@ -152,7 +155,8 @@ void Fl_DeviceGUI::Minimise() | |||||
void Fl_DeviceGUI::Maximise() | void Fl_DeviceGUI::Maximise() | ||||
{ | { | ||||
m_Minimised=false; | |||||
m_Minimised=false; | |||||
m_Maximising=true; | |||||
if (m_PluginWindow->h()+2>m_MiniHeight) | if (m_PluginWindow->h()+2>m_MiniHeight) | ||||
{ | { | ||||
Resize(m_PluginWindow->w()+(PortGroupWidth*2)-5,m_PluginWindow->h()+2); | Resize(m_PluginWindow->w()+(PortGroupWidth*2)-5,m_PluginWindow->h()+2); | ||||
@@ -165,6 +169,7 @@ void Fl_DeviceGUI::Maximise() | |||||
m_IconButton->hide(); | m_IconButton->hide(); | ||||
parent()->redraw(); | parent()->redraw(); | ||||
((Fl_Canvas*)parent())->ToTop(this); | ((Fl_Canvas*)parent())->ToTop(this); | ||||
m_Maximising=false; | |||||
} | } | ||||
void Fl_DeviceGUI::Resize(int width, int height) | void Fl_DeviceGUI::Resize(int width, int height) | ||||
@@ -200,22 +205,22 @@ void Fl_DeviceGUI::Setup(const DeviceGUIInfo& Info, bool FirstTime) | |||||
// delete the current ports | // delete the current ports | ||||
for(vector<Fl_PortButton*>::iterator i=m_PortVec.begin(); | for(vector<Fl_PortButton*>::iterator i=m_PortVec.begin(); | ||||
i!=m_PortVec.end(); i++) | i!=m_PortVec.end(); i++) | ||||
{ | |||||
{ | |||||
remove(*i); | remove(*i); | ||||
delete(*i); | delete(*i); | ||||
} | } | ||||
m_PortVec.clear(); | m_PortVec.clear(); | ||||
int InputX=x()+2; | int InputX=x()+2; | ||||
int OutputX=0; | int OutputX=0; | ||||
int StartY=y()+TitleBarHeight; | int StartY=y()+TitleBarHeight; | ||||
int PortDist=10; | int PortDist=10; | ||||
int PortNum=0; | int PortNum=0; | ||||
m_MiniHeight=Info.Height+TitleBarHeight; | m_MiniHeight=Info.Height+TitleBarHeight; | ||||
bool Maximised = (m_PluginWindow && m_PluginWindow->visible()); | bool Maximised = (m_PluginWindow && m_PluginWindow->visible()); | ||||
if (!Maximised) | |||||
if (!Maximised) | |||||
{ | { | ||||
h(m_MiniHeight); | h(m_MiniHeight); | ||||
OutputX=x()+PortGroupWidth+Info.Width+4; | OutputX=x()+PortGroupWidth+Info.Width+4; | ||||
@@ -224,7 +229,7 @@ void Fl_DeviceGUI::Setup(const DeviceGUIInfo& Info, bool FirstTime) | |||||
{ | { | ||||
OutputX=x()+w()-8; | OutputX=x()+w()-8; | ||||
} | } | ||||
for (int n=0; n<Info.NumInputs; n++) | for (int n=0; n<Info.NumInputs; n++) | ||||
{ | { | ||||
Fl_PortButton* NewInput = new Fl_PortButton(InputX,StartY+PortDist*n,PortSize,PortSize,""); | Fl_PortButton* NewInput = new Fl_PortButton(InputX,StartY+PortDist*n,PortSize,PortSize,""); | ||||
@@ -232,7 +237,7 @@ void Fl_DeviceGUI::Setup(const DeviceGUIInfo& Info, bool FirstTime) | |||||
NewInput->SetType(Fl_PortButton::INPUT); | NewInput->SetType(Fl_PortButton::INPUT); | ||||
NewInput->value(false); | NewInput->value(false); | ||||
NewInput->box(FL_ROUNDED_BOX); | NewInput->box(FL_ROUNDED_BOX); | ||||
Fl_Color col = (Fl_Color) WIRE_COL0; | Fl_Color col = (Fl_Color) WIRE_COL0; | ||||
switch (Info.PortTypes[n]) { | switch (Info.PortTypes[n]) { | ||||
case 0: col = (Fl_Color) WIRE_COL0; | case 0: col = (Fl_Color) WIRE_COL0; | ||||
@@ -248,15 +253,15 @@ void Fl_DeviceGUI::Setup(const DeviceGUIInfo& Info, bool FirstTime) | |||||
default: col = (Fl_Color) WIRE_COL0; | default: col = (Fl_Color) WIRE_COL0; | ||||
} | } | ||||
NewInput->selection_color(col); | NewInput->selection_color(col); | ||||
NewInput->down_box(FL_ROUNDED_BOX); | NewInput->down_box(FL_ROUNDED_BOX); | ||||
NewInput->tooltip(Info.PortTips[n].c_str()); | NewInput->tooltip(Info.PortTips[n].c_str()); | ||||
NewInput->callback((Fl_Callback*)cb_Port,(void*)&Numbers[PortNum]); | |||||
NewInput->callback((Fl_Callback*)cb_Port,(void*)&Numbers[PortNum]); | |||||
m_PortVec.push_back(NewInput); | m_PortVec.push_back(NewInput); | ||||
add(NewInput); | add(NewInput); | ||||
PortNum++; | PortNum++; | ||||
} | } | ||||
for (int n=0; n<Info.NumOutputs; n++) | for (int n=0; n<Info.NumOutputs; n++) | ||||
{ | { | ||||
Fl_PortButton* NewOutput= NewOutput = new Fl_PortButton(OutputX,StartY+PortDist*n,PortSize,PortSize,""); | Fl_PortButton* NewOutput= NewOutput = new Fl_PortButton(OutputX,StartY+PortDist*n,PortSize,PortSize,""); | ||||
@@ -280,20 +285,19 @@ void Fl_DeviceGUI::Setup(const DeviceGUIInfo& Info, bool FirstTime) | |||||
default: col = (Fl_Color) WIRE_COL0; | default: col = (Fl_Color) WIRE_COL0; | ||||
} | } | ||||
NewOutput->selection_color(col); | NewOutput->selection_color(col); | ||||
NewOutput->down_box(FL_ROUNDED_BOX); | NewOutput->down_box(FL_ROUNDED_BOX); | ||||
NewOutput->tooltip(Info.PortTips[n+Info.NumInputs].c_str()); | NewOutput->tooltip(Info.PortTips[n+Info.NumInputs].c_str()); | ||||
NewOutput->callback((Fl_Callback*)cb_Port,(void*)&Numbers[PortNum]); | |||||
NewOutput->callback((Fl_Callback*)cb_Port,(void*)&Numbers[PortNum]); | |||||
m_PortVec.push_back(NewOutput); | m_PortVec.push_back(NewOutput); | ||||
add(NewOutput); | add(NewOutput); | ||||
PortNum++; | PortNum++; | ||||
} | } | ||||
} | } | ||||
bool Fl_DeviceGUI::AddConnection(int n) | |||||
{ | |||||
if ( n < (int)m_PortVec.size() ) | |||||
bool Fl_DeviceGUI::AddConnection(int n) | |||||
{ | |||||
if ( n < (int)m_PortVec.size() ) | |||||
{ | { | ||||
m_PortVec[n]->Add(); | m_PortVec[n]->Add(); | ||||
m_PortVec[n]->value(1); | m_PortVec[n]->value(1); | ||||
@@ -302,15 +306,15 @@ bool Fl_DeviceGUI::AddConnection(int n) | |||||
} | } | ||||
return false; | return false; | ||||
} | } | ||||
void Fl_DeviceGUI::RemoveConnection(int n) | |||||
{ | |||||
m_PortVec[n]->Remove(); | |||||
if (!m_PortVec[n]->GetCount()) | |||||
{ | |||||
m_PortVec[n]->value(0); | |||||
void Fl_DeviceGUI::RemoveConnection(int n) | |||||
{ | |||||
m_PortVec[n]->Remove(); | |||||
if (!m_PortVec[n]->GetCount()) | |||||
{ | |||||
m_PortVec[n]->value(0); | |||||
redraw(); | redraw(); | ||||
} | |||||
} | |||||
} | } | ||||
inline void Fl_DeviceGUI::cb_Port_i(Fl_Button* o, void* v) | inline void Fl_DeviceGUI::cb_Port_i(Fl_Button* o, void* v) | ||||
@@ -318,11 +322,11 @@ inline void Fl_DeviceGUI::cb_Port_i(Fl_Button* o, void* v) | |||||
int Port=*(int*)(v); | int Port=*(int*)(v); | ||||
Fl_PortButton *PortButton = (Fl_PortButton *)o; | Fl_PortButton *PortButton = (Fl_PortButton *)o; | ||||
PortType Pt; | PortType Pt; | ||||
if (m_DelMe) return; | if (m_DelMe) return; | ||||
// Find out if this is an input or an output. | // Find out if this is an input or an output. | ||||
if (Port<m_Info.NumInputs) | |||||
if (Port<m_Info.NumInputs) | |||||
{ | { | ||||
Pt=INPUT; | Pt=INPUT; | ||||
} | } | ||||
@@ -331,16 +335,16 @@ inline void Fl_DeviceGUI::cb_Port_i(Fl_Button* o, void* v) | |||||
Pt=OUTPUT; | Pt=OUTPUT; | ||||
Port-=m_Info.NumInputs; | Port-=m_Info.NumInputs; | ||||
} | } | ||||
if (PortButton->GetLastButton()==1) | if (PortButton->GetLastButton()==1) | ||||
{ | { | ||||
((Fl_Canvas*)(parent()))->PortClicked(this,Pt,Port,1); | ((Fl_Canvas*)(parent()))->PortClicked(this,Pt,Port,1); | ||||
} | } | ||||
else | else | ||||
{ | { | ||||
((Fl_Canvas*)(parent()))->PortClicked(this,Pt,Port,0); | |||||
((Fl_Canvas*)(parent()))->PortClicked(this,Pt,Port,0); | |||||
} | } | ||||
} | } | ||||
void Fl_DeviceGUI::cb_Port(Fl_Button* o, void* v) | void Fl_DeviceGUI::cb_Port(Fl_Button* o, void* v) | ||||
{((Fl_DeviceGUI*)(o->parent()))->cb_Port_i(o,v);} | {((Fl_DeviceGUI*)(o->parent()))->cb_Port_i(o,v);} | ||||
@@ -52,13 +52,13 @@ public: | |||||
Fl_PortButton(int x, int y, int w, int h, char *n); | Fl_PortButton(int x, int y, int w, int h, char *n); | ||||
virtual ~Fl_PortButton() {}; | virtual ~Fl_PortButton() {}; | ||||
void SetType(Type s) { m_Type=s; } | void SetType(Type s) { m_Type=s; } | ||||
virtual int handle(int event); | |||||
virtual int handle(int event); | |||||
void Add() { m_ConnectionCount++; } | void Add() { m_ConnectionCount++; } | ||||
void Remove() { if (m_ConnectionCount>0) m_ConnectionCount--; } | void Remove() { if (m_ConnectionCount>0) m_ConnectionCount--; } | ||||
int GetCount() { return m_ConnectionCount; } | int GetCount() { return m_ConnectionCount; } | ||||
int GetLastButton() { return m_LastButton; } | int GetLastButton() { return m_LastButton; } | ||||
private: | private: | ||||
Type m_Type; | Type m_Type; | ||||
@@ -69,7 +69,7 @@ private: | |||||
struct DeviceGUIInfo | struct DeviceGUIInfo | ||||
{ | { | ||||
int XPos; | int XPos; | ||||
int YPos; | |||||
int YPos; | |||||
int Width; | int Width; | ||||
int Height; | int Height; | ||||
int NumInputs; | int NumInputs; | ||||
@@ -93,13 +93,13 @@ public: | |||||
bool Killed() { return m_DelMe; } | bool Killed() { return m_DelMe; } | ||||
int GetPortX(int n) { return m_PortVec[n]->x()+PortSize/2; } | int GetPortX(int n) { return m_PortVec[n]->x()+PortSize/2; } | ||||
int GetPortY(int n) { return m_PortVec[n]->y()+PortSize/2; } | int GetPortY(int n) { return m_PortVec[n]->y()+PortSize/2; } | ||||
// aesthetic, to keep track of number of connections to know whether to | |||||
// aesthetic, to keep track of number of connections to know whether to | |||||
// draw the port as occupied or not. | // draw the port as occupied or not. | ||||
bool AddConnection(int n); | bool AddConnection(int n); | ||||
void RemoveConnection(int n); | void RemoveConnection(int n); | ||||
bool GetPortValue(int n) { return m_PortVec[n]->value(); } | |||||
bool GetPortValue(int n) { return m_PortVec[n]->value(); } | |||||
const DeviceGUIInfo* GetInfo() { return &m_Info; } | const DeviceGUIInfo* GetInfo() { return &m_Info; } | ||||
SpiralGUIType* GetPluginWindow() { return m_PluginWindow; } | SpiralGUIType* GetPluginWindow() { return m_PluginWindow; } | ||||
string GetName() { return m_Name; } | string GetName() { return m_Name; } | ||||
@@ -108,47 +108,36 @@ public: | |||||
void Minimise(); | void Minimise(); | ||||
void Maximise(); | void Maximise(); | ||||
// automatically called from the constructor, but may be redone at any time. | // automatically called from the constructor, but may be redone at any time. | ||||
virtual void Setup(const DeviceGUIInfo& Info, bool FirstTime = false); | |||||
virtual void Setup(const DeviceGUIInfo& Info, bool FirstTime = false); | |||||
virtual void Clear(); | virtual void Clear(); | ||||
int GetPortType(int n) { return m_Info.PortTypes[n]; } | int GetPortType(int n) { return m_Info.PortTypes[n]; } | ||||
// do we belong to a plugin that is an output? | // do we belong to a plugin that is an output? | ||||
bool IsTerminal() { return m_IsTerminal; } | bool IsTerminal() { return m_IsTerminal; } | ||||
protected: | protected: | ||||
DeviceGUIInfo m_Info; | DeviceGUIInfo m_Info; | ||||
Fl_DragBar* m_DragBar; | Fl_DragBar* m_DragBar; | ||||
SpiralGUIType* m_PluginWindow; | SpiralGUIType* m_PluginWindow; | ||||
Fl_Pixmap* m_Icon; | Fl_Pixmap* m_Icon; | ||||
Fl_Button* m_IconButton; | Fl_Button* m_IconButton; | ||||
Fl_Menu_Button* m_Menu; | |||||
Fl_Menu_Button* m_Menu; | |||||
private: | private: | ||||
void Resize(int width, int height); | void Resize(int width, int height); | ||||
inline void cb_Resize_i (void); | |||||
static void cb_Resize (Fl_DeviceGUI *o); | |||||
inline void cb_Port_i(Fl_Button* o, void* v); | inline void cb_Port_i(Fl_Button* o, void* v); | ||||
static void cb_Port(Fl_Button* o, void* v); | static void cb_Port(Fl_Button* o, void* v); | ||||
inline void cb_Rename_i(Fl_Menu_Button* o, void* v); | inline void cb_Rename_i(Fl_Menu_Button* o, void* v); | ||||
static void cb_Rename(Fl_Menu_Button* o, void* v); | static void cb_Rename(Fl_Menu_Button* o, void* v); | ||||
inline void cb_Delete_i(Fl_Menu_Button* o, void* v); | inline void cb_Delete_i(Fl_Menu_Button* o, void* v); | ||||
static void cb_Delete(Fl_Menu_Button* o, void* v); | static void cb_Delete(Fl_Menu_Button* o, void* v); | ||||
vector<Fl_PortButton*> m_PortVec; | vector<Fl_PortButton*> m_PortVec; | ||||
static int Numbers[512]; | static int Numbers[512]; | ||||
string m_Name; | string m_Name; | ||||
int m_ID; | |||||
bool m_DelMe; | |||||
bool m_IsTerminal; | |||||
bool m_Minimised; | |||||
int m_MiniWidth, m_MiniHeight; | |||||
int m_ID, m_MiniWidth, m_MiniHeight; | |||||
bool m_DelMe, m_IsTerminal, m_Minimised, m_Maximising; | |||||
}; | }; | ||||
#endif | #endif |
@@ -17,10 +17,10 @@ | |||||
#include "SpiralGUI.H" | #include "SpiralGUI.H" | ||||
// Default label = 0 | |||||
// Default label = 0 | |||||
SpiralGUIType::SpiralGUIType (int x, int y, int w, int h, const char *label) : | SpiralGUIType::SpiralGUIType (int x, int y, int w, int h, const char *label) : | ||||
Fl_Group (x, y, w, h, label), | Fl_Group (x, y, w, h, label), | ||||
m_NeedsResize (false) { | |||||
m_ResizeSpiralGUI (0) { | |||||
} | } | ||||
SpiralGUIType::~SpiralGUIType () { | SpiralGUIType::~SpiralGUIType () { | ||||
@@ -20,14 +20,20 @@ | |||||
#include <FL/Fl_Group.H> | #include <FL/Fl_Group.H> | ||||
class Fl_DeviceGUI; | |||||
class SpiralGUIType; | |||||
typedef void (SpiralGUISizeCB)(Fl_DeviceGUI *o); | |||||
class SpiralGUIType : public Fl_Group { | class SpiralGUIType : public Fl_Group { | ||||
public: | public: | ||||
SpiralGUIType (int x, int y, int w, int h, const char *label = 0); | SpiralGUIType (int x, int y, int w, int h, const char *label = 0); | ||||
~SpiralGUIType (); | ~SpiralGUIType (); | ||||
bool needs_resize (void) { return m_NeedsResize; } | |||||
void needs_resize (bool nr) { m_NeedsResize = nr; } | |||||
void ResizeCallback (SpiralGUISizeCB *c, Fl_DeviceGUI *d) { m_ResizeSpiralGUI = c; m_DeviceGUI = d; } | |||||
protected: | |||||
void DoResizeCallback (void) { if (m_ResizeSpiralGUI) m_ResizeSpiralGUI(m_DeviceGUI); } | |||||
private: | private: | ||||
bool m_NeedsResize; | |||||
SpiralGUISizeCB *m_ResizeSpiralGUI; | |||||
Fl_DeviceGUI *m_DeviceGUI; | |||||
}; | }; | ||||
#endif | #endif |
@@ -1144,7 +1144,7 @@ inline void LADSPAPluginGUI::cb_Select_i(Fl_Choice* o) | |||||
m_GUICH->Wait(); | m_GUICH->Wait(); | ||||
} | } | ||||
SelectPlugin(); | SelectPlugin(); | ||||
needs_resize (true); | |||||
DoResizeCallback (); | |||||
} | } | ||||
void LADSPAPluginGUI::cb_Select(Fl_Choice* o) | void LADSPAPluginGUI::cb_Select(Fl_Choice* o) | ||||
{ // Group GUI | { // Group GUI | ||||
@@ -136,7 +136,7 @@ inline void LogicPluginGUI::cb_Inputs_i (Fl_Counter* o, void* v) { | |||||
m_GUICH->Set ("Inputs", int (o->value ())); | m_GUICH->Set ("Inputs", int (o->value ())); | ||||
m_GUICH->SetCommand (LogicPlugin::SETINPUTS); | m_GUICH->SetCommand (LogicPlugin::SETINPUTS); | ||||
m_GUICH->Wait (); | m_GUICH->Wait (); | ||||
needs_resize (true); | |||||
DoResizeCallback (); | |||||
} | } | ||||
} | } | ||||
@@ -283,8 +283,7 @@ inline void MidiPluginGUI::cb_AddControl_i(Fl_Button* o, void* v) | |||||
m_GUICH->SetData("Name",Temp); | m_GUICH->SetData("Name",Temp); | ||||
m_GUICH->SetCommand(MidiPlugin::ADDCONTROL); | m_GUICH->SetCommand(MidiPlugin::ADDCONTROL); | ||||
m_GUICH->Wait (); | m_GUICH->Wait (); | ||||
needs_resize (true); | |||||
DoResizeCallback (); | |||||
//m_Plugin->AddControl(c,List[c]); | //m_Plugin->AddControl(c,List[c]); | ||||
} | } | ||||
} | } | ||||
@@ -295,7 +294,7 @@ inline void MidiPluginGUI::cb_RemoveControl_i(Fl_Button* o, void* v) | |||||
{ | { | ||||
m_GUICH->SetCommand(MidiPlugin::DELCONTROL); | m_GUICH->SetCommand(MidiPlugin::DELCONTROL); | ||||
m_GUICH->Wait (); | m_GUICH->Wait (); | ||||
needs_resize (true); | |||||
DoResizeCallback (); | |||||
} | } | ||||
void MidiPluginGUI::cb_RemoveControl(Fl_Button* o, void* v) | void MidiPluginGUI::cb_RemoveControl(Fl_Button* o, void* v) | ||||
{ ((MidiPluginGUI*)(o->parent()))->cb_RemoveControl_i(o,v);} | { ((MidiPluginGUI*)(o->parent()))->cb_RemoveControl_i(o,v);} | ||||
@@ -53,6 +53,8 @@ SpiralGUIType(0,0,w,h,"") | |||||
m_Help->down_box(FL_NO_BOX); | m_Help->down_box(FL_NO_BOX); | ||||
m_Help->callback((Fl_Callback*)cb_Help); | m_Help->callback((Fl_Callback*)cb_Help); | ||||
add(m_Help); | add(m_Help); | ||||
resizable(NULL); | |||||
} | } | ||||
SpiralPluginGUI::~SpiralPluginGUI() | SpiralPluginGUI::~SpiralPluginGUI() | ||||
@@ -61,9 +63,10 @@ SpiralPluginGUI::~SpiralPluginGUI() | |||||
Fl::check(); | Fl::check(); | ||||
} | } | ||||
void SpiralPluginGUI::resize (int x, int y, int w, int h) { | |||||
if (w != this->w() || h != this->h()) needs_resize (true); | |||||
SpiralGUIType::resize (x, y, w, h); | |||||
void SpiralPluginGUI::resize (int newx, int newy, int neww, int newh) { | |||||
m_Help->position (x()+neww-11, y()+2); | |||||
SpiralGUIType::resize (newx, newy, neww, newh); | |||||
DoResizeCallback (); | |||||
} | } | ||||
void SpiralPluginGUI::Update() | void SpiralPluginGUI::Update() | ||||