/* Einstellung fr das PLT-Device, druckt HPGL-Dateien ber die Preferences-   */
/* Treiber in Sahnequalitt; zB. bei MultiPlot Fish 572                        */

address command

IF ~Open(reqFile, 'T:dm_req', Write) THEN DO
 'AskEnv SREQ "Gravierender Fehler:" BODY "T:dm_req nicht geffnet" NEG Abbruch'
 Exit 10
 END
ELSE DO
 CALL WriteLn reqFile, "WINDOW"
 CALL WriteLn reqFile, "CENTER 300 70"
 CALL WriteLn reqFile, 'NAME "Einstellung PLT:"'
 CALL WriteLn reqFile, 'BUTTON POSITION 20 45 80 12 GLOBAL dummy LABEL Sichern END #'
 CALL WriteLn reqFile, 'BUTTON POSITION 110 45 80 12 GLOBAL dummy LABEL Benutzen END #'
 CALL WriteLn reqFile, 'BUTTON POSITION 200 45 80 12 LABEL Abbruch CANCEL #'
 CALL WriteLn reqFile, 'CYCLE POSITION 180 20 100 12 PLACETEXT LEFT LABEL "PLT-Ausgabemedium"'
 IF GetEnv(pltinfo) = 'S' THEN DO
  Call WriteLn reqFile, 'GLOBAL pltout ENTRY Monitor Drucker #'
  previewCode = 0
 END; ELSE DO
  Call WriteLn reqFile, 'GLOBAL pltout ENTRY Drucker Monitor #'
  previewCode = 1
 END
 Call Close(reqFile)
END

'AskEnv gadfile T:dm_req'

IF rc = 0 THEN DO
 IF GetEnv(AskEnv_Button) = '1' THEN DO    /* "ENV:AskEnv_Button" enthlt Nummer des Buttons: Save */
  viewMode = EnvSave(previewCode)
  IF ~Open(pltFile, 'ENVARC:pltinfo', Write) THEN DO
   'AskEnv SREQ "Gravierender Fehler:" BODY "ENVARC:pltinfo nicht geffnet" NEG Abbruch'
  END
  IF viewMode =~ previewCode THEN CALL WriteCh(pltFile, 'P')
  ELSE CALL WriteCh(pltFile, 'S')
  CALL CLOSE(pltFile)
 END
 ELSE DO			/* Use */
  CALL EnvSave(previewCode)
 END
 'unsetenv pltout'
 EXIT
END
ELSE DO
 EXIT
END


EnvSave: PROCEDURE
arg prevMode

mode = GetEnv('pltout')
IF mode ~= prevMode THEN 'setenv pltinfo P'
ELSE 'setenv pltinfo S'

RETURN mode


/* GetEnv  	: liest Umgebungsvariable des ENV: Verzeichnisses 	*/
/* 	Eingabe : Name der Variable					*/
/* 	Ausgabe : in Variable gespeicherter Wert, bzw Leerstring 	*/

GetEnv: PROCEDURE
arg name
 IF Open(infile, 'env:'name, r) THEN DO
  text = ReadLn(infile)
  CALL Close infile
  RETURN text
 END
 RETURN ''
