Changeset 3562 in Sophya


Ignore:
Timestamp:
Jan 29, 2009, 10:24:44 PM (17 years ago)
Author:
ansari
Message:

Amelioration de la logique AutoFontSize ds PIDrawer avec ajout valeur globale par defaut et controle possible avec la variable d'environnement PIDEFAFSZFRAC

Location:
trunk/SophyaPI/PI
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaPI/PI/piapplgen.cc

    r3369 r3562  
    5454#include "sopnamsp.h"
    5555#include "piapplgen.h"
     56#include <stdlib.h>
     57#include <iostream>
     58#include "pidrawer.h"
    5659
    5760// Variable qui contient le pointeur de l'application courante
     
    6265:topcont(NULL), menubar(NULL), mState(0)
    6366{
    64 curapp = this;   
     67  curapp = this;   
     68// Si la variable d'environnement PIDEFAFSZFRAC est definie, on modifie
     69// la taille par defaut de AutoFontSizeFrac
     70  char *envafsz = getenv("PIDEFAFSZFRAC");
     71  if (envafsz) {
     72    double fsfr = atof(envafsz);
     73    if ((fsfr>0.)&&(fsfr<1.)) {
     74      PIDrawer::SetGlDefAutoFontSizeFrac(fsfr);
     75      cout << " PIApplicationGen()/Info: getenv(PIDEFAFSZFRAC)=" << envafsz << endl;
     76      cout << "  ... Set Global Default PIDrawer AutoFontSizeFrac to "
     77           << PIDrawer::GetGlDefAutoFontSizeFrac() << endl;
     78      }
     79  }
    6580}
    6681
  • trunk/SophyaPI/PI/piaxes.cc

    r3558 r3562  
    1111#include <math.h>
    1212#include "piaxes.h"
     13#include "pidrawer.h"
    1314
    1415//++
     
    4142{
    4243  ConfigureTicks();
    43   ConfigureAutoFontSize();
     44  ConfigureAutoFontSize(true, PIDrawer::GetGlDefAutoFontSizeFrac());
    4445  ConfigureAxesCenter();
    4546  setupDone = false;
     
    322323//      (X/Y max-min). Les paramètres ne sont pas changés si des valeurs
    323324//      négatives ou nulles sont spécifiées.
    324 // void ConfigureAutoFontSize(double fszf=0.0125)
    325 //      Configuration de la taille de fonte, en mode AutoFontSize.
     325// void ConfigureAutoFontSize(bool afsz=true, double fszf=0.04)
     326//      Configuration de la taille de fonte, en mode AutoFontSize ou FixedFontSize.
    326327//      La taille est exprimée en fraction de la taille totale YMax-Min
    327328// void  ConfigureAxesCenter(bool fset,double x0,double y0)
  • trunk/SophyaPI/PI/piaxes.h

    r3558 r3562  
    6060  void  ConfigureTicks(int ntickx=10, int nticky=12,
    6161                       double majtl=0.016, double mintl=0.01);
    62   void  ConfigureAutoFontSize(bool afsz=true, double fszf=0.06);
     62  //  Choix de taille automatique de fontes
     63  void  ConfigureAutoFontSize(bool afsz=true, double fszf=0.04);
    6364  void  ConfigureAxesCenter(bool fset=false,double x0=0.,double y0=0.);
    6465
  • trunk/SophyaPI/PI/pidrawer.cc

    r3558 r3562  
    5252//--
    5353
     54// Valeur par defaut global pour TailleFonteAuto
     55double PIDrawer::glDefAFSzFrac = 0.04;
     56void PIDrawer::SetGlDefAutoFontSizeFrac(double fszf)
     57{
     58  if (fszf>1.e-6)  glDefAFSzFrac = fszf;
     59}
     60double PIDrawer::GetGlDefAutoFontSizeFrac()
     61{
     62  return glDefAFSzFrac;
     63}
     64
    5465PIDrawer::PIDrawer()
    5566{
     
    6576  limitsFixed = false;
    6677  SetAxesFlags(kAxesNone);   // Pas de trace d'axes par defaut
    67   ConfigureAutoFontSize();
     78  ConfigureAutoFontSize(true, glDefAFSzFrac);
    6879
    6980  mDndfg = false;  // Pour controle de l'appel de Detach() si delete
     
    143154//|     kMajTicks , kMinTicks , kLabels , kGridOn
    144155//|     kAxesDflt , kAxesNone
    145 // void SetAxesAutoFontSize(bool fg=true)
    146 //      Si "fg==true", la taille de la fonte pour les labels d'axes (chiffres) est
     156// void ConfigureAutoFontSize(bool afsz=true, double fszf=0.05)
     157//      Si "fg==true", la taille de la fonte par le drawer, est
    147158//      choisie automatiquement, en s'adaptant à la taille de la zone de tracé -
    148 //      sinon, taille de la fonte de l'objet PIDrawer.
     159//      sinon, taille de la fonte de l'objet PIDrawer. Cette taille est donnée par
     160//      FontSize=(YMax()-YMin())*(mFontSzF=fszf). "mFontSzF=fszf" n'est mis à jour
     161//      que si fszf>0. Le décodage des attributs graphiques par DecodeOptionString()
     162//      ("autofontsize=fszf" et "fixedfontsize")  permet de modifier ces attributs de
     163//      choix automtique de fonte. Utilisé en particulier par PIElDrawer pour
     164//      le tracé les labels d'axes (chiffres).
    149165// unsigned int GetAxesFlags()
    150166//      Renvoie les attributs de tracé d'axes 
    151 // bool  isAxesAutoFontSize()
    152 //      Renvoie la valeur du flag de choix automatique de taille de fonte pour axes.
     167// bool  GetAutoFontSizeState()
     168//      Renvoie la valeur du flag de choix automatique de taille de fonte.
     169// double  GetAutoFontSizeFraction()
     170//      Renvoie la valeur de la fraction de taille ("mFontSzF) pour lee
     171//      choix automatique de taille de fonte.
    153172// void  DrawAxes(PIGraphicUC* g)
    154173//      Méthode de tracé des axes (le tracé est pris en charge par la classe *PIAxes*)
  • trunk/SophyaPI/PI/pidrawer.h

    r3558 r3562  
    3131  virtual void       SetAxesFlags(unsigned int flags=kAxesNone);
    3232
    33 //  Choix automatique ou pas de taille de fonte
    34   inline void        ConfigureAutoFontSize(bool afsz=true, double fszf=0.06)
     33//---- Choix automatique ou pas de taille de fonte
     34  inline void        ConfigureAutoFontSize(bool afsz=true, double fszf=0.04)
    3535    { mAFSz = afsz;  if (fszf>1e-5)  mFontSzF = fszf; }
     36//  Valeur par defaut global pour le AutoFontSizeFrac, utilise dans les constructeurs de PIDrawer
     37  static  void       SetGlDefAutoFontSizeFrac(double fszf=0.04);
     38//  Retourne la valeur globale par defaut de AutoFontSizeFrac
     39  static  double     GetGlDefAutoFontSizeFrac();
    3640
    3741  virtual void       DrawAxes(PIGraphicUC* g);
     
    135139  bool mAFSz;  // true -> Choix automatique de taille de font en fraction (ymax-ymin)
    136140  double mFontSzF;   // TailleFonteAuto = mFontSzF*(ymax-ymin)
     141  static double glDefAFSzFrac;   // Valeur globale par defaut pour mFontSzF, utilise ds le constructeur
    137142
    138143  PIBaseWdgGen* mBWdg;
Note: See TracChangeset for help on using the changeset viewer.