! EDATTR - EDWIN Attribute changing routines

!############################################################################
!#                                                                          #
!#  This is a module from the EDWIN Graphics Package, which was developed   #
!#  in the Department of Computer Science, at Edinburgh University, from    #
!#  1978 to the present day, release 5 of EDWIN in October 1984.            #
!#                                                                          #
!#  The principal author of the EDWIN Graphics Package was J Gordon Hughes, #
!#  while working for the Edinburgh University Computer Sceince Department. #
!#  Parts of EDWIN have been produced by many different people, too many    #
!#  too mention, working for different departments of Edinburgh and Leeds   #
!#  Universities.                                                           #
!#                                                                          #
!#  This module is regarded as being in the public domain, and the authors  #
!#  and accept no responsibility regarding the uses to which the software   #
!#  will be put.                                                            #
!#                                                                          #
!############################################################################

from Edwin include iprocs
from Edwin include icodes

external routine SET COLOUR alias "EDWIN_SET_COLOUR" (integer TO)
   const integer MAX = 255
   TO = 1 unless 0<=TO<=MAX
   PDF INSERT ((att colour<<8 ! TO) <<4 ! pdf attribute, 0, 0)
   SET ATTRIBUTE (att colour, TO)
end

external routine SET LINE STYLE alias "EDWIN_SET_STYLE" (integer TO)
   const integer MAX = 255
   TO = default unless 0<=TO<=MAX
   PDF INSERT ((att line style<<8 ! TO) <<4 ! pdf attribute, 0, 0)
   SET ATTRIBUTE (att line style, TO)
end

external routine SET CHAR SIZE alias "EDWIN_SET_CHAR_SIZE" (integer TO)
   PDF INSERT (att char size<<12 ! pdf gen attrib, TO, 0)
   SET ATTRIBUTE (att char size, TO)
end

external routine SET CHAR ROT alias "EDWIN_SET_CHAR_ROT" (integer TO)
   ! Force the parameter into the range 0 to 360.
   if TO < 0 start
       TO = TO + 360 until TO >= 0
   finish else if TO>=360 start
       TO = TO - 360 until TO < 360
   finish
   PDF INSERT (att char rot<<12!pdf gen attrib, TO, 0)
   SET ATTRIBUTE (att char rot, TO)
end

external routine SET CHAR QUALITY alias "EDWIN_SET_CHAR_QUAL" (integer TO)
   const integer MAX = 2
   TO = default unless 0<=TO<=MAX
   PDF INSERT ((att char quality<<8 ! TO) <<4 ! pdf attribute, 0, 0)
   SET ATTRIBUTE (att char quality, TO)
end

external routine SET CHAR FONT alias "EDWIN_SET_CHAR_FONT" (integer TO)
   const integer MAX = 64
   TO = default unless 0<=TO<=MAX
   PDF INSERT ((att char font<<8 ! TO) <<4 ! pdf attribute, 0, 0)
   SET ATTRIBUTE (att char font, TO)
end

external routine SET CHAR SLANT alias "EDWIN_SET_CHAR_SLANT" (integer TO)
   const integer MIN = -90, MAX = 90
   PDF INSERT (att char slant << 12 ! pdf gen attrib, TO, 0)
   TO = default unless MIN<=TO<=MAX
   SET ATTRIBUTE (att char slant, TO)
end

external routine SET CHAR MIRROR alias "EDWIN_SET_CHAR_MIR" (integer TO)
   const integer MIN = 0, MAX = 3
   PDF INSERT ((att Char Mirror<<8 ! TO) <<4 ! pdf attribute, 0, 0)
   TO = default unless MIN<=TO<=MAX
   SET ATTRIBUTE (att char Mirror, TO)
end

external routine SET SPEED alias "EDWIN_SET_SPEED" (integer TO)
   ! Dummy for backwards compatibilty, only applies to HP-GL driver
end

external routine SET COLOUR MODE alias "EDWIN_SET_COL_MODE" (integer TO)
   const integer MAX = 7
   TO = default unless 0<=TO<=MAX
   PDF INSERT ((att colour mode<<8!TO) <<4 ! pdf attribute, 0, 0)
   SET ATTRIBUTE (att colour mode, TO)
end

external routine SET CHORD STEP alias "EDWIN_SET_CHORD_STEP" (integer TO)
   const integer MAX = 90
   TO = 15 unless 0<TO<=MAX
   PDF INSERT ((att chord step<<8!TO) <<4 ! pdf attribute, 0, 0)
   SET ATTRIBUTE (att chord step, TO)
end

external routine SET SHADE MODE alias "EDWIN_SET_SHADE_MODE" (integer TO)
   const integer MAX = 255
   TO = default unless 0<=TO<=MAX
   PDF INSERT ((att shade mode<<8!TO) <<4 ! pdf attribute, 0, 0)
   SET ATTRIBUTE (att shade mode, TO)
end

external routine Set Polygon Rendering alias "EDWIN_SET_POLY_RENDER" (integer TO)
   const integer MAX = 1
   TO = default unless 0<=TO<=MAX
   PDF INSERT ((att poly Render<<8!TO) <<4 ! pdf attribute, 0, 0)
   SET ATTRIBUTE (att poly Render, TO)
end

end of file