
#include <intuition/intuition.h>

enum WindowModes {OverWindow,ActiveWindow};
enum ButtonModes {Ignore,Shift,ShiftClick,DepthArrange,ShiftDepth,CycleScreens};

struct WheelMouseContext
{
  void (*Dispose)(struct WheelMouseContext *wm);
  BOOL (*Handle)(struct WheelMouseContext *wm,unsigned long signals);
  int ScrollX,ScrollY;
  int ButtonState;
  enum WindowModes WindowMode;
  enum ButtonModes MMBMode;
  enum ButtonModes FourthButtonMode;
  char **WindowModeNames;
  char **MMBModeNames;
  char **FourthButtonModeNames;
  int MouseSpeedX;
  int MouseSpeedY;
  BOOL ClickToFront;
  BOOL ClickToBack;
  struct Task *MainTask;
  unsigned long Signals;
  int SigBit;
  struct MsgPort *ReplyPort;
  struct Window *Window;
  struct Gadget *Gadget;
  struct ExtIntuiMessage Msg1;
  unsigned long pad11,pad12,pad13,pad14; /* struct might be extended further! */
  struct ExtIntuiMessage Msg2;
  unsigned long pad21,pad22,pad23,pad24;
};

struct WheelMouseContext *WheelMouse_Create();

