MODULE MUIArea;

(* $StackChk- $NilChk- $RangeChk- $CaseChk- $OvflChk- $ReturnChk- $ClearVars- *)

(* This module is generated by "GenMuiO" © 1995 by Albert Weinert *)

IMPORT
  clf := Classface,
  e := Exec,
  m := Mui,
  RootClass,
  SuperClass := MUISemaphore,
  I := Intuition;

CONST
  name *= m.cArea;

TYPE
  Class     *= UNTRACED POINTER TO ClassDesc;
  ClassDesc *= RECORD( SuperClass.ClassDesc ) END;

VAR
  class * : I.IClassPtr;

   PROCEDURE ( VAR c : ClassDesc ) mAskMinMax*( VAR msg : m.pAskMinMax ):e.APTR;
     BEGIN
       msg.msg.methodID := m.mAskMinMax;
       RETURN clf.DoSuperMethodA( c.class, c.object, msg )
     END mAskMinMax;

   PROCEDURE ( VAR c : ClassDesc ) mCleanup*( VAR msg : m.pCleanup ):e.APTR;
     BEGIN
       msg.msg.methodID := m.mCleanup;
       RETURN clf.DoSuperMethodA( c.class, c.object, msg )
     END mCleanup;

   PROCEDURE ( VAR c : ClassDesc ) mContextMenuBuild*( VAR msg : m.pContextMenuBuild ):e.APTR;
     BEGIN
       msg.msg.methodID := m.mContextMenuBuild;
       RETURN clf.DoSuperMethodA( c.class, c.object, msg )
     END mContextMenuBuild;

   PROCEDURE ( VAR c : ClassDesc ) mContextMenuChoice*( VAR msg : m.pContextMenuChoice ):e.APTR;
     BEGIN
       msg.msg.methodID := m.mContextMenuChoice;
       RETURN clf.DoSuperMethodA( c.class, c.object, msg )
     END mContextMenuChoice;

   PROCEDURE ( VAR c : ClassDesc ) mDragBegin*( VAR msg : m.pDragBegin ):e.APTR;
     BEGIN
       msg.msg.methodID := m.mDragBegin;
       RETURN clf.DoSuperMethodA( c.class, c.object, msg )
     END mDragBegin;

   PROCEDURE ( VAR c : ClassDesc ) mDragDrop*( VAR msg : m.pDragDrop ):e.APTR;
     BEGIN
       msg.msg.methodID := m.mDragDrop;
       RETURN clf.DoSuperMethodA( c.class, c.object, msg )
     END mDragDrop;

   PROCEDURE ( VAR c : ClassDesc ) mDragFinish*( VAR msg : m.pDragFinish ):e.APTR;
     BEGIN
       msg.msg.methodID := m.mDragFinish;
       RETURN clf.DoSuperMethodA( c.class, c.object, msg )
     END mDragFinish;

   PROCEDURE ( VAR c : ClassDesc ) mDragQuery*( VAR msg : m.pDragQuery ):e.APTR;
     BEGIN
       msg.msg.methodID := m.mDragQuery;
       RETURN clf.DoSuperMethodA( c.class, c.object, msg )
     END mDragQuery;

   PROCEDURE ( VAR c : ClassDesc ) mDragReport*( VAR msg : m.pDragReport ):e.APTR;
     BEGIN
       msg.msg.methodID := m.mDragReport;
       RETURN clf.DoSuperMethodA( c.class, c.object, msg )
     END mDragReport;

   PROCEDURE ( VAR c : ClassDesc ) mDraw*( VAR msg : m.pDraw ):e.APTR;
     BEGIN
       msg.msg.methodID := m.mDraw;
       RETURN clf.DoSuperMethodA( c.class, c.object, msg )
     END mDraw;

   PROCEDURE ( VAR c : ClassDesc ) mHandleInput*( VAR msg : m.pHandleInput ):e.APTR;
     BEGIN
       msg.msg.methodID := m.mHandleInput;
       RETURN clf.DoSuperMethodA( c.class, c.object, msg )
     END mHandleInput;

   PROCEDURE ( VAR c : ClassDesc ) mHide*( VAR msg : m.pHide ):e.APTR;
     BEGIN
       msg.msg.methodID := m.mHide;
       RETURN clf.DoSuperMethodA( c.class, c.object, msg )
     END mHide;

   PROCEDURE ( VAR c : ClassDesc ) mSetup*( VAR msg : m.pSetup ):e.APTR;
     BEGIN
       msg.msg.methodID := m.mSetup;
       RETURN clf.DoSuperMethodA( c.class, c.object, msg )
     END mSetup;

   PROCEDURE ( VAR c : ClassDesc ) mShow*( VAR msg : m.pShow ):e.APTR;
     BEGIN
       msg.msg.methodID := m.mShow;
       RETURN clf.DoSuperMethodA( c.class, c.object, msg )
     END mShow;

  PROCEDURE Dispatch * ( cl : I.IClassPtr; obj : I.ObjectPtr; msg : I.MsgPtr ):e.APTR;
    VAR c : Class;
    BEGIN
      IF msg.methodID # I.new THEN
        c := RootClass.BoopsiToObj( cl, obj )(Class);
      END;

      CASE msg.methodID OF
        | m.mAskMinMax                : RETURN c.mAskMinMax( msg^(m.pAskMinMax) );
        | m.mCleanup                  : RETURN c.mCleanup( msg^(m.pCleanup) );
        | m.mContextMenuBuild         : RETURN c.mContextMenuBuild( msg^(m.pContextMenuBuild) );
        | m.mContextMenuChoice        : RETURN c.mContextMenuChoice( msg^(m.pContextMenuChoice) );
        | m.mDragBegin                : RETURN c.mDragBegin( msg^(m.pDragBegin) );
        | m.mDragDrop                 : RETURN c.mDragDrop( msg^(m.pDragDrop) );
        | m.mDragFinish               : RETURN c.mDragFinish( msg^(m.pDragFinish) );
        | m.mDragQuery                : RETURN c.mDragQuery( msg^(m.pDragQuery) );
        | m.mDragReport               : RETURN c.mDragReport( msg^(m.pDragReport) );
        | m.mDraw                     : RETURN c.mDraw( msg^(m.pDraw) );
        | m.mHandleInput              : RETURN c.mHandleInput( msg^(m.pHandleInput) );
        | m.mHide                     : RETURN c.mHide( msg^(m.pHide) );
        | m.mSetup                    : RETURN c.mSetup( msg^(m.pSetup) );
        | m.mShow                     : RETURN c.mShow( msg^(m.pShow) );
      ELSE
        RETURN SuperClass.Dispatch( cl, obj, msg );
      END;
    END Dispatch;

BEGIN
  class := m.GetClass( name );
  IF class = NIL THEN HALT( 205 ) END; (* Error : Object not Found *)
CLOSE
  IF class # NIL THEN m.FreeClass( class ) END;
END MUIArea.
