SP Color functions

1. These are the functions that relate to entire color sets

  SATTCOLOR()         Sets up the the color set for color monitor
  SATTMONO()          Sets up the the color set for MONO
  SATTDIRECT()        Sets up the the color set directly
  SATTGET()           Sets up color set from COLORS.DBF
  SATTPICK()          Sets up color set by selecting from stored definitions
  SATTGETMEM()        Sets up color set from old colors.mem
  SATTPUT()           Stores current color set  to colors.dbf
  SATTPICKPUT()       Stores current SuperLib color set to
                      colors.dbf, with picklist selection of set
  SATTPICKDEL()       Picklist deletion of stored color sets
  SATTPUSH()          Pushes the current SuperLib color set
  SATTPOP()           Pops previously pushed color set
  SETCOLORS()         Interactive color setting -
                      save/restore/edit color sets
  COLPIK()            10 built in color sets to select
                      from a popup

 2. These are the functions that deal with individual color set items

  SLS_NORMCOL()       Normal screen output
  SLS_NORMMENU()      Normal MENU color
  SLS_POPCOL()        Popup screen output
  SLS_POPMENU()       Popup MENU color
  SLS_FRAME()         Box frames
  SLS_SHADATT()       Shadow attribute
  SLS_SHADPOS()       Shadow position
  SLS_XPLODE()        Explode/implode popups

 3. Other color related functions

  SLS_ISCOLOR( )      Is this a color monitor

SP Color Implementation

 This is not the perfect color scheme. It is the one
 this library runs on. The color scheme relates to SuperLib functions,
 and will not affect your other color usage.

 Basically, when a SuperLib metafunction is called, it
 will usually have a main screen, a menu, and a number of popups
 and other attached screens. Rather than have a burned-in color
 set, or use SETCOLOR() as the default, SuperLib has a dynamic
 color scheme, which may be changed and stored by both the
 programmer and the end-user.

 Several global color settings are used by SuperLib
 functions. The settings are accessed and set via a set of
 functions calls, which themselves access a set of STATIC
 variables. The functions are:

   <cSetting> := sls_normcol([cNew])      For normal output
   <cSetting> := sls_normmenu([cNew])     For normal 'menu to'
   <cSetting> := sls_popcol([cNew])       For popup  box colors
   <cSetting> := sls_popmenu([cNew])      For popup box menus
   <cSetting> := sls_frame([cNew])        Frame string
   <nSetting> := sls_shadatt([nNew])      Shadow color attribute
   <nSetting> := sls_shadpos([nNew])      Shadow  position
                 (0,1,3,7,9) to match the numeric keypad
   <lSetting> := sls_xplode([lNew])       Logical - explode

 All colors are of the format "fg/bg,fg/bg,,,fg/bg"

 (fg-foreground bg-background) except for shadow
 attribute, which is numeric.

 By default, a monochrome set of colors is used. You
 may call the function SATTCOLOR() to make the 'color' colors the

 The function SETCOLORS() allows interactive setting
 of these colors. The variables are stored in COLORS.DBF, which
 contains multiple sets of colors.

 You may override the Clipper ISCOLOR() by
 initializing another setting accessed via the function
 SLS_ISCOLOR(), and setting it to True or False. This is helpful
 in instances where ISCOLOR() sees a color card with a monochrome
 monitor, or some such combination.

 If you are upgrading from 2.50 or previous, see
 "Upgrading" in the appendix.




 SLS_XPLODE() A Superlib box setting function

 <lSetting> => Current value of the setting


 Function                   Setting                     Default
 SLS_XPLODE([lNew])         Explode/implode popups      .T.

 [lNew] sets the setting to a new setting
 If [lNew] is passed, the setting is changed and the
 new setting is returned.








  MAKEBOX() Draws a box on the screen and returns saved screen

  <cScreen> => string containing underlying screen &


  Draws a box at screen coordinates <nTop..nRight> and
  returns a string containing the underlying screen and previous color.
  Box will explode or not based on the setting of SLS_XPLODE().

  Default color is setcolor(). Default shadow position
  is the setting in SLS_SHADPOS(). These may be passed as
  options . Shadow position [nShadowPos] has allowable values of
  (1,3,7,9,0) to match the corner positions on the numeric keypad.
  0 is no shadow. [cColor] is a valid color string or variable.


   cBox := MAKEBOX(5,5,10,10)
   //draws a box at 5,5,10,10. Color is SETCOLOR().
   //shadow position is based on SLS_SHADPOS().

   cBox: = MAKEBOX(5,5,10,10,SLS_POPCOL())
   //draws a box at 5,5,10,10. Color is SLS_POPCOL().
   //shadow position is based on SLS_SHADPOS().

   cBox: = MAKEBOX(5,5,10,10,SLS_POPCOL(),9)
   //draws a box at 5,5,10,10. Color is SLS_POPCOL().
   //shadow position is 9 (upper right hand corner)

  Use only UNBOX() to remove screens stored with

  UNBOX() removes the box and restores the underlying
  screen and prior colors.

  The shadow will not be drawn if it would go off the
  edge of the screen.