%
% see pstricks.tex for license and copyright
%
\define@key[psset]{pstricks}{gridwidth}[0.8pt]{\pst@getlength{#1}\psk@gridwidth}
\psset[pstricks]{gridwidth=.8pt}
\define@key[psset]{pstricks}{griddots}[0]{%
 \pst@cntg=#1\relax
 \edef\psk@griddots{\the\pst@cntg}}
\psset[pstricks]{griddots=0}
\define@key[psset]{pstricks}{gridcolor}[black]{\pst@getcolor{#1}\psgridcolor}
\psset[pstricks]{gridcolor=black}
\define@key[psset]{pstricks}{subgridwidth}[0.4pt]{\pst@getlength{#1}\psk@subgridwidth}
\psset[pstricks]{subgridwidth=0.4pt}
\define@key[psset]{pstricks}{subgridcolor}[gray]{\pst@getcolor{#1}\pssubgridcolor}
\psset[pstricks]{subgridcolor=gray}
\define@key[psset]{pstricks}{subgriddots}[0]{%
 \pst@cntg=#1\relax\edef\psk@subgriddots{\the\pst@cntg}}
\psset[pstricks]{subgriddots=0}
\define@key[psset]{pstricks}{subgriddiv}[5]{%
 \pst@cntg=#1\relax\edef\psk@subgriddiv{\the\pst@cntg}}
\psset[pstricks]{subgriddiv=5}
%
\define@key[psset]{pstricks}{gridfont}[NimbusSanL-Regu]{%
 \ifPSTlualatex
   \ifx\relax#1\relax
      \def\psk@gridfont{\fontid\font\space .findfontid }%
   \else
     \def\psk@gridfont{/#1 findfont }%   hv 2007-11-13
    \fi
 \else
    \def\psk@gridfont{/#1 findfont }%   hv 2007-11-13
 \fi
}%

\ifpst@psfonts
 \psset[pstricks]{gridfont=Helvetica}%
\else
 \psset[pstricks]{gridfont=NimbusSanL-Regu}%
\fi
%
\define@key[psset]{pstricks}{gridlabels}[10pt]{\pst@getlength{#1}\psk@gridlabels}
\psset[pstricks]{gridlabels=10pt}
\define@key[psset]{pstricks}{gridlabelcolor}[black]{\pst@getcolor{#1}\psgridlabelcolor}
\psset[pstricks]{gridlabelcolor=black}
\define@key[psset]{pstricks}{griddx}[1]{\def\psk@xgridDX{#1 }}
\define@key[psset]{pstricks}{griddy}[1]{\def\psk@ygridDY{#1 }}
\define@key[psset]{pstricks}{xgridoffset}[0]{\pst@getlength{#1}\psk@xgridoffset}
\define@key[psset]{pstricks}{ygridoffset}[0]{\pst@getlength{#1}\psk@ygridoffset}
\psset[pstricks]{xgridoffset=0,ygridoffset=0,griddx=1,griddy=1}

\def\tx@Grid{Grid }

\def\psgrid{\pst@object{psgrid}}
\def\psgrid@i{\@ifnextchar({\psgrid@ii}{\expandafter\psgrid@iv\pic@coor}}
\def\psgrid@ii(#1){\@ifnextchar({\psgrid@iii(#1)}{\psgrid@iv(0,0)(0,0)(#1)}}
\def\psgrid@iii(#1)(#2){\@ifnextchar({\psgrid@iv(#1)(#2)}{\psgrid@iv(#1)(#1)(#2)}}
\def\psgrid@iv(#1)(#2)(#3){%
 \begin@SpecialObj
   \pst@getcoor{#1}\pst@tempA%  hv 1.11
   \pst@getcoor{#2}\pst@tempB%  hv 1.11
   \pst@@getcoor{#3}%
   \ifnum\psk@subgriddiv>1\relax
     \addto@pscode{
       /xGridOffset \psk@xgridoffset\space def
       /yGridOffset \psk@ygridoffset\space def
       /GridDX \psk@xgridDX def
       /GridDY \psk@ygridDY def
       gsave
       \tx@setStrokeTransparency
       \psk@subgridwidth SLW
       \pst@usecolor\pssubgridcolor
       \pst@tempB \pst@coor \pst@tempA                 % hv 1.11
%        \pst@number\psxunit \pst@number\psyunit        % hv 1.11
       \pst@number\psxunit abs \pst@number\psyunit abs % hv 1.11
       \psk@subgriddiv\space \psk@subgriddots\space
       {} 0
       \psk@gridfont 0 scalefont setfont      % hv 1.16
       \tx@Grid
       grestore
     }%
   \fi
   \addto@pscode{
     gsave
     /xGridOffset \psk@xgridoffset def
     /yGridOffset \psk@ygridoffset def
     /GridDX \psk@xgridDX def
     /GridDY \psk@ygridDY def
     \tx@setStrokeTransparency
     \psk@gridwidth SLW
     \pst@usecolor\psgridcolor
     \pst@tempB \pst@coor \pst@tempA                 % hv 1.11
     \pst@number\psxunit abs \pst@number\psyunit abs % hv 1.11
%      \pst@number\psxunit \pst@number\psyunit        % hv 1.11
     1 \psk@griddots\space { \pst@usecolor\psgridlabelcolor }
     \psk@gridlabels
     \psk@gridfont \psk@gridlabels scalefont setfont  % hv 1.16
     \tx@Grid
     grestore
   }%
 \end@SpecialObj
 \ignorespaces}