//////////////////////////////////////////////////////////////////////////////
// gadget.hpp
//
// Jeffry A Worth
// November 10, 1995
//////////////////////////////////////////////////////////////////////////////

#ifndef __GADGET_HPP__
#define __GADGET_HPP__

//////////////////////////////////////////////////////////////////////////////
// INCLUDES
#include "aframe:include/aframe.hpp"
#include "aframe:include/window.hpp"
#include "aframe:include/rect.hpp"

//////////////////////////////////////////////////////////////////////////////
// Definitions

#define AFGADGET_OWNERSTRUCT 0x80000000

//////////////////////////////////////////////////////////////////////////////
// Gadget Class

class AFGadget : public AFObject
{
public:
  AFGadget();
  ~AFGadget();

  virtual void DestroyObject();
  virtual char *ObjectType() { return "Gadget"; };

  virtual void Create(AFWindow* pwindow, AFRect *rect,ULONG id);
  virtual void Create(AFWindow* pwindow, LPGadget psgadget);
  virtual void FillGadgetStruct(LPGadget psgadget);
  virtual void AddGadget();
  virtual void RemoveGadget();

  // Events
  virtual void OnGadgetDown(LPIntuiMessage) { return; };
  virtual void OnGadgetUp(LPIntuiMessage) { return; };
  virtual void OnPaint() { return; };

  LPGadget m_pgadget;
  AFWindow *m_pwindow;
  ULONG m_flags;
};

//////////////////////////////////////////////////////////////////////////////
#endif // __GADGET_HPP__
