Changeset 1564 in Sophya


Ignore:
Timestamp:
Jul 4, 2001, 6:06:41 PM (24 years ago)
Author:
ansari
Message:

ajout PIFont::TinySizeFont PIFont::BoldItalicFont + correction bugs postscript - Reza 4/7/2001

Location:
trunk/SophyaPI/PI
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaPI/PI/pifontgen.h

    r329 r1564  
    1212
    1313enum PIFontSize { PI_NotDefFontSize = -1,
    14                   PI_SmallSizeFont = 1, PI_NormalSizeFont = 2,
    15                   PI_BigSizeFont = 3, PI_HugeSizeFont = 4 };
     14                  PI_TinySizeFont = 1,
     15                  PI_SmallSizeFont = 2, PI_NormalSizeFont = 3,
     16                  PI_BigSizeFont = 4, PI_HugeSizeFont = 5 };
    1617
    1718enum PIFontAtt { PI_NotDefFontAtt = -1,
    18                  PI_RomanFont = 1, PI_BoldFont = 2, PI_ItalicFont = 4 };
     19                 PI_RomanFont = 1, PI_BoldFont = 2, PI_ItalicFont = 4,
     20                 PI_BoldItalicFont = 6 };
    1921
    2022class PIFontGen
  • trunk/SophyaPI/PI/pifontx.cc

    r550 r1564  
    117117
    118118
    119 #define NMAXFONTSZ    7
    120 #define NMAXFONTATT   3
     119#define NMAXFONTSZ    9
     120#define NMAXFONTATT   4
    121121#define NMAXFONTTYP   5
    122122
    123123/*  Variables globales pour la gestion des fontes  */
    124124static XFontStruct * fntst[NMAXFONTSZ][NMAXFONTATT][NMAXFONTTYP];
    125 static int fntsz[NMAXFONTSZ] = {8,10,12,14,18,24,36};
    126 static int SmallFontIndex = 1;
    127 static int NormalFontIndex = 3;
    128 static int BigFontIndex = 5;
    129 static int HugeFontIndex = 6;
    130 static  PIFontAtt fntatt[NMAXFONTATT] = { PI_RomanFont, PI_BoldFont, PI_ItalicFont };
     125static int fntsz[NMAXFONTSZ] = {8,9,10,11,12,14,18,24,36};
     126static int TinyFontIndex = 0;
     127static int SmallFontIndex = 2;
     128static int NormalFontIndex = 4;
     129static int BigFontIndex = 6;
     130static int HugeFontIndex = 8;
     131static  PIFontAtt fntatt[NMAXFONTATT] =
     132        { PI_RomanFont, PI_BoldFont, PI_ItalicFont, PI_BoldItalicFont };
    131133static  PIFontName fntname[NMAXFONTTYP] = { PI_DefaultFont, PI_CourierFont, PI_HelveticaFont,
    132134                                            PI_TimesFont, PI_SymbolFont}; 
     
    138140int isz;
    139141switch (fs) {
     142  case PI_TinySizeFont:
     143    isz = fntsz[TinyFontIndex];
     144    break;
    140145  case PI_SmallSizeFont:
    141146    isz = fntsz[SmallFontIndex];
     
    183188    j = 2;
    184189    break;
     190  case PI_BoldItalicFont :
     191    j = 3;
     192    break;   
    185193  default :
    186194    j = 0;
     
    236244 
    237245static char * fnbi_b[4] = { "medium-r-normal", "bold-r-normal",
    238                           "medium-o-normal", "medium-i-normal" };
    239 
    240 static char * fnbi[3];
     246                          "medium-o-normal", "bold-o-normal" };
     247static char * fnbo_b[4] = { NULL, NULL,
     248                          "medium-i-normal", "bold-i-normal" };
    241249
    242250/* --Methode-- */
     
    252260
    253261  for (k=0; k<5; k++)  {  // Recherche de la fonte pour tailles croissantes
    254     sprintf(buff,"-%s-%s-*-%d-*-*-*-*-*-*-*", apd.fntFam[kfn], fnbi[jat], fntsz[isz]+k);
     262    sprintf(buff,"-%s-%s-*-%d-*-*-*-*-*-*-*", apd.fntFam[kfn], fnbi_b[jat], fntsz[isz]+k);
    255263    list = XListFonts(mdsp, buff, 10, &count);
    256264    XFreeFontNames(list);
     265    if ((count <= 0) && (fnbo_b[jat] != NULL)) {
     266      sprintf(buff,"-%s-%s-*-%d-*-*-*-*-*-*-*", apd.fntFam[kfn], fnbo_b[jat], fntsz[isz]+k);
     267      list = XListFonts(mdsp, buff, 10, &count);
     268      XFreeFontNames(list);
     269    }
    257270    if (count > 0)  break;
    258271    }
     
    260273  if ( (count == 0) && (jat > 0) ) {
    261274    for (k=0; k<5; k++)  {  // Recherche de la fonte pour tailles croissantes
    262       sprintf(buff,"-%s-%s-*-%d-*-*-*-*-*-*-*", apd.fntFam[kfn], fnbi[0], fntsz[isz]+k);
     275      sprintf(buff,"-%s-%s-*-%d-*-*-*-*-*-*-*", apd.fntFam[kfn], fnbi_b[0], fntsz[isz]+k);
    263276      list = XListFonts(mdsp, buff, 10, &count);
    264277      XFreeFontNames(list);
     
    306319  apd.fntFam[0] = "*-courier";
    307320  }
    308 sprintf(buff,"-%s-%s-*-*-*-*-*-*-*-*-*", apd.fntFam[0], fnbi_b[0]);
     321sprintf(buff,"-%s-%s-*-*-*-*-12-*-*-*-*", apd.fntFam[0], fnbi_b[0]);
    309322list = XListFonts(mdsp, buff, 10, &count);
    310323XFreeFontNames(list);
    311 if (count < 2) fnbi[0] = "*-*-*";
    312 else  fnbi[0] = fnbi_b[0];
    313 sprintf(buff,"-%s-%s-*-*-*-*-*-*-*-*-*", apd.fntFam[0], fnbi_b[1]);
    314 list = XListFonts(mdsp, buff, 10, &count);
    315 XFreeFontNames(list);
    316 if (count < 2) fnbi[1] = "*-*-*";
    317 else  fnbi[1] = fnbi_b[1];
    318 sprintf(buff,"-%s-%s-*-*-*-*-*-*-*-*-*", apd.fntFam[0], fnbi_b[2]);
    319 list = XListFonts(mdsp, buff, 10, &count);
    320 XFreeFontNames(list);
    321 fnbi[2] = fnbi_b[2];
    322 if (count < 2)
    323   {
    324   sprintf(buff,"-%s-%s-*-*-*-*-*-*-*-*-*", apd.fntFam[0], fnbi_b[3]);
     324if (count < 1) {
     325  sprintf(buff,"-*-fixed-*-*-*-*-12-*-*-*-*-*-*-*");
    325326  list = XListFonts(mdsp, buff, 10, &count);
    326327  XFreeFontNames(list);
    327   fnbi[2] = fnbi_b[3];
    328   }
    329 if (count < 2) fnbi[2] = "*-*-*";
    330 
    331 sprintf(buff,"-*-fixed-*-*-*-*-12-*-*-*-*-*-*-*");
    332 list = XListFonts(mdsp, buff, 10, &count);
    333 XFreeFontNames(list);
    334 if (count < 1)
    335   { 
    336   sprintf(buff,"fixed");
    337   list = XListFonts(mdsp, buff, 10, &count);
    338   XFreeFontNames(list);
    339   }
    340 if (count < 1)
    341   { 
    342   strcpy(buff,"");
    343   list = XListFonts(mdsp, buff, 10, &count);
    344   XFreeFontNames(list);
     328  if (count < 1)   { 
     329    sprintf(buff,"fixed");
     330    list = XListFonts(mdsp, buff, 10, &count);
     331    XFreeFontNames(list);
     332  }
     333  if (count < 1)   { 
     334    strcpy(buff,"");
     335    list = XListFonts(mdsp, buff, 10, &count);
     336    XFreeFontNames(list);
     337  }
     338}
     339if (count < 1) { 
    345340  printf("PIFontX::Init/ Erreur, no font found ... \n");
    346341  defnt = NULL;
     
    366361SmallFontIndex = (kksel > 1) ? kksel-2 : 0 ;
    367362BigFontIndex =  (kksel < NMAXFONTSZ-2) ? kksel+2 :  NMAXFONTSZ-1;
    368 HugeFontIndex = NMAXFONTSZ-1;
     363// On garde HugeFontIndex et TinyFontIndex aux tailles extremes
     364// HugeFontIndex = NMAXFONTSZ-1;
    369365
    370366// printf("PIFontX::Init()-DBG- FontIndex= %d %d %d (SzF=%d) \n",
  • trunk/SophyaPI/PI/piversion.h

    r1556 r1564  
    22#define PIVERSION_H_SEEN
    33
    4 #define PI_VERSIONNUMBER  2.95
     4#define PI_VERSIONNUMBER  2.98
    55
    66#endif
  • trunk/SophyaPI/PI/psfile.cc

    r1538 r1564  
    794794        break ;
    795795      case PI_ItalicFont:
    796         if(mFontName != PI_SymbolFont) fprintf(mPSFile, "-Italic ") ;
     796        if(mFontName != PI_HelveticaFont) fprintf(mPSFile, "-Oblique ") ;
     797        else if (mFontName != PI_TimesFont) fprintf(mPSFile, "-Italic ") ;
    797798        break ;
     799      case PI_BoldItalicFont:
     800        if(mFontName != PI_HelveticaFont) fprintf(mPSFile, "-BoldOblique ") ;
     801        else if (mFontName != PI_TimesFont) fprintf(mPSFile, "-BoldItalic ") ;
     802        break ;         
    798803      } // endsw
    799804      fprintf(mPSFile, " ff %d FS ", FontSize) ;
     
    878883
    879884    /* Dessin du fond */
    880     if ( (FillColor != PI_NotDefColor) || (FillColor != mFillColor) ) {
    881       mFillColor = FillColor;
    882       fprintf(mPSFile, "C%d ", mFillColor) ;
     885    if ( (FillColor != PI_NotDefColor) || (FillColor != mDrawColor) ) {
     886      mDrawColor = FillColor;
     887      fprintf(mPSFile, "C%d ", mDrawColor) ;
    883888    }
    884889    fprintf(mPSFile, "gs n %.2f Ux %.2f Uy %.2f Ux %.2f Uy box f gr\n",
    885890            Tx, Ty, x0, y0) ;
    886    
     891
    887892    /* Dessin du contour (s'il y a lieu) */
    888893    if ( (DrawColor != PI_NotDefColor) && (FillColor != DrawColor) ) {
     
    929934
    930935    /* Dessin du fond */
    931     if ( (FillColor != PI_NotDefColor) || (FillColor != mFillColor) ){
    932         mFillColor = FillColor;
    933         fprintf(mPSFile, "C%d ", mFillColor) ;
     936    if ( (FillColor != PI_NotDefColor) || (FillColor != mDrawColor) ){
     937        mDrawColor = FillColor;
     938        fprintf(mPSFile, "C%d ", mDrawColor) ;
    934939    }
    935940    fprintf(mPSFile, "gs n %.2f Ux %.2f Uy %.2f Ux %.2f Uy \
    936941                      0 360 ellipse f gr\n",
    937942            x0, y0, r, r);
    938     fprintf(mPSFile, "C%d ", mDrawColor) ;
    939943
    940944    /* Dessin du contour (s'il y a lieu) */
     
    994998
    995999    /* Dessin du fond... */
    996     if ( (FillColor != PI_NotDefColor) || (FillColor != mFillColor) ) {
    997         mFillColor = FillColor;
    998         fprintf(mPSFile, "C%d ", mFillColor) ;
     1000    if ( (FillColor != PI_NotDefColor) || (FillColor != mDrawColor) ) {
     1001        mDrawColor = FillColor;
     1002        fprintf(mPSFile, "C%d ", mDrawColor) ;
    9991003    }
    10001004    fprintf(mPSFile, "%.2f Ux %.2f Uy m\n", x[0], y[0]);
Note: See TracChangeset for help on using the changeset viewer.