Index: trunk/SophyaPI/PI/picolist.h
===================================================================
--- trunk/SophyaPI/PI/picolist.h	(revision 2391)
+++ trunk/SophyaPI/PI/picolist.h	(revision 2394)
@@ -17,6 +17,9 @@
 		 PI_Violet = 16, PI_VioletRed = 17, 
 		 PI_BlueViolet = 18, PI_DarkViolet = 19, 
-		 PI_HighlightBlue = 20,
-                 PI_ColorAllBits0 = 21, PI_ColorAllBits1 = 22 };
+		 PI_SkyBlue = 20, PI_RoyalBlue = 21,
+		 PI_ForestGreen = 22, 
+		 PI_OrangeRed = 23, PI_Brown = 24,
+		 PI_HighlightBlue = 25,
+                 PI_ColorAllBits0 = 26, PI_ColorAllBits1 = 25 };
 
 #endif
Index: trunk/SophyaPI/PI/pidrawer.cc
===================================================================
--- trunk/SophyaPI/PI/pidrawer.cc	(revision 2391)
+++ trunk/SophyaPI/PI/pidrawer.cc	(revision 2394)
@@ -391,7 +391,31 @@
 {
   info += " ------- PIDrawer options help info ---------- \n";
-  info += ">> Colors: defcol black white grey red blue green yellow \n";
-  info += "           magenta cyan turquoise navyblue orange siennared purple \n";
-  info += "           limegreen gold violet violetred blueviolet darkviolet \n";
+  info += ">>> color=ColorName - fgcolor=ColorName - bgcolor=ColorName \n";
+  info += "   ColorName: black white grey red blue green yellow \n";
+  info += "              magenta cyan turquoise navyblue orange \n";
+  info += "              siennared purple  limegreen gold violet \n";
+  info += "              violetred blueviolet darkviolet skyblue \n";
+  info += "              royalblue forestgreen orangered brown \n";
+  info += ">>> line=DashType,LineWidth  \n";
+  info += "   DashType: solid, dash, dotted, dashdotted   Width: 1,2,...\n";
+  info += ">>> font=FontName,FontAtt,FontSize  \n";
+  info += "   FontName: courier, helvetica, times, symbol   \n";
+  info += "   FontAtt: roman, bold, italic, bolditalic  \n";
+  info += "   FontSize: 6,8,10,12... (pts) - integer \n";
+  info += ">>> marker=MarkerType,MarkerSize (MarkerSize: integer 3,5,7... \n";
+  info += "   MarkerType: dot, plus, cross, circle, fcircle, box, fbox \n";
+  info += "               triangle, ftriangle, star, fstar \n";
+  info += ">>> arrow=ArrowType,ArrowSize (ArrowSize: integer 3,5,7... \n";
+  info += "   ArrowType: basic, triangle, ftriangle, \n";
+  info += "              arrowshaped, farrowshaped\n";
+  info += ">>> ColorTables: defcmap  grey32  invgrey32  colrj32  colbr32 \n";
+  info += "                grey128  invgrey128  colrj128  colbr128 \n";
+  info += "                red32cm  green32cm  blue32cm  yellow32cm \n";
+  info += "                orange32cm cyan32cm violet32cm \n";
+  info += "                midas_pastel midas_heat midas_rainbow3 midas_bluered\n";
+  info += "                midas_bluewhite midas_redwhite \n";
+  info += "                multicol16 multicol64\n";
+  info += ">   revcmap : This flag reverses ColorMap indexing \n";
+  info += "------- Obsolete- graphic att ---------- \n";  
   info += ">> Lines:  defline normalline thinline thickline dashedline thindashedline \n";
   info += "           thickdashedline dottedline thindottedline thickdottedline \n";
@@ -405,10 +429,4 @@
   info += "           ftrianglemarker<S>  starmarker<S>  fstarmarker<S> \n";
   info += "   with <S> = 1 3 5 7 9 , Example fboxmarker5 , plusmarker9 ... \n";
-  info += ">> ColorTables: defcmap  grey32  invgrey32  colrj32  colbr32 \n";
-  info += "                grey128  invgrey128  colrj128  colbr128 \n";
-  info += "                midas_pastel midas_heat midas_rainbow3 midas_bluered\n";
-  info += "                midas_bluewhite midas_redwhite \n";
-  info += "                rainbow16 \n";
-  info += "   revcmap : This flag reverses ColorMap indexing \n";
   return;
 }
@@ -424,5 +442,10 @@
   mGrUC->SetUCS(xMin, xMax, yMin, yMax, aXFlg, aYFlg);
   if (aXlog || aYlog) mGrUC->SetLogScale(aXlog, aYlog);
-  if (mFgHighLight) mGrUC->SelGOMode(PI_GOInvert); // $CHECK$ A changer , Reza 07/2001
+  if (mFgHighLight) { 
+    // mGrUC->SelGOMode(PI_GOInvert); // $CHECK$ A changer , Reza 07/2001
+    mGrUC->SelForeground(PI_HighlightBlue);
+    mGrUC->LockForegroundColor();
+  }
+  
   return(mGrUC);
 }
Index: trunk/SophyaPI/PI/pidrwtools.cc
===================================================================
--- trunk/SophyaPI/PI/pidrwtools.cc	(revision 2391)
+++ trunk/SophyaPI/PI/pidrwtools.cc	(revision 2394)
@@ -157,4 +157,9 @@
 mOpt[0]->AppendItem("BlueViolet", 119);
 mOpt[0]->AppendItem("DarkViolet", 120);
+mOpt[0]->AppendItem("SkyBlue", 121);
+mOpt[0]->AppendItem("RoyalBlue", 122);
+mOpt[0]->AppendItem("ForestGreen", 123);
+mOpt[0]->AppendItem("OrangeRed", 124);
+mOpt[0]->AppendItem("Brown", 125);
 mOpt[0]->SetValue(100);
 mOpt[0]->SetBinding(PIBK_elastic, PIBK_elastic, PIBK_elastic, PIBK_elastic);
@@ -380,5 +385,5 @@
 
 //  Declaration des differents attributs graphiques 
-#define MYNMXCOLORS 21
+#define MYNMXCOLORS 26
 static PIColors cols[MYNMXCOLORS] = { PI_NotDefColor, 
                      PI_Black, PI_White, PI_Grey, 
@@ -388,5 +393,8 @@
                      PI_Orange, PI_SiennaRed, PI_Purple, 
                      PI_LimeGreen, PI_Gold, PI_Violet, PI_VioletRed,
-                     PI_BlueViolet, PI_DarkViolet };
+                     PI_BlueViolet, PI_DarkViolet,
+		     PI_SkyBlue, PI_RoyalBlue,
+		     PI_ForestGreen,
+		     PI_OrangeRed, PI_Brown };
 
 static PIMarker mrk[12] = { PI_NotDefMarker, PI_DotMarker, 
@@ -757,4 +765,5 @@
   mTxt[1] = new PIText(this, "drwosset", bsx*6.0, bsy, cpx, cpy);  
   mTxt[1]->SetTextEditable(true);
+  mTxt[1]->SetMsg(5555);
   mTxt[1]->SetBinding(PIBK_elastic,PIBK_elastic, PIBK_elastic,PIBK_elastic);
   mTxt[1]->SetText("");
@@ -810,4 +819,5 @@
     break;
   case 555:
+  case 5555:
     if (mDrw) {
       vector<string> vops;
Index: trunk/SophyaPI/PI/pieldrw.cc
===================================================================
--- trunk/SophyaPI/PI/pieldrw.cc	(revision 2391)
+++ trunk/SophyaPI/PI/pieldrw.cc	(revision 2394)
@@ -622,8 +622,6 @@
   if (axesFlags == kAxesNone) return;
   //  g->NoClip();
-  g->SaveGraphicAtt();
   axeDr.DrawXYAxes(g, mGrAtt, XMin(), XMax(), YMin(), YMax(), 
 		   axesFlags, axesAFSz); 
-  g->RestoreGraphicAtt();
   if (showAxesLabels) { 
     axeDr.DrawXCaption(g, labelAtt, axesFlags, xLabel);
@@ -631,5 +629,4 @@
   }
   //  g->Clip();
-  g->RestoreGraphicAtt(); 
 }
 
@@ -641,5 +638,4 @@
 DrawAxes(g);   // Trace des axes 
 // g->SelFont(PI_NormalSizeFont);
-
 
 // Trace des titres 
@@ -673,5 +669,4 @@
   SetGraphicAtt(grs); 
 }
- g->RestoreGraphicAtt();
  SelGraAtt(g);
  // Trace des elements
Index: trunk/SophyaPI/PI/pigraphgen.cc
===================================================================
--- trunk/SophyaPI/PI/pigraphgen.cc	(revision 2391)
+++ trunk/SophyaPI/PI/pigraphgen.cc	(revision 2394)
@@ -779,4 +779,5 @@
 void PIGraphicGen::SaveGraphicAtt()
 {
+  // Doit-on sauver et utiliser l'etat de lock ? Reza - Mai 2003
   sFCol = GetForeground();
   sBCol = GetBackground();
@@ -794,4 +795,5 @@
 void PIGraphicGen::RestoreGraphicAtt()
 {
+  UnLockForegroundColor(); // Doit-on sauver et utiliser l'etat de lock ?
   SelForeground(sFCol);
   SelBackground(sBCol);
Index: trunk/SophyaPI/PI/pigraphuc.cc
===================================================================
--- trunk/SophyaPI/PI/pigraphuc.cc	(revision 2391)
+++ trunk/SophyaPI/PI/pigraphuc.cc	(revision 2394)
@@ -745,4 +745,5 @@
 {
   if (!mGrC) return;
+  if (myLockFCol)  return;  
   mGrC->SelForeground(col);
   return;  
Index: trunk/SophyaPI/PI/pigraphx.cc
===================================================================
--- trunk/SophyaPI/PI/pigraphx.cc	(revision 2391)
+++ trunk/SophyaPI/PI/pigraphx.cc	(revision 2394)
@@ -863,8 +863,18 @@
 if ( XAllocNamedColor (mdsp, cmap, "DarkViolet", &mycol, &exact) )
   colpix[PI_DarkViolet] = mycol.pixel;
-
-mycol.red = 0;
-mycol.blue = 65000;
-mycol.green = 45000;
+if ( XAllocNamedColor (mdsp, cmap, "SkyBlue", &mycol, &exact) )
+  colpix[PI_SkyBlue] = mycol.pixel;
+if ( XAllocNamedColor (mdsp, cmap, "RoyalBlue", &mycol, &exact) )
+  colpix[PI_RoyalBlue] = mycol.pixel;
+if ( XAllocNamedColor (mdsp, cmap, "ForestGreen", &mycol, &exact) )
+  colpix[PI_ForestGreen] = mycol.pixel;
+if ( XAllocNamedColor (mdsp, cmap, "OrangeRed", &mycol, &exact) )
+  colpix[PI_OrangeRed] = mycol.pixel;
+if ( XAllocNamedColor (mdsp, cmap, "brown", &mycol, &exact) )
+  colpix[PI_Brown] = mycol.pixel;
+
+mycol.red = 39000;
+mycol.blue = 65535;
+mycol.green = 49000;
 if ( XAllocColor (mdsp, cmap, &mycol) )  colpix[PI_HighlightBlue] = mycol.pixel;
 
Index: trunk/SophyaPI/PI/pigratt.cc
===================================================================
--- trunk/SophyaPI/PI/pigratt.cc	(revision 2391)
+++ trunk/SophyaPI/PI/pigratt.cc	(revision 2394)
@@ -5,4 +5,5 @@
 #include "pigratt.h"
 #include <ctype.h>
+#include "strutilxx.h"
 
 #include <stdio.h>
@@ -266,4 +267,14 @@
   gic = PI_DarkViolet;
   GrAcol["darkviolet"] = gic;
+  gic = PI_SkyBlue;
+  GrAcol["skyblue"] = gic;
+  gic = PI_RoyalBlue;
+  GrAcol["royalblue"] = gic;
+  gic = PI_ForestGreen;
+  GrAcol["forestgreen"] = gic;
+  gic = PI_OrangeRed;
+  GrAcol["orangered"] = gic;
+  gic = PI_Brown;
+  GrAcol["brown"] = gic;
 
 // Les attributs de lignes
@@ -446,34 +457,165 @@
   int ndec = att.size();
   for( k=0; k<att.size(); k++ ) {
+    bool fgdec = false;
     string gratt = att[k];
     // Valeurs par defaut 
     if (gratt == "default") { 
       SetDefaultAtt();  
-      continue;
-    }
+      fgdec = true;
+    }
+    // Decodage couleur avant-plan/arriere-plan avec fgcolor=colname ou bgcolor=colname
+    else if ( (gratt.substr(0, 8) == "fgcolor=") || (gratt.substr(0, 8) == "bgcolor=") ||  
+	 (gratt.substr(0, 6) == "color=") ) {
+      string scol;
+      bool sfgc = true;
+      if (gratt[0] != 'c')  {
+	if (gratt[0] == 'b') sfgc = false;
+	scol = gratt.substr(8);
+      }
+      else scol = gratt.substr(6);
+
+      GrAttColors& GrAcol = *GrAcolors;
+      GrAttColors::const_iterator itc = GrAcol.find(scol);
+      PIColors cdcol = PI_NotDefColor;
+      fgdec = false;
+      if (itc != GrAcol.end())  { 
+	cdcol = (*itc).second;  fgdec = true;  
+      }
+      if (sfgc) mFCol = cdcol;
+      else mBCol = cdcol;
+      fgdec = true;
+    }
+    // Decodage de fonte sous forme de font=FontName,FontAtt,FontSizePt
+    else if (gratt.substr(0, 5) == "font=") {
+      PIFontName dfn = PI_DefaultFont;
+      int dfsz = 10;
+      PIFontAtt dfa = PI_RomanFont;
+      vector<string> fna;
+      FillVStringFrString(gratt.substr(5), fna, ',');
+      if (fna.size() > 0) {
+	if (fna[0] == "courier") dfn = PI_CourierFont;
+	else if (fna[0] == "helvetica") dfn = PI_HelveticaFont;
+	else if (fna[0] == "times") dfn = PI_TimesFont;
+	else if (fna[0] == "symbol") dfn = PI_SymbolFont;
+      }
+      if (fna.size() > 1) {
+	if (fna[1] == "roman") dfa = PI_RomanFont;
+	else if (fna[1] == "bold") dfa = PI_BoldFont;
+	else if (fna[1] == "italic") dfa = PI_ItalicFont;
+	else if (fna[1] == "bolditalic") dfa = PI_BoldItalicFont;
+      }
+      if (fna.size() > 2) dfsz = atoi(fna[2].c_str());
+      cout << "DBG-GRATT: " << fna[0] << " " << fna[1] << " " << dfsz << endl;
+      mFnt.SetFont(dfn);
+      mFnt.SetFontAtt(dfa);
+      mFnt.SetFontSzPt(dfsz);
+      if (fna.size() > 0) mNotDefFnt = true;
+      else  mNotDefFnt = false;
+      fgdec = true;
+    }
+    // Decodage d'attribut de ligne sous forme de line=dashtype,width
+    else if (gratt.substr(0, 5) == "line=") {
+      PILineDash dld = PI_LineSolid;
+      int dlw = 1;
+      vector<string> lna;
+      FillVStringFrString(gratt.substr(5), lna, ',');
+      if (lna.size() > 0) {
+	if (lna[0] == "solid") dld = PI_LineSolid;
+	else if (lna[0] == "dashed") dld = PI_LineDashed;
+	else if (lna[0] == "dotted") dld = PI_LineDotted;
+	else if (lna[0] == "dashdotted") dld = PI_LineDashDotted;
+      }
+      if (lna.size() > 1) dlw = atoi(lna[1].c_str());
+      mLAtt.SetLineWidth(dlw);
+      mLAtt.SetLineDash(dld);
+      fgdec = true;
+    }
+    // decodage de marker sous forme de marker=type,size
+    else if (gratt.substr(0, 7) == "marker=") {
+      PIMarker dmrk = PI_NotDefMarker;
+      int dmsz = 1;
+      vector<string> mka;
+      FillVStringFrString(gratt.substr(7), mka, ',');
+      if (mka.size() > 0) {
+	if (mka[0] == "dot") dmrk = PI_DotMarker;
+	else if (mka[0] == "plus") dmrk = PI_PlusMarker;
+  	else if (mka[0] == "cross") dmrk = PI_CrossMarker;
+      	else if (mka[0] == "circle") dmrk = PI_CircleMarker;
+      	else if (mka[0] == "fcircle") dmrk = PI_FCircleMarker;
+      	else if (mka[0] == "box") dmrk = PI_BoxMarker;
+      	else if (mka[0] == "fbox") dmrk = PI_FBoxMarker;
+      	else if (mka[0] == "triangle") dmrk = PI_TriangleMarker;
+      	else if (mka[0] == "ftriangle") dmrk = PI_TriangleMarker;
+      	else if (mka[0] == "star") dmrk = PI_StarMarker;
+      	else if (mka[0] == "fstar") dmrk = PI_StarMarker;
+      }
+      if (mka.size() > 1) dmsz = atoi(mka[1].c_str());
+      mMrk = dmrk;  
+      mMSz = dmsz;
+      fgdec = true;
+    }
+    // decodage de arrowmarker sour forme de arrow=type,size
+    else if (gratt.substr(0, 7) == "arrow=") {
+      PIArrowMarker darr = PI_NotDefArrowMarker;
+      int dasz = 1;
+      vector<string> mka;
+      FillVStringFrString(gratt.substr(6), mka, ',');
+      if (mka.size() > 0) {
+	if (mka[0] == "basic") darr = PI_BasicArrowMarker;
+      	else if (mka[0] == "triangle") darr = PI_TriangleArrowMarker;
+      	else if (mka[0] == "ftriangle") darr = PI_FTriangleArrowMarker;
+      	else if (mka[0] == "arrowshaped") darr = PI_ArrowShapedArrowMarker;
+      	else if (mka[0] == "farrowshaped") darr = PI_FArrowShapedArrowMarker;
+      }
+      if (mka.size() > 1) dasz = atoi(mka[1].c_str());
+      mArrowMrk = darr;
+      mArrowMrkSz = dasz;
+      fgdec = true;
+    }
+    
     // Inversion d'indexage de ColorMap
-    if (gratt == "revcmap")  { 
-      mRevCmap = true;  continue;
-    }
+    else if (gratt == "revcmap")  { 
+      mRevCmap = true;  fgdec = true;
+    }
+    if (fgdec) continue;
+
+    // Si c'est un colormap
+    fgdec = false;
+    GrAttColMaps& GrAcmp = *GrAcmaps;
+    GrAttColMaps::const_iterator itcm = GrAcmp.find(gratt);
+    if (itcm != GrAcmp.end())  { 
+      mCmapid = (*itcm).second;  
+      fgdec = true;  continue; 
+    }
+    if (fgdec) continue;
+
+    // Le decodage ancienne maniere (avant Mai 2003)
     // Si c'est une couleur
     GrAttColors& GrAcol = *GrAcolors;
     GrAttColors::const_iterator itc = GrAcol.find(gratt);
+    fgdec = false;
     if (itc != GrAcol.end())  { 
-      mFCol = (*itc).second;  continue; 
-    }
+      mFCol = (*itc).second;  fgdec = true;  continue; 
+    }
+    if (fgdec) continue;
     // Si c'est un attribut de lignes
+    fgdec = false;
     GrAttLines& GrAlin = *GrAlines;
     GrAttLines::const_iterator itl = GrAlin.find(gratt);
     if (itl != GrAlin.end())  { 
-      mLAtt = (*itl).second;  continue; 
-    }
+      mLAtt = (*itl).second;  fgdec = true;  continue; 
+    }
+    if (fgdec) continue;
     // Si c'est un nom de fontes
+    fgdec = false;
     GrAttFontNames& GrAfontnm = *GrAfontNames;
     GrAttFontNames::const_iterator itfn = GrAfontnm.find(gratt);
     if (itfn != GrAfontnm.end()) { 
       mFnt.SetFont((*itfn).second);  
-      mNotDefFnt = true;  continue; 
-    }
+      mNotDefFnt = true;  fgdec = true;  continue; 
+    }
+    if (fgdec) continue;
     // Si c'est un attribut de fontes
+    fgdec = false;
     GrAttFonts& GrAfnt = *GrAfonts;
     GrAttFonts::const_iterator itfa = GrAfnt.find(gratt);
@@ -481,7 +623,9 @@
       mFnt.SetFontAtt((*itfa).second.fatt);  
       mFnt.SetFontSz((*itfa).second.fsz); 
-      mNotDefFnt = true;  continue; 
-    }
+      mNotDefFnt = true;  fgdec = true;  continue; 
+    }
+    if (fgdec) continue;
     // Si c'est un attribut de markers
+    fgdec = false;
     GrAttMarkers& GrAmrk = *GrAmarkers;
     GrAttMarkers::const_iterator itm = GrAmrk.find(gratt);
@@ -489,7 +633,9 @@
       mMrk = (*itm).second.mrk;  
       mMSz = (*itm).second.msz;  
-      continue; 
-    }
+      fgdec = true;  continue; 
+    }
+    if (fgdec) continue;
     // Si c'est un attribut de ArrowMarker (fleche)
+    fgdec = false;
     GrAttArrowMarkers& GrAarrmrk = *GrAarrowMarkers;
     GrAttArrowMarkers::const_iterator itam = GrAarrmrk.find(gratt);
@@ -497,13 +643,8 @@
       mArrowMrk = (*itam).second.amrk;  
       mArrowMrkSz = (*itam).second.amsz;  
-      continue; 
-    }
-    // Si c'est un colormap
-    GrAttColMaps& GrAcmp = *GrAcmaps;
-    GrAttColMaps::const_iterator itcm = GrAcmp.find(gratt);
-    if (itcm != GrAcmp.end())  { 
-      mCmapid = (*itcm).second;  
-      continue; 
-    }
+      fgdec = true;  continue; 
+    }
+    if (fgdec) continue;
+    
     ndec--;
     if (rmdecatt)  udatt.push_back(gratt);
Index: trunk/SophyaPI/PI/psfile.cc
===================================================================
--- trunk/SophyaPI/PI/psfile.cc	(revision 2391)
+++ trunk/SophyaPI/PI/psfile.cc	(revision 2394)
@@ -54,5 +54,8 @@
   PI_Cyan, PI_Turquoise, PI_NavyBlue,\
   PI_Orange, PI_SiennaRed, PI_Purple,\
-  PI_LimeGreen, PI_Gold, PI_Violet, PI_VioletRed, PI_BlueViolet, PI_DarkViolet, \
+  PI_LimeGreen, PI_Gold, \
+  PI_Violet, PI_VioletRed, PI_BlueViolet, PI_DarkViolet, \
+  PI_SkyBlue, PI_RoyalBlue, PI_ForestGreen, \
+  PI_OrangeRed, PI_Brown, PI_HighlightBlue, \
   \
   PI_RomanFont, PI_BoldFont, PI_ItalicFont, PI_NotDefFontAtt,\
@@ -67,24 +70,30 @@
 /C%-2d  {ur    ug    ub    setrgbcolor} bind def %% PI_ColorFromMap\n\
 /C%-2d  {0.0   0.0   0.0   setrgbcolor} bind def %% PI_Black\n\
-/C%-2d  {0.996 0.996 0.996 setrgbcolor} bind def %% PI_White\n\
+/C%-2d  {1.000 1.000 1.000 setrgbcolor} bind def %% PI_White\n\
 /C%-2d  {0.824 0.824 0.824 setrgbcolor} bind def %% PI_Grey\n\
-/C%-2d  {0.996 0.0   0.0   setrgbcolor} bind def %% PI_Red\n\
-/C%-2d  {0.0   0.0   0.996 setrgbcolor} bind def %% PI_Blue\n\
-/C%-2d  {0.0   0.996 0.0   setrgbcolor} bind def %% PI_Green\n\
-/C%-2d  {0.996 0.996 0.0   setrgbcolor} bind def %% PI_Yellow\n\
-/C%-2d  {0.996 0.0   0.996 setrgbcolor} bind def %% PI_Magenta\n\
+/C%-2d  {1.000 0.0   0.0   setrgbcolor} bind def %% PI_Red\n\
+/C%-2d  {0.0   0.0   1.000 setrgbcolor} bind def %% PI_Blue\n\
+/C%-2d  {0.0   1.000 0.0   setrgbcolor} bind def %% PI_Green\n\
+/C%-2d  {1.000 1.000 0.0   setrgbcolor} bind def %% PI_Yellow\n\
+/C%-2d  {1.000 0.0   1.000 setrgbcolor} bind def %% PI_Magenta\n\
 /C%-2d  {}                              bind def %% PI_NotDefColor\n\
-/C%-2d  {0.0   0.996 0.996 setrgbcolor} bind def %% PI_Cyan\n\
+/C%-2d  {0.0   1.000 1.000 setrgbcolor} bind def %% PI_Cyan\n\
 /C%-2d  {0.250 0.875 0.813 setrgbcolor} bind def %% PI_Turquoise\n\
 /C%-2d  {0.0   0.0   0.500 setrgbcolor} bind def %% PI_NavyBlue\n\
-/C%-2d  {0.996 0.644 0.0   setrgbcolor} bind def %% PI_Orange\n\
+/C%-2d  {1.000 0.644 0.0   setrgbcolor} bind def %% PI_Orange\n\
 /C%-2d  {0.625 0.320 0.176 setrgbcolor} bind def %% PI_SiennaRed\n\
 /C%-2d  {0.625 0.125 0.937 setrgbcolor} bind def %% PI_Purple\n\
 /C%-2d  {0.195 0.800 0.195 setrgbcolor} bind def %% PI_LimeGreen\n\
-/C%-2d  {0.996 0.840 0.0   setrgbcolor} bind def %% PI_Gold\n\
+/C%-2d  {1.000 0.840 0.0   setrgbcolor} bind def %% PI_Gold\n\
 /C%-2d  {0.933 0.510 0.933 setrgbcolor} bind def %% PI_Violet\n\
 /C%-2d  {0.816 0.125 0.565 setrgbcolor} bind def %% PI_VioletRed\n\
 /C%-2d  {0.541 0.167 0.886 setrgbcolor} bind def %% PI_BlueViolet\n\
 /C%-2d  {0.580 0.000 0.827 setrgbcolor} bind def %% PI_DarkViolet\n\
+/C%-2d  {0.530 0.805 0.920 setrgbcolor} bind def %% PI_SkyBlue\n\
+/C%-2d  {0.255 0.410 0.880 setrgbcolor} bind def %% PI_RoyalBlue\n\
+/C%-2d  {0.135 0.545 0.135 setrgbcolor} bind def %% PI_ForestGreen\n\
+/C%-2d  {1.000 0.270 0.000 setrgbcolor} bind def %% PI_OrangeRed\n\
+/C%-2d  {0.647 0.165 0.165 setrgbcolor} bind def %% PI_Brown\n\
+/C%-2d  {0.600 0.750 1.000 setrgbcolor} bind def %% PI_HighlightBlue\n\
 /F%-2d  {/Courier   findfont} bind def           %% PI_RomanFont\n\
 /F%-2d  {/Courier-Bold    findfont} bind def     %% PI_BoldFont\n\
