//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // // $NoKeywords: $ //============================================================================= #ifndef VGUI_ACTIONSIGNAL_H #define VGUI_ACTIONSIGNAL_H #include /* TODO: maybe try something like this.. class VGUIAPI ActionSignal { }; class VGUIAPI ActionSignalSimple : public ActionSignal { public: virtual void actionPerformed(Panel* panel)=0; }; class VGUIAPI ActionSignalInt : public ActionSignal { public: virtual void actionPerformed(int value,Panel* panel)=0; }; DefaultButtonModel would implement: virtual void addActionSignal(ActionSignal* s) { if(s!=null) { _actionSignalDar.putElement(s); } } virtual void fireActionSignal() { for(int i=0;i<_actionSignalDar.getCount();i++) { ActionSignal* signal=_actionSignalDar[i]; ActionSignalSimple* ss=dynamic_cast(signal); if(ss!=null) { ss->actionPerformed(this); } ActionSignalCommand* si=dynamic_cast(signal); if(si!=null) { si->actionPerformed(_intValue,this); } } } */ #include namespace vgui { class Panel; class VGUIAPI ActionSignal { public: virtual void actionPerformed(Panel* panel)=0; }; } #endif