We have just discovered that we have an issue with shapescripts that inherit the shape "Label".
In v15.x - following advice from Eve, we abstracted the shape Label from our items so that we could have a standard set of such labels. For example, we have a label at the centre of the item, another at the southern end etc. Under v 15.x, the code below operates are desired and will create a label in the "Southern" position of the item (BUT only under non-rectangular form). The shapescript is inherited by a large number of items (where we wish to have the label default to the southern edge). It works fine.
shape Label //v2.2 29-Nov-2021 //@S
{
if(hasproperty("rectanglenotation","0")) //label only in Icon Form
{
setorigin("S",0,0);
//SoF: [[PrIME Naming (Label)]].sub.shp v1.2 29-Nov-2021
if(hasproperty("Nm.Prfrrd","1"))
if(hastag("PreferredName"))
print("#TAG:PreferredName#");
else
printwrapped("?PreferredName Tag - missing!");
else if(hasproperty("Nm.Nrmtv","1"))
if(hastag("NormativeName"))
print("#TAG:NormativeName#");
else
printwrapped("?NormativeName Tag - missing!");
else if(hasproperty("Nm.Abbrvtd","1"))
if(hastag("AbbreviatedName"))
print("#TAG:AbbreviatedName#");
else
printwrapped("?AbbreviatedName Tag - missing!");
else if(hasproperty("Nm.Smntc","1"))
if(hastag("SemanticName"))
print("#TAG:SemanticName#");
else
printwrapped("?SemanticName Tag - missing!");
else if(hasproperty("Nm.Spcd","1"))
if(hastag("SpacedName"))
print("#TAG:SpacedName#");
else
printwrapped("?SpacedName Tag - missing!");
else if(hasproperty("Nm.Adhc1","1"))
if(hastag("AdHocName1"))
print("#TAG:AdHocName1#");
else
printwrapped("?AdHocName1 Tag - missing!");
else if(hasproperty("Nm.Adhc2","1"))
if(hastag("AdHocName2"))
print("#TAG:AdHocName2#");
else
printwrapped("?AdHocName2 Tag - missing!");
else if(hasproperty("Nm.Archtctr","1"))
if(hastag("ArchitectureName"))
print("#TAG:ArchitectureName#");
else
printwrapped("?ArchitectureName Tag - missing!");
else if(hasproperty("Nm.NrmAbb","1"))
if(hastag("NormativeName"))
{
printwrapped("#TAG:NormativeName#");
if(hastag("AbbreviatedName"))
print(" (#TAG:AbbreviatedName#)");
else
printwrapped(" (?AbbreviatedName Tag - missing!)");
}
else
printwrapped("?NormativeName Tag - missing!");
else if(hasproperty("Nm.AbbNrm","1"))
if(hastag("AbbreviatedName"))
{
print("#TAG:AbbreviatedName#");
if(hastag("NormativeName"))
print(" (#TAG:NormativeName#)");
else
printwrapped(" (?NormativeName Tag - missing!)");
}
else
printwrapped("?AbbreviatedName Tag - missing!");
else if(hasproperty("Nm.Als","1"))
print ("#Alias#");
else if(hasproperty("Nm.ActlNm","1"))
print ("#ActualName#");
else
print ("#Name#");
//EoF: [[PrIME Naming (Label)]].sub.shp v1.2
}
} //Shape: Label //@S
Under v16β, the label is made visible under all circumstances (i.e. both non-rectangular and - anomalously - under rectangular forms). Other parts of the shapescripts respond correctly to the IsProperty("rectanglenotation","0")) conditional, so we suspect a problem with shape inheritance.
Anyone else seeing this?
Reported,
Paolo