MakeDrawAreaObject Call Back

(*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*)
 PROCEDURE MakeDrawAreaObjectCB(g:GADG);
(*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*)
 
(*CONST DEBUG = TRUE;*)
 
VAR  Tags      :ARRAY[0..9] OF TagItem;
 
BEGIN WITH g^ DO
IF DEBUG THEN DebugOn(0); DebugPause("MakeDrawAreaObjectCB entry", CAST(INTEGER, g)); END;
 
TagsUtils.AsgTag(Tags,  GAID,               id);
 
WITH hook DO
   hEntry := M2HookStub;          (* assembler entry point *)
   hSubEntry := DefaultHook;      (* often HLL entry point *)
   hData := g;                    (* owner specific *)
END;
TagsUtils.CatTag(Tags,  SPACE_RenderHook,  CAST(CARDINAL, ADR(hook)));
 
IF Transparent IN modifs THEN
   TagsUtils.CatTag(Tags,  SPACE_Transparent,  ORD(TRUE));         (* better always do this? *)
END;
(*TagsUtils.CatTag(Tags,  GARelVerify,        ORD(TRUE));*)
 
IF Boxed IN modifs THEN
   TagsUtils.CatTags2(Tags, SPACE_BevelStyle,  BVSDisplay,
                            SPACE_DomainBevel, ORD(FALSE(*TRUE*)));
END;
 
IF ReadOnly IN modifs THEN
   TagsUtils.CatTag(Tags, GAReadOnly,    ORD(TRUE));
END;
 
IF Disabled IN modifs THEN
   IF DEBUG THEN DebugOn(0); DebugPause("Disabled", CAST(INTEGER, g)); END;
   TagsUtils.CatTag(Tags, GADisabled,    ORD(TRUE));
END;
 
IF (hlptxt.str # NIL) THEN
   TagsUtils.CatTag(Tags, GAHintInfo,    CAST(CARDINAL, hlptxt.str));
END;
 
o := SpaceObject(Tags);
 
END END MakeDrawAreaObjectCB;