{*******************************************************************************}
{ }
{ MEMORY MODULE }
{ by Patrick B. McConnell }
{ v 1.0 }
{ 2/17/96 }
{ }
{*******************************************************************************}
{ revised 11/19/96 V.1.02 }
{ fixed bug crashing program if exit is selected instead of }
{ selecting layer when prompted }
{*******************************************************************************}
{ revised 6/29/98 V.1.10 }
{ added feature to set layer memory to current layer if user decides to }
{ leave old layer memory layer off }
{*******************************************************************************}
MODULE memory; { memory.dcs }
#include 'd:/datacad/dcal/inc/_input.inc'
PROCEDURE fgetlyr_x (lyr : IN OUT layer; lyr_name : IN OUT str8; caller : str80); PUBLIC;
VAR
result,
scroll,
key : integer;
done : boolean;
call_str : str80;
BEGIN
scroll := 0;
done := false;
REPEAT
call_str := 'Select a layer for ';
strcat (call_str, caller);
wrtmsg (call_str);
result := fgetlyr (scroll, key, lyr);
IF result = res_escape THEN
IF key = S0 THEN
done :=true;
END;
ELSIF result = res_normal THEN
done:= true;
END;
UNTIL done;
getlyrname (lyr, lyr_name);
END fgetlyr_x;
PROCEDURE layermem (lyr_ent : IN OUT layer; lyr_name : IN OUT str8; caller : str80); PUBLIC;
VAR
lyr_str : STR80;
key : integer;
lyr : layer;
done : boolean;
BEGIN
wrtmsg (' ');
lyr_str := '';
strcat (lyr_str, caller);
strcat (lyr_str, 'layer \'');
! lyr_str := 'Layer \'';
IF lyr_find (lyr_name, lyr) = true THEN
IF lyr_ison (lyr) = true THEN
lyr_ent := lyr;
return;
ELSE
strcat (lyr_str, lyr_name);
strcat (lyr_str, '\' is off. Do you want to turn it on?');
wrtmsg (lyr_str);
IF answer (0) THEN
lyr_seton (lyr_ent, true, false);
ELSE
lyr_ent := getlyrcurr;
getlyrname (lyr_ent, lyr_name);
END;
END;
ELSE
done := false;
REPEAT
lblsinit;
lblset (5, 'Create');
lblmsg (5, 'Create a new layer');
lblset (6, 'Select');
lblmsg (6, 'Select from existing layers');
lblset (8, 'Current');
lblmsg (8, 'Set Layer Memory to Current Layer');
lblset (20, 'Exit');
lblson;
strcat (lyr_str, lyr_name);
strcat (lyr_str , '\' does not exist. Create it or select another layer?');
wrtmsg (lyr_str);
getesc (key);
IF key = F5 THEN
IF lyr_create (lyr_name, lyr) = true THEN
lyr_ent := lyr;
getlyrname (lyr_ent, lyr_name);
done := true;
END;
ELSIF key = F6 THEN
fgetlyr_x (lyr_ent, lyr_name, caller);
getlyrname (lyr_ent, lyr_name);
done := true;
ELSIF key = F8 THEN
lyr_ent := getlyrcurr;
getlyrname (lyr_ent, lyr_name);
done := true;
ELSIF key = S0 THEN
lyr_ent := getlyrcurr;
getlyrname (lyr_ent, lyr_name);
done := true;
END;
UNTIL done;
! getlyrname (lyr_ent, lyr_name);
END;
END layermem;
END memory. |