Re: [ROOT] Different color palettes within one canvas

From: Christian Holm Christensen (cholm@hehi03.nbi.dk)
Date: Thu May 10 2001 - 11:06:57 MEST


Hi Valeri, 

On Wed, 9 May 2001 20:31:52 -0400
"Valeri Fine" <fine@bnl.gov> wrote
concerning ": Re: [ROOT] Different color palettes within one canvas":
> What about 
> 
> http://root.cern.ch/root/htmldoc/TColor.html
> 
> It seems to me one can use it to define color either way you described.

Ok, I overlooked that one.  However, it would  nice if one could use
RGB and/or CMYK directly in the various Set...Color 

   TH1D*   myHist  = new TH1D("myHist", "myHist", 100, 0, 10); 
   myHist->SetLineColor(.123, .456, .789); 

rather than having to do 

   TColor* myColor = new TColor(10000, .123, .456, .789, "myColor"); 
   TH1D*   myHist  = new TH1D("myHist", "myHist", 100, 0, 10); 
   myHist->SetLineColor(1000); 

I guess it's a trick of looking up to see if there's a TColor already
with that definition, and if not make one. 
 
> Windows maps X11 fonts to Windows fonts as follows:
> /______________________________________________________________________________
> void  TGWin32::SetTextFont(Font_t fontnumber)
> {
> /*-*-*-*-*-*-*-*-*-*-*-*-*Set current text font number*-*-*-*-*-*-*-*-*-*-*-*
> /*-*                      ===========================
> 
>   fTextFont = fontnumber;
> 
> /*-*  List of the currently supported fonts (screen and PostScript)
> /*-*  =============================================================
> /*-*   Font ID       X11                       Win32 TTF       lfItalic  lfWeight x 10
> /*-*        1 : times-medium-i-normal      "Times New Roman"      1           4

Ok, so Windoze expects a string and two intergers.  The issue then, is
to translate font specifications of the form 

  -<foundry>-<family>-<weigth>-<slant>-<set width>-<add style>-<pixel size>-<point size>-<resolution x>-<resolution y>-<spacing>-<average width>-<character set>

into a string and two intergers, in some generic way perferably.
Limiting ROOT to only use 5 fonts I believe is a shame.  Therefore, if
one could specify a font as 

   TTextAttr::SetFont(const char* foundry, 
		      const char* family, 
                      const char* weight, 
                      char        slant, 
		      const char* set_width, 
		      const char* add_style,
                      int         pixel_size, 
                      int         point_size, 
                      int         resolution_x,  
                      int         resolution_y,  
                      char        spacing, 
                      int         average_width, 
		      const char* charactre_set); 

and at least when using X, ask the font server to give back the right
one.  For Windoze, I guess you can ask Windoze font server(?) for the
font, based on the <family>, <slant> and <weight> only. 

It should be noted, that 

     times-medium-i-normal

is really an alias in the X font server for something like 

     -*-times-medium-i-normal-*-*-*-*-*-*-*-*

If you were able to specify fonts like I suggest, then you could use
what ever font you may have on the system (ofcourse they may not be
avaliable on your collaborators machines, but that's really your
problem, not ROOTs).  For example, I have some 200 fonts avaliable
from my X font server, and while I will never use all of them, it
would be nice to use more then 5 :-) 

Uh, it still seems odd to me that the regular X fonts does not scale
well in the Canvas.  I mean, looking at any other application, there
seems to be no reason why you can't get them to scale better.  I
haven't looked in the ROOT source code, so I'm just babling along
uninformed, and ignorant of any problems there might be. 

Yours, 

Christian  -----------------------------------------------------------
Holm Christensen                             Phone:  (+45) 35 35 96 91 
  Sankt Hansgade 23, 1. th.                  Office: (+45) 353  25 305 
  DK-2200 Copenhagen N                       Web:    www.nbi.dk/~cholm    
  Denmark                                    Email:       cholm@nbi.dk



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:44 MET