source: trunk/SRC/Colors/lct.pro @ 232

Last change on this file since 232 was 232, checked in by pinsard, 17 years ago

improvements/corrections of some *.pro headers

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 3.6 KB
RevLine 
[2]1;+
2;
[231]3; @file_comments
[137]4; Fastest than type loadct, file = 'palette.tbl'
[2]5;
[231]6; @categories
[157]7; Graphics, Color
[2]8;
[137]9; @param numpal {in}{optional}
10; number of the color palette we want to select in the file palette.tbl
[2]11;
[231]12; @keyword LIGHTNESS
[137]13; a scalar used to change the Lightness of the color
[163]14; palette to be able to adjust according to the printer we use,
[231]15; the media (paper or slide)...
[19]16;               lightness < 1 to get lighter colors
17;                         > 1 to get darker colors
18;
[137]19; @keyword FILE {default='palette.tbl'}
20; The file containing the color palette. It can be in any directory of the !path
[2]21;
[137]22; @keyword GET_NAME
23; Set this keyword to a named variable in which the names of the color tables
[163]24; are returned as a string array. No changes are made to the color table.
[133]25;
[137]26; @keyword _EXTRA
[232]27; Used to pass keywords to <proidl>loadct</proidl>
[133]28;
[137]29; @history
30; Sebastien Masson (smasson\@lodyc.jussieu.fr)
31; 30/3/1999: add extra
32; 6/7/1999: mac/windows compatibility
[133]33;
[231]34; @version
35; $Id$
[133]36;
[2]37;-
[231]38;
[133]39PRO lct, numpal, FILE = file, GET_NAME = get_name, LIGHTNESS = Lightness, _EXTRA = ex
[114]40;
41  compile_opt idl2, strictarrsubs
42;
[133]43; definition of the name of the file containing colors palettes.
[137]44  if keyword_set(file) then nametbl = file ELSE nametbl = 'palette.tbl'
[136]45; What is the full address of nametbl?
[137]46  thisOS = strupcase(strmid(!version.os_family, 0, 3))
47  CASE thisOS of
48  'MAC':BEGIN & sep = ':' & pathsep = ',' & end
49  'WIN':BEGIN & sep = '\' & pathsep = ';' & end
50  ELSE: BEGIN & sep = '/' & pathsep = ':' & end
51  ENDCASE
52  cd, current = current
53  if strpos(nametbl, sep) lt 0 then BEGIN
54    if rstrpos(current, sep) NE strlen(current)-1 then current = current+sep
55    multipath = str_sep(!path, pathsep)
56    for i = 0, n_elements(multipath)-1 do $
57       if rstrpos(multipath[i], sep) NE strlen(multipath[i])-1 then $
58          multipath[i] = multipath[i] +sep
59    nametbl = [current, multipath]+ nametbl
60  ENDIF
[133]61; we test all possible name in order to find where file is.
[137]62  nfile = n_elements(nametbl)
63  n = 0
64  repeat begin
[231]65    res = findfile(nametbl[n])
[137]66    n = n+1
[231]67  endrep until res[0] NE '' OR n EQ n_elements(nametbl)
[137]68  if res[0] NE '' then BEGIN
69    nametbl = nametbl[n-1]
[231]70    if n_elements(ex) NE 0 then $
[137]71       if (where(tag_names(ex) EQ 'FILE'))[0] NE -1 then ex.FILE = nametbl
[133]72; if we are in POSTSCRIPT mode, we have to pass in X mode in order to change the color palette
[137]73    oldname = !d.name
[231]74    if !d.name EQ 'PS' OR !d.name EQ 'Z' then BEGIN
[137]75      thisOS = !VERSION.OS_FAMILY
76      thisOS = STRMID(thisOS, 0, 3)
77      thisOS = STRUPCASE(thisOS)
78      CASE thisOS of
79        'MAC': SET_PLOT, thisOS
80        'WIN': SET_PLOT, thisOS
81        ELSE: SET_PLOT, 'X'
82      ENDCASE
83      !p.BACKGROUND = (!d.n_colors-1) < 255
84      !p.color = 0
85      if !d.n_colors gt 256 then !p.background = 'ffffff'x
86    ENDIF
[2]87;
[137]88    if arg_present(get_name) then begin
89      if n_elements(numpal) EQ 0 then $
90         loadct, file = nametbl, GET_NAME = get_name, _EXTRA = ex $
91      ELSE loadct, numpal, file = nametbl, /silent, GET_NAME = get_name, _EXTRA = ex
[231]92    ENDIF ELSE BEGIN
[137]93      if n_elements(numpal) EQ 0 then loadct, file = nametbl, _EXTRA = ex $
94      ELSE loadct, numpal, file = nametbl, /silent, _EXTRA = ex
[231]95    ENDELSE
[2]96;
[231]97    if oldname EQ 'PS' AND keyword_set(lightness) then palit, lightness
[19]98;
[137]99    set_plot, oldname
100    IF oldname EQ 'X' OR oldname EQ 'MAC' OR oldname EQ 'WIN' then BEGIN
101      !p.BACKGROUND = (!d.n_colors-1) < 255
102      !p.color = 0
103      if !d.n_colors gt 256 then !p.background = 'ffffff'x
104    ENDIF
[2]105
[137]106  ENDIF ELSE ras = report('The file containing the color palettes doesn''t exist...')
[2]107
[137]108  return
[2]109end
Note: See TracBrowser for help on using the repository browser.