Color.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 14 Sep 2017 09:28:09 +0100
branchjv
changeset 8182 c730140a0156
parent 7798 8af654223c89
child 7830 fa41edb7876a
child 9044 02110132774b
permissions -rw-r--r--
X11: compile `GLXWorkstation` with OpenGL OpenGL compiler and linker flags are configured locally in `Make.proto` rather than in target config - this moves the configuration closer to the code. Currently all supported (and considered) platforms have OpenGL implementation. Later on one may use conditionals in makefile to deal exceptions.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
     1
"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
     2
 COPYRIGHT (c) 1992 by Claus Gittinger
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
     3
	      All Rights Reserved
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
     4
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
     5
 This software is furnished under a license and may be used
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
     6
 only in accordance with the terms of that license and with the
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
     8
 be provided or otherwise made available to, or used by, any
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
     9
 other person.  No title to or ownership of the software is
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    10
 hereby transferred.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    11
"
3213
78add46c0f4b only init once
Claus Gittinger <cg@exept.de>
parents: 3145
diff changeset
    12
"{ Package: 'stx:libview' }"
78add46c0f4b only init once
Claus Gittinger <cg@exept.de>
parents: 3145
diff changeset
    13
6785
7babceb91298 class: Color
Claus Gittinger <cg@exept.de>
parents: 6654
diff changeset
    14
"{ NameSpace: Smalltalk }"
7babceb91298 class: Color
Claus Gittinger <cg@exept.de>
parents: 6654
diff changeset
    15
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    16
Object subclass:#Color
3757
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
    17
	instanceVariableNames:'red green blue device colorId ditherForm replacementColor
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
    18
		writable'
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
    19
	classVariableNames:'MaxValue Cells Black White LightGrey Grey DarkGrey Pseudo0
7642
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
    20
		Pseudo1 PseudoAll Red Green Blue Yellow Orange RetryAllocation
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
    21
		DitherBits ColorErrorSignal ColorAllocationFailSignal
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
    22
		InvalidColorNameSignal StandardColorValues Transparent'
3757
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
    23
	poolDictionaries:''
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
    24
	category:'Graphics-Support'
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    25
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    26
1907
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
    27
Object subclass:#DeviceColorHandle
3757
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
    28
	instanceVariableNames:'device colorId'
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
    29
	classVariableNames:''
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
    30
	poolDictionaries:''
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
    31
	privateIn:Color
1907
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
    32
!
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
    33
1144
07f3de59864d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
    34
!Color class methodsFor:'documentation'!
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    35
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    36
copyright
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    37
"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    38
 COPYRIGHT (c) 1992 by Claus Gittinger
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
    39
	      All Rights Reserved
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    40
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    41
 This software is furnished under a license and may be used
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    42
 only in accordance with the terms of that license and with the
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    43
 inclusion of the above copyright notice.   This software may not
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    44
 be provided or otherwise made available to, or used by, any
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    45
 other person.  No title to or ownership of the software is
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    46
 hereby transferred.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    47
"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    48
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    49
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    50
documentation
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    51
"
7782
5c396aabbe58 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7762
diff changeset
    52
    Color represents colors in a device independent manner.
5c396aabbe58 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7762
diff changeset
    53
    The main info I keep in mySelf are the red, green and blue components scaled into 0 .. MaxValue.
5c396aabbe58 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7762
diff changeset
    54
    
5c396aabbe58 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7762
diff changeset
    55
    A device specific color can be acquired by sending a color the 'onDevice:aDevice' message,
5c396aabbe58 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7762
diff changeset
    56
    which will return a color with the same r/g/b values as the receiver but with a specific
5c396aabbe58 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7762
diff changeset
    57
    colorID for that device (which may or may not imply a colormap slot allocation on that device).
5c396aabbe58 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7762
diff changeset
    58
    A device-specific color index (i.e. palette-ID) is then found in the newly allocated color's colorID slot.
5c396aabbe58 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7762
diff changeset
    59
    
5c396aabbe58 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7762
diff changeset
    60
    Most of the device dependent coding was to support limited graphics devices (non truecolor, eg. palette)
6553
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
    61
    in a transparent way. This was required at that time (late 80's, early 90's),
7782
5c396aabbe58 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7762
diff changeset
    62
    but is now almost obsolete, as these days, virtually any graphic systems supports true colors.
6553
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
    63
    It is arguably, if that stuff should remain here, or if we should simply give up support
7782
5c396aabbe58 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7762
diff changeset
    64
    for old VGA-like displays 
5c396aabbe58 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7762
diff changeset
    65
    (actually, there are still such limited displays around, for example in the embedded area.
5c396aabbe58 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7762
diff changeset
    66
     So we will leave that support in for another few years ;-) ).
5c396aabbe58 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7762
diff changeset
    67
5c396aabbe58 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7762
diff changeset
    68
    On such limited devices, colors can be pure or dithered, depending on the capabilities of the device.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    69
    For plain colors, the colorId-instvar is a handle (usually lookup-table entry) for that
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    70
    device. For dithered colors, the colorId is nil and ditherForm specifies the form
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    71
    used to dither that color. The ditherForm can be either a depth-1 bitmap or a pixmap
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    72
    with the devices depth. The plain colors needed by the ditherForm are found in its
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    73
    colormap (as usual for bitmaps).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    74
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    75
    The default algorithm for color allocation is to ask the display for colors as
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    76
    new colors are created. When running out of colors, dithered colors will be used,
7620
3b59f3c6764f #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 7580
diff changeset
    77
    using existing nearest colors and a dither pattern to approximate the color.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    78
    There could be situations, where no good colors are available for the dither, leading
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    79
    to ugly looking dither colors.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    80
    This can be avoided by preallocating a set of colors over the complete range, which
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    81
    makes certain that appropriate colors are later available for the dither process.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    82
    To do so, add a statement like: 'Color getColors5x5x5' to the startup.rc file.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    83
    (beside 5x5x5, there are various other size combinations available).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    84
    However, doing so may make things worse when displaying bitmap images, since this
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    85
    preallocated table may steal colors from the image ...
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    86
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    87
    [Instance variables:]
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    88
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    89
      red             <Integer>       the red component (0..MaxValue)
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    90
      green           <Integer>       the green component (0..MaxValue)
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    91
      blue            <Integer>       the blue component (0..MaxValue)
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    92
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    93
      device          <Device>        the device I am on, or nil
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    94
      colorId         <Object>        some device dependent identifier (or nil if dithered)
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    95
      ditherForm      <Form>          the Form to dither this color (if non-nil)
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    96
      writable        <Boolean>       true if this is for a writable color cell
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    97
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    98
    [Class variables:]
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    99
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   100
      MaxValue        <Integer>       r/g/b components are scaled relative to this maximum
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   101
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   102
      Lobby           <Registry>      all colors in use - keeps track of already allocated
6553
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   103
                                      colors for reuse and finalization.
7650
5781e05a6a1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7642
diff changeset
   104
                                      (don't use it: this will be moved to the device)
1229
249c0d78fd34 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1224
diff changeset
   105
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   106
      Cells           <Registry>      keeps track of allocated writable color cells
7650
5781e05a6a1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7642
diff changeset
   107
                                      (don't use it: this will be moved to the device)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   108
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   109
      FixColors       <Array>         preallocated colors for dithering on Display
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   110
      NumRedFix       <Integer>       number of distinct red values in FixColors
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   111
      NumGreenFix     <Integer>       number of distinct green values in FixColors
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   112
      NumBlueFix      <Integer>       number of distinct blue values in FixColors
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   113
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   114
      Black           <Color>         for fast return of black
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   115
      White           <Color>         for fast return of white
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   116
      Grey            <Color>         for fast return of grey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   117
      LightGrey       <Color>         for fast return of lightGrey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   118
      DarkGrey        <Color>         for fast return of darkGrey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   119
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   120
      Pseudo0         <Color>         a color with 0 as handle (for forms and bitblit)
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   121
      Pseudo1         <Color>         a color with 1 as handle (for forms)
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   122
      PseudoAll       <Color>         a color with allPlanes as handle (for bitblit)
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   123
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   124
      Red             <Color>         red, needed for dithering
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   125
      Green           <Color>         green, for dithering
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   126
      Blue            <Color>         blue, for dithering
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   127
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   128
      DitherColors    <Collection>    some preallocated colors for dithering
6553
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   129
                                      (kept, so they are available when needed)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   130
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   131
      RetryAllocation <Boolean>       this flag controls how a request for a
6553
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   132
                                      color should be handled which failed previously.
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   133
                                      I.e. a color is asked for, which was dithered
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   134
                                      the last time. Since it could happen, that in
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   135
                                      the meantime more colors became free, the request
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   136
                                      might succeed this time - however, your screen may
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   137
                                      look a bit funny, due to having both dithered and
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   138
                                      undithered versions around.
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   139
                                      The default is true, which means: do retry
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   140
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   141
    compatibility issues:
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   142
6553
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   143
        ST-80 seems to represent colors internally with scaled smallInteger
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   144
        components (this can be guessed from uses of
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   145
        scaledRed:scaledGreen:scaledBlue:). The main instance creation method is
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   146
        via 'ColorValue red:green:blue:', passing components in 0..1.
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   147
        In ST/X, component are internally represented as percent.
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   148
        For more compatibility (when subclassing color), these internals may
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   149
        change in the near future. For migration, a compatibility subclass
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   150
        called ColorValue is provided.
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   151
        After the change, Color will be renamed to ColorValue and Color
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   152
        be made a subclass of ColorValue (offering the 0..100 interface for
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   153
        backward compatibility).
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   154
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   155
    [see also:]
6553
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   156
        DeviceWorkstation
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   157
        GraphicsContext DeviceDrawable Form Image Colormap
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   158
        Font Cursor
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   159
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   160
    [author:]
6553
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   161
        Claus Gittinger
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   162
"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   163
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   164
1144
07f3de59864d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   165
!Color class methodsFor:'initialization'!
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   166
3903
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   167
allocateColorsIn:aColorVector on:aDevice
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   168
    "{ Pragma: +optSpace }"
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   169
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   170
    "preallocates a nR x nG x nB colorMap for later use in dithering.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   171
     Doing so has the advantage that the system will never run out of colors,
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   172
     however, colors may be either inexact or dithered."
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   173
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   174
    |clr round
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   175
     devClr|
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   176
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   177
    round := 0.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   178
    1 to:aColorVector size do:[:dstIndex |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   179
	clr := aColorVector at:dstIndex.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   180
	devClr := clr exactOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   181
	devClr isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   182
	    round == 0 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   183
		'Color [info]: scavenge to reclaim colors' infoPrintCR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   184
		ObjectMemory scavenge.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   185
		round := 1.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   186
		devClr := clr exactOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   187
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   188
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   189
	devClr isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   190
	    round == 1 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   191
		'Color [info]: collect garbage to reclaim colors' infoPrintCR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   192
		ObjectMemory performLowSpaceCleanup.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   193
		ObjectMemory garbageCollect; finalize.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   194
		round := 2.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   195
		devClr := clr exactOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   196
	   ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   197
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   198
	devClr isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   199
	    ColorAllocationFailSignal raiseErrorString:'failed to allocate fix color'.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   200
	    ^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   201
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   202
	aColorVector at:dstIndex put:devClr.
3903
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   203
    ].
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   204
!
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   205
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   206
colorCubeWithRed:nRed green:nGreen blue:nBlue
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   207
    "{ Pragma: +optSpace }"
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   208
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   209
    |nR "{Class: SmallInteger }"
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   210
     nG "{Class: SmallInteger }"
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   211
     nB "{Class: SmallInteger }"
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   212
     dR dG dB red green blue dstIndex clr round
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   213
     colorCube|
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   214
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   215
    nR := nRed.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   216
    nG := nGreen.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   217
    nB := nBlue.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   218
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   219
    dR := 100.0 / (nR - 1).
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   220
    dG := 100.0 / (nG - 1).
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   221
    dB := 100.0 / (nB - 1).
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   222
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   223
    colorCube := Array new:(nR * nG * nB).
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   224
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   225
    round := 0.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   226
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   227
    dstIndex := 1.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   228
    1 to:nR do:[:sR |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   229
	red := dR * (sR - 1).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   230
	1 to:nG do:[:sG |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   231
	    green := dG * (sG - 1).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   232
	    1 to:nB do:[:sB |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   233
		blue := dB * (sB - 1).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   234
		clr := self red:red green:green blue:blue.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   235
		colorCube at:dstIndex put:clr.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   236
		dstIndex := dstIndex + 1
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   237
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   238
	]
3903
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   239
    ].
3904
52925c65a8cc colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3903
diff changeset
   240
    ^ colorCube
3903
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   241
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   242
    "Created: 11.7.1996 / 17:55:32 / cg"
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   243
    "Modified: 10.1.1997 / 15:37:13 / cg"
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   244
!
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   245
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   246
flushDeviceColors
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   247
    "unassign all colors from their device"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   248
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   249
    self allInstances do:[:aColor |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   250
	aColor restored
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   251
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   252
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
   253
    "Modified: 24.2.1997 / 18:27:06 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   254
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   255
3240
c93e33069fb5 color reinitialization when coming up on another device
Claus Gittinger <cg@exept.de>
parents: 3213
diff changeset
   256
flushDeviceColorsFor:aDevice
c93e33069fb5 color reinitialization when coming up on another device
Claus Gittinger <cg@exept.de>
parents: 3213
diff changeset
   257
    self allInstancesDo:[:aColor |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   258
	aColor device == aDevice ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   259
	    aColor restored
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   260
	]
3240
c93e33069fb5 color reinitialization when coming up on another device
Claus Gittinger <cg@exept.de>
parents: 3213
diff changeset
   261
    ]
c93e33069fb5 color reinitialization when coming up on another device
Claus Gittinger <cg@exept.de>
parents: 3213
diff changeset
   262
!
c93e33069fb5 color reinitialization when coming up on another device
Claus Gittinger <cg@exept.de>
parents: 3213
diff changeset
   263
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   264
getColors6x6x4
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   265
    "{ Pragma: +optSpace }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   266
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   267
    "preallocates a 6x6x4 (144) colorMap and later uses those colors only.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   268
     Doing so has the advantage that the system will never run out of colors,
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   269
     however, colors may be either inexact or dithered."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   270
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   271
    self getColorsRed:6 green:6 blue:4
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   272
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   273
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   274
     Color getColors6x6x4
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   275
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   276
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   277
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   278
getColors6x6x5
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   279
    "{ Pragma: +optSpace }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   280
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   281
    "preallocates a 6x6x5 (180) colorMap and later uses those colors only.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   282
     Doing so has the advantage that the system will never run out of colors,
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   283
     however, colors may be either inexact or dithered."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   284
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   285
    self getColorsRed:6 green:6 blue:5
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   286
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   287
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   288
     Color getColors6x6x5
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   289
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   290
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   291
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   292
getColors6x6x6
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   293
    "{ Pragma: +optSpace }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   294
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   295
    "preallocates a 6x6x6 (196) colorMap and later uses those colors only.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   296
     Doing so has the advantage that the system will never run out of colors,
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   297
     however, colors may be either inexact or dithered."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   298
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   299
    self getColorsRed:6 green:6 blue:6
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   300
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   301
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   302
     Color getColors6x6x6
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   303
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   304
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   305
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   306
getColors6x7x4
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   307
    "{ Pragma: +optSpace }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   308
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   309
    "preallocates a 6x7x4 (168) colorMap and later uses those colors only.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   310
     Doing so has the advantage that the system will never run out of colors,
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   311
     however, colors may be either inexact or dithered."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   312
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   313
    self getColorsRed:6 green:7 blue:4
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   314
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   315
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   316
     Color getColors6x7x4
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   317
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   318
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   319
    "Created: 12.6.1996 / 17:41:57 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   320
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   321
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   322
getColors7x8x4
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   323
    "{ Pragma: +optSpace }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   324
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   325
    "preallocates a 7x8x4 (224) colorMap and later uses those colors only.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   326
     Doing so has the advantage that the system will never run out of colors,
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   327
     however, colors may be either inexact or dithered."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   328
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   329
    self getColorsRed:7 green:8 blue:4
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   330
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   331
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   332
     Color getColors7x8x4
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   333
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   334
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   335
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   336
getColorsRed:nRed green:nGreen blue:nBlue
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   337
    "{ Pragma: +optSpace }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   338
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   339
    "preallocates a nR x nG x nB colorMap for later use in dithering.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   340
     Doing so has the advantage that the system will never run out of colors,
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   341
     however, colors may be either inexact or dithered."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   342
2999
5e9272beef1b eliminated refs to Display - must use Screen current
Stefan Vogel <sv@exept.de>
parents: 2976
diff changeset
   343
    self getColorsRed:nRed green:nGreen blue:nBlue on:Screen current
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   344
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   345
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   346
     Color getColorsRed:2 green:2 blue:2
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   347
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   348
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   349
    "Modified: 11.7.1996 / 17:58:09 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   350
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   351
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   352
getColorsRed:nRed green:nGreen blue:nBlue on:aDevice
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   353
    "{ Pragma: +optSpace }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   354
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   355
    "preallocates a nR x nG x nB colorMap for later use in dithering.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   356
     Doing so has the advantage that the system will never run out of colors,
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   357
     however, colors may be either inexact or dithered."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   358
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   359
    |nR "{Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   360
     nG "{Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   361
     nB "{Class: SmallInteger }"
3903
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   362
     dR dG dB fixColors|
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   363
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   364
    aDevice visualType == #TrueColor ifTrue:[^ self].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   365
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   366
    nR := nRed.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   367
    nG := nGreen.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   368
    nB := nBlue.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   369
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   370
    dR := 100.0 / (nR - 1).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   371
    dG := 100.0 / (nG - 1).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   372
    dB := 100.0 / (nB - 1).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   373
3903
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   374
    fixColors := self colorCubeWithRed:nRed green:nGreen blue:nBlue.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   375
    self allocateColorsIn:fixColors on:aDevice.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   376
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   377
    aDevice setFixColors:fixColors numRed:nR numGreen:nG numBlue:nB
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   378
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   379
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   380
     Color getColorsRed:2 green:2 blue:2 on:Display
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   381
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   382
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   383
    "Created: 11.7.1996 / 17:55:32 / cg"
1165
a5334c030820 new infoMessage scheme
Claus Gittinger <cg@exept.de>
parents: 1144
diff changeset
   384
    "Modified: 10.1.1997 / 15:37:13 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   385
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   386
1770
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   387
getGrayColors:nGray on:aDevice
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   388
    "{ Pragma: +optSpace }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   389
1770
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   390
    "preallocates nGray gray colors for later use in dithering.
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   391
     Doing so has the advantage that the system will never run out of colors,
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   392
     however, colors may be either inexact or dithered."
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   393
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   394
    |nG "{Class: SmallInteger }"
3903
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   395
     d fixGrayColors|
1770
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   396
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   397
    aDevice visualType == #TrueColor ifTrue:[^ self].
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   398
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   399
    nG := nGray.
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   400
    d := 100.0 / (nG - 1).
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   401
3903
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   402
    fixGrayColors := self grayColorVector:nGray.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   403
    self allocateColorsIn:fixGrayColors on:aDevice.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   404
1770
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   405
    aDevice setFixGrayColors:fixGrayColors
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   406
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   407
    "
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   408
     Color getGrayColors:16 on:Display
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   409
    "
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   410
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   411
    "Created: 23.6.1997 / 15:29:50 / cg"
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   412
!
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   413
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   414
getPrimaryColorsOn:aDevice
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   415
    "{ Pragma: +optSpace }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   416
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   417
    "preallocate the primary colors.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   418
     Doing so during early startup prevents us from running out
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   419
     of (at least those required) colors later.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   420
     This guarantees, that at least some colors are available
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   421
     for dithering (although, with only black, white, red, green and blue,
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   422
     dithered images look very poor)."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   423
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   424
    |colors white black red green blue clr dDepth
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   425
     lastPix "{ Class: SmallInteger }" |
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   426
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   427
    (aDevice notNil and:[aDevice ditherColors isNil]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   428
	white := (self red:100 green:100 blue:100) exactOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   429
	white colorId isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   430
	    'Color [warning]: cannot allocate white color' errorPrintCR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   431
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   432
	black := (self red:0 green:0 blue:0) exactOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   433
	black colorId isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   434
	    'Color [warning]: cannot allocate black color' errorPrintCR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   435
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   436
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   437
	aDevice hasColors ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   438
	    red := (self red:100 green:0 blue:0) exactOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   439
	    green := (self red:0 green:100 blue:0) exactOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   440
	    blue := (self red:0 green:0 blue:100) exactOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   441
	    (red isNil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   442
	    or:[green isNil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   443
	    or:[blue isNil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   444
	    or:[red colorId isNil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   445
	    or:[green colorId isNil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   446
	    or:[blue colorId isNil]]]]]) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   447
		'Color [warning]: cannot allocate primary color(s)' errorPrintCR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   448
		dDepth := aDevice depth.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   449
		((dDepth >= 4) and:[dDepth <= 8]) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   450
		    "/
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   451
		    "/ see what we have ...
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   452
		    "/
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   453
		    lastPix := (1 bitShift:dDepth) - 1.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   454
		    0 to:lastPix do:[:pixel |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   455
			colors := OrderedCollection new.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   456
			aDevice getRGBFrom:pixel into:[:r :g :b |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   457
			    colors add:((Color red:r green:g blue:b) exactOn:aDevice).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   458
			]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   459
		    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   460
		    red := (self red:100 green:0 blue:0) nearestOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   461
		    green := (self red:0 green:100 blue:0) nearestOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   462
		    blue := (self red:0 green:0 blue:100) nearestOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   463
		] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   464
		    aDevice hasColors:false.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   465
		    aDevice hasGrayscales:false.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   466
		    red := green := blue := nil.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   467
		]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   468
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   469
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   470
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   471
	aDevice == Display ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   472
	    "/ keep those around for the main display
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   473
	    White := white.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   474
	    Black := black.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   475
	    Red := red.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   476
	    Green := green.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   477
	    Blue := blue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   478
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   479
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   480
	aDevice visualType ~~ #TrueColor ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   481
	    aDevice hasColors ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   482
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   483
		"preallocate some colors for dithering
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   484
		 - otherwise, they may not be available when we need them ...
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   485
		 these are: black, white, grey50,
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   486
			    red, green, blue, yellow, cyan and magenta.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   487
		"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   488
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   489
		colors := OrderedCollection new.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   490
		clr := (self gray:50) exactOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   491
		(clr notNil and:[clr colorId notNil]) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   492
		    colors add:clr
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   493
		].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   494
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   495
		colors add:white; add:black; add:red; add:green; add:blue.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   496
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   497
		colors add:((self red:100 green:100 blue:0) exactOn:aDevice).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   498
		colors add:((self red:100 green:0 blue:100) exactOn:aDevice).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   499
		colors add:((self red:0 green:100 blue:100) exactOn:aDevice).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   500
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   501
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   502
	    aDevice hasGrayscales ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   503
		aDevice hasColors ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   504
		    colors := OrderedCollection new.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   505
		    colors add:((self gray:50) exactOn:aDevice).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   506
		    colors add:white; add:black.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   507
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   508
		].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   509
		colors add:((self gray:25) exactOn:aDevice).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   510
		colors add:((self gray:33) exactOn:aDevice).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   511
		colors add:((self gray:67) exactOn:aDevice).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   512
		colors add:((self gray:75) exactOn:aDevice).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   513
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   514
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   515
	    colors notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   516
		colors := colors select:[:clr | clr notNil and:[clr colorId notNil]].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   517
		aDevice setDitherColors:(colors asArray).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   518
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   519
	]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   520
    ]
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   521
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   522
    "Created: 11.7.1996 / 18:09:28 / cg"
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   523
    "Modified: 21.10.1997 / 02:42:28 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   524
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   525
3903
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   526
grayColorVector:nGray
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   527
    |nG "{Class: SmallInteger }"
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   528
     d gray dstIndex clr round
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   529
     grayColors|
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   530
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   531
    nG := nGray.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   532
    d := 100.0 / (nG - 1).
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   533
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   534
    grayColors := Array new:nG.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   535
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   536
    round := 0.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   537
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   538
    dstIndex := 1.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   539
    1 to:nG do:[:sG |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   540
	gray := d * (sG - 1).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   541
	clr := self red:gray green:gray blue:gray.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   542
	grayColors at:dstIndex put:clr.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   543
	dstIndex := dstIndex + 1
3903
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   544
    ].
3904
52925c65a8cc colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3903
diff changeset
   545
    ^ grayColors
3903
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   546
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   547
    "
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   548
     Color getGrayColors:16 on:Display
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   549
    "
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   550
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   551
    "Created: 23.6.1997 / 15:29:50 / cg"
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   552
!
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   553
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   554
initialize
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   555
    "setup tracker of known colors and initialize classvars with
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   556
     heavily used colors"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   557
2379
b2a844aabc93 made my signals children of a common colorErrorSignal
Claus Gittinger <cg@exept.de>
parents: 2375
diff changeset
   558
    ColorErrorSignal isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   559
	ColorErrorSignal := Error newSignalMayProceed:true.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   560
	ColorErrorSignal nameClass:self message:#colorErrorSignal.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   561
	ColorErrorSignal notifierString:'color error'.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   562
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   563
	ColorAllocationFailSignal := ColorErrorSignal newSignalMayProceed:true.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   564
	ColorAllocationFailSignal nameClass:self message:#colorAllocationFailSignal.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   565
	ColorAllocationFailSignal notifierString:'color allocation failed'.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   566
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   567
	InvalidColorNameSignal := ColorErrorSignal newSignalMayProceed:true.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   568
	InvalidColorNameSignal nameClass:self message:#invalidColorNameSignal.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   569
	InvalidColorNameSignal notifierString:'invalid color name'.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   570
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   571
	MaxValue := 16rFFFF.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   572
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   573
	"want to be informed when returning from snapshot"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   574
	ObjectMemory addDependent:self.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   575
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   576
	RetryAllocation := true.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   577
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   578
	DitherBits := self ditherBits.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   579
	self initializeStandardColorNames.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   580
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   581
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
   582
    "
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
   583
     Color initialize
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
   584
    "
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
   585
2379
b2a844aabc93 made my signals children of a common colorErrorSignal
Claus Gittinger <cg@exept.de>
parents: 2375
diff changeset
   586
    "Modified: / 30.9.1998 / 21:56:50 / cg"
1428
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   587
!
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   588
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   589
initializeStandardColorNames
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   590
    "{ Pragma: +optSpace }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   591
1428
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   592
    "setup standard colors"
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   593
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   594
    StandardColorValues := Dictionary new.
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   595
    #(
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   596
		'red'     (16rFFFF 16r0000 16r0000)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   597
		'green'   (16r0000 16rFFFF 16r0000)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   598
		'blue'    (16r0000 16r0000 16rFFFF)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   599
		'yellow'  (16rFFFF 16rFFFF 16r0000)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   600
		'magenta' (16rFFFF 16r0000 16rFFFF)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   601
		'cyan'    (16r0000 16rFFFF 16rFFFF)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   602
		'white'   (16rFFFF 16rFFFF 16rFFFF)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   603
		'black'   (16r0000 16r0000 16r0000)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   604
		'olive'   (16r7FFF 16r7FFF 16r0000)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   605
		'teal'    (16r0000 16r7FFF 16r7FFF)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   606
		'silver'  (16r6666 16r6666 16r6666)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   607
		'lime'    (16r3333 16rFFFF 16r0000)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   608
		'fuchsia' (16r9999 16r07ae 16rFFFF)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   609
		'aqua'    (16r199a 16rFFFF 16rFFFF)
1428
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   610
    ) pairWiseDo:[:name :value |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   611
	StandardColorValues at:name put:value
1428
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   612
    ].
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   613
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   614
    "
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   615
     Color initializeStandardColorNames
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   616
    "
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   617
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   618
    "Modified: 6.3.1997 / 02:28:58 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   619
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   620
3930
1eb2b8d1d01d +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
   621
standardDitherColorsForDepth8
3931
417757ef9695 +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3930
diff changeset
   622
    "return a set of colors useful for dithering (roughly 200 colors);
417757ef9695 +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3930
diff changeset
   623
     This includes a color cube and the main grayScale colors."
417757ef9695 +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3930
diff changeset
   624
3930
1eb2b8d1d01d +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
   625
    |ditherColors|
1eb2b8d1d01d +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
   626
1eb2b8d1d01d +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
   627
    ditherColors := self colorCubeWithRed:6 green:8 blue:4.
1eb2b8d1d01d +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
   628
    ditherColors := ditherColors ,
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   629
		    (Array
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   630
			with:(Color gray:20)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   631
			with:(Color gray:25)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   632
			with:(Color gray:40)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   633
			with:(Color gray:50)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   634
			with:(Color gray:60)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   635
			with:(Color gray:75)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   636
			with:(Color gray:80)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   637
			with:(Color rgbValue:16rBFBFBF)).
3930
1eb2b8d1d01d +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
   638
    ^ ditherColors
3931
417757ef9695 +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3930
diff changeset
   639
417757ef9695 +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3930
diff changeset
   640
    "
417757ef9695 +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3930
diff changeset
   641
     self standardDitherColorsForDepth8
417757ef9695 +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3930
diff changeset
   642
    "
3930
1eb2b8d1d01d +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
   643
!
1eb2b8d1d01d +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
   644
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   645
update:something with:aParameter from:changedObject
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   646
    "handle image restarts and flush any device resource handles"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   647
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   648
    (something == #returnFromSnapshot) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   649
	Display notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   650
	    Display visualType == #TrueColor ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   651
		Display releaseFixColors
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   652
	    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   653
		Display fixColors notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   654
		    ColorAllocationFailSignal handle:[:ex |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   655
			ex return
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   656
		    ] do:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   657
			|nR nG nB|
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   658
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   659
			nR := Display numFixRed.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   660
			nG := Display numFixGreen.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   661
			nB := Display numFixBlue.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   662
			Display releaseFixColors.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   663
			self getColorsRed:nR
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   664
				    green:nG
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   665
				     blue:nB
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   666
				       on:Display
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   667
		    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   668
		]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   669
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   670
	]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   671
    ]
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   672
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   673
    "Created: 15.6.1996 / 15:14:03 / cg"
1370
37dfdffdd4b6 getPrimaryColors now invoked from device
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
   674
    "Modified: 24.2.1997 / 22:08:05 / cg"
4535
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   675
!
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   676
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   677
vgaColors
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   678
    "{ Pragma: +optSpace }"
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   679
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   680
    |colors|
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   681
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   682
    colors := Array new:16.
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   683
    colors at:1 put:(Color rgbValue:16rFFFFFF).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   684
    colors at:2 put:(Color rgbValue:16rC0C0C0).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   685
    colors at:3 put:(Color rgbValue:16r808080).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   686
    colors at:4 put:(Color rgbValue:16r000000).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   687
    colors at:5 put:(Color rgbValue:16rFF0000).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   688
    colors at:6 put:(Color rgbValue:16r800000).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   689
    colors at:7 put:(Color rgbValue:16r008000).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   690
    colors at:8 put:(Color rgbValue:16r00FF00).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   691
    colors at:9 put:(Color rgbValue:16r0000FF).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   692
    colors at:10 put:(Color rgbValue:16r000080).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   693
    colors at:11 put:(Color rgbValue:16rFF00FF).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   694
    colors at:12 put:(Color rgbValue:16r800080).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   695
    colors at:13 put:(Color rgbValue:16rFFFF00).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   696
    colors at:14 put:(Color rgbValue:16r808000).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   697
    colors at:15 put:(Color rgbValue:16r00FFFF).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   698
    colors at:16 put:(Color rgbValue:16r008080).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   699
    ^ colors
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   700
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   701
    "Created: / 07-07-2006 / 13:36:15 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   702
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   703
1144
07f3de59864d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   704
!Color class methodsFor:'instance creation'!
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   705
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   706
allColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   707
    "return a special color which, when used for bit-blitting will
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   708
     behave like a all-1-color (i.e. have a device-pixel value of all-1s)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   709
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   710
    PseudoAll isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   711
	PseudoAll := self basicNew setColorId:-1
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   712
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   713
    ^ PseudoAll
1238
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
   714
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
   715
    "Modified: 17.1.1997 / 00:05:36 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   716
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   717
2455
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   718
bgrValue:bgr
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   719
    "return a color from a 24bit BGR value (intentionally not RGB);
2455
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   720
     The value is composed of b<<16 + g<<8 + r.
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   721
     (this byte-order is sometimes encountered with windows systems (progs)"
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   722
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   723
    |r g b|
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   724
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   725
    b := (bgr bitShift:-16) bitAnd:16rFF.
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   726
    g := (bgr bitShift:-8) bitAnd:16rFF.
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   727
    r := (bgr) bitAnd:16rFF.
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   728
    ^ self redByte:r greenByte:g blueByte:b
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   729
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   730
!
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   731
1985
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
   732
blue: blue
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
   733
    "return a color from blue value;
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
   734
     the argument green is interpreted as percent (0..100)"
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
   735
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   736
    ^ here
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   737
	scaledRed:0 scaledGreen:0 scaledBlue:(blue * MaxValue // 100)
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   738
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   739
    "
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   740
     (Color blue:50) inspect
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   741
    "
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   742
1985
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
   743
!
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
   744
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   745
brightness:brightness
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   746
    "create a gray color with given brightness (0..1).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   747
     ST-80 compatibility."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   748
3264
ab71c2bd250f fixed #brightness:
Claus Gittinger <cg@exept.de>
parents: 3240
diff changeset
   749
    ^ self scaledGray:(brightness * MaxValue) rounded
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   750
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   751
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   752
colorId:id
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   753
    "return a color for a specific colorid without associating it to a
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   754
     specific device. Use this only for bitmaps which want 0- or 1-color,
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   755
     or for bitblits if you want to manipulate a specific colorplane."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   756
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   757
    id == 0 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   758
	^ self noColor
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   759
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   760
    id == 1 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   761
	Pseudo1 isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   762
	    Pseudo1 := self basicNew setColorId:1
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   763
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   764
	^ Pseudo1
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   765
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   766
    id == -1 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   767
	^ self allColor
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   768
    ].
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
   769
1238
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
   770
    ^ self basicNew setColorId:id
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
   771
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
   772
    "Modified: 24.2.1997 / 18:16:30 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   773
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   774
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   775
cyan:c magenta:m yellow:y
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   776
    "return a color from cyan, magenta and yellow values.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   777
     all values are given in percent (0..100)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   778
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   779
    ^ self
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   780
	redPercent:(100 - c)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   781
	greenPercent:(100 - m)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   782
	bluePercent:(100 - y)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   783
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   784
    "
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   785
     Color cyan:100 magenta:0 yellow:0      - cyan
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   786
     Color cyan:100 magenta:100 yellow:0    - blue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   787
     Color cyan:100 magenta:0 yellow:100    - green
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   788
     Color cyan:100 magenta:100 yellow:100  - black
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   789
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   790
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   791
    "Modified: 11.6.1996 / 18:29:15 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   792
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   793
2888
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   794
cyan:c magenta:m yellow:y black:k
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   795
    "return a color from cyan, magenta, yellow and black values.
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   796
     all values are given in percent (0..100).
2889
143b466ea54b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
   797
     The value returned here is questionable.
143b466ea54b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
   798
     TODO: we loose information about one component here,
143b466ea54b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
   799
     and should actually return an instance of CMYK color, which keeps this
143b466ea54b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
   800
     information internally for later use (when saving)."
2888
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   801
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   802
    |scale r g b|
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   803
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   804
    "/ mhmh - how should we scale black into the components ?
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   805
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   806
    r := (100 - c).
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   807
    g := (100 - m).
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   808
    b := (100 - y).
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   809
    k ~~ 0 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   810
	"/ more black - darker
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   811
	scale := (100-k) max:0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   812
	scale := scale / 100.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   813
	r := r * scale.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   814
	g := g * scale.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   815
	b := b * scale.
2888
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   816
    ].
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   817
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   818
    ^ self redPercent:r greenPercent:g bluePercent:b
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   819
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   820
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   821
     Color cyan:100 magenta:0 yellow:0 black:0      - cyan
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   822
     Color cyan:100 magenta:0 yellow:0 black:50     - cyan darkened
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   823
     Color cyan:100 magenta:50 yellow:50 black:0    - cyan darkened
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   824
     Color cyan:0 magenta:0 yellow:0 black:100      - black
2888
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   825
    "
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   826
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   827
    "Modified: 11.6.1996 / 18:29:15 / cg"
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   828
!
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   829
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   830
dither:fraction between:color1 and:color2 on:aDevice
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   831
    "create a dithered Color which dithers between color1 and color2.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   832
     Fraction must be 0..1, color1 and color2 must be real (i.e. undithered)
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   833
     colors.
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   834
     Useful, if you explicitely want a dithered color
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   835
     (for example, to not use up too many colors, or for special effects)"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   836
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   837
    |newColor form c1 c2|
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   838
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   839
    "/ both must be true device colors
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   840
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   841
    c1 := color1 exactOn:aDevice.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   842
    c2 := color2 exactOn:aDevice.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   843
    (c1 isNil or:[c2 isNil]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   844
	'Color [warning]: monoDither failed - no real colors given' errorPrintCR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   845
	^ nil
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   846
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   847
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   848
    self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   849
	monoDitherFor:fraction
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   850
	between:c1
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   851
	and:c2
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   852
	on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   853
	into:[:c :f | newColor := c. form := f].
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   854
    newColor notNil ifTrue:[^ newColor].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   855
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   856
    form isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   857
	"/ cannot happen
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   858
	'Color [warning]: monoDither failed' errorPrintCR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   859
	^ nil
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   860
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   861
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   862
    newColor := self basicNew
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   863
			setScaledRed:nil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   864
			scaledGreen:nil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   865
			scaledBlue:nil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   866
			device:aDevice.
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   867
    newColor setDitherForm:form.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   868
    newColor setDevice:aDevice colorId:nil.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   869
    ^ newColor
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   870
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   871
    "
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   872
     (Color dither:0.25 between:Color red and:Color yellow on:Display) inspect
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   873
     (Color dither:0.5 between:Color red and:Color yellow on:Display) inspect
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   874
     (Color dither:0.75 between:Color red and:Color yellow on:Display) inspect
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   875
    "
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   876
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   877
    "Created: 3.5.1997 / 10:54:32 / cg"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   878
    "Modified: 3.5.1997 / 11:10:51 / cg"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   879
!
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   880
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   881
dithered:fraction between:color1 and:color2 on:aDevice
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   882
    "create a dithered Color which dithers between color1 and color2.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   883
     Fraction must be 0..1, color1 and color2 must be real (i.e. undithered)
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   884
     colors.
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   885
     Useful, if you explicitely want a dithered color
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   886
     (for example, to not use up too many colors, or for special effects)"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   887
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   888
    |newColor form c1 c2|
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   889
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   890
    "/ both must be true device colors
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   891
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   892
    c1 := color1 exactOn:aDevice.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   893
    c2 := color2 exactOn:aDevice.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   894
    (c1 isNil or:[c2 isNil]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   895
	'Color [warning]: monoDither failed - no real colors given' errorPrintCR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   896
	^ nil
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   897
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   898
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   899
    self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   900
	monoDitherFor:fraction
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   901
	between:c1
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   902
	and:c2
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   903
	on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   904
	into:[:c :f | newColor := c. form := f].
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   905
    newColor notNil ifTrue:[^ newColor].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   906
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   907
    form isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   908
	"/ cannot happen
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   909
	'Color [warning]: monoDither failed' errorPrintCR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   910
	^ nil
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   911
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   912
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   913
    newColor := self basicNew
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   914
			setScaledRed:nil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   915
			scaledGreen:nil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   916
			scaledBlue:nil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   917
			device:aDevice.
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   918
    newColor setDitherForm:form.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   919
    newColor setDevice:aDevice colorId:nil.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   920
    ^ newColor
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   921
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   922
    "
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   923
     |c|
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   924
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   925
     c := Color dithered:0.5 between:Color red and:Color yellow on:Display.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   926
     c inspect.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   927
    "
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   928
    "
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   929
     |v c|
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   930
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   931
     v := StandardSystemView new.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   932
     v extent:100@100.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   933
     v openAndWait.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   934
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   935
     c := Color dithered:0.5 between:Color red and:Color yellow on:Display.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   936
     v paint:c.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   937
     v fillRectangle:(10@10 corner:90@90).
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   938
    "
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   939
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   940
    "Created: 3.5.1997 / 10:54:32 / cg"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   941
    "Modified: 3.5.1997 / 11:13:12 / cg"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   942
!
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   943
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   944
fromUser
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   945
    "{ Pragma: +optSpace }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   946
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   947
    "let user point on a screen pixel.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   948
     Return an instance for that pixels color"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   949
4896
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   950
    ^ self fromUserWithFeedBack:nil
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   951
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   952
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   953
     Color fromUser
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   954
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   955
1976
fcf9afd72f0f Do not use obsolete method Color>>at:
Stefan Vogel <sv@exept.de>
parents: 1971
diff changeset
   956
    "Modified: / 31.8.1995 / 01:34:22 / claus"
fcf9afd72f0f Do not use obsolete method Color>>at:
Stefan Vogel <sv@exept.de>
parents: 1971
diff changeset
   957
    "Modified: / 9.1.1998 / 20:48:58 / stefan"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   958
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   959
4896
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   960
fromUserWithFeedBack:feedbackBlockOrNil
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   961
    "{ Pragma: +optSpace }"
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   962
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   963
    "let user point on a screen pixel.
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   964
     Return an instance for that pixels color"
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   965
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   966
    |p screen|
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   967
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   968
    screen := Screen current.
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   969
    p := screen
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   970
	    pointFromUserShowing:(Cursor crossHair)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   971
	    positionFeedback:[:p |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   972
				feedbackBlockOrNil notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   973
				    feedbackBlockOrNil value:(screen colorAt:p)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   974
				]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   975
			    ].
4896
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   976
    ^ screen colorAt:p
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   977
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   978
    "
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   979
     Color fromUserWithFeedBack:nil
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   980
    "
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   981
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   982
    "Modified: / 31.8.1995 / 01:34:22 / claus"
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   983
    "Modified: / 9.1.1998 / 20:48:58 / stefan"
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   984
!
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   985
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   986
green:green
1985
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
   987
    "return a color from green value;
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
   988
     the argument green is interpreted as percent (0..100)"
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
   989
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   990
    ^ here
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   991
	scaledRed:0 scaledGreen:(green * MaxValue // 100) scaledBlue:0
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   992
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   993
    "
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   994
     (Color green:50) inspect
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   995
    "
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   996
1985
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
   997
!
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
   998
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   999
hue:h light:l saturation:s
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1000
    "return a color from hue, light and saturation values.
7569
872e25793b0e #DOCUMENTATION by mawalch
mawalch
parents: 7430
diff changeset
  1001
     Hue is in degrees (0..360); light and saturation are
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1002
     in percent (0..100)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1003
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1004
    self withRGBFromHue:h light:l saturation:s do:[:r :g :b |
7569
872e25793b0e #DOCUMENTATION by mawalch
mawalch
parents: 7430
diff changeset
  1005
        ^ self
872e25793b0e #DOCUMENTATION by mawalch
mawalch
parents: 7430
diff changeset
  1006
            redPercent:(r clampBetween:0 and:100)
872e25793b0e #DOCUMENTATION by mawalch
mawalch
parents: 7430
diff changeset
  1007
            greenPercent:(g clampBetween:0 and:100)
872e25793b0e #DOCUMENTATION by mawalch
mawalch
parents: 7430
diff changeset
  1008
            bluePercent:(b clampBetween:0 and:100)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1009
    ]
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1010
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1011
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1012
     Color hue:0 light:50 saturation:100     - red
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1013
     Color hue:60 light:50 saturation:100    - yellow
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1014
     Color hue:120 light:50 saturation:100   - green
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1015
     Color hue:120 light:75 saturation:100   - bright green
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1016
     Color hue:120 light:25 saturation:100   - dark green
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1017
     Color hue:120 light:50 saturation:50    - greyish dark green
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1018
     Color hue:120 light:50 saturation:0     - b&w television dark green
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1019
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1020
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1021
    "Modified: 23.4.1996 / 13:22:22 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1022
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1023
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  1024
name:colorName
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1025
    "Return a named color (either exact or dithered).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1026
     Report an error, if aString is not a valid color name.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1027
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1028
     We hereby only guarantee that the 8 basic colors are supported
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1029
     on every device (X uses the Xcolor database, so it supports more
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1030
     names - other devices use a builtIn name table containing only the
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1031
     common names)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1032
     - use with special names (such as 'mediumGoldenRod' is not recommended).
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  1033
     Better use: #name:ifIllegal: and provide a fallBack."
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1034
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1035
    ^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1036
	name:colorName
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1037
	ifIllegal:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1038
	    InvalidColorNameSignal
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1039
		raiseRequestWith:colorName errorString:' : ' , colorName
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1040
	]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1041
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1042
    "
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1043
     Color name:'brown'
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1044
     Color name:'snow'
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1045
     Color name:'foo'
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1046
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1047
1534
73dd2c4b86c8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
  1048
    "Modified: 4.4.1997 / 15:32:33 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1049
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1050
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  1051
name:colorName ifIllegal:errorBlock
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1052
    "Return a named color (either exact or dithered).
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1053
     If aString is not a valid color name,
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  1054
     return the result from evaluating errorBlock."
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  1055
3399
02a4018f9549 care for no-display case when asking for a color-by-name
Claus Gittinger <cg@exept.de>
parents: 3396
diff changeset
  1056
    |triple r g b currScreen|
1428
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
  1057
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
  1058
    triple := StandardColorValues at:colorName asString ifAbsent:nil.
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
  1059
    triple notNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1060
	r := triple at:1.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1061
	g := triple at:2.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1062
	b := triple at:3.
1428
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
  1063
    ] ifFalse:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1064
	"/ ask display (if there is one) ...
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1065
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1066
	(Screen notNil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1067
	and:[ (currScreen := Screen current) notNil])
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1068
	ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1069
	    currScreen
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1070
		getScaledRGBFromName:colorName
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1071
		into:[:rr :gg :bb |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1072
		    r := rr.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1073
		    g := gg.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1074
		    b := bb
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1075
		].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1076
	]
1428
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
  1077
    ].
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  1078
    r notNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1079
	^ here scaledRed:r scaledGreen:g scaledBlue:b
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  1080
    ].
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  1081
    ^ errorBlock value
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1082
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1083
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1084
     Color name:'brown' ifIllegal:[Color black]
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1085
     Color name:'red' ifIllegal:[Color black]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1086
     Color name:'fuchsia' ifIllegal:[Color black]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1087
     Color name:'foo' ifIllegal:[Color black]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1088
     Color name:'foo' ifIllegal:[nil]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1089
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1090
1428
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
  1091
    "Modified: 6.3.1997 / 02:32:41 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1092
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1093
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1094
noColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1095
    "return a special color which, when used for bit-blitting will
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1096
     behave like a 0-color (i.e. have a device-pixel value of all-0s)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1097
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1098
     Pseudo0 isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1099
	 Pseudo0 := self basicNew setColorId:0
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1100
     ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1101
     ^ Pseudo0
1238
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  1102
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  1103
    "Modified: 17.1.1997 / 00:06:49 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1104
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1105
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  1106
red:red
1985
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
  1107
    "return a color from red value;
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
  1108
     the argument r is interpreted as percent (0..100)"
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
  1109
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1110
    ^ here
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1111
	scaledRed:(red * MaxValue // 100) scaledGreen:0 scaledBlue:0
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  1112
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  1113
    "
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  1114
     (Color red:50) inspect
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  1115
    "
1985
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
  1116
!
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
  1117
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1118
red:r green:g blue:b
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1119
    "return a color from red, green and blue values;
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1120
     the arguments, r, g and b are interpreted as percent (0..100)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1121
1348
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1122
    ^ here scaledRed:(r * MaxValue // 100)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1123
	   scaledGreen:(g * MaxValue // 100)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1124
	   scaledBlue:(b * MaxValue // 100)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1125
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1126
1237
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1127
redByte:r greenByte:g blueByte:b
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1128
    "return a color from red, green and blue values;
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1129
     the arguments, r, g and b are interpreted as byte values (0..255)"
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1130
1348
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1131
    ^ here scaledRed:(r * MaxValue // 255)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1132
	   scaledGreen:(g * MaxValue // 255)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1133
	   scaledBlue:(b * MaxValue // 255)
1237
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1134
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1135
    "
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1136
     (Color redByte:255 greenByte:0 blueByte:0) inspect
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1137
     (Color redByte:255 greenByte:255 blueByte:255) inspect
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1138
     (Color redByte:0 greenByte:0 blueByte:0) inspect
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1139
    "
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1140
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1141
    "Modified: 16.1.1997 / 23:32:43 / cg"
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1142
!
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1143
4789
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1144
redByte:r greenByte:g blueByte:b alphaByte:a
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1145
    "return a color from red, green, blue and alpha values;
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1146
     the arguments, r, g, b and a are interpreted as byte values (0..255)"
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1147
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1148
    ^ (here scaledRed:(r * MaxValue // 255)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1149
	   scaledGreen:(g * MaxValue // 255)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1150
	   scaledBlue:(b * MaxValue // 255))
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1151
	   alpha:(a / 255)
4789
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1152
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1153
    "
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1154
     (Color redByte:255 greenByte:0 blueByte:0 alphaByte:127) inspect
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1155
    "
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1156
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1157
    "Created: / 06-06-2007 / 11:15:47 / cg"
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1158
!
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1159
5144
d93391e9ea8d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5131
diff changeset
  1160
redFraction:r greenFraction:g blueFraction:b
d93391e9ea8d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5131
diff changeset
  1161
    "return a color from red, green and blue values;
d93391e9ea8d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5131
diff changeset
  1162
     the arguments, r, g and b are interpreted as fraction (0..1)"
d93391e9ea8d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5131
diff changeset
  1163
d93391e9ea8d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5131
diff changeset
  1164
    ^ here scaledRed:(r * MaxValue) rounded
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1165
	   scaledGreen:(g * MaxValue) rounded
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1166
	   scaledBlue:(b * MaxValue) rounded
5144
d93391e9ea8d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5131
diff changeset
  1167
!
d93391e9ea8d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5131
diff changeset
  1168
1348
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1169
redPercent:r greenPercent:g bluePercent:b
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1170
    "return a color from red, green and blue values;
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1171
     the arguments, r, g and b are interpreted as percent (0..100)"
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1172
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1173
    ^ here scaledRed:(r * MaxValue // 100)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1174
	   scaledGreen:(g * MaxValue // 100)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1175
	   scaledBlue:(b * MaxValue // 100)
1348
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1176
!
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1177
5127
40d2ac51c76d color conversions fixed (16bit images)
Claus Gittinger <cg@exept.de>
parents: 4986
diff changeset
  1178
redPercent:r greenPercent:g bluePercent:b alphaPercent:a
40d2ac51c76d color conversions fixed (16bit images)
Claus Gittinger <cg@exept.de>
parents: 4986
diff changeset
  1179
    "return a color from red, green and blue values;
40d2ac51c76d color conversions fixed (16bit images)
Claus Gittinger <cg@exept.de>
parents: 4986
diff changeset
  1180
     the arguments, r, g and b are interpreted as percent (0..100)"
40d2ac51c76d color conversions fixed (16bit images)
Claus Gittinger <cg@exept.de>
parents: 4986
diff changeset
  1181
40d2ac51c76d color conversions fixed (16bit images)
Claus Gittinger <cg@exept.de>
parents: 4986
diff changeset
  1182
    ^ (here scaledRed:(r * MaxValue // 100)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1183
	   scaledGreen:(g * MaxValue // 100)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1184
	   scaledBlue:(b * MaxValue // 100))
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1185
	   alpha:(a * 255 // 100)
5127
40d2ac51c76d color conversions fixed (16bit images)
Claus Gittinger <cg@exept.de>
parents: 4986
diff changeset
  1186
!
40d2ac51c76d color conversions fixed (16bit images)
Claus Gittinger <cg@exept.de>
parents: 4986
diff changeset
  1187
3956
74f5434f3e38 +redShort:greenShort:blueShort:
Claus Gittinger <cg@exept.de>
parents: 3935
diff changeset
  1188
redShort:r greenShort:g blueShort:b
74f5434f3e38 +redShort:greenShort:blueShort:
Claus Gittinger <cg@exept.de>
parents: 3935
diff changeset
  1189
    "return a color from red, green and blue short values;
74f5434f3e38 +redShort:greenShort:blueShort:
Claus Gittinger <cg@exept.de>
parents: 3935
diff changeset
  1190
     the arguments, r, g and b are interpreted as unsigned short values (0..16rFFFF)"
74f5434f3e38 +redShort:greenShort:blueShort:
Claus Gittinger <cg@exept.de>
parents: 3935
diff changeset
  1191
74f5434f3e38 +redShort:greenShort:blueShort:
Claus Gittinger <cg@exept.de>
parents: 3935
diff changeset
  1192
    ^ here scaledRed:(r * MaxValue // 16rFFFF)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1193
	   scaledGreen:(g * MaxValue // 16rFFFF)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1194
	   scaledBlue:(b * MaxValue // 16rFFFF)
3956
74f5434f3e38 +redShort:greenShort:blueShort:
Claus Gittinger <cg@exept.de>
parents: 3935
diff changeset
  1195
74f5434f3e38 +redShort:greenShort:blueShort:
Claus Gittinger <cg@exept.de>
parents: 3935
diff changeset
  1196
    "
74f5434f3e38 +redShort:greenShort:blueShort:
Claus Gittinger <cg@exept.de>
parents: 3935
diff changeset
  1197
     (Color redShort:16rFFFF greenShort:0 blueShort:0) inspect
74f5434f3e38 +redShort:greenShort:blueShort:
Claus Gittinger <cg@exept.de>
parents: 3935
diff changeset
  1198
    "
74f5434f3e38 +redShort:greenShort:blueShort:
Claus Gittinger <cg@exept.de>
parents: 3935
diff changeset
  1199
!
74f5434f3e38 +redShort:greenShort:blueShort:
Claus Gittinger <cg@exept.de>
parents: 3935
diff changeset
  1200
1859
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1201
rgbValue:rgb
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  1202
    "return a color from a 24bit RGB value;
1859
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1203
     The value is composed of r<<16 + g<<8 + b."
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1204
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1205
    |r g b|
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1206
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1207
    r := (rgb bitShift:-16) bitAnd:16rFF.
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1208
    g := (rgb bitShift:-8) bitAnd:16rFF.
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1209
    b := (rgb) bitAnd:16rFF.
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1210
    ^ self redByte:r greenByte:g blueByte:b
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1211
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1212
    "
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1213
     (Color rgbValue:16rFF0000) inspect
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1214
     (Color rgbValue:16r00FF00) inspect
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1215
     (Color rgbValue:16r0000FF) inspect
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1216
     (Color rgbValue:16rFF00FF) inspect
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1217
    "
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1218
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1219
    "Modified: 13.8.1997 / 20:24:37 / cg"
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1220
!
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1221
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1222
scaledGray:aGrayValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1223
    "return a gray color with a scaled gray value (0..MaxValue)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1224
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1225
    ^ self scaledRed:aGrayValue scaledGreen:aGrayValue scaledBlue:aGrayValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1226
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1227
    "Modified: 11.6.1996 / 16:31:42 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1228
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1229
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1230
scaledRed:r scaledGreen:g scaledBlue:b
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1231
    "return a color from red, green and blue values;
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1232
     the arguments, r, g and b are interpreted as (0..MaxValue)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1233
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1234
    |newColor|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1235
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1236
"/    "look if already known"
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1237
"/
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1238
"/    aDevice deviceColors do:[:aColor |
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1239
"/        (r == aColor scaledRed) ifTrue:[
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1240
"/            (g == aColor scaledGreen) ifTrue:[
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1241
"/                (b == aColor scaledBlue) ifTrue:[
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1242
"/                    ^ aColor
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1243
"/                ]
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1244
"/            ]
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1245
"/        ]
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1246
"/    ].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1247
    newColor := self basicNew setScaledRed:r scaledGreen:g scaledBlue:b device:nil.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1248
    ^ newColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1249
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1250
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1251
     (Color red:100 green:0 blue:0) inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1252
     (Color red:100 green:50 blue:50) inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1253
     (Color red:50 green:0 blue:0) inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1254
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1255
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1256
    "Modified: 2.5.1996 / 13:40:51 / stefan"
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1257
    "Modified: 24.2.1997 / 18:18:47 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1258
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1259
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1260
variableColorOn:aDevice
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1261
    "return a variable color (i.e. allocate a writable colorcell) on
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1262
     aDevice. The returned color is not shared and its rgb components
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1263
     are initially undefined. The components can be set to any value
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1264
     using Color>>red:green:blue. Care should be taken, since this call
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1265
     fails on static color or b&w displays (i.e. it depends on the device
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1266
     being a pseudocolor device using colormaps).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1267
     Returns nil, if no more colorCells are available, or the display
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1268
     uses a fix colormap (i.e. is a directColor or staticColor pr b&w device).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1269
     Because of this, you should not write your application to depend on
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1270
     writable colors to be available (i.e. add fallBack code to redraw
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1271
     things in another color)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1272
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1273
    |c lutIndex|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1274
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1275
    lutIndex := aDevice colorCell.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1276
    lutIndex isNil ifTrue:[^ nil].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1277
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1278
    c := self new.
1934
fe7d73fe0df4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1929
diff changeset
  1279
    c setDevice:aDevice colorId:lutIndex writable:true.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1280
    Cells isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1281
	Cells := Registry new.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1282
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1283
    Cells register:c.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1284
    ^ c
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1285
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1286
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1287
     |l cell|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1288
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1289
     l := Label new.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1290
     l label:('hello' asText allBold).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1291
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1292
     cell := Color variableColorOn:(Screen current).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1293
     l foregroundColor:cell.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1294
     [
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1295
	1 to:40 do:[:i|
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1296
	    i odd ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1297
		cell red:100 green:0 blue:0
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1298
	    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1299
		cell red:0 green:0 blue:0
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1300
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1301
	    Display flush.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1302
	    (Delay forSeconds:0.4) wait
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1303
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1304
	l destroy.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1305
     ] fork.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1306
     l open
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1307
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1308
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1309
    "Modified: 13.5.1996 / 12:41:53 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1310
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1311
3892
fb62c937c134 category
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  1312
!Color class methodsFor:'Compatibility-Squeak'!
2934
33b1988133d3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
  1313
3021
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1314
colorPaletteForDepth: depth extent: chartExtent
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1315
	"Squeak mimicri:
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1316
	 Display a palette of colors sorted horizontally by hue and vertically by lightness. Useful for eyeballing the color gamut of the display, or for choosing a color interactively."
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1317
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1318
	"Note: It is slow to build this palette, so it should be cached for quick access."
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1319
	"(Color colorPaletteForDepth: 16 extent: 190@60) display"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1320
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1321
	| basicHue x y c startHue palette transHt vSteps transCaption grayWidth hSteps |
3324
a4244f890bde *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3309
diff changeset
  1322
a4244f890bde *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3309
diff changeset
  1323
"/        Smalltalk isSmalltalkX ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1324
	    palette := Image extent:chartExtent depth:24.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1325
	    palette photometric:#rgb.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1326
	    palette bits:(ByteArray new:chartExtent x * chartExtent y * 3).
3324
a4244f890bde *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3309
diff changeset
  1327
"/        ] ifFalse:[
a4244f890bde *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3309
diff changeset
  1328
"/            palette := Form extent: chartExtent depth: depth.
a4244f890bde *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3309
diff changeset
  1329
"/        ].
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1330
	transCaption := "(DisplayText text: 'no color' asText textStyle: (TextConstants at: #ComicPlain)) form storeString"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1331
		(Form extent: 34@9 depth: 1
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1332
			fromArray: #(0 0 256 0 256 0 3808663859 2147483648 2491688266 2147483648 2491688266 0 2491688266 0 2466486578 0 0 0)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1333
			offset: 0@0).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1334
	transHt := transCaption height.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1335
	palette fillWhite: (0@0 extent: palette width@transHt).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1336
	palette fillBlack: (0@transHt extent: palette width@1).
3021
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1337
"/        transCaption displayOn: palette at: palette boundingBox topCenter - ((transCaption width // 2)@0).
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1338
	grayWidth := 10.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1339
	startHue := 338.0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1340
	vSteps := palette height - transHt // 2.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1341
	hSteps := palette width - grayWidth.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1342
	x := 0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1343
	startHue to: startHue + 360.0 by: 360.0/hSteps do: [:h |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1344
		basicHue := Color h: h asFloat s: 1.0 v: 1.0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1345
		y := transHt+1.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1346
		0 to: vSteps do: [:n |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1347
			c := basicHue mixed: (n asFloat / vSteps asFloat) with: Color white.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1348
			palette fill: (x@y extent: 1@1) fillColor: c.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1349
			y := y + 1].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1350
		1 to: vSteps do: [:n |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1351
			c := Color black mixed: (n asFloat / vSteps asFloat) with: basicHue.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1352
			y < palette height ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1353
			    palette fill: (x@y extent: 1@1) fillColor: c.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1354
			].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1355
			y := y + 1].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1356
		x := x + 1].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1357
	y := transHt + 1.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1358
	1 to: vSteps * 2 do: [:n |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1359
		c := Color black mixed: (n asFloat / (vSteps*2) asFloat) with: Color white.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1360
		palette fill: (x@y corner:(((x@y) +(10@1))min:palette extent)) fillColor: c.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1361
		y := y + 1].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1362
	^ palette
3021
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1363
!
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1364
3024
a565d805ad69 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
  1365
fromRgbTriplet:aTriple
a565d805ad69 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
  1366
    ^ self r:(aTriple at:1)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1367
	   g:(aTriple at:2)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1368
	   b:(aTriple at:3)
3024
a565d805ad69 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
  1369
a565d805ad69 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
  1370
!
a565d805ad69 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
  1371
3021
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1372
h:hue s:saturation v:brightness
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1373
    "Squeak mimicri:
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1374
     Create a color with the given hue, saturation, and brightness.
3021
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1375
     Hue is given as the angle in degrees of the color on the color circle,
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1376
     where red is zero degrees.
3021
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1377
     Saturation and brightness are numbers in [0.0..1.0],
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1378
     where larger values are more saturated or brighter colors.
3021
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1379
     For example, (Color h: 0 s: 1 v: 1) is pure red."
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1380
7411
9fdde791fac0 #DOCUMENTATION by mawalch
mawalch
parents: 7403
diff changeset
  1381
    "Note: By convention, brightness is abbreviated 'v' to avoid confusion with blue."
3021
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1382
3024
a565d805ad69 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
  1383
    ^ self hue:hue light:(brightness*50) saturation:(saturation*100)
a565d805ad69 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
  1384
!
a565d805ad69 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
  1385
4986
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1386
indexedColors
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1387
    "Build an array of colors corresponding to the fixed colormap used
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1388
     for display depths of 1, 2, 4, or 8 bits."
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1389
    "Color indexedColors"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1390
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1391
    | a index grayVal |
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1392
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1393
    a := Array new: 256.
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1394
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1395
    "1-bit colors (monochrome)"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1396
    a at: 1 put: (Color r: 1.0 g: 1.0 b: 1.0).  "white or transparent"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1397
    a at: 2 put: (Color r: 0.0 g: 0.0 b: 0.0).  "black"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1398
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1399
    "additional colors for 2-bit color"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1400
    a at: 3 put: (Color r: 1.0 g: 1.0 b: 1.0).  "opaque white"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1401
    a at: 4 put: (Color r: 0.5 g: 0.5 b: 0.5).  "1/2 gray"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1402
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1403
    "additional colors for 4-bit color"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1404
    a at:  5 put: (Color r: 1.0 g: 0.0 b: 0.0). "red"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1405
    a at:  6 put: (Color r: 0.0 g: 1.0 b: 0.0). "green"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1406
    a at:  7 put: (Color r: 0.0 g: 0.0 b: 1.0). "blue"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1407
    a at:  8 put: (Color r: 0.0 g: 1.0 b: 1.0). "cyan"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1408
    a at:  9 put: (Color r: 1.0 g: 1.0 b: 0.0). "yellow"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1409
    a at: 10 put: (Color r: 1.0 g: 0.0 b: 1.0). "magenta"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1410
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1411
    a at: 11 put: (Color r: 0.125 g: 0.125 b: 0.125).       "1/8 gray"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1412
    a at: 12 put: (Color r: 0.25 g: 0.25 b: 0.25).      "2/8 gray"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1413
    a at: 13 put: (Color r: 0.375 g: 0.375 b: 0.375).       "3/8 gray"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1414
    a at: 14 put: (Color r: 0.625 g: 0.625 b: 0.625).       "5/8 gray"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1415
    a at: 15 put: (Color r: 0.75 g: 0.75 b: 0.75).      "6/8 gray"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1416
    a at: 16 put: (Color r: 0.875 g: 0.875 b: 0.875).       "7/8 gray"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1417
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1418
    "additional colors for 8-bit color"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1419
    "24 more shades of gray (1/32 increments but not repeating 1/8 increments)"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1420
    index := 17.
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1421
    1 to: 31 do: [:v |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1422
	(v \\ 4) = 0 ifFalse: [
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1423
	    grayVal := v / 32.0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1424
	    a at: index put: (Color r: grayVal g: grayVal b: grayVal).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1425
	    index := index + 1]].
4986
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1426
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1427
    "The remainder of color table defines a color cube with six steps
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1428
     for each primary color. Note that the corners of this cube repeat
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1429
     previous colors, but this simplifies the mapping between RGB colors
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1430
     and color map indices. This color cube spans indices 40 through 255
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1431
     (indices 41-256 in this 1-based array)."
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1432
    0 to: 5 do: [:r |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1433
	0 to: 5 do: [:g |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1434
	    0 to: 5 do: [:b |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1435
		index := 41 + ((36 * r) + (6 * b) + g).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1436
		index > 256 ifTrue: [
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1437
		    self error: 'index out of range in color table compuation'].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1438
		a at: index put: (Color r: r g: g b: b range: 5)]]].
4986
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1439
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1440
    ^ a.
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1441
!
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1442
3893
0e96816ba790 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3892
diff changeset
  1443
paleBlue
0e96816ba790 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3892
diff changeset
  1444
    ^ self r:0.75 g:0.75 b:1
0e96816ba790 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3892
diff changeset
  1445
!
0e96816ba790 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3892
diff changeset
  1446
3024
a565d805ad69 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
  1447
pixelScreenForDepth: depth
3898
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1448
    "Return a 50% stipple containing alternating pixels of all-zeros and all-ones to be used as a mask at the given depth."
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1449
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1450
    | mask bits |
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1451
6584
f087c33d95db class: Color
Claus Gittinger <cg@exept.de>
parents: 6554
diff changeset
  1452
    (Smalltalk isSmalltalkX) ifTrue:[
f087c33d95db class: Color
Claus Gittinger <cg@exept.de>
parents: 6554
diff changeset
  1453
        depth == 1 ifTrue:[
f087c33d95db class: Color
Claus Gittinger <cg@exept.de>
parents: 6554
diff changeset
  1454
            ^ Form mediumGreyFormOn:Screen current
f087c33d95db class: Color
Claus Gittinger <cg@exept.de>
parents: 6554
diff changeset
  1455
        ].
f087c33d95db class: Color
Claus Gittinger <cg@exept.de>
parents: 6554
diff changeset
  1456
        self shouldImplement.
3898
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1457
    ].
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1458
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1459
    mask := (1 bitShift: depth) - 1.
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1460
    bits := 2 * depth.
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1461
    [bits >= 32] whileFalse: [
6584
f087c33d95db class: Color
Claus Gittinger <cg@exept.de>
parents: 6554
diff changeset
  1462
        mask := mask bitOr: (mask bitShift: bits).  "double the length of mask"
f087c33d95db class: Color
Claus Gittinger <cg@exept.de>
parents: 6554
diff changeset
  1463
        bits := bits + bits
3898
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1464
    ].
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1465
    ^ Bitmap with: mask with: mask bitInvert32
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1466
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1467
    "
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1468
     self pixelScreenForDepth: depth
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1469
    "
3021
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1470
!
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1471
2934
33b1988133d3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
  1472
r:redFraction g:greenFraction b:blueFraction
3021
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1473
    "Squeak mimicri:
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1474
     return a color from red, green and blue fractional values;
4789
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1475
     the arguments, r, g and b must be in (0..1)"
2934
33b1988133d3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
  1476
2937
4536e6de438a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
  1477
    ^ here scaledRed:(redFraction * MaxValue) rounded
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1478
	   scaledGreen:(greenFraction * MaxValue) rounded
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1479
	   scaledBlue:(blueFraction * MaxValue) rounded
4789
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1480
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1481
    "Modified: / 06-06-2007 / 11:19:53 / cg"
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1482
!
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1483
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1484
r:r g:g b:b alpha:alphaValue
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1485
    "return a color from red, green and blue values;
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1486
     the arguments, r, g, b and alpha must be in 0..1"
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1487
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1488
    ^ (self r:r g:g b:b) alpha:alphaValue
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1489
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1490
    "
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1491
     (Color r:1 g:0 b:0 alpha:0) inspect
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1492
     (Color r:0 g:1 b:0 alpha:0.5) inspect
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1493
     (Color r:0 g:0 b:1 alpha:1) inspect
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1494
    "
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1495
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1496
    "Created: / 06-06-2007 / 10:48:21 / cg"
3396
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1497
!
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1498
4202
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1499
r:r g:g b:b range:componentMax
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1500
    "return a color from red, green and blue values;
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1501
     the arguments, r, g and b are interpreted as values (0..componentMax)"
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1502
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1503
    ^ here scaledRed:(r * MaxValue // componentMax)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1504
	   scaledGreen:(g * MaxValue // componentMax)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1505
	   scaledBlue:(b * MaxValue // componentMax)
4202
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1506
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1507
    "
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1508
     (Color r:1023 g:0 b:0 range:1023) inspect
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1509
     (Color r:1023 g:1023 b:1023 range:1023) inspect
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1510
     (Color r:0 g:0 b:0 range:1023) inspect
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1511
    "
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1512
!
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1513
3396
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1514
showColors: colorList
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1515
	"Display the given collection of colors across the top of the Display."
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1516
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1517
	| w r |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1518
	w := Screen current width // colorList size.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1519
	r := 0@0 extent: w@((w min: 30) max: 10).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1520
	colorList do: [:c |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1521
		Screen current fill: r fillColor: c.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1522
		r := r translateBy: w@0].
3396
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1523
!
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1524
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1525
wheel: thisMany
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1526
    "Return a collection of thisMany colors evenly spaced around the color wheel."
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1527
    "Color showColors: (Color wheel: 12)"
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1528
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1529
    ^ Color wheel: thisMany saturation: 0.9 brightness: 0.7
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1530
!
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1531
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1532
wheel: thisMany saturation: s brightness: v
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1533
    "Return a collection of thisMany colors evenly spaced around the color wheel,
4789
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1534
     all of the given saturation and brightness."
3396
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1535
    "Color showColors: (Color wheel: 12 saturation: 0.4 brightness: 1.0)"
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1536
    "Color showColors: (Color wheel: 12 saturation: 0.8 brightness: 0.5)"
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1537
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1538
    ^ (Color h: 0.0 s: s v: v) wheel: thisMany
4789
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1539
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1540
    "Modified: / 06-06-2007 / 11:20:59 / cg"
2934
33b1988133d3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
  1541
! !
33b1988133d3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
  1542
1144
07f3de59864d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
  1543
!Color class methodsFor:'Signal constants'!
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1544
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1545
colorAllocationFailSignal
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1546
    "return the signal raised when a color allocation failed."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1547
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1548
    ^ ColorAllocationFailSignal
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1549
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1550
    "Created: 12.6.1996 / 17:44:49 / cg"
1269
f0777b2cc08a use a signal for invalid color names
Claus Gittinger <cg@exept.de>
parents: 1239
diff changeset
  1551
!
f0777b2cc08a use a signal for invalid color names
Claus Gittinger <cg@exept.de>
parents: 1239
diff changeset
  1552
2379
b2a844aabc93 made my signals children of a common colorErrorSignal
Claus Gittinger <cg@exept.de>
parents: 2375
diff changeset
  1553
colorErrorSignal
b2a844aabc93 made my signals children of a common colorErrorSignal
Claus Gittinger <cg@exept.de>
parents: 2375
diff changeset
  1554
    "return the parent signal of all color error signals."
b2a844aabc93 made my signals children of a common colorErrorSignal
Claus Gittinger <cg@exept.de>
parents: 2375
diff changeset
  1555
b2a844aabc93 made my signals children of a common colorErrorSignal
Claus Gittinger <cg@exept.de>
parents: 2375
diff changeset
  1556
    ^ ColorErrorSignal
b2a844aabc93 made my signals children of a common colorErrorSignal
Claus Gittinger <cg@exept.de>
parents: 2375
diff changeset
  1557
b2a844aabc93 made my signals children of a common colorErrorSignal
Claus Gittinger <cg@exept.de>
parents: 2375
diff changeset
  1558
    "Created: / 30.9.1998 / 21:56:04 / cg"
b2a844aabc93 made my signals children of a common colorErrorSignal
Claus Gittinger <cg@exept.de>
parents: 2375
diff changeset
  1559
!
b2a844aabc93 made my signals children of a common colorErrorSignal
Claus Gittinger <cg@exept.de>
parents: 2375
diff changeset
  1560
1269
f0777b2cc08a use a signal for invalid color names
Claus Gittinger <cg@exept.de>
parents: 1239
diff changeset
  1561
invalidColorNameSignal
f0777b2cc08a use a signal for invalid color names
Claus Gittinger <cg@exept.de>
parents: 1239
diff changeset
  1562
    "return the signal raised when an invalid color name is encountered"
f0777b2cc08a use a signal for invalid color names
Claus Gittinger <cg@exept.de>
parents: 1239
diff changeset
  1563
f0777b2cc08a use a signal for invalid color names
Claus Gittinger <cg@exept.de>
parents: 1239
diff changeset
  1564
    ^ InvalidColorNameSignal
f0777b2cc08a use a signal for invalid color names
Claus Gittinger <cg@exept.de>
parents: 1239
diff changeset
  1565
f0777b2cc08a use a signal for invalid color names
Claus Gittinger <cg@exept.de>
parents: 1239
diff changeset
  1566
    "Created: 24.1.1997 / 13:36:25 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1567
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1568
1144
07f3de59864d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
  1569
!Color class methodsFor:'accessing'!
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1570
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1571
allocatedColorsOn:aDevice
3833
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1572
    "return a collection of colors which have already been allocated
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1573
     on aDevice."
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1574
4176
40b359dfc293 Mark obsolete methods
Stefan Vogel <sv@exept.de>
parents: 4170
diff changeset
  1575
    <resource: #obsolete>
3833
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1576
    self obsoleteMethodWarning:'use #allocatedColorsOnDevice:'.
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1577
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1578
    ^ self allocatedColorsOnDevice:aDevice
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1579
!
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1580
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1581
allocatedColorsOnDevice:aDevice
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1582
    "return a collection of colors which have already been allocated
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1583
     on aDevice."
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1584
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1585
    |colors|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1586
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1587
    colors := OrderedCollection new.
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1588
    aDevice deviceColors do:[:clr |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1589
	clr colorId notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1590
	    colors add:clr
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1591
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1592
	    'Color [oops]: nil colorId in color' infoPrintCR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1593
	]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1594
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1595
    ^ colors asArray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1596
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1597
    "
3833
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1598
     Color allocatedColorsOnDevice:Display
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1599
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1600
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1601
    "Modified: 24.2.1997 / 18:16:14 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1602
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1603
1144
07f3de59864d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
  1604
!Color class methodsFor:'color space conversions'!
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1605
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1606
withHLSFromRed:r green:g blue:b do:aBlock
3543
240b9b32ec20 comments
Claus Gittinger <cg@exept.de>
parents: 3427
diff changeset
  1607
    "compute hls form rgb, evaluate aBlock with h,l and s as arguments.
240b9b32ec20 comments
Claus Gittinger <cg@exept.de>
parents: 3427
diff changeset
  1608
     r,g,b in 0..100
240b9b32ec20 comments
Claus Gittinger <cg@exept.de>
parents: 3427
diff changeset
  1609
     h in 0..360; l in 0..100; s in 0..100"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1610
6110
28bccabea00a class: Color
Claus Gittinger <cg@exept.de>
parents: 5965
diff changeset
  1611
    |max min r1 g1 b1 delta h l s divisor|
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1612
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1613
    r1 := r / 100.   "scale to  0..1"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1614
    g1 := g / 100.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1615
    b1 := b / 100.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1616
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1617
    max := (r1 max:g1) max:b1.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1618
    min := (r1 min:g1) min:b1.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1619
    l := (max + min) / 2.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1620
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1621
    max = min ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1622
	"achromatic, r=g=b"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1623
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1624
	s := 0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1625
	h := nil
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1626
    ] ifFalse:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1627
	l < 0.5 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1628
	    divisor := (max + min)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1629
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1630
	    divisor := (2 - max - min)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1631
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1632
	divisor = 0 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1633
	    s := 1.0
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1634
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1635
	    s := (max - min) / divisor
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1636
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1637
	"calc hue"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1638
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1639
	delta := max - min.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1640
	r1 = max ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1641
	    h := (g1 - b1) / delta
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1642
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1643
	    g1 = max ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1644
		h := 2 + ((b1 - r1) / delta)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1645
	    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1646
		h := 4 + ((r1 - g1) / delta)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1647
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1648
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1649
	h := h * 60.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1650
	h < 0 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1651
	    h := h + 360
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1652
	].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1653
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1654
    aBlock value:h value:(l * 100) value:(s * 100)
6110
28bccabea00a class: Color
Claus Gittinger <cg@exept.de>
parents: 5965
diff changeset
  1655
28bccabea00a class: Color
Claus Gittinger <cg@exept.de>
parents: 5965
diff changeset
  1656
    "Modified: / 27-07-2013 / 11:48:20 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1657
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1658
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1659
withHLSFromScaledRed:r scaledGreen:g scaledBlue:b do:aBlock
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1660
    "compute hls form rgb, evaluate aBlock with h,l and s as arguments"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1661
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1662
    ^ self withHLSFromRed:(r * 100.0 / MaxValue)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1663
		    green:(g * 100.0 / MaxValue)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1664
		     blue:(b * 100.0 / MaxValue)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1665
		       do:aBlock
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1666
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1667
    "Created: 11.6.1996 / 17:23:47 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1668
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1669
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1670
withRGBFromHue:h light:l saturation:s do:aBlock
3543
240b9b32ec20 comments
Claus Gittinger <cg@exept.de>
parents: 3427
diff changeset
  1671
    "compute rgb form hls, evaluate aBlock with r,g and b as arguments
240b9b32ec20 comments
Claus Gittinger <cg@exept.de>
parents: 3427
diff changeset
  1672
     r,g,b in 0..100
240b9b32ec20 comments
Claus Gittinger <cg@exept.de>
parents: 3427
diff changeset
  1673
     h in 0..360; l in 0..100; s in 0..100"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1674
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1675
    |valueFunc s1 l1 r g b m1 m2|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1676
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1677
    valueFunc := [:n1 :n2 :hIn |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1678
	|hue|
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1679
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1680
	hue := hIn.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1681
	hue > 360 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1682
	    hue := hue - 360
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1683
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1684
	    hue < 0 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1685
		hue := hue + 360
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1686
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1687
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1688
	hue < 60 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1689
	    n1 + ((n2 - n1) * hue / 60)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1690
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1691
	    hue < 180 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1692
		n2
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1693
	    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1694
		hue < 240 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1695
		    n1 + ((n2 - n1) * (240 - hue) / 60)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1696
		] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1697
		    n1
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1698
		]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1699
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1700
	]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1701
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1702
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1703
    "compute hls; h in 0..360; l 0..100; s 0..100"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1704
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1705
    s1 := s / 100.0.   "scale to  0..1"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1706
    l1 := l / 100.0.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1707
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1708
    l1 <= 0.5 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1709
	m2 := l1 * (1 + s1)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1710
    ] ifFalse:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1711
	m2 := l1 + s1 - (l1 * s1)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1712
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1713
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1714
    m1 := 2 * l1 - m2.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1715
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1716
    s1 = 0 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1717
	"achromatic, ignore hue"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1718
	r := g := b := l1
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1719
    ] ifFalse:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1720
	r := valueFunc value:m1 value:m2 value:h + 120.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1721
	g := valueFunc value:m1 value:m2 value:h.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1722
	b := valueFunc value:m1 value:m2 value:h - 120.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1723
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1724
    aBlock value:r*100 value:g*100 value:b*100
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1725
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1726
1144
07f3de59864d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
  1727
!Color class methodsFor:'constant colors'!
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1728
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1729
black
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1730
    "return the black color"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1731
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1732
    Black isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1733
	Black := self red:0 green:0 blue:0
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1734
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1735
    ^ Black
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1736
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1737
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1738
     Color black inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1739
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1740
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1741
    "Modified: 11.6.1996 / 15:55:31 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1742
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1743
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1744
blue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1745
    "return the blue color"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1746
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1747
    Blue isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1748
	Blue := self redPercent:0 greenPercent:0 bluePercent:100
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1749
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1750
    ^ Blue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1751
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1752
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1753
     Color blue inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1754
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1755
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1756
    "Modified: 23.4.1996 / 13:15:51 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1757
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1758
2962
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1759
brown
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1760
    ^ self redPercent:60 greenPercent:20 bluePercent:0
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1761
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1762
    "
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1763
     Color brown
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1764
    "
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1765
!
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1766
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1767
cyan
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1768
    "return the cyan color - ST-80 compatibility"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1769
2087
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1770
    ^ self cyan:100
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1771
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1772
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1773
     Color cyan inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1774
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1775
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1776
    "Modified: 23.4.1996 / 13:16:07 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1777
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1778
2087
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1779
cyan: cyan
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1780
    "return a cyan color;
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1781
     the argument cyan is interpreted as percent (0..100)"
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1782
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1783
     ^ self cyan:100 magenta:100-cyan yellow:100-cyan
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1784
2087
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1785
!
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1786
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1787
darkGray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1788
    "return the dark grey color (English version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1789
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1790
    DarkGrey isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1791
	DarkGrey := self grayPercent:33
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1792
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1793
    ^ DarkGrey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1794
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1795
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1796
     Color darkGray inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1797
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1798
1368
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  1799
    "Modified: 24.2.1997 / 21:33:11 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1800
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1801
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1802
darkGrey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1803
    "return the darkGrey color (US version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1804
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1805
    ^ self darkGray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1806
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1807
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1808
     Color darkGrey inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1809
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1810
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1811
    "Modified: 28.5.1996 / 20:47:14 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1812
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1813
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1814
gray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1815
    "return a medium grey color (US version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1816
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1817
    Grey isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1818
	Grey := self grayPercent:50
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1819
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1820
    ^ Grey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1821
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1822
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1823
     Color gray inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1824
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1825
1368
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  1826
    "Modified: 24.2.1997 / 21:33:19 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1827
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1828
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1829
gray:gray
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1830
    "return a gray color (US version).
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1831
     The argument, gray is interpreted as percent (0..100)."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1832
1348
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1833
    ^ self redPercent:gray greenPercent:gray bluePercent:gray
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1834
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1835
    "
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1836
     Color gray:25
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1837
    "
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1838
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1839
    "Modified: 28.5.1996 / 20:49:51 / cg"
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1840
!
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1841
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1842
grayPercent:gray
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1843
    "return a gray color (US version).
1348
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1844
     The argument, gray is interpreted as percent (0..100)."
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1845
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1846
    ^ self redPercent:gray greenPercent:gray bluePercent:gray
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1847
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1848
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1849
     Color gray:25
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1850
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1851
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1852
    "Modified: 28.5.1996 / 20:49:51 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1853
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1854
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1855
green
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1856
    "return green"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1857
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1858
    Green isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1859
	Green := self redPercent:0 greenPercent:100 bluePercent:0
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1860
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1861
    ^ Green
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1862
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1863
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1864
     Color green inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1865
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1866
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1867
    "Modified: 23.4.1996 / 13:23:08 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1868
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1869
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1870
grey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1871
    "return the grey color (English version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1872
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1873
    ^ self gray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1874
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1875
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1876
     Color grey inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1877
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1878
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1879
    "Modified: 28.5.1996 / 20:48:26 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1880
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1881
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1882
grey:grey
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1883
    "return a grey color (English version).
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1884
     The argument, grey is interpreted as percent (0..100)."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1885
1368
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  1886
    ^ self grayPercent:grey
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1887
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1888
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1889
     Color grey:25
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1890
     Color grey:12.5
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1891
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1892
1368
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  1893
    "Modified: 24.2.1997 / 21:33:28 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1894
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1895
5419
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  1896
greyByte:greyByte
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1897
    "return a grey color (English version).
5419
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  1898
     The argument, grey is interpreted as byte-value (0..255)."
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  1899
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  1900
    ^ self redByte:greyByte greenByte:greyByte blueByte:greyByte
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  1901
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  1902
    "
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  1903
     Color greyByte:127
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  1904
    "
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  1905
!
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  1906
2388
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1907
lightBlue
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1908
    "return a light blue color"
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1909
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1910
    ^ self redPercent:50 greenPercent:50 bluePercent:100
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1911
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1912
    "
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1913
     Color lightBlue inspect
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1914
    "
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1915
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1916
    "Modified: 23.4.1996 / 13:23:08 / cg"
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1917
!
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1918
2962
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1919
lightBrown
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1920
    ^ self brown lighter
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1921
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1922
    "
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1923
     Color lightBrown
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1924
    "
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1925
!
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1926
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1927
lightGray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1928
    "return the lightGrey color (US version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1929
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1930
    LightGrey isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1931
	LightGrey := self grayPercent:67
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1932
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1933
    ^ LightGrey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1934
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1935
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1936
     Color lightGray inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1937
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1938
1368
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  1939
    "Modified: 24.2.1997 / 21:33:41 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1940
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1941
2388
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1942
lightGreen
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1943
    "return a light green color"
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1944
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1945
    ^ self redPercent:50 greenPercent:100 bluePercent:50
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1946
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1947
    "
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1948
     Color lightGreen inspect
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1949
    "
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1950
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1951
    "Modified: 23.4.1996 / 13:23:08 / cg"
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1952
!
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1953
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1954
lightGrey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1955
    "return the lightGrey color (English version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1956
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1957
    ^ self lightGray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1958
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1959
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1960
     Color lightGrey inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1961
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1962
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1963
    "Modified: 28.5.1996 / 20:51:11 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1964
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1965
2388
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1966
lightRed
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1967
    "return a light red color"
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1968
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1969
    ^ self redPercent:100 greenPercent:50 bluePercent:50
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1970
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1971
    "
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1972
     Color lightRed inspect
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1973
    "
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1974
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1975
    "Modified: 23.4.1996 / 13:23:08 / cg"
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1976
!
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1977
2949
b747daf42e13 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2948
diff changeset
  1978
lightYellow
b747daf42e13 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2948
diff changeset
  1979
    ^ self yellow lighter
b747daf42e13 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2948
diff changeset
  1980
!
b747daf42e13 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2948
diff changeset
  1981
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1982
magenta
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1983
    "return the magenta color - ST-80 compatibility"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1984
2087
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1985
    ^ self magenta:100
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1986
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1987
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1988
     Color magenta inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1989
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1990
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1991
    "Modified: 23.4.1996 / 13:23:41 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1992
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1993
2087
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1994
magenta: magenta
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1995
    "return a magenta color;
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1996
     the argument magenta is interpreted as percent (0..100)"
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1997
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1998
     ^ self cyan:100-magenta magenta:100 yellow:100-magenta
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1999
2087
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  2000
!
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  2001
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2002
mediumGray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2003
    "return medium-grey color (US version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2004
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2005
    ^ self gray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2006
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2007
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2008
     Color mediumGray inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2009
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2010
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2011
    "Created: 23.4.1996 / 13:24:17 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2012
    "Modified: 28.5.1996 / 20:51:21 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2013
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2014
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2015
mediumGrey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2016
    "return medium-grey color (English version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2017
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2018
    ^ self gray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2019
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2020
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2021
     Color mediumGrey inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2022
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2024
    "Modified: 28.5.1996 / 20:51:24 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2025
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2026
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2027
orange
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2028
    "return the orange color - ST-80 compatibility"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2029
7642
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2030
    Orange isNil ifTrue:[
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2031
        Orange := self redPercent:100 greenPercent:50 bluePercent:0.
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2032
    ].
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2033
    ^ Orange
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2034
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2035
    "
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2036
     Color orange inspect
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2037
    "
2077
442b9763111c #orange should return an orange color and not a brown color
tz
parents: 2071
diff changeset
  2038
!
442b9763111c #orange should return an orange color and not a brown color
tz
parents: 2071
diff changeset
  2039
442b9763111c #orange should return an orange color and not a brown color
tz
parents: 2071
diff changeset
  2040
orange: orange
442b9763111c #orange should return an orange color and not a brown color
tz
parents: 2071
diff changeset
  2041
    "return a orange color;
442b9763111c #orange should return an orange color and not a brown color
tz
parents: 2071
diff changeset
  2042
     the argument orange is interpreted as percent (0..100)"
442b9763111c #orange should return an orange color and not a brown color
tz
parents: 2071
diff changeset
  2043
442b9763111c #orange should return an orange color and not a brown color
tz
parents: 2071
diff changeset
  2044
     ^ self redPercent:orange greenPercent:orange/2 bluePercent:0
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2045
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2046
!
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2047
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2048
pink
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2049
    "return the pink color - ST-80 compatibility"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2050
1348
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  2051
     ^ self redPercent:100 greenPercent:0 bluePercent:100
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2052
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2053
    "Modified: 23.4.1996 / 13:29:38 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2054
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2055
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2056
red
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2057
    "return the red color"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2058
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2059
    Red isNil ifTrue:[
7642
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2060
        Red := self redPercent:100 greenPercent:0 bluePercent:0.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2061
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2062
    ^ Red
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2063
7642
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2064
    "
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2065
     Color red inspect
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2066
    "
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2067
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2068
    "Modified: 23.4.1996 / 13:29:44 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2069
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2070
2942
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2071
transparent
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2072
    "return the transparent-color"
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2073
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2074
    Transparent isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2075
	Transparent := TranslucentColor scaledRed:0 scaledGreen:0 scaledBlue:0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2076
	Transparent setAlphaByte:0.
2942
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2077
    ].
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2078
    ^ Transparent
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2079
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2080
    "
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2081
     self transparent
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2082
    "
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2083
!
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2084
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2085
veryDarkGray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2086
    "return a very dark-grey color (US version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2087
1368
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  2088
    ^ self grayPercent:13
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2089
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2090
    "Created: 23.4.1996 / 13:33:14 / cg"
1368
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  2091
    "Modified: 24.2.1997 / 21:33:52 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2092
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2093
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2094
veryDarkGrey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2095
    "return a very dark-grey color (English version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2096
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2097
    ^ self veryDarkGray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2098
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2099
    "Modified: 28.5.1996 / 20:52:49 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2100
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2101
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2102
veryLightGray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2103
    "return a very light-grey color (US version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2104
1368
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  2105
    ^ self grayPercent:87
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2106
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2107
    "Created: 23.4.1996 / 13:33:46 / cg"
1368
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  2108
    "Modified: 24.2.1997 / 21:33:58 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2109
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2110
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2111
veryLightGrey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2112
    "return a very light-grey color (English version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2113
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2114
    ^ self veryLightGray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2115
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2116
    "Modified: 28.5.1996 / 20:52:03 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2117
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2118
3030
11cb6482e344 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3024
diff changeset
  2119
veryVeryLightGray
11cb6482e344 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3024
diff changeset
  2120
    "return a very very light-grey color (US version ;-)"
11cb6482e344 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3024
diff changeset
  2121
11cb6482e344 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3024
diff changeset
  2122
    ^ self grayPercent:93
11cb6482e344 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3024
diff changeset
  2123
11cb6482e344 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3024
diff changeset
  2124
!
11cb6482e344 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3024
diff changeset
  2125
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2126
white
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2127
    "return the white-color"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2128
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2129
    White isNil ifTrue:[
7642
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2130
        White := self redPercent:100 greenPercent:100 bluePercent:100.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2131
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2132
    ^ White
7642
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2133
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2134
    "
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2135
     Color white inspect
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2136
    "
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2137
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2138
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2139
yellow
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2140
    "return the yellow color - ST-80 compatibility"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2141
7642
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2142
    Yellow isNil ifTrue:[
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2143
        Yellow := self redPercent:100 greenPercent:100 bluePercent:0.
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2144
    ].
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2145
    ^ Yellow
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2146
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2147
    "
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2148
     Color yellow inspect
9285a6619b7c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7639
diff changeset
  2149
    "
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2150
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2151
    "Modified: 23.4.1996 / 13:33:56 / cg"
2087
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  2152
!
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  2153
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  2154
yellow: yellow
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  2155
    "return a yellow color;
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  2156
     the argument yellow is interpreted as percent (0..100)"
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  2157
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  2158
     ^ self cyan:100-yellow magenta:100-yellow yellow:100
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2159
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2160
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2161
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2162
!Color class methodsFor:'obsolete'!
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2163
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2164
nameOrDither:colorName
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2165
    "return a named color - if the exact color is not available,
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2166
     return a dithered color. Report an error, if the colorname is
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2167
     illegal."
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2168
3427
609caad9766c Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3399
diff changeset
  2169
    <resource:#obsolete>
609caad9766c Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3399
diff changeset
  2170
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2171
    self obsoleteMethodWarning:'use #name:'.
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2172
    ^ self name:colorName
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2173
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2174
    "Modified: 16.1.1997 / 23:01:03 / cg"
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2175
!
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2176
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2177
nameOrDither:colorName ifIllegal:errorBlock
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2178
    "return a named color - if the exact color is not available,
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2179
     return a dithered color. If the colorname is illegal, return
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2180
     the value of evaluating errorBlock."
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2181
3427
609caad9766c Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3399
diff changeset
  2182
    <resource:#obsolete>
609caad9766c Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3399
diff changeset
  2183
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2184
    self obsoleteMethodWarning:'use #name:ifIllegal:'.
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2185
    ^ self name:colorName ifIllegal:errorBlock
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2186
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2187
    "Modified: 16.1.1997 / 23:01:32 / cg"
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2188
!
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2189
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2190
nameOrNearest:colorName
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2191
    "return a named color - or its nearest match"
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2192
3427
609caad9766c Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3399
diff changeset
  2193
    <resource:#obsolete>
609caad9766c Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3399
diff changeset
  2194
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2195
    self obsoleteMethodWarning:'use #name:'.
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2196
    ^ self name:colorName
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2197
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2198
    "Modified: 16.1.1997 / 23:02:18 / cg"
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2199
! !
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2200
1144
07f3de59864d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
  2201
!Color class methodsFor:'private'!
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2202
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2203
colorNearRed:r green:g blue:b on:aDevice
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2204
    "return a device color on aDevice with rgb values
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2205
     almost matching. If there is one, nil otherwise.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2206
     This is tried as a last chance before dithering.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2207
     The algorithm needs rework, the color components
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2208
     should be weighted according some theory :-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2209
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2210
    |bestColor minDelta diff rr rg rb dRed|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2211
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2212
"/    rr := (r * 3.0) rounded / 3.0.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2213
"/    rg := (g * 3.0) rounded / 3.0.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2214
"/    rb := (b * 3.0) rounded / 3.0.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2215
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2216
    rr := r rounded.                "round to 1%"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2217
    rg := (g * 2.0) rounded / 2.0.  "round to 0.5%"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2218
    rb := (b / 2) rounded * 2.      "round to 2%"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2219
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2220
    minDelta := 100*100*100.
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  2221
    aDevice deviceColors do:[:aColor |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2222
	dRed := rr - aColor red.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2223
	dRed < 10 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2224
	    diff := dRed asInteger squared
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2225
		    + (rg - aColor green) asInteger squared
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2226
		    + (rb - aColor blue) asInteger squared.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2227
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2228
	    diff < minDelta ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2229
		diff = 0 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2230
		    "got it"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2231
		    ^ aColor
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2232
		].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2233
		bestColor := aColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2234
		minDelta := diff
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2235
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2236
	]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2237
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2238
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2239
    "allow an error of 10% per component"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2240
    minDelta < (100+100+100) ifTrue:[ ^ bestColor ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2241
    ^ nil
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2242
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  2243
    "Modified: 24.2.1997 / 18:17:24 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2244
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2245
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2246
existingColorRed:r green:g blue:b on:aDevice
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2247
    "return a device color on aDevice with rgb values
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2248
     if there is one, nil otherwise."
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2249
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2250
    ^ self existingColorScaledRed:(r * MaxValue // 100)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2251
			scaledGreen:(g * MaxValue // 100)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2252
			scaledBlue:(b * MaxValue // 100)
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2253
!
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2254
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2255
existingColorScaledRed:r scaledGreen:g scaledBlue:b on:aDevice
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2256
    "return a device color on aDevice with rgb values
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2257
     if there is one, nil otherwise."
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2258
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2259
    aDevice deviceColors do:[:aColor |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2260
	(r == aColor scaledRed) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2261
	    (g == aColor scaledGreen) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2262
		(b == aColor scaledBlue) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2263
		    ^ aColor
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2264
		]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2265
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2266
	]
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2267
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2268
    ^ nil
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2269
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2270
    "Modified: 24.2.1997 / 18:17:35 / cg"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2271
! !
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2272
3878
28052cae1ad3 method category rename
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2273
!Color class methodsFor:'private-dithering'!
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2274
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2275
complexDitherRed:red green:green blue:blue on:aDevice into:aBlock
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2276
    "get a deep dither form for an rgb value.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2277
     Use all available colors for error dithering into a form."
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2278
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2279
    |errR errG errB f wantR wantG wantB clr
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2280
     dir   "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2281
     start "{ Class: SmallInteger }"
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2282
     end   "{ Class: SmallInteger }"
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  2283
     map
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  2284
     w     "{ Class: SmallInteger }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  2285
     h     "{ Class: SmallInteger }"|
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  2286
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  2287
"/    w := h := 32.
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  2288
"/    w := h := 4.
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  2289
    w := h := 2.
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2290
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2291
    errR := 0.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2292
    errG := 0.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2293
    errB := 0.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2294
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2295
    "get a form and clear it"
4785
ffb3b0caceb8 Change senders of obsolete messages Form>>...on: to ...onDevice:
Stefan Vogel <sv@exept.de>
parents: 4772
diff changeset
  2296
    f := Form width:w height:h depth:(aDevice depth) onDevice:aDevice.
7360
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2297
    f isNil ifTrue:[^ nil].
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2298
    map := IdentityDictionary new.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2299
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  2300
    0 to:(w-1) do:[:x |
7360
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2301
        x even ifTrue:[
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2302
            dir := 1.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2303
            start := 0.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2304
            end := (h-1).
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2305
        ] ifFalse:[
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2306
            dir := -1.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2307
            start := (h-1).
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2308
            end := 0.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2309
        ].
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2310
        start to:end by:dir do:[:y |
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2311
            wantR := red + errR.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2312
            wantR > MaxValue ifTrue:[
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2313
                wantR := MaxValue
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2314
            ] ifFalse:[ wantR < 0 ifTrue:[
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2315
                wantR := 0
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2316
            ]].
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2317
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2318
            wantG := green + errG.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2319
            wantG > MaxValue ifTrue:[
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2320
                wantG := MaxValue
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2321
            ] ifFalse:[ wantG < 0 ifTrue:[
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2322
                wantG := 0
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2323
            ]].
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2324
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2325
            wantB := blue + errB.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2326
            wantB > MaxValue ifTrue:[
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2327
                wantB := MaxValue
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2328
            ] ifFalse:[ wantB < 0 ifTrue:[
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2329
                wantB := 0
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2330
            ]].
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2331
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2332
            "find the nearest color"
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2333
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2334
            clr := Color quickNearestColorScaledRed:wantR scaledGreen:wantG scaledBlue:wantB on:aDevice.
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2335
"
7360
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2336
            clr := Color nearestColorScaledRed:wantR green:wantG blue:wantB on:aDevice.
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2337
"
7360
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2338
            clr isNil ifTrue:[
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2339
                clr := Color scaledRed:wantR scaledGreen:wantG scaledBlue:wantB.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2340
                clr brightness > 0.5 ifTrue:[
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2341
                    clr := Color white
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2342
                ] ifFalse:[
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2343
                    clr := Color black
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2344
                ].
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2345
                clr := clr onDevice:aDevice
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2346
"
7360
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2347
                ^ aBlock value:nil value:nil
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2348
"
7360
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2349
            ].
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2350
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2351
            f paint:clr.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2352
            f displayPointX:x y:y.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2353
            map at:clr colorId + 1 put:clr.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2354
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2355
            "compute the new error"
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2356
            errR := wantR - clr scaledRed.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2357
            errG := wantG - clr scaledGreen.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2358
            errB := wantB - clr scaledBlue.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  2359
        ].
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2360
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2361
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2362
    f colorMap:map.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2363
"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2364
'hard dither' printNewline.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2365
"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2366
    ^ aBlock value:nil value:f
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2367
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2368
    "Created: 3.5.1997 / 11:02:47 / cg"
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  2369
    "Modified: 19.10.1997 / 23:28:59 / cg"
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2370
!
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2371
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2372
ditherBits
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2373
    "return a dither pattern for x/64; x in 1..63"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2374
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2375
    ^ #(
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2376
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2377
	"/ 1in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2378
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2379
	  #[2r10000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2380
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2381
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2382
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2383
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2384
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2385
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2386
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2387
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2388
	"/ 2in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2389
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2390
	  #[2r10000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2391
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2392
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2393
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2394
	    2r00001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2395
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2396
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2397
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2398
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2399
	"/ 3in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2400
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2401
	  #[2r10000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2402
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2403
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2404
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2405
	    2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2406
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2407
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2408
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2409
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2410
	"/ 4in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2411
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2412
	  #[2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2413
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2414
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2415
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2416
	    2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2417
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2418
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2419
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2420
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2421
	"/ 5in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2422
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2423
	  #[2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2424
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2425
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2426
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2427
	    2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2428
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2429
	    2r00000010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2430
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2431
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2432
	"/ 6in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2433
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2434
	  #[2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2435
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2436
	    2r00100000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2437
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2438
	    2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2439
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2440
	    2r00000010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2441
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2442
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2443
	"/ 7in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2444
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2445
	  #[2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2446
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2447
	    2r00100010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2448
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2449
	    2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2450
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2451
	    2r00000010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2452
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2453
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2454
	"/ 8in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2455
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2456
	  #[2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2457
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2458
	    2r00100010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2459
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2460
	    2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2461
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2462
	    2r00100010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2463
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2464
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2465
	"/ 9in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2466
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2467
	  #[2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2468
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2469
	    2r00100010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2470
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2471
	    2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2472
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2473
	    2r10100010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2474
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2475
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2476
	"/ 10in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2477
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2478
	  #[2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2479
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2480
	    2r00101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2481
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2482
	    2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2483
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2484
	    2r10100010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2485
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2486
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2487
	"/ 11in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2488
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2489
	  #[2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2490
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2491
	    2r00101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2492
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2493
	    2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2494
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2495
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2496
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2497
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2498
	"/ 12in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2499
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2500
	  #[2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2501
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2502
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2503
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2504
	    2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2505
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2506
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2507
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2508
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2509
	"/ 13in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2510
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2511
	  #[2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2512
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2513
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2514
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2515
	    2r10101000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2516
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2517
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2518
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2519
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2520
	"/ 14in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2521
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2522
	  #[2r10001010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2523
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2524
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2525
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2526
	    2r10101000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2527
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2528
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2529
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2530
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2531
	"/ 15in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2532
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2533
	  #[2r10001010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2534
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2535
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2536
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2537
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2538
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2539
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2540
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2541
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2542
	"/ 16in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2543
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2544
	  #[2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2545
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2546
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2547
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2548
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2549
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2550
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2551
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2552
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2553
	"/ 17in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2554
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2555
	  #[2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2556
	    2r01000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2557
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2558
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2559
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2560
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2561
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2562
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2563
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2564
	"/ 18in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2565
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2566
	  #[2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2567
	    2r01000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2568
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2569
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2570
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2571
	    2r00000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2572
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2573
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2574
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2575
	"/ 19in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2576
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2577
	  #[2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2578
	    2r01000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2579
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2580
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2581
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2582
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2583
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2584
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2585
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2586
	"/ 20in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2587
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2588
	  #[2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2589
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2590
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2591
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2592
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2593
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2594
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2595
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2596
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2597
	"/ 21in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2598
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2599
	  #[2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2600
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2601
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2602
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2603
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2604
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2605
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2606
	    2r00000001]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2607
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2608
	"/ 22in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2609
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2610
	  #[2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2611
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2612
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2613
	    2r00010000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2614
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2615
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2616
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2617
	    2r00000001]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2618
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2619
	"/ 23in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2620
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2621
	  #[2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2622
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2623
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2624
	    2r00010001
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2625
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2626
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2627
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2628
	    2r00000001]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2629
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2630
	"/ 24in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2631
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2632
	  #[2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2633
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2634
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2635
	    2r00010001
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2636
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2637
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2638
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2639
	    2r00010001]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2640
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2641
	"/ 25in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2642
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2643
	  #[2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2644
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2645
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2646
	    2r00010001
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2647
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2648
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2649
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2650
	    2r01010001]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2651
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2652
	"/ 26in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2653
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2654
	  #[2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2655
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2656
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2657
	    2r00010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2658
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2659
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2660
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2661
	    2r01010001]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2662
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2663
	"/ 27in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2664
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2665
	  #[2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2666
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2667
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2668
	    2r00010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2669
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2670
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2671
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2672
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2673
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2674
	"/ 28in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2675
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2676
	  #[2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2677
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2678
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2679
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2680
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2681
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2682
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2683
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2684
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2685
	"/ 29in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2686
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2687
	  #[2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2688
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2689
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2690
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2691
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2692
	    2r01010100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2693
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2694
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2695
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2696
	"/ 30in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2697
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2698
	  #[2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2699
	    2r01000101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2700
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2701
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2702
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2703
	    2r01010100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2704
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2705
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2706
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2707
	"/ 31in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2708
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2709
	  #[2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2710
	    2r01000101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2711
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2712
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2713
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2714
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2715
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2716
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2717
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2718
	"/ 32in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2719
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2720
	  #[2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2721
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2722
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2723
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2724
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2725
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2726
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2727
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2728
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2729
	"/ 33in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2730
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2731
	  #[2r11101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2732
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2733
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2734
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2735
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2736
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2737
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2738
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2739
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2740
	"/ 34in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2741
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2742
	  #[2r11101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2743
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2744
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2745
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2746
	    2r10101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2747
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2748
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2749
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2750
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2751
	"/ 35in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2752
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2753
	  #[2r11101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2754
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2755
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2756
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2757
	    2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2758
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2759
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2760
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2761
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2762
	"/ 36in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2763
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2764
	  #[2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2765
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2766
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2767
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2768
	    2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2769
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2770
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2771
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2772
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2773
	"/ 37in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2774
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2775
	  #[2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2776
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2777
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2778
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2779
	    2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2780
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2781
	    2r10101011
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2782
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2783
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2784
	"/ 38in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2785
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2786
	  #[2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2787
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2788
	    2r10111010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2789
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2790
	    2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2791
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2792
	    2r10101011
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2793
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2794
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2795
	"/ 39in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2796
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2797
	  #[2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2798
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2799
	    2r10111011
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2800
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2801
	    2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2802
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2803
	    2r10101011
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2804
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2805
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2806
	"/ 40in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2807
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2808
	  #[2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2809
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2810
	    2r10111011
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2811
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2812
	    2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2813
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2814
	    2r10111011
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2815
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2816
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2817
	"/ 41in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2818
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2819
	  #[2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2820
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2821
	    2r10111011
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2822
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2823
	    2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2824
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2825
	    2r11111011
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2826
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2827
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2828
	"/ 42in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2829
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2830
	  #[2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2831
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2832
	    2r10111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2833
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2834
	    2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2835
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2836
	    2r11111011
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2837
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2838
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2839
	"/ 43in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2840
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2841
	  #[2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2842
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2843
	    2r10111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2844
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2845
	    2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2846
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2847
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2848
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2849
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2850
	"/ 44in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2851
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2852
	  #[2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2853
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2854
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2855
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2856
	    2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2857
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2858
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2859
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2860
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2861
	"/ 45in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2862
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2863
	  #[2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2864
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2865
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2866
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2867
	    2r11111110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2868
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2869
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2870
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2871
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2872
	"/ 46in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2873
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2874
	  #[2r11101111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2875
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2876
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2877
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2878
	    2r11111110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2879
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2880
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2881
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2882
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2883
	"/ 47in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2884
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2885
	  #[2r11101111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2886
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2887
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2888
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2889
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2890
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2891
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2892
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2893
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2894
	"/ 48in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2895
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2896
	  #[2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2897
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2898
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2899
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2900
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2901
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2902
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2903
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2904
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2905
	"/ 49in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2906
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2907
	  #[2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2908
	    2r01110101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2909
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2910
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2911
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2912
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2913
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2914
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2915
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2916
	"/ 50in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2917
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2918
	  #[2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2919
	    2r01110101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2920
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2921
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2922
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2923
	    2r01010111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2924
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2925
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2926
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2927
	"/ 51in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2928
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2929
	  #[2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2930
	    2r01110101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2931
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2932
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2933
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2934
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2935
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2936
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2937
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2938
	"/ 52in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2939
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2940
	  #[2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2941
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2942
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2943
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2944
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2945
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2946
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2947
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2948
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2949
	"/ 53in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2950
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2951
	  #[2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2952
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2953
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2954
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2955
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2956
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2957
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2958
	    2r11010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2959
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2960
	"/ 54in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2961
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2962
	  #[2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2963
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2964
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2965
	    2r01011101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2966
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2967
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2968
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2969
	    2r11010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2970
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2971
	"/ 55in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2972
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2973
	  #[2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2974
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2975
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2976
	    2r11011101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2977
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2978
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2979
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2980
	    2r11010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2981
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2982
	"/ 56in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2983
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2984
	  #[2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2985
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2986
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2987
	    2r11011101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2988
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2989
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2990
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2991
	    2r11011101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2992
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2993
	"/ 57in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2994
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2995
	  #[2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2996
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2997
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2998
	    2r11011101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2999
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3000
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3001
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3002
	    2r11111101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3003
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3004
	"/ 58in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3005
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3006
	  #[2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3007
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3008
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3009
	    2r11011111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3010
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3011
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3012
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3013
	    2r11111101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3014
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3015
	"/ 59in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3016
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3017
	  #[2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3018
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3019
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3020
	    2r11011111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3021
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3022
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3023
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3024
	    2r11111111]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3025
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3026
	"/ 60in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3027
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3028
	  #[2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3029
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3030
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3031
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3032
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3033
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3034
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3035
	    2r11111111]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3036
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3037
	"/ 61in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3038
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3039
	  #[2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3040
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3041
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3042
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3043
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3044
	    2r01111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3045
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3046
	    2r11111111]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3047
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3048
	"/ 62in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3049
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3050
	  #[2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3051
	    2r11110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3052
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3053
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3054
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3055
	    2r01111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3056
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3057
	    2r11111111]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3058
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3059
	"/ 63in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3060
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3061
	  #[2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3062
	    2r11110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3063
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3064
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3065
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3066
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3067
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3068
	    2r11111111]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3069
     )
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3070
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3071
    "Modified: 23.4.1996 / 13:31:50 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3072
    "Created: 11.6.1996 / 15:34:29 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3073
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3074
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3075
ditherGrayFor:fraction on:aDevice into:aBlock
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3076
    "get a dither form or colorId for a brightness value.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3077
     Fraction is 0..1.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3078
     Returns 2 values (either color or ditherForm) through aBlock."
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3079
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3080
    |d nGray grayBelow scaledGrey scaledGray1 scaledGray2 clr1 clr2 newFraction step|
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3081
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3082
    d := aDevice depth.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3083
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3084
    "/ special code for b&w displays
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3085
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3086
    d == 1 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3087
	aDevice blackpixel == 0 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3088
	    clr1 := Black.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3089
	    clr2 := White.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3090
	    newFraction := fraction.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3091
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3092
	    clr1 := White.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3093
	    clr2 := Black.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3094
	    newFraction := 1 - fraction
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3095
	]
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3096
    ] ifFalse:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3097
	"/ special code for 2-plane displays (NeXT)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3098
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3099
	d == 2 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3100
	    fraction <= 0.01 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3101
		clr1 := Black exactOn:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3102
	    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3103
		(fraction between:0.32 and:0.34) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3104
		    clr1 := (Color gray:33) exactOn:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3105
		] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3106
		    (fraction between:0.66 and:0.68) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3107
			clr1 := (Color gray:67) exactOn:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3108
		    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3109
			fraction >= 0.99 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3110
			    clr1 := White exactOn:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3111
			]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3112
		    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3113
		]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3114
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3115
	    clr1 notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3116
		^ aBlock value:clr1 value:nil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3117
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3118
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3119
	    (fraction between:0 and:0.33) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3120
		clr1 := Black.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3121
		clr2 := Color gray:33.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3122
	    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3123
		(fraction between:0.34 and:0.66) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3124
		    clr1 := Color gray:33.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3125
		    clr2 := Color gray:67.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3126
		] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3127
		    clr1 := Color gray:67.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3128
		    clr2 := White.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3129
		]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3130
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3131
	    scaledGray1 := clr1 scaledRed.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3132
	    scaledGray2 := clr2 scaledRed.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3133
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3134
	    scaledGrey := (MaxValue * fraction) rounded.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3135
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3136
	    nGray := (1 bitShift:d) - 1.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3137
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3138
	    "/ scale greyValue into grey levels
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3139
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3140
	    grayBelow := (fraction * nGray) truncated.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3141
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3142
	    grayBelow < 0 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3143
		^ Color black exactOn:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3144
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3145
	    grayBelow >= nGray ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3146
		^ Color white exactOn:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3147
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3148
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3149
	    scaledGrey := (MaxValue * fraction) rounded.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3150
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3151
	    step := MaxValue // nGray.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3152
	    scaledGray1 := grayBelow * step.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3153
	    scaledGray2 := scaledGray1 + step.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3154
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3155
	    clr1 := Color scaledGray:scaledGray1.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3156
	    clr2 := Color scaledGray:scaledGray2.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3157
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3158
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3159
	"/ scale remainder in between low..high
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3160
	newFraction := (scaledGrey - scaledGray1) asFloat / (scaledGray2 - scaledGray1).
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3161
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3162
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3163
    clr1 := clr1 exactOn:aDevice.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3164
    clr2 := clr2 exactOn:aDevice.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3165
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3166
    (clr1 isNil or:[clr2 isNil]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3167
	"/ fall back to b&w dither
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3168
	aDevice blackpixel == 0 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3169
	    clr1 := Black.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3170
	    clr2 := White.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3171
	    newFraction := fraction.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3172
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3173
	    clr1 := White.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3174
	    clr2 := Black.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3175
	    newFraction := 1 - fraction
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3176
	]
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3177
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3178
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3179
    ^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3180
	monoDitherFor:newFraction
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3181
	between:clr1 and:clr2
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3182
	on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3183
	into:aBlock
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3184
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3185
    "
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3186
     Color basicNew
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3187
	ditherGrayFor:0.5
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3188
	on:Display
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3189
	into:[:clr :form | clr notNil ifTrue:[clr inspect].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3190
			   form notNil ifTrue:[(form magnifiedBy:16) inspect].]
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3191
    "
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3192
    "
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3193
     Color basicNew
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3194
	ditherGrayFor:0.25
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3195
	on:Display
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3196
	into:[:clr :form | clr notNil ifTrue:[clr inspect].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3197
			   form notNil ifTrue:[(form magnifiedBy:16) inspect].]
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3198
    "
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3199
5779
def9764b9b8a changed: #ditherGrayFor:on:into:
Claus Gittinger <cg@exept.de>
parents: 5689
diff changeset
  3200
    "Created: / 03-05-1997 / 10:59:57 / cg"
def9764b9b8a changed: #ditherGrayFor:on:into:
Claus Gittinger <cg@exept.de>
parents: 5689
diff changeset
  3201
    "Modified: / 24-07-2011 / 07:18:00 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3202
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3203
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3204
ditherRed:rV green:gV blue:bV on:aDevice into:aBlock
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3205
    "get a dither form or colorId for an rgb value.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3206
     Returns 2 values (either color or ditherForm) through
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3207
     aBlock.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3208
     This code is just a minimum of what is really needed,
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3209
     and needs much more work. Currently only some special cases
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3210
     are handled"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3211
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3212
    |rh rl rs
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3213
     lowL hiL lowValL hiValL lowS hiS lowValS hiValS lowH hiH lowValH hiValH d|
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3214
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3215
    "get hls (since we dither anyway, round them a bit"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3216
7798
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3217
    Color withHLSFromScaledRed:rV scaledGreen:gV scaledBlue:bV do:[:hue :light :saturation |
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3218
        hue notNil ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3219
            rh := (hue * 3.0) rounded / 3.0.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3220
        ].
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3221
        rl := (light * 3.0) rounded / 3.0.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3222
        rs := (saturation * 3.0) rounded / 3.0.
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3223
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3224
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3225
    rh isNil ifTrue:[
7798
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3226
        "achromatic,  dither between achromatic colors"
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3227
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3228
        lowL := nil.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3229
        hiL := nil.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3230
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3231
        "find the 2 bounding colors"
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3232
        aDevice deviceColors do:[:aColor |
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3233
            aColor colorId notNil ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3234
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3235
                Color withHLSFromRed:aColor red green:aColor green blue:aColor blue do:[:hue :light :saturation |
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3236
                    | cl |
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3237
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3238
                    hue isNil ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3239
                        cl := (light * 3.0) rounded / 3.0.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3240
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3241
                        cl > rl ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3242
                            hiL isNil ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3243
                                hiL := aColor.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3244
                                hiValL := cl.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3245
                            ] ifFalse:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3246
                                cl < hiValL ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3247
                                    hiL := aColor.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3248
                                    hiValL := cl.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3249
                                ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3250
                            ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3251
                        ] ifFalse:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3252
                            lowL isNil ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3253
                                lowL := aColor.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3254
                                lowValL := cl
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3255
                            ] ifFalse:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3256
                                cl > lowValL ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3257
                                    lowL := aColor.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3258
                                    lowValL := cl
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3259
                                ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3260
                            ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3261
                        ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3262
                    ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3263
                ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3264
            ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3265
        ].
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3266
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3267
        (lowL notNil and:[hiL notNil]) ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3268
            ^ self
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3269
                monoDitherFor:1.0 / (hiValL - lowValL) * (rl - lowValL)
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3270
                between:lowL and:hiL
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3271
                on:aDevice
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3272
                into:aBlock
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3273
        ].
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3274
        "cannot happen, should always find at least black and white"
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3275
        'Color [info]: oops - color to dither is not bound by b&w' infoPrintCR.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3276
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3277
        ^ aBlock value:nil value:nil
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3278
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3279
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3280
    "chromatic case"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3281
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3282
    aDevice hasColors ifFalse:[
7798
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3283
        "no chance, return nil values"
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3284
        ^ aBlock value:nil value:nil
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3285
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3286
    (Red isNil or:[Green isNil or:[Blue isNil]]) ifTrue:[
7798
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3287
        "if we where not able to get primary colors: no chance"
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3288
        ^ aBlock value:nil value:nil
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3289
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3290
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3291
    "try to find two bounding colors with same hue and saturation;
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3292
     dither on light between those"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3293
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3294
    lowL := nil.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3295
    hiL := nil.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3296
    lowS := nil.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3297
    hiS := nil.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3298
    lowH := nil.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3299
    hiH := nil.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3300
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  3301
    aDevice deviceColors do:[:aColor |
7798
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3302
        aColor colorId notNil ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3303
            Color withHLSFromRed:aColor red green:aColor green blue:aColor blue do:[:hue :light :saturation |
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3304
                | cl ch cs|
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3305
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3306
                hue notNil ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3307
                   ch := (hue * 3.0) rounded / 3.0.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3308
                ] ifFalse:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3309
                   ch := nil
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3310
                ].
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3311
                cl := (light * 3.0) rounded / 3.0.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3312
                cs := (saturation * 3.0) rounded / 3.0.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3313
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3314
                ((ch = rh) and:[cs = rs]) ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3315
                    "found a color with same saturation and same hue, keep for light"
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3316
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3317
                    cl > rl ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3318
                        hiL isNil ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3319
                            hiL := aColor.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3320
                            hiValL := cl
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3321
                        ] ifFalse:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3322
                            cl < hiValL ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3323
                                hiL := aColor.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3324
                                hiValL := cl
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3325
                            ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3326
                        ].
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3327
                    ] ifFalse:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3328
                        lowL isNil ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3329
                            lowL := aColor.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3330
                            lowValL := cl
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3331
                        ] ifFalse:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3332
                            cl > lowValL ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3333
                                lowL := aColor.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3334
                                lowValL := cl
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3335
                            ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3336
                        ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3337
                    ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3338
                ].
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3339
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3340
                (((ch = rh) or:[ch isNil]) and:[cl = rl]) ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3341
                    "found a color with same light and same hue, keep for saturation"
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3342
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3343
                    cs > rs ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3344
                        hiS isNil ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3345
                            hiS := aColor.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3346
                            hiValS := cs
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3347
                        ] ifFalse:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3348
                            cs < hiValS ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3349
                                hiS := aColor.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3350
                                hiValS := cs
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3351
                            ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3352
                        ].
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3353
                    ] ifFalse:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3354
                        lowS isNil ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3355
                            lowS := aColor.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3356
                            lowValS := cs
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3357
                        ] ifFalse:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3358
                            cs > lowValS ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3359
                                lowS := aColor.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3360
                                lowValS := cs
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3361
                            ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3362
                        ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3363
                    ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3364
                ].
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3365
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3366
                rh notNil ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3367
                    cl = rl ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3368
                        cs = rs ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3369
                            ch notNil ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3370
                                d := (ch - rh) abs.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3371
                                d > 300 ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3372
                                    rh > 180 ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3373
                                        ch := ch + 360
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3374
                                    ] ifFalse:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3375
                                        ch := ch - 360
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3376
                                    ].
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3377
                                ].
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3378
                                ch > rh ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3379
                                    hiH isNil ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3380
                                        hiH := aColor.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3381
                                        hiValH := ch
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3382
                                    ] ifFalse:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3383
                                        ch < hiValH ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3384
                                            hiH := aColor.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3385
                                            hiValH := ch
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3386
                                        ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3387
                                    ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3388
                                ] ifFalse:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3389
                                    lowH isNil ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3390
                                        lowH := aColor.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3391
                                        lowValH := ch
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3392
                                    ] ifFalse:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3393
                                        ch > lowValH ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3394
                                            lowH := aColor.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3395
                                            lowValH := ch
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3396
                                        ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3397
                                    ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3398
                                ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3399
                            ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3400
                        ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3401
                    ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3402
                ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3403
            ]
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3404
        ]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3405
    ].
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3406
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3407
    "found bounds for light ?"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3408
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3409
    lowL notNil ifTrue:[
7798
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3410
        rl = lowValL ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3411
            ^ aBlock value:lowL value:nil
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3412
        ].
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3413
        hiL notNil ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3414
            ^ self
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3415
                monoDitherFor:1.0 / (hiValL - lowValL) / (rl - lowValL)
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3416
                between:lowL and:hiL
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3417
                on:aDevice
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3418
                into:aBlock
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3419
        ].
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3420
        "found bound for light - dither with white"
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3421
        ^ self
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3422
            monoDitherFor:1.0 / (100 - lowValL) / (rl - lowValL)
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3423
            between:lowL and:White
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3424
            on:aDevice
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3425
            into:aBlock
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3426
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3427
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3428
    "found bound for light - dither with black"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3429
    hiL notNil ifTrue:[
7798
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3430
        ^ self
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3431
            monoDitherFor:1.0 / (hiValL) / (rl)
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3432
            between:Black and:hiL
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3433
            on:aDevice
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3434
            into:aBlock
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3435
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3436
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3437
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3438
    "found bounds for saturation?"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3439
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3440
    (lowS notNil and:[hiS notNil]) ifTrue:[
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3441
"
7798
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3442
        'saturation dither' printNewline.
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3443
"
7798
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3444
        ^ self
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3445
            monoDitherFor:1.0 / (hiValS - lowValS) / (rs - lowValS)
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3446
            between:lowS and:hiS
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3447
            on:aDevice
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3448
            into:aBlock
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3449
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3450
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3451
    "found bounds for hue ?"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3452
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3453
    (lowH notNil and:[hiH notNil]) ifTrue:[
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3454
"
7798
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3455
        'hue dither' printNewline.
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3456
"
7798
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3457
        hiValH < lowValH ifTrue:[
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3458
            hiValH := hiValH + 360
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3459
        ].
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3460
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3461
        d := hiValH - lowValH.
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3462
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3463
        ^ self
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3464
            monoDitherFor:1.0 / (d / (rh - lowValH))
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3465
            between:lowH and:hiH
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3466
            on:aDevice
8af654223c89 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7782
diff changeset
  3467
            into:aBlock
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3468
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3469
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3470
    ^ aBlock value:nil value:nil
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3471
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3472
    "Modified: 3.5.1997 / 10:58:54 / cg"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3473
    "Created: 3.5.1997 / 11:02:03 / cg"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3474
!
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3475
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3476
fixDitherRed:redVal green:greenVal blue:blueVal on:aDevice into:aBlock
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3477
    "get a dither form for an rgb value.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3478
     Returns 2 values (either color or ditherForm) through aBlock.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3479
     This code uses the table of preallocated fix-colors to find
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3480
     dither colors."
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3481
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3482
    |
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3483
     nR "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3484
     nG "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3485
     nB "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3486
     hR "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3487
     hG "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3488
     hB "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3489
     eR eG eB
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3490
     rI "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3491
     gI "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3492
     bI  "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3493
     idx "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3494
     f clr
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3495
     r    "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3496
     g    "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3497
     b    "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3498
     x1   "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3499
     x2   "{ Class: SmallInteger }"
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3500
     step "{ Class: SmallInteger }"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3501
     lastIdx mx
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3502
     dS   "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3503
     cube|
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3504
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3505
    (cube := aDevice fixColors) notNil ifTrue:[
7360
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3506
        dS := 4.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3507
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3508
        f := Form width:dS height:dS depth:(aDevice depth) onDevice:aDevice.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3509
        f isNil ifTrue:[^ nil].
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3510
        f initGC.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3511
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3512
        mx := MaxValue asFloat.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3513
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3514
        nR := aDevice numFixRed.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3515
        nG := aDevice numFixGreen.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3516
        nB := aDevice numFixBlue.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3517
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3518
        hR := nR // 2.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3519
        hG := nG // 2.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3520
        hB := nB // 2.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3521
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3522
        eR := eG := eB := 0.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3523
        r := redVal.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3524
        g := greenVal.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3525
        b := blueVal.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3526
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3527
        step := -1.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3528
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3529
        0 to:dS-1 do:[:y |
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3530
            step == -1 ifTrue:[
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3531
                x1 := 0. x2 := dS-1. step := 1.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3532
            ] ifFalse:[
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3533
                x1 := dS-1. x2 := 0. step := -1.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3534
            ].
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3535
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3536
            x1 to:x2 by:step do:[:x |
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3537
                "/ the nearest along the grid
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3538
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3539
                r := redVal + eR.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3540
                r > MaxValue ifTrue:[r := MaxValue]
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3541
                             ifFalse:[r < 0 ifTrue:[r := 0]].
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3542
                g := greenVal + eG.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3543
                g > MaxValue ifTrue:[g := MaxValue]
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3544
                             ifFalse:[g < 0 ifTrue:[g := 0]].
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3545
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3546
                b := blueVal + eB.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3547
                b > MaxValue ifTrue:[b := MaxValue]
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3548
                             ifFalse:[b < 0 ifTrue:[b := 0]].
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3549
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3550
                rI := (r * (nR-1) + hR / mx) rounded.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3551
                gI := (g * (nG-1) + hG / mx) rounded .
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3552
                bI := (b * (nB-1) + hB / mx) rounded .
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3553
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3554
                idx := (((rI * nG) + gI) * nB + bI) + 1.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3555
                clr := (cube at:idx) exactOn:aDevice.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3556
                lastIdx isNil ifTrue:[lastIdx := idx]
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3557
                ifFalse:[lastIdx ~~ idx ifTrue:[lastIdx := -1]].
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3558
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3559
                f foreground:clr.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3560
                f displayPointX:x y:y.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3561
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3562
                eR := r  - clr scaledRed.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3563
                eG := g  - clr scaledGreen.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3564
                eB := b  - clr scaledBlue.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3565
            ].
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3566
        ].
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3567
        f releaseGC.
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3568
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3569
        lastIdx ~~ -1 ifTrue:[
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3570
            ^ aBlock value:clr value:nil
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3571
        ].
6629a4f605c4 #QUALITY by sr
sr
parents: 7291
diff changeset
  3572
        ^ aBlock value:nil value:f
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3573
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3574
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3575
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3576
    ^ aBlock value:nil value:nil
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3577
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3578
    "Modified: 11.7.1996 / 18:30:28 / cg"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3579
    "Created: 3.5.1997 / 11:03:18 / cg"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3580
!
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3581
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3582
monoDitherFor:fraction between:color1 and:color2 on:aDevice into:aBlock
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3583
    "get a dither form or colorId for dithering between 2 colors.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3584
     Fraction is 0..1.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3585
     Returns 2 values (either color or ditherForm) through aBlock."
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3586
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3587
    |form c1 c2
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3588
     index "{ Class:SmallInteger }"|
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3589
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3590
    "/
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3591
    "/ having forms with: [1 .. 63] of 64 pixels (see Form),
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3592
    "/ we get dithers for: 1/64, 2/64, ... 63/64
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3593
    "/
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3594
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3595
    index := (fraction * 64) rounded.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3596
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3597
    c1 := color1 exactOn:aDevice.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3598
    index < 1 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3599
	^ aBlock value:c1 value:nil
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3600
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3601
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3602
    c2 := color2 exactOn:aDevice.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3603
    index >= 64 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3604
	^ aBlock value:c2 value:nil
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3605
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3606
4772
be4524221fa7 Use Form class>>#width:height:fromArray:onDevice: instead of obsolete
Stefan Vogel <sv@exept.de>
parents: 4749
diff changeset
  3607
    form := Form width:8 height:8 fromArray:(DitherBits at:index) onDevice:aDevice.
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3608
    form colorMap:(Array with:c1 with:c2).
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3609
    ^ aBlock value:nil value:form
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3610
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3611
    "
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3612
     Color basicNew
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3613
	monoDitherFor:(MaxValue // 2)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3614
	between:Color black
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3615
	and:Color white
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3616
	on:Display
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3617
	into:[:clr :dither | clr inspect. dither inspect]
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3618
    "
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3619
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3620
    "Created: 3.5.1997 / 10:55:06 / cg"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3621
    "Modified: 3.5.1997 / 11:05:20 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3622
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3623
1144
07f3de59864d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
  3624
!Color class methodsFor:'queries'!
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3625
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3626
constantNames
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3627
    "return names known as instance creation messages"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3628
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3629
    ^ #(white black
6534
876e009486be class: Color
Claus Gittinger <cg@exept.de>
parents: 6385
diff changeset
  3630
        grey mediumGray veryLightGray lightGray darkGray veryDarkGray
876e009486be class: Color
Claus Gittinger <cg@exept.de>
parents: 6385
diff changeset
  3631
        red green blue cyan yellow pink orange magenta)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3632
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3633
    "Modified: 2.5.1996 / 11:34:05 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3634
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3635
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3636
scalingValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3637
    "ST-80 compatibility"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3638
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3639
    ^ MaxValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3640
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3641
    "Created: 2.5.1996 / 11:30:09 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3642
    "Modified: 11.7.1996 / 21:42:26 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3643
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3644
1144
07f3de59864d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
  3645
!Color class methodsFor:'special instance creation'!
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3646
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3647
nearestColorRed:r green:g blue:b on:aDevice in:colors
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3648
    "return the nearest color on aDevice with RGB values
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3649
     same or near r/g/b in a collection of colors.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3650
     If there is one, return it; nil otherwise.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3651
     Near is defined as having an error less than the argument
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3652
     error (in percent). The error is computed by the color
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3653
     vector distance (which may not be the best possible solution)."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3654
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3655
    ^ self
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3656
	nearestColorScaledRed:(r * MaxValue // 100)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3657
		  scaledGreen:(g * MaxValue // 100)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3658
		   scaledBlue:(b * MaxValue // 100)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3659
			   on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3660
			   in:colors
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3661
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3662
    "Modified: 11.6.1996 / 18:04:55 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3663
    "Created: 14.6.1996 / 20:05:13 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3664
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3665
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3666
nearestColorScaledRed:r scaledGreen:g scaledBlue:b inCube:aColorCube numRed:nRed numGreen:nGreen numBlue:nBlue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3667
    "return a color with rgb values same or near r/g/b in a given
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3668
     collection, containing colors from a colorCube.
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3669
     This is used with preallocated fixColors and is quite fast
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3670
     (no need to search)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3671
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3672
    |sR  "{ Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3673
     sG  "{ Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3674
     sB  "{ Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3675
     idx "{ Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3676
     nR  "{ Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3677
     nG  "{ Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3678
     nB  "{ Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3679
     rI  "{ Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3680
     gI  "{ Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3681
     bI  "{ Class: SmallInteger }"|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3682
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3683
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3684
     round to the step given by FixColors
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3685
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3686
    nR := nRed.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3687
    nG := nGreen.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3688
    nB := nBlue.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3689
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3690
    sR := MaxValue // (nR - 1).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3691
    sG := MaxValue // (nG - 1).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3692
    sB := MaxValue // (nB - 1).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3693
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3694
    rI := (r + (sR // 2)) // sR.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3695
    gI := (g + (sG // 2)) // sG.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3696
    bI := (b + (sB // 2)) // sB.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3697
    idx := (((rI * nG) + gI) * nB + bI) + 1.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3698
    ^ aColorCube at:idx
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3699
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3700
    "Modified: 11.7.1996 / 17:52:46 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3701
    "Created: 11.7.1996 / 18:20:13 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3702
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3703
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3704
nearestColorScaledRed:r scaledGreen:g scaledBlue:b on:aDevice
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3705
    "return a device color on aDevice with RGB values
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3706
     same or near r/g/b, if there is one, nil otherwise.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3707
     Near is defined as having an error less than the argument
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3708
     error (in percent). The error is computed by the color
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3709
     vector distance (which may not be the best possible solution)."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3710
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3711
    |cube|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3712
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3713
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3714
     if there are preallocated colors, things are much easier ...
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3715
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3716
    (cube := aDevice fixColors) notNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3717
	^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3718
	    nearestColorScaledRed:r
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3719
	    scaledGreen:g
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3720
	    scaledBlue:b
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3721
	    inCube:cube
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3722
	    numRed:(aDevice numFixRed)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3723
	    numGreen:(aDevice numFixGreen)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3724
	    numBlue:(aDevice numFixBlue)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3725
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3726
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3727
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3728
     search in existing colors ...
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3729
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3730
    ^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3731
	nearestColorScaledRed:r
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3732
	scaledGreen:g
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3733
	scaledBlue:b
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3734
	on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3735
	in:aDevice deviceColors
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3736
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3737
    "Created: 14.6.1996 / 20:11:18 / cg"
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  3738
    "Modified: 24.2.1997 / 18:17:51 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3739
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3740
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3741
nearestColorScaledRed:r scaledGreen:g scaledBlue:b on:aDevice in:colors
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3742
    "return the nearest color on aDevice with RGB values
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3743
     same or near r/g/b in a collection of colors.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3744
     If there is one, return it; nil otherwise."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3745
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3746
    |delta minDelta bestSoFar|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3747
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3748
    minDelta := 9999999.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3749
1619
4a7dbd25c588 handle the case where not even r/g/b primaries can be allocated
Claus Gittinger <cg@exept.de>
parents: 1534
diff changeset
  3750
    colors isNil ifTrue:[^ nil].
4a7dbd25c588 handle the case where not even r/g/b primaries can be allocated
Claus Gittinger <cg@exept.de>
parents: 1534
diff changeset
  3751
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3752
    colors do:[:aColor |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3753
	|cr cg cb|
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3754
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3755
	(aDevice isNil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3756
	or:[(aColor graphicsDevice == aDevice)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3757
	    and:[aColor colorId notNil]]) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3758
		delta := aColor deltaFromScaledRed:r scaledGreen:g scaledBlue:b.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3759
		delta < minDelta ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3760
		    "
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3761
		     an exact fit - no need to continue search
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3762
		    "
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3763
		    delta == 0 ifTrue:[^ aColor].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3764
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3765
		    bestSoFar := aColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3766
		    minDelta := delta
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3767
		]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3768
	    ]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3769
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3770
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3771
    ^ bestSoFar
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3772
2198
122ff0da86d6 added support to find the nearest color in a colorMap.
Claus Gittinger <cg@exept.de>
parents: 2183
diff changeset
  3773
    "Created: / 11.6.1996 / 18:02:12 / cg"
122ff0da86d6 added support to find the nearest color in a colorMap.
Claus Gittinger <cg@exept.de>
parents: 2183
diff changeset
  3774
    "Modified: / 28.7.1998 / 20:40:41 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3775
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3776
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3777
quickNearestColorScaledRed:r scaledGreen:g scaledBlue:b on:aDevice
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3778
    "return a device color on aDevice with rgb values
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3779
     same or near r/g/b.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3780
     This looks for primary colors only and is thus faster
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3781
     than the general nearestColor search (slightly uglier though)."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3782
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3783
    |cube|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3784
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3785
    "
1954
479d294564d8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1934
diff changeset
  3786
     if there are preallocated colors, things are much easier ...
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3787
    "
1954
479d294564d8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1934
diff changeset
  3788
    (cube := aDevice fixColors) notNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3789
	^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3790
	    nearestColorScaledRed:r
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3791
	    scaledGreen:g
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3792
	    scaledBlue:b
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3793
	    inCube:cube
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3794
	    numRed:(aDevice numFixRed)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3795
	    numGreen:(aDevice numFixGreen)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3796
	    numBlue:(aDevice numFixBlue)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3797
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3798
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3799
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3800
     search in existing colors ...
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3801
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3802
    ^ self nearestColorScaledRed:r
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3803
		     scaledGreen:g
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3804
		      scaledBlue:b
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3805
			on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3806
			in:(aDevice availableDitherColors)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3807
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3808
    "Created: 14.6.1996 / 20:13:22 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3809
    "Modified: 11.7.1996 / 18:20:14 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3810
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3811
3880
c4c8268a2d9f method category rename
Claus Gittinger <cg@exept.de>
parents: 3878
diff changeset
  3812
!Color methodsFor:'Compatibility-ST80'!
1347
4e19b2d586a4 VW now has #on:, but calls it #asDevicePaintOn:
ca
parents: 1326
diff changeset
  3813
4e19b2d586a4 VW now has #on:, but calls it #asDevicePaintOn:
ca
parents: 1326
diff changeset
  3814
asDevicePaintOn:aDevice
4e19b2d586a4 VW now has #on:, but calls it #asDevicePaintOn:
ca
parents: 1326
diff changeset
  3815
    "ST-80 compatibility: an alias for on:.
4e19b2d586a4 VW now has #on:, but calls it #asDevicePaintOn:
ca
parents: 1326
diff changeset
  3816
     create a new Color representing the same color as
4e19b2d586a4 VW now has #on:, but calls it #asDevicePaintOn:
ca
parents: 1326
diff changeset
  3817
     myself on aDevice; if one already exists, return the one"
4e19b2d586a4 VW now has #on:, but calls it #asDevicePaintOn:
ca
parents: 1326
diff changeset
  3818
2828
5795bf162314 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  3819
    ^ self onDevice:aDevice
2943
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3820
!
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3821
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3822
asHiliteColor
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3823
    "same as lightened - for ST-80 compatibility"
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3824
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3825
    ^ self lightened
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3826
!
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3827
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3828
asShadowColor
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3829
    "same as darkened - for ST-80 compatibility"
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3830
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3831
    ^ self darkened
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3832
! !
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3833
3880
c4c8268a2d9f method category rename
Claus Gittinger <cg@exept.de>
parents: 3878
diff changeset
  3834
!Color methodsFor:'Compatibility-Squeak'!
2943
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3835
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3836
alphaMixed: proportion with: aColor
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3837
    "Answer this color mixed with the given color. The proportion, a number
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3838
     between 0.0 and 1.0, determines what what fraction of the receiver to
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3839
     use in the mix. For example, 0.9 would yield a color close to the
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3840
     receiver. This method uses RGB interpolation; HSV interpolation can lead
4789
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  3841
     to surprises.  Mixes the alphas (for transparency) also."
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  3842
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  3843
    | frac1 frac2 |
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  3844
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  3845
    frac1 := proportion asFloat min: 1.0 max: 0.0.
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  3846
    frac2 := 1.0 - frac1.
7762
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  3847
    ^ self class
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  3848
        r: ((red * frac1) + (aColor scaledRed * frac2)) / MaxValue
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  3849
        g: ((green * frac1) + (aColor scaledGreen * frac2)) / MaxValue
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  3850
        b: ((blue * frac1) + (aColor scaledBlue * frac2)) / MaxValue
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  3851
        alpha: (self alpha * frac1) + (aColor alpha * frac2)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3852
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3853
    "
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3854
     (Color r:1 g:0 b:0 alpha:1) alphaMixed:0.5 with:(Color r:1 g:0 b:0 alpha:1)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3855
     (Color r:1 g:0 b:0 alpha:0.5) alphaMixed:0.5 with:(Color r:0 g:1 b:0 alpha:0.5)
4789
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  3856
    "
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  3857
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  3858
    "Created: / 06-06-2007 / 10:53:25 / cg"
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  3859
!
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  3860
2945
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3861
bitPatternForDepth: depth
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3862
    "Return a Bitmap, possibly containing a stipple pattern,
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3863
     that best represents this color at the given depth.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3864
     BitBlt calls this method to convert colors into Bitmaps.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3865
     The resulting Bitmap may be multiple words to represent a stipple
2945
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3866
     pattern of several lines.  "
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3867
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3868
    "See also:
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3869
	pixelValueAtDepth:      -- value for single pixel
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3870
	pixelWordAtDepth:       -- a 32-bit word filled with the pixel value"
2945
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3871
    "Details: The pattern for the most recently requested depth is cached."
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3872
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3873
^ self.
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3874
"/    depth == cachedDepth ifTrue: [^ cachedBitPattern].
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3875
"/    cachedDepth _ depth.
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3876
"/
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3877
"/    depth > 2 ifTrue: [^ cachedBitPattern _ Bitmap with: (self pixelWordForDepth: depth)].
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3878
"/    depth = 1 ifTrue: [^ cachedBitPattern _ self halfTonePattern1].
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3879
"/    depth = 2 ifTrue: [^ cachedBitPattern _ self halfTonePattern2].
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3880
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3881
!
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3882
3396
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3883
colorForInsets
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3884
    ^ self
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3885
!
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3886
2943
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3887
darker
3030
11cb6482e344 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3024
diff changeset
  3888
    "return a new color, which is darker than the receiver.
2943
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3889
     Almost the same as darkened for Squeak compatibility."
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3890
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3891
    ^ self mixed:0.8333 with:Black
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3892
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3893
    "
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3894
     (Color red) darker
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3895
     (Color red) muchDarker
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3896
    "
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3897
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3898
    "Modified: 11.6.1996 / 18:10:37 / cg"
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3899
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3900
!
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3901
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3902
lighter
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3903
    "return a new color, which is slightly lighter than the receiver.
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3904
     Almost the same as lightened for Squeak compatibility."
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3905
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3906
    ^ self mixed:0.8333 with:White
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3907
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3908
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3909
     (Color red)
2943
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3910
     (Color red) lighter
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3911
     (Color red) muchLighter
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3912
     (Color red) veryMuchLighter
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3913
    "
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3914
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3915
    "Modified: 11.6.1996 / 18:10:49 / cg"
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3916
!
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3917
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3918
muchDarker
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3919
    "return a new color, which is much darker than the receiver.
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3920
     Added for Squeak compatibility."
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3921
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3922
    ^ self mixed:0.233 with:Black
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3923
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3924
    "
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3925
     (Color red) darker
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3926
     (Color red) muchDarker
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3927
    "
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3928
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3929
    "Modified: 11.6.1996 / 18:10:49 / cg"
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3930
!
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3931
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3932
muchLighter
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3933
    "return a new color, which is much lighter than the receiver.
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3934
     Added for Squeak compatibility."
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3935
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3936
    ^ self mixed:0.233 with:White
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3937
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3938
    "
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3939
     (Color red) lighter
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3940
     (Color red) mixed:0.833 with:Color white
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3941
     (Color red) muchLighter
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3942
     (Color red) veryMuchLighter
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3943
    "
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3944
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3945
    "Modified: 11.6.1996 / 18:10:49 / cg"
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3946
!
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3947
3024
a565d805ad69 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
  3948
newTileMorphRepresentative
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3949
	^ ColorTileMorph new colorSwatchColor: self
3396
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3950
!
3024
a565d805ad69 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
  3951
4203
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3952
privateBlue
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3953
    "Squeak compatibility:
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3954
     return the blue components value mapped to 0..MaxValue"
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3955
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3956
    ^ self scaledBlue
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3957
!
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3958
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3959
privateGreen
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3960
    "Squeak compatibility:
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3961
     return the green components value mapped to 0..MaxValue"
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3962
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3963
    ^ self scaledGreen
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3964
!
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3965
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3966
privateRed
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3967
    "Squeak compatibility:
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3968
     return the red components value mapped to 0..MaxValue"
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3969
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3970
    ^ self scaledRed
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3971
!
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3972
3309
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  3973
scaledPixelValue32
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  3974
    ^ (self redByte bitShift:16)
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  3975
      + (self greenByte bitShift:8)
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  3976
      + (self blueByte)
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  3977
      + (self alphaByte bitShift:24)
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  3978
!
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  3979
2943
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3980
veryMuchLighter
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3981
    "return a new color, which is very much lighter than the receiver.
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3982
     Added for Squeak compatibility."
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3983
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3984
    ^ self mixed:0.1165 with:White
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3985
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3986
    "
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3987
     (Color red) lighter
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3988
     (Color red) muchLighter
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3989
     (Color red) veryMuchLighter
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3990
    "
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3991
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3992
    "Modified: 11.6.1996 / 18:10:49 / cg"
3396
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3993
!
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3994
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3995
wheel:thisMany
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3996
    "An array of thisMany colors around the color wheel starting at self and ending all the way around the hue space just before self.  Array is of length thisMany.  Very useful for displaying color based on a variable in your program.  "
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3997
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3998
    | sat bri hue step c |
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3999
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  4000
    thisMany = 1 ifTrue: [^ Array with: self].
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  4001
    sat := self saturation / 100.
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  4002
    bri := self brightness.
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  4003
    hue := self hue.
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  4004
    step := 360.0 / thisMany.
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  4005
    ^ (1 to: thisMany) collect: [:num |
7762
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4006
            c := self class h: hue s: sat v: bri.  "hue is taken mod 360"
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4007
            hue := hue + step.
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4008
            c].
1347
4e19b2d586a4 VW now has #on:, but calls it #asDevicePaintOn:
ca
parents: 1326
diff changeset
  4009
! !
4e19b2d586a4 VW now has #on:, but calls it #asDevicePaintOn:
ca
parents: 1326
diff changeset
  4010
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4011
!Color methodsFor:'accessing'!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4012
2942
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  4013
alpha
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  4014
    "return the alpha value (0..1),
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  4015
     where 0 is completely transparent and 1 is completely opaque"
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  4016
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  4017
    ^ 1.
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  4018
!
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  4019
3309
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  4020
alphaByte
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  4021
    "return the alpha byte-value (0..255),
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  4022
     where 0 is completely transparent and 255 is completely opaque"
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  4023
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  4024
    ^ 255.
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  4025
!
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  4026
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4027
blue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4028
    "return the blue component in percent [0..100]"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4029
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4030
    (blue isNil and:[colorId notNil]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4031
	device isNil ifTrue:[^ 0].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4032
	device getRGBFrom:colorId into:[:r :g :b | ^ b].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4033
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4034
    ^ blue * 100.0 / MaxValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4035
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4036
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4037
blueByte
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4038
    "return the blue components value mapped to 0..255"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4039
2183
3c2115660746 removed row[Red/Green/Blue]Byte;
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  4040
    blue isNil ifTrue:[^ nil].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4041
    ^ blue * 255 // MaxValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4042
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4043
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4044
     Color red blueByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4045
     Color blue blueByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4046
     Color green blueByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4047
     Color black blueByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4048
     Color grey blueByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4049
     Color white blueByte
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4050
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4051
2183
3c2115660746 removed row[Red/Green/Blue]Byte;
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  4052
    "Created: / 7.6.1996 / 18:30:25 / cg"
3c2115660746 removed row[Red/Green/Blue]Byte;
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  4053
    "Modified: / 26.7.1998 / 12:31:44 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4054
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4055
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4056
colorId
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4057
    "return the device-dependent color-id"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4058
1238
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  4059
    colorId notNil ifTrue:[^ colorId].
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  4060
    replacementColor notNil ifTrue:[^ replacementColor colorId].
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  4061
    ^ nil
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  4062
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  4063
    "Modified: 17.1.1997 / 00:03:18 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4064
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4065
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4066
cyan
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4067
    "return the cyan component in percent [0..100] in cmy color space"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4068
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4069
    ^ 100 - self red
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4070
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4071
    "Modified: 11.6.1996 / 17:20:07 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4072
    "Created: 11.6.1996 / 18:30:00 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4073
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4074
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4075
device
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4076
    "return the device I am associated to"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4077
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4078
    ^ device
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4079
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4080
    "Modified: 23.4.1996 / 13:36:42 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4081
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4082
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4083
deviceBlue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4084
    "return the actual value of the blue component in percent."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4085
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4086
    |v|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4087
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4088
    device getRGBFrom:colorId into:[:r :g :b | v := b].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4089
    ^ v
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4090
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4091
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4092
deviceGreen
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4093
    "return the actual value of the green component in percent.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4094
     (usually 16bit in X; but could be different on other systems)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4095
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4096
    |v|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4097
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4098
    device getRGBFrom:colorId into:[:r :g :b | v := g].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4099
    ^ v
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4100
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4101
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4102
deviceRed
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4103
    "return the actual value of the red component in percent."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4104
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4105
    |v|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4106
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4107
    device getRGBFrom:colorId into:[:r :g :b | v := r].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4108
    ^ v
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4109
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4110
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4111
     (Color yellow on:Display) deviceRedValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4112
     (Color yellow on:aPrinterPage) deviceRedValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4113
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4114
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4115
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4116
ditherForm
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4117
    "return the form to dither the color"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4118
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4119
    ^ ditherForm
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4120
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4121
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4122
graphicsDevice
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4123
    "same as #device, for ST-80 compatibility naming.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4124
     Return the device I am associated with."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4125
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4126
    ^ device
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4127
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4128
    "Created: 28.5.1996 / 18:39:27 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4129
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4130
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4131
green
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4132
    "return the green component in percent [0..100]"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4133
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4134
    (green isNil and:[colorId notNil]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4135
	device isNil ifTrue:[^ 0].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4136
	device getRGBFrom:colorId into:[:r :g :b | ^ g].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4137
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4138
    ^ green * 100.0 / MaxValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4139
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4140
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4141
greenByte
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4142
    "return the green components value mapped to 0..255"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4143
2183
3c2115660746 removed row[Red/Green/Blue]Byte;
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  4144
    green isNil ifTrue:[^ nil].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4145
    ^ green * 255 // MaxValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4146
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4147
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4148
     Color red greenByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4149
     Color blue greenByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4150
     Color green greenByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4151
     Color black greenByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4152
     Color grey greenByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4153
     Color white greenByte
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4154
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4155
2183
3c2115660746 removed row[Red/Green/Blue]Byte;
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  4156
    "Modified: / 26.7.1998 / 12:31:33 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4157
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4158
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4159
hue
6654
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4160
    "return the hue (in hue/light/saturation model) in degrees [0..360].
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4161
     The hue value is the position on the color wheel.
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4162
     0 is red, 120 green, 240 blue"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4163
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4164
    |r g b h|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4165
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4166
    (red isNil and:[colorId notNil]) ifTrue:[
6654
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4167
        device getRGBFrom:colorId into:[:xr :xg :xb |
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4168
            r := xr.
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4169
            g := xg.
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4170
            b := xb.
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4171
        ]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4172
    ] ifFalse:[
6654
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4173
        r := self red.
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4174
        g := self green.
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4175
        b := self blue.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4176
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4177
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4178
    self class withHLSFromRed:r green:g blue:b do:[:xh :xl :xs |
6654
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4179
        h := xh
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4180
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4181
    ^ h
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4182
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4183
    "
7411
9fdde791fac0 #DOCUMENTATION by mawalch
mawalch
parents: 7403
diff changeset
  4184
     Color red hue
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4185
     Color yellow hue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4186
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4187
6654
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4188
    "
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4189
     color wheel:
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4190
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4191
     |v|
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4192
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4193
     v := View new extent:200@200.
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4194
     v openAndWait.
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4195
     0 to:360 do:[:hue |
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4196
        100 downTo:0 do:[:sat |
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4197
            |p|
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4198
            v paint:(Color hue:hue light:50 saturation:sat).
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4199
            p := Point r:sat degrees:hue.
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4200
            v displayLineFrom:100@100 to:p+(100@100).
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4201
        ].
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4202
     ].
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4203
    "
57ee2fe958b9 class: Color
Claus Gittinger <cg@exept.de>
parents: 6584
diff changeset
  4204
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4205
    "Modified: 11.6.1996 / 17:14:51 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4206
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4207
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4208
light
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4209
    "return the light (in hue/light/saturation model) in percent [0..100].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4210
     This corresponds to the brightness of the color (if displayed on
6170
8b03d05c720d class: Color
Claus Gittinger <cg@exept.de>
parents: 6110
diff changeset
  4211
     a b&w television screen).
8b03d05c720d class: Color
Claus Gittinger <cg@exept.de>
parents: 6110
diff changeset
  4212
     Old; please use #brightness (which is 0..1) for compatibility with other smalltalks"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4213
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4214
    |r g b l|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4215
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4216
    (red isNil and:[colorId notNil]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4217
	device getRGBFrom:colorId into:[:xr :xg :xb |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4218
	    r := xr.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4219
	    g := xg.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4220
	    b := xb.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4221
	]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4222
    ] ifFalse:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4223
	r := self red.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4224
	g := self green.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4225
	b := self blue.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4226
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4227
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4228
    self class withHLSFromRed:r green:g blue:b do:[:xh :xl :xs |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4229
	l := xl
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4230
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4231
    ^ l
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4232
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4233
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4234
     Color yellow light
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4235
     Color yellow darkened light
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4236
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4237
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4238
    "Modified: 11.6.1996 / 17:15:24 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4239
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4240
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4241
magenta
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4242
    "return the magenta component in percent [0..100] in cmy color space"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4243
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4244
    ^ 100 - self green
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4245
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4246
    "Modified: 11.6.1996 / 17:20:07 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4247
    "Created: 11.6.1996 / 18:30:11 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4248
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4249
2945
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  4250
privateAlpha
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  4251
    "return the internal alpha value (0..255),
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  4252
     where 0 is completely transparent and 255 is completely opaque"
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  4253
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4254
    ^ 255
2945
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  4255
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  4256
!
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  4257
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4258
red
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4259
    "return the red component in percent [0..100]"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4260
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4261
    (red isNil and:[colorId notNil]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4262
	device isNil ifTrue:[^ 0].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4263
	device getRGBFrom:colorId into:[:r :g :b | ^ r].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4264
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4265
    red isNil ifTrue:[^ 0].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4266
    ^ red * 100.0 / MaxValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4267
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4268
    "Modified: 11.6.1996 / 17:20:07 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4269
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4270
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4271
red:r green:g blue:b
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4272
    "set r/g/b components in percent. This method will change the color lookup
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4273
     table in pseudocolor devices.
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4274
     This is only allowed for writable colors (i.e. those allocated with
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4275
     Color>>variableColorOn: on pseudoColor displays).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4276
     Using this may make your code unportable, since it depends on a display
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4277
     using palettes (i.e. it will not work on greyScale or b&w displays)."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4278
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4279
    ^ self scaledRed:(r * MaxValue // 100)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4280
	   scaledGreen:(g * MaxValue // 100)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4281
	   scaledBlue:(b * MaxValue // 100)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4282
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4283
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4284
     |c|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4285
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4286
     c := Color variableColorOn:Display.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4287
     c inspect.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4288
     (Delay forSeconds:5) wait.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4289
     c red:100 green:0 blue:0.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4290
     (Delay forSeconds:5) wait.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4291
     c red:0 green:100 blue:0.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4292
     (Delay forSeconds:5) wait.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4293
     c red:0 green:0 blue:100.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4294
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4295
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4296
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4297
redByte
2183
3c2115660746 removed row[Red/Green/Blue]Byte;
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  4298
    "return the red components value mapped to 0..255;
3c2115660746 removed row[Red/Green/Blue]Byte;
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  4299
     nil if it has no red component."
3c2115660746 removed row[Red/Green/Blue]Byte;
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  4300
3c2115660746 removed row[Red/Green/Blue]Byte;
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  4301
    red isNil ifTrue:[^ nil].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4302
    ^ red * 255 // MaxValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4303
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4304
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4305
     Color red redByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4306
     Color blue redByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4307
     Color green redByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4308
     Color black redByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4309
     Color grey redByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4310
     Color white redByte
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4311
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4312
2183
3c2115660746 removed row[Red/Green/Blue]Byte;
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  4313
    "Modified: / 26.7.1998 / 12:31:22 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4314
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4315
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4316
rgbValue
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4317
    "return the rgb byteValues packed into a 24bit integer;
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4318
     The returned value is composed of r<<16 + g<<8 + b."
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4319
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4320
    |t "{ Class: SmallInteger }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4321
     v "{ Class: SmallInteger }"|
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4322
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4323
    v := red * 255 // MaxValue.
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4324
    t := green * 255 // MaxValue.
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4325
    v := (v bitShift:8) + t.
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4326
    t := blue * 255 // MaxValue.
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4327
    ^ (v bitShift:8) + t.
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4328
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4329
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4330
     Color red rgbValue hexPrintString
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4331
     Color blue rgbValue hexPrintString
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4332
     Color green rgbValue hexPrintString
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4333
     Color black rgbValue hexPrintString
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4334
     Color grey rgbValue hexPrintString
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4335
     Color white rgbValue hexPrintString
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4336
    "
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4337
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4338
    "Modified: 17.10.1997 / 20:00:25 / cg"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4339
!
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4340
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4341
saturation
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4342
    "return the saturation (in hue/light/saturation model) in percent [0..100].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4343
     This corresponds to the saturation setting of a color TV"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4344
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4345
    |r g b s|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4346
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4347
    (red isNil and:[colorId notNil]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4348
	device getRGBFrom:colorId into:[:xr :xg :xb |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4349
	    r := xr.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4350
	    g := xg.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4351
	    b := xb.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4352
	]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4353
    ] ifFalse:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4354
	r := self red.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4355
	g := self green.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4356
	b := self blue.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4357
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4358
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4359
    self class withHLSFromRed:r green:g blue:b do:[:xh :xl :xs |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4360
	s := xs
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4361
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4362
    ^ s
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4363
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4364
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4365
     Color yellow saturation
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4366
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4367
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4368
    "Modified: 11.6.1996 / 17:15:47 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4369
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4370
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4371
scaledAlpha
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4372
    "ST-80 compatibility:
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4373
     return the alpha components value mapped to 0..MaxValue"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4374
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4375
    ^ MaxValue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4376
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4377
    "
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4378
     Color blue scaledBlue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4379
     Color black scaledBlue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4380
     Color grey scaledBlue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4381
    "
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4382
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4383
    "Modified: 7.6.1996 / 18:32:30 / cg"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4384
!
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4385
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4386
scaledBlue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4387
    "ST-80 compatibility:
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4388
     return the blue components value mapped to 0..MaxValue"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4389
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4390
    ^ blue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4391
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4392
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4393
     Color blue scaledBlue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4394
     Color black scaledBlue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4395
     Color grey scaledBlue
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4396
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4397
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4398
    "Modified: 7.6.1996 / 18:32:30 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4399
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4400
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4401
scaledGray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4402
    "return the grey intensity scaled to 0..MaxValue"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4403
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4404
    ^ ((red * 3) + (green * 6) + blue) // 10
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4405
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4406
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4407
     Color blue scaledGray
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4408
     Color black scaledGray
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4409
     Color white scaledGray
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4410
     Color grey scaledGray
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4411
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4412
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4413
    "Modified: 11.6.1996 / 14:43:51 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4414
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4415
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4416
scaledGreen
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4417
    "ST-80 compatibility:
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4418
     return the green components value mapped to 0..MaxValue"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4419
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4420
    ^ green
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4421
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4422
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4423
     Color green scaledRed
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4424
     Color black scaledRed
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4425
     Color grey scaledRed
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4426
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4427
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4428
    "Modified: 7.6.1996 / 18:32:38 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4429
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4430
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4431
scaledRed
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4432
    "ST-80 compatibility:
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4433
     return the red components value mapped to 0..MaxValue"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4434
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4435
    ^ red
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4436
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4437
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4438
     Color red scaledRed
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4439
     Color black scaledRed
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4440
     Color grey scaledRed
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4441
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4442
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4443
    "Modified: 7.6.1996 / 18:32:43 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4444
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4445
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4446
scaledRed:r scaledGreen:g scaledBlue:b
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4447
    "set r/g/b components in 0..MaxValue.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4448
     This method will change the color lookup table in pseudocolor devices.
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4449
     This is only allowed for writable colors (i.e. those allocated with
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4450
     Color>>variableColorOn: on pseudoColor displays).
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4451
     Using this may make your code unportable, since it depends on a display
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4452
     using palettes (i.e. it will not work on greyScale or b&w displays)."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4453
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4454
    (colorId isNil or:[red notNil]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4455
	^ self error:'operation is not allowed for shared colors'
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4456
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4457
    device setColor:colorId scaledRed:r scaledGreen:g scaledBlue:b
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4458
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4459
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4460
writable
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4461
    "return true, if this is a writable colorcell"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4462
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4463
    ^ writable == true
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4464
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4465
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4466
yellow
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4467
    "return the yellow component in percent [0..100] in cmy color space"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4468
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4469
    ^ 100 - self blue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4470
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4471
    "Modified: 11.6.1996 / 17:20:07 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4472
    "Created: 11.6.1996 / 18:30:20 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4473
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4474
5131
95d91d6d649c care for invalid hue/light/saturation
Claus Gittinger <cg@exept.de>
parents: 5127
diff changeset
  4475
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4476
!Color methodsFor:'comparing'!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4477
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4478
= aColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4479
    "two colors are considered equal, if the color components are;
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4480
     independent of the device, the color is on"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4481
2083
117f2e5ca733 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2077
diff changeset
  4482
    aColor == self ifTrue:[^ true].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4483
    aColor isColor ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4484
	(red == aColor scaledRed) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4485
	    (green == aColor scaledGreen) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4486
		(blue == aColor scaledBlue) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4487
		    ^ true
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4488
		]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4489
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4490
	]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4491
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4492
    ^ false
2083
117f2e5ca733 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2077
diff changeset
  4493
117f2e5ca733 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2077
diff changeset
  4494
    "Modified: / 2.4.1998 / 10:04:39 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4495
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4496
1390
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4497
almostSameAs:aColor
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4498
    "return true, if aColor looks almost the same as the receiver
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4499
     (i.e. the components differ by a small, invisible amount).
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4500
     We assume, that the human eye can distinguish roughly 100 grey levels
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4501
     (which is optimistic ;-);
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4502
     therefore, allow a 1 percent difference in each component for the colors
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4503
     to compare as looking the same."
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4504
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4505
     (self red - aColor red) abs > 1 ifTrue:[^ false].
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4506
     (self green - aColor green) abs > 1 ifTrue:[^ false].
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4507
     (self blue - aColor blue) abs > 1 ifTrue:[^ false].
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4508
     ^ true
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4509
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4510
     "
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4511
      (Color red:10 green:10 blue:10) almostSameAs:(Color red:11 green:11 blue:11)
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4512
     "
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4513
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4514
    "Modified: 28.2.1997 / 12:00:01 / cg"
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4515
!
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4516
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4517
hash
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4518
    "return an integer useful as hash key for the receiver.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4519
     Redefined since = is redefined"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4520
2318
36d73b850969 fixed hash for colorId colors.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  4521
    red isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4522
	^ colorId
2318
36d73b850969 fixed hash for colorId colors.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  4523
    ].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4524
    ^ red + green + blue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4525
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4526
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4527
!Color methodsFor:'converting'!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4528
6830
4b029193d399 class: Color
Claus Gittinger <cg@exept.de>
parents: 6793
diff changeset
  4529
asByteArray
4b029193d399 class: Color
Claus Gittinger <cg@exept.de>
parents: 6793
diff changeset
  4530
    ^ByteArray
4b029193d399 class: Color
Claus Gittinger <cg@exept.de>
parents: 6793
diff changeset
  4531
            with: self redByte
7411
9fdde791fac0 #DOCUMENTATION by mawalch
mawalch
parents: 7403
diff changeset
  4532
            with: self greenByte
9fdde791fac0 #DOCUMENTATION by mawalch
mawalch
parents: 7403
diff changeset
  4533
            with: self blueByte
6830
4b029193d399 class: Color
Claus Gittinger <cg@exept.de>
parents: 6793
diff changeset
  4534
!
4b029193d399 class: Color
Claus Gittinger <cg@exept.de>
parents: 6793
diff changeset
  4535
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4536
fromLiteralArrayEncoding:encoding
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4537
    "read my values from an encoding.
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4538
     The encoding is supposed to be either of the form:
6552
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4539
        (#Color redPart greenPart bluePart)
2778
3ef64f104266 allow 'Color colorName' in literalEncoding.
Claus Gittinger <cg@exept.de>
parents: 2455
diff changeset
  4540
     or:
6552
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4541
        (#Color constantColorSymbol)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4542
     This is the reverse operation to #literalArrayEncoding."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4543
6552
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4544
    |clr nameOrRGB|
2778
3ef64f104266 allow 'Color colorName' in literalEncoding.
Claus Gittinger <cg@exept.de>
parents: 2455
diff changeset
  4545
3ef64f104266 allow 'Color colorName' in literalEncoding.
Claus Gittinger <cg@exept.de>
parents: 2455
diff changeset
  4546
    encoding size == 2 ifTrue:[
6552
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4547
        nameOrRGB := encoding at:2.
7411
9fdde791fac0 #DOCUMENTATION by mawalch
mawalch
parents: 7403
diff changeset
  4548
        nameOrRGB isSymbol ifTrue:[
7762
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4549
            clr := self class perform:nameOrRGB
7411
9fdde791fac0 #DOCUMENTATION by mawalch
mawalch
parents: 7403
diff changeset
  4550
        ] ifFalse:[
7762
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4551
            clr := self class rgbValue:nameOrRGB.
6552
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4552
        ].
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4553
        red := clr scaledRed.
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4554
        green := clr scaledGreen.
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4555
        blue := clr scaledBlue
2778
3ef64f104266 allow 'Color colorName' in literalEncoding.
Claus Gittinger <cg@exept.de>
parents: 2455
diff changeset
  4556
    ] ifFalse:[
6554
6595cc1cf732 class: Color
Claus Gittinger <cg@exept.de>
parents: 6553
diff changeset
  4557
        red := ((encoding at:2) / 100.0 * MaxValue) rounded asInteger.
6595cc1cf732 class: Color
Claus Gittinger <cg@exept.de>
parents: 6553
diff changeset
  4558
        green := ((encoding at:3) / 100.0 * MaxValue) rounded asInteger.
6595cc1cf732 class: Color
Claus Gittinger <cg@exept.de>
parents: 6553
diff changeset
  4559
        blue := ((encoding at:4) / 100.0 * MaxValue) rounded asInteger.
2778
3ef64f104266 allow 'Color colorName' in literalEncoding.
Claus Gittinger <cg@exept.de>
parents: 2455
diff changeset
  4560
    ].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4561
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4562
    "
7411
9fdde791fac0 #DOCUMENTATION by mawalch
mawalch
parents: 7403
diff changeset
  4563
      Color new fromLiteralArrayEncoding:#(#Color 50 25 25)
9fdde791fac0 #DOCUMENTATION by mawalch
mawalch
parents: 7403
diff changeset
  4564
      Color new fromLiteralArrayEncoding:#(#Color 16rFF00FF)
9fdde791fac0 #DOCUMENTATION by mawalch
mawalch
parents: 7403
diff changeset
  4565
      Color new fromLiteralArrayEncoding:#(#Color blue)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4566
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4567
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4568
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4569
literalArrayEncoding
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4570
    "encode myself as an array, from which a copy of the receiver
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4571
     can be reconstructed with #decodeAsLiteralArray.
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4572
     The encoding is:
6552
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4573
        (#Color redPart greenPart bluePart)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4574
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4575
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4576
    ^ Array
6552
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4577
        with:self class name
7411
9fdde791fac0 #DOCUMENTATION by mawalch
mawalch
parents: 7403
diff changeset
  4578
        with:((red * 100.0 / MaxValue) roundTo:0.25)
9fdde791fac0 #DOCUMENTATION by mawalch
mawalch
parents: 7403
diff changeset
  4579
        with:((green * 100.0 / MaxValue) roundTo:0.25)
9fdde791fac0 #DOCUMENTATION by mawalch
mawalch
parents: 7403
diff changeset
  4580
        with:((blue * 100.0 / MaxValue) roundTo:0.25)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4581
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4582
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4583
      Color new fromLiteralArrayEncoding:#(#Color 50 25 25)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4584
      (Color red:25 green:30 blue:70) literalArrayEncoding
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4585
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4586
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4587
    "Modified: 22.4.1996 / 13:00:11 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4588
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4589
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4590
!Color methodsFor:'copying'!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4591
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4592
postCopy
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4593
    "redefined to clear out any device handles in the copy"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4594
1238
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  4595
    device := colorId := ditherForm := replacementColor := nil
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  4596
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  4597
    "Modified: 17.1.1997 / 00:03:42 / cg"
2910
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4598
!
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4599
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4600
skipInstvarIndexInDeepCopy:index
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4601
    index == 4 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4602
	^ true "/ skip device
2910
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4603
    ].
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4604
    index == 5 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4605
	^ true "/ skip colorId
2910
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4606
    ].
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4607
    index == 6 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4608
	^ true "/ skip ditherForm
2910
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4609
    ].
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4610
    index == 7 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4611
	^ true "/ skip replacementColor
2910
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4612
    ].
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4613
    ^ false
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4614
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4615
    "
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4616
     (Color black onDevice:Screen current) deepCopy
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4617
    "
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4618
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4619
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4620
!Color methodsFor:'getting a device color'!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4621
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4622
exactOn:aDevice
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4623
    "create a new Color representing the same color as
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4624
     myself on aDevice; if one already exists, return the one.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4625
     Do not dither or otherwise approximate the color, but return
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4626
     nil, if the exact color is not available.
7403
9a4c5d6da62c #OTHER by mawalch
mawalch
parents: 7360
diff changeset
  4627
     Used to acquire primary colors for dithering, during startup."
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4628
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4629
    |newColor id r g b|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4630
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4631
    "if Iam already assigned to that device ..."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4632
    (device == aDevice and:[ditherForm isNil]) ifTrue:[^ self].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4633
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4634
    r := red.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4635
    g := green.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4636
    b := blue.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4637
1239
f4bd3bc9f3f9 oops - dont round when searching for existing colors
Claus Gittinger <cg@exept.de>
parents: 1238
diff changeset
  4638
    "first look if not already there"
7762
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4639
    newColor := self class existingColorScaledRed:r scaledGreen:g scaledBlue:b on:aDevice.
1239
f4bd3bc9f3f9 oops - dont round when searching for existing colors
Claus Gittinger <cg@exept.de>
parents: 1238
diff changeset
  4640
    (newColor notNil and:[newColor ditherForm isNil]) ifTrue:[^ newColor].
f4bd3bc9f3f9 oops - dont round when searching for existing colors
Claus Gittinger <cg@exept.de>
parents: 1238
diff changeset
  4641
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4642
    r := (r bitAnd:16rFF00) bitOr:(r bitShift:-8).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4643
    g := (g bitAnd:16rFF00) bitOr:(g bitShift:-8).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4644
    b := (b bitAnd:16rFF00) bitOr:(b bitShift:-8).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4645
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4646
    "ask that device for the color"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4647
    id := aDevice colorScaledRed:r scaledGreen:g scaledBlue:b.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4648
    id isNil ifTrue:[
7403
9a4c5d6da62c #OTHER by mawalch
mawalch
parents: 7360
diff changeset
  4649
        "/ this is a kludge: scavenge to free unused colors
9a4c5d6da62c #OTHER by mawalch
mawalch
parents: 7360
diff changeset
  4650
        "/  and try again ...
9a4c5d6da62c #OTHER by mawalch
mawalch
parents: 7360
diff changeset
  4651
        ObjectMemory scavenge; finalize.
9a4c5d6da62c #OTHER by mawalch
mawalch
parents: 7360
diff changeset
  4652
        id := aDevice colorScaledRed:r scaledGreen:g scaledBlue:b
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4653
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4654
    id isNil ifTrue:[
7403
9a4c5d6da62c #OTHER by mawalch
mawalch
parents: 7360
diff changeset
  4655
        "no such color - fail"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4656
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4657
"/      'COLOR: no color for ' infoPrint. self displayString infoPrintCR.
7403
9a4c5d6da62c #OTHER by mawalch
mawalch
parents: 7360
diff changeset
  4658
        ^ nil
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4659
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4660
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4661
    "receiver was not associated - do it now"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4662
    device isNil ifTrue:[
7403
9a4c5d6da62c #OTHER by mawalch
mawalch
parents: 7360
diff changeset
  4663
        device := aDevice.
9a4c5d6da62c #OTHER by mawalch
mawalch
parents: 7360
diff changeset
  4664
        colorId := id.
9a4c5d6da62c #OTHER by mawalch
mawalch
parents: 7360
diff changeset
  4665
9a4c5d6da62c #OTHER by mawalch
mawalch
parents: 7360
diff changeset
  4666
        aDevice visualType ~~ #TrueColor ifTrue:[
9a4c5d6da62c #OTHER by mawalch
mawalch
parents: 7360
diff changeset
  4667
            "/ Lobby register:self.
9a4c5d6da62c #OTHER by mawalch
mawalch
parents: 7360
diff changeset
  4668
            aDevice registerColor:self.
9a4c5d6da62c #OTHER by mawalch
mawalch
parents: 7360
diff changeset
  4669
        ].
9a4c5d6da62c #OTHER by mawalch
mawalch
parents: 7360
diff changeset
  4670
        ^ self
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4671
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4672
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4673
    "receiver was already associated to another device - need a new color"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4674
    newColor := (self class basicNew) setScaledRed:r scaledGreen:g scaledBlue:b device:aDevice.
1238
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  4675
    newColor setColorId:id.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4676
    aDevice visualType ~~ #TrueColor ifTrue:[
7403
9a4c5d6da62c #OTHER by mawalch
mawalch
parents: 7360
diff changeset
  4677
        "/ Lobby register:newColor.
9a4c5d6da62c #OTHER by mawalch
mawalch
parents: 7360
diff changeset
  4678
        aDevice registerColor:newColor.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4679
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4680
    ^ newColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4681
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  4682
    "Modified: 24.2.1997 / 18:23:20 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4683
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4684
1856
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4685
exactOrNearestOn:aDevice
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4686
    "get a device color for the receiver, which is either exact
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4687
     or the nearest, but never dithered.
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4688
     This can be used for viewBackgrounds, where the exact greyLevel
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4689
     does not matter, but a dithered color is not wanted."
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4690
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4691
    |deviceColor|
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4692
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4693
    deviceColor := self exactOn:aDevice.
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4694
    deviceColor isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4695
	deviceColor := self nearestOn:aDevice
1856
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4696
    ].
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4697
    ^ deviceColor
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4698
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4699
    "Created: 13.8.1997 / 15:25:48 / cg"
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4700
!
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4701
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4702
nearestIn:aColorMap
2198
122ff0da86d6 added support to find the nearest color in a colorMap.
Claus Gittinger <cg@exept.de>
parents: 2183
diff changeset
  4703
    "return the nearest color in a colorMap"
122ff0da86d6 added support to find the nearest color in a colorMap.
Claus Gittinger <cg@exept.de>
parents: 2183
diff changeset
  4704
122ff0da86d6 added support to find the nearest color in a colorMap.
Claus Gittinger <cg@exept.de>
parents: 2183
diff changeset
  4705
    ^ self class
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4706
	nearestColorScaledRed:(self scaledRed)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4707
		  scaledGreen:(self scaledGreen)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4708
		   scaledBlue:(self scaledBlue)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4709
			   on:nil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4710
			   in:aColorMap
2198
122ff0da86d6 added support to find the nearest color in a colorMap.
Claus Gittinger <cg@exept.de>
parents: 2183
diff changeset
  4711
122ff0da86d6 added support to find the nearest color in a colorMap.
Claus Gittinger <cg@exept.de>
parents: 2183
diff changeset
  4712
    "Created: / 28.7.1998 / 20:42:11 / cg"
122ff0da86d6 added support to find the nearest color in a colorMap.
Claus Gittinger <cg@exept.de>
parents: 2183
diff changeset
  4713
!
122ff0da86d6 added support to find the nearest color in a colorMap.
Claus Gittinger <cg@exept.de>
parents: 2183
diff changeset
  4714
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4715
nearestOn:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4716
    "create a new Color representing the same color as myself on aDevice;
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4717
     if one already exists, return the one. If no exact match is found,
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4718
     search for the nearest match"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4719
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4720
    |newColor id|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4721
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4722
    "if I'am already assigned to that device ..."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4723
    (device == aDevice) ifTrue:[^ self].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4724
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4725
    "first look if not already there"
7762
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4726
    newColor := self class nearestColorScaledRed:red scaledGreen:green scaledBlue:blue on:aDevice.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4727
    newColor notNil ifTrue:[^ newColor].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4728
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4729
    "ask that device for the color"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4730
    id := aDevice colorScaledRed:red scaledGreen:green scaledBlue:blue.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4731
    id isNil ifTrue:[
7762
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4732
        "this is a kludge:
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4733
            scavenge to possuby free unused colors and try again ...
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4734
            this is a compromise: actually a full GC is required here,
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4735
            but that is too expensive.
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4736
        "
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4737
        ObjectMemory scavenge; finalize.
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4738
        id := aDevice colorScaledRed:red scaledGreen:green scaledBlue:blue
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4739
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4740
    id isNil ifTrue:[
7762
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4741
        "no color - fail"
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4742
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4743
        ^ nil
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4744
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4745
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4746
    "receiver was not associated - do it now"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4747
    device isNil ifTrue:[
7762
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4748
        device := aDevice.
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4749
        colorId := id.
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4750
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4751
        aDevice visualType ~~ #TrueColor ifTrue:[
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4752
            "/ Lobby register:self.
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4753
            aDevice registerColor:self.
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4754
        ].
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4755
        ^ self
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4756
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4757
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4758
    "receiver was already associated to another device - need a new color"
7762
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4759
    newColor := self class basicNew setScaledRed:red scaledGreen:green scaledBlue:blue device:aDevice.
1238
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  4760
    newColor setColorId:id.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4761
    aDevice visualType ~~ #TrueColor ifTrue:[
7762
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4762
        "/ Lobby register:newColor.
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4763
        aDevice registerColor:newColor.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4764
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4765
    ^ newColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4766
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  4767
    "Modified: 24.2.1997 / 18:23:26 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4768
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4769
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4770
on:aDevice
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4771
    "create a new Color representing the same color as
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4772
     myself on aDevice; if one already exists, return the one"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4773
3623
16665d9b7263 #on: -> #onDevice
Claus Gittinger <cg@exept.de>
parents: 3611
diff changeset
  4774
    "/ send out a warning: #on: is typically used to create views
16665d9b7263 #on: -> #onDevice
Claus Gittinger <cg@exept.de>
parents: 3611
diff changeset
  4775
    "/ operating on a model.
16665d9b7263 #on: -> #onDevice
Claus Gittinger <cg@exept.de>
parents: 3611
diff changeset
  4776
    "/ Please use #onDevice: to avoid confusion.
16665d9b7263 #on: -> #onDevice
Claus Gittinger <cg@exept.de>
parents: 3611
diff changeset
  4777
16665d9b7263 #on: -> #onDevice
Claus Gittinger <cg@exept.de>
parents: 3611
diff changeset
  4778
    <resource:#obsolete>
16665d9b7263 #on: -> #onDevice
Claus Gittinger <cg@exept.de>
parents: 3611
diff changeset
  4779
16665d9b7263 #on: -> #onDevice
Claus Gittinger <cg@exept.de>
parents: 3611
diff changeset
  4780
    self obsoleteMethodWarning:'use #onDevice:'.
2836
6c1f6b223329 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2828
diff changeset
  4781
    ^ self onDevice:aDevice
6c1f6b223329 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2828
diff changeset
  4782
6c1f6b223329 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2828
diff changeset
  4783
    "Created: / 16.11.1995 / 20:16:42 / cg"
6c1f6b223329 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2828
diff changeset
  4784
    "Modified: / 8.9.1998 / 17:32:10 / cg"
6c1f6b223329 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2828
diff changeset
  4785
!
6c1f6b223329 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2828
diff changeset
  4786
6c1f6b223329 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2828
diff changeset
  4787
onDevice:aDevice
6c1f6b223329 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2828
diff changeset
  4788
    "create a new Color representing the same color as
6c1f6b223329 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2828
diff changeset
  4789
     myself on aDevice; if one already exists, return the one"
6c1f6b223329 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2828
diff changeset
  4790
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4791
    |newColor id form
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4792
     greyV "{ Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4793
     rV    "{ Class: SmallInteger }"
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4794
     gV    "{ Class: SmallInteger }"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4795
     bV    "{ Class: SmallInteger }"
2375
265a5137e286 oops - possible color reuse between devices fixed
Claus Gittinger <cg@exept.de>
parents: 2318
diff changeset
  4796
     deviceVisual deviceFixColors deviceDepth|
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4797
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4798
    "/ the most common cases (already allocated) first
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  4799
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  4800
    colorId notNil ifTrue:[
7291
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4801
        "/ is someone validating me before drawing on aDevice ?
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4802
        (aDevice notNil and:[aDevice == device]) ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4803
            ^ self
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4804
        ].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4805
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4806
        "/ a special case for pseudo-colors (0 and 1 in bitmaps)
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4807
        "/ those have nil r/g/b values, but a nonNil colorId
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4808
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4809
        red isNil ifTrue:[^ self].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4810
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4811
        "/ want to release color ?
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4812
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4813
        (aDevice isNil and:[device notNil]) ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4814
            "/ trueColor device-colors are not registered
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4815
            device visualType ~~ #TrueColor ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4816
                device unregisterColor:newColor.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4817
                device freeColor:colorId
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4818
            ].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4819
            device := nil.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4820
            colorId := nil.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4821
            ^ self
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4822
        ].
1205
e28b664586f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1165
diff changeset
  4823
    ].
2313
35b10e50a455 care for early onDevice:nil
Claus Gittinger <cg@exept.de>
parents: 2288
diff changeset
  4824
    aDevice isNil ifTrue:[
7291
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4825
        ^ self
2313
35b10e50a455 care for early onDevice:nil
Claus Gittinger <cg@exept.de>
parents: 2288
diff changeset
  4826
    ].
1205
e28b664586f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1165
diff changeset
  4827
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  4828
    device == aDevice ifTrue:[
7291
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4829
        ditherForm notNil ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4830
            ^ self
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4831
        ]
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  4832
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  4833
7650
5781e05a6a1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7642
diff changeset
  4834
    "/ on high-resolution true-color systems, don't care for dithering and
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4835
    "/ especially freeing colors
2842
dcb1f8eb648f removed obsolete method
Claus Gittinger <cg@exept.de>
parents: 2836
diff changeset
  4836
    "/ (no need to register)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4837
2375
265a5137e286 oops - possible color reuse between devices fixed
Claus Gittinger <cg@exept.de>
parents: 2318
diff changeset
  4838
    deviceDepth := aDevice depth.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4839
    (deviceVisual := aDevice visualType) == #TrueColor ifTrue:[
7291
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4840
        deviceDepth >= 15 ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4841
            id := aDevice colorScaledRed:red scaledGreen:green scaledBlue:blue.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4842
            id notNil ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4843
                device isNil ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4844
                    "/ receiver was not associated - do it now & return mySelf
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4845
                    colorId := id.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4846
                    ditherForm := nil.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4847
                    device := aDevice.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4848
                    ^ self
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4849
                ].
7762
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4850
                newColor := self class basicNew
7291
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4851
                                    setScaledRed:red
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4852
                                    scaledGreen:green
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4853
                                    scaledBlue:blue
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4854
                                    device:aDevice.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4855
                newColor setColorId:id.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4856
                ^ newColor
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4857
            ]
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4858
        ]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4859
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4860
1239
f4bd3bc9f3f9 oops - dont round when searching for existing colors
Claus Gittinger <cg@exept.de>
parents: 1238
diff changeset
  4861
    rV := red.
f4bd3bc9f3f9 oops - dont round when searching for existing colors
Claus Gittinger <cg@exept.de>
parents: 1238
diff changeset
  4862
    gV := green.
f4bd3bc9f3f9 oops - dont round when searching for existing colors
Claus Gittinger <cg@exept.de>
parents: 1238
diff changeset
  4863
    bV := blue.
f4bd3bc9f3f9 oops - dont round when searching for existing colors
Claus Gittinger <cg@exept.de>
parents: 1238
diff changeset
  4864
7782
5c396aabbe58 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7762
diff changeset
  4865
"/    "/ round a bit within 1% in red & green, 2% in blue
1239
f4bd3bc9f3f9 oops - dont round when searching for existing colors
Claus Gittinger <cg@exept.de>
parents: 1238
diff changeset
  4866
"/    rV := (red / 100.0) rounded * 100.
f4bd3bc9f3f9 oops - dont round when searching for existing colors
Claus Gittinger <cg@exept.de>
parents: 1238
diff changeset
  4867
"/    gV := (green / 100.0) rounded * 100.
f4bd3bc9f3f9 oops - dont round when searching for existing colors
Claus Gittinger <cg@exept.de>
parents: 1238
diff changeset
  4868
"/    bV := (blue / 50.0) rounded * 50.
7782
5c396aabbe58 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7762
diff changeset
  4869
"/
5c396aabbe58 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7762
diff changeset
  4870
"/    "/ if I am already assigned to that device ...
5c396aabbe58 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7762
diff changeset
  4871
"/
1368
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4872
"/    ((device == aDevice) and:[ditherForm notNil]) ifTrue:[
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4873
"/
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4874
"/        "/ mhmh - if I was dithered the last time (not enough colors then)
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4875
"/        "/ try again - maybe some colors were reclaimed in the meanwhile
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4876
"/
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4877
"/        deviceFixColors := aDevice fixColors.
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4878
"/
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4879
"/        (deviceFixColors isNil
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4880
"/         and:[RetryAllocation]) ifTrue:[
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4881
"/            "
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4882
"/             but there is no chance on b&w displays - so don't try
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4883
"/            "
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4884
"/            aDevice depth > 2 ifTrue:[
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4885
"/                id := aDevice colorScaledRed:rV scaledGreen:gV scaledBlue:bV.
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4886
"/                id notNil ifTrue:[
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4887
"/                    colorId := id.
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4888
"/                    ditherForm := nil.
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4889
"/                    device registerColor:self.
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4890
"/                ]
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4891
"/            ]
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4892
"/        ].
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4893
"/        ^ self
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4894
"/    ].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4895
7762
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4896
    newColor := self class existingColorScaledRed:rV scaledGreen:gV scaledBlue:bV on:aDevice.
2973
59770deee81c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2972
diff changeset
  4897
    newColor notNil ifTrue:[
7291
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4898
        (newColor scaledRed ~~ red
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4899
        or:[newColor scaledGreen ~~ green
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4900
        or:[newColor scaledBlue ~~ blue]]) ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4901
            Transcript showCR:'Color>>#onDevice: got different color'.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4902
        ].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4903
        ^ newColor
2973
59770deee81c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2972
diff changeset
  4904
    ].
59770deee81c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2972
diff changeset
  4905
59770deee81c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2972
diff changeset
  4906
    "/ ask that device for the exact color
59770deee81c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2972
diff changeset
  4907
    id := aDevice colorScaledRed:red scaledGreen:green scaledBlue:blue.
59770deee81c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2972
diff changeset
  4908
    id notNil ifTrue:[
7291
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4909
        device isNil ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4910
            "/ receiver was not associated - do it now & return mySelf
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4911
            colorId := id.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4912
            ditherForm := nil.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4913
            device := aDevice.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4914
            newColor := self.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4915
        ] ifFalse:[
7762
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  4916
            newColor := self class basicNew
7291
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4917
                                setScaledRed:red
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4918
                                scaledGreen:green
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4919
                                scaledBlue:blue
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4920
                                device:aDevice.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4921
            newColor setColorId:id.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4922
        ].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4923
        id notNil ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4924
            deviceVisual ~~ #TrueColor ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4925
                aDevice registerColor:newColor.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4926
            ]
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4927
        ].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4928
        ^ newColor
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4929
    ].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4930
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4931
    "/
2973
59770deee81c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2972
diff changeset
  4932
    "/ ok, we are either going to dither that color, or look for
59770deee81c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2972
diff changeset
  4933
    "/ the nearest.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4934
    "/ if its 'almost' grey, make it grey and round it a bit (1%)
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4935
    "/
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4936
    greyV := (3 * red) + (6 * green) + (1 * blue).
1621
5b1e6427d5f6 monochrome fixes
Claus Gittinger <cg@exept.de>
parents: 1619
diff changeset
  4937
    greyV := (greyV / 1000.0) rounded * 100.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4938
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4939
    "/ allow an error of 1% in red & green, 2% in blue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4940
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4941
    ((rV - greyV) abs <= 655                    "/ MaxValue // 100
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4942
    and:[(gV - greyV) abs <= 655                "/ MaxValue // 100
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4943
    and:[(bV - greyV) abs <= 1310]]) ifTrue:[   "/ MaxValue // 100 * 2
7291
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4944
        rV := gV := bV := greyV.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4945
    ] ifFalse:[
7291
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4946
        rV := red. gV := green. bV := blue.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4947
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4948
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4949
    aDevice hasColors ifTrue:[
7291
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4950
        deviceFixColors := aDevice fixColors.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4951
        deviceFixColors isNil ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4952
            "/ ask that device for the exact color
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4953
            id := aDevice colorScaledRed:rV scaledGreen:gV scaledBlue:bV.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4954
            id isNil ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4955
                aDevice isOpen ifFalse:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4956
                    ^ nil
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4957
                ].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4958
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4959
                "/ this is a kludge: scavenge to free unused colors
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4960
                "/ and try again ...
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4961
                ObjectMemory scavenge; finalize.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4962
                id := aDevice colorScaledRed:rV scaledGreen:gV scaledBlue:bV
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4963
            ].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4964
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4965
            id isNil ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4966
                "/ no such color - try color dithers
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4967
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4968
                self class
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4969
                    ditherRed:rV green:gV blue:bV
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4970
                    on:aDevice
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4971
                    into:[:c :f | newColor := c. form := f].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4972
                newColor notNil ifTrue:[^ newColor].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4973
            ].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4974
        ].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4975
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4976
        "/ none found ? -> do a hard dither using fixColors
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4977
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4978
        (id isNil and:[form isNil]) ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4979
            deviceFixColors notNil ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4980
                self class
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4981
                    fixDitherRed:rV green:gV blue:bV
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4982
                    on:aDevice
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4983
                    into:[:c :f | newColor := c. form := f].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4984
                newColor notNil ifTrue:[^ newColor].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4985
            ]
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4986
        ].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4987
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4988
        "/ still none found ? -> do a very hard dither using existing colors
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4989
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4990
        (id isNil and:[form isNil]) ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4991
            self class
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4992
                complexDitherRed:rV green:gV blue:bV
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4993
                on:aDevice
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4994
                into:[:c :f | newColor := c. form := f].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4995
            newColor notNil ifTrue:[^ newColor].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  4996
        ].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4997
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4998
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4999
    (id isNil and:[form isNil]) ifTrue:[
7291
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5000
        "still no result - try graying"
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5001
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5002
        greyV == 0 ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5003
            id := aDevice blackpixel
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5004
        ] ifFalse:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5005
            greyV == MaxValue ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5006
                id := aDevice whitepixel
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5007
            ] ifFalse:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5008
                aDevice hasGrayscales ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5009
                    self class
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5010
                        ditherGrayFor:(greyV / MaxValue)
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5011
                        on:aDevice
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5012
                        into:[:c :f | newColor := c. form := f].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5013
                    newColor notNil ifTrue:[^ newColor].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5014
                ].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5015
                form isNil ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5016
                    "/ still none - dither b&w
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5017
                    self class
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5018
                        monoDitherFor:(greyV / MaxValue)
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5019
                        between:Black and:White
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5020
                        on:aDevice
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5021
                        into:[:c :f | newColor := c. form := f].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5022
                    newColor notNil ifTrue:[^ newColor].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5023
                    form isNil ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5024
                        "/ cannot happen
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5025
                        'Color [warning]: monoDither failed' errorPrintCR.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5026
                        ^ nil
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5027
                    ]
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5028
                ]
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5029
            ]
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5030
        ].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5031
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5032
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5033
    device isNil ifTrue:[
7291
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5034
        "/ receiver was not associated - do it now & return mySelf
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5035
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5036
        device := aDevice.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5037
        id isNil ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5038
            ditherForm := form
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5039
        ].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5040
        colorId := id.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5041
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5042
        "/ have to register - otherwise it keeps old info around
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5043
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5044
        id notNil ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5045
            deviceVisual ~~ #TrueColor ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5046
                aDevice registerColor:self.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5047
            ]
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5048
        ].
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5049
        ^ self
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5050
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5051
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5052
    "/ receiver was already associated to another device
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5053
    "/ - need a new color and return it
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5054
7762
29af5517f03a #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7758
diff changeset
  5055
    newColor := self class basicNew
7291
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5056
                        setScaledRed:red
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5057
                        scaledGreen:green
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5058
                        scaledBlue:blue
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5059
                        device:aDevice.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5060
    id isNil ifTrue:[
7291
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5061
        newColor setDitherForm:form
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5062
    ] ifFalse:[
7291
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5063
        newColor setColorId:id.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5064
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5065
        "/ trueColor device-colors are not registered
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5066
        deviceVisual ~~ #TrueColor ifTrue:[
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5067
            aDevice registerColor:newColor.
27effa38e219 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 6967
diff changeset
  5068
        ]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5069
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5070
    ^ newColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5071
2313
35b10e50a455 care for early onDevice:nil
Claus Gittinger <cg@exept.de>
parents: 2288
diff changeset
  5072
    "Created: / 16.11.1995 / 20:16:42 / cg"
35b10e50a455 care for early onDevice:nil
Claus Gittinger <cg@exept.de>
parents: 2288
diff changeset
  5073
    "Modified: / 8.9.1998 / 17:32:10 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5074
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5075
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5076
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5077
!Color methodsFor:'instance creation'!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5078
2948
86566f076d30 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2945
diff changeset
  5079
alpha:alphaValue
4789
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  5080
    "return a new color with the same color, but different alpha as the receiver.
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  5081
     The alpha arguments range is 0..1 (0=completely transparent; 1=completely opaque)"
2948
86566f076d30 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2945
diff changeset
  5082
86566f076d30 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2945
diff changeset
  5083
    alphaValue = 1 ifTrue:[ ^ self].
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5084
    ^ (TranslucentColor
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5085
	   scaledRed:red
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5086
	   scaledGreen:green
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5087
	   scaledBlue:blue) alpha:alphaValue
2948
86566f076d30 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2945
diff changeset
  5088
86566f076d30 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2945
diff changeset
  5089
    "
4789
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  5090
     (Color red alpha:0.5) alpha
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5091
     Color red alpha
4789
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  5092
    "
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  5093
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  5094
    "Modified: / 06-06-2007 / 11:17:55 / cg"
2948
86566f076d30 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2945
diff changeset
  5095
!
86566f076d30 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2945
diff changeset
  5096
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5097
blendWith:aColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5098
    "create a new color from equally mixing the receiver
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5099
     and the argument, aColor.
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5100
     Mixing is done by adding components
2943
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5101
     (which is different from mixing colors on paper .. which is subtractive)."
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5102
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5103
    ^ self mixed:1 with:aColor
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5104
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5105
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5106
     (Color red) blendWith:(Color yellow)
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5107
     (Color red) blendWith:(Color blue)
1326
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5108
     (Color red) blendWith:(Color black)
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5109
     (Color red) blendWith:(Color white)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5110
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5111
1326
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5112
    "Modified: 10.2.1997 / 22:08:14 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5113
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5114
5965
4f8e9e2ec50b class: Color
Stefan Vogel <sv@exept.de>
parents: 5957
diff changeset
  5115
contrastingBlackOrWhite
7639
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5116
    "answer either black or white, whichever gives a better contrast
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5117
     for drawing text on a background with my color.
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5118
     (i.e. if I am dark, return white; if I am bright, return black"
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5119
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5120
    ^ self brightness < 0.55 
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5121
        ifTrue:[self class white] 
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5122
        ifFalse:[self class black]
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5123
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5124
    "
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5125
     (Color blue) contrastingBlackOrWhite
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5126
     (Color red) contrastingBlackOrWhite
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5127
     (Color green) contrastingBlackOrWhite
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5128
     (Color yellow) contrastingBlackOrWhite
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5129
    "
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5130
!
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5131
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5132
contrastingColorFor:aBackgroundColor
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5133
    "answer a slightly brightened or darkened variant of myself,
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5134
     to ensure a good contrast when showing text on a background color.
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5135
     i.e. when drawing read on grey, it might be better to darken or brighten 
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5136
     the red, if its brightness is too near to the grey's brightness.
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5137
     Use this for alert strings shown on a color background."
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5138
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5139
    |colorUsed bgBrightness|
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5140
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5141
    colorUsed := self.
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5142
    bgBrightness := aBackgroundColor brightness.
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5143
    
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5144
    (bgBrightness dist:colorUsed brightness) < 0.5 ifTrue:[
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5145
        bgBrightness > 0.5 ifTrue:[
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5146
            colorUsed := self slightlyDarkened.
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5147
            (bgBrightness dist:colorUsed brightness) < 0.5 ifTrue:[
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5148
                colorUsed := self darkened.
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5149
            ].
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5150
        ] ifFalse:[
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5151
            colorUsed := self slightlyLightened.
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5152
            (bgBrightness dist:colorUsed brightness) < 0.5 ifTrue:[
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5153
                colorUsed := self lightened.
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5154
            ].
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5155
        ].    
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5156
    ].
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5157
    ^ colorUsed.
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5158
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5159
    "
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5160
     (Color blue) contrastingColorFor:Color white.
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5161
     (Color blue) contrastingColorFor:Color blue.
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5162
     (Color red) contrastingColorFor:Color grey
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5163
     (Color blue) contrastingColorFor:Color black
78da2ec0985d #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7620
diff changeset
  5164
    "
5965
4f8e9e2ec50b class: Color
Stefan Vogel <sv@exept.de>
parents: 5957
diff changeset
  5165
!
4f8e9e2ec50b class: Color
Stefan Vogel <sv@exept.de>
parents: 5957
diff changeset
  5166
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5167
darkened
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5168
    "return a new color, which is slightly darker than the receiver"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5169
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5170
    ^ self blendWith:Black
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5171
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5172
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5173
     (Color red) darkened
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5174
     (Color red) darkened darkened
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5175
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5176
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5177
    "Modified: 11.6.1996 / 18:10:37 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5178
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5179
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5180
lightened
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5181
    "return a new color, which is slightly lighter than the receiver"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5182
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5183
    ^ self blendWith:White
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5184
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5185
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5186
     (Color red) lightened
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5187
     (Color red) lightened lightened
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5188
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5189
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5190
    "Modified: 11.6.1996 / 18:10:49 / cg"
2943
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5191
!
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5192
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5193
mixed:amount with:aColor
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5194
    "create a new color from mixing amount of the receiver
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5195
     with the argument, aColor.
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5196
     Mixing is done by adding components (i.e. additive mixing)
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5197
     (which is different from mixing colors on paper .. which is subtractive).
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5198
     With an amount of 1, this is the same as blendWith."
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5199
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5200
    red isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5201
	^ aColor
2943
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5202
    ].
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5203
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5204
    ^ (self class)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5205
	scaledRed:((red * amount) + aColor scaledRed) // (1 + amount)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5206
	scaledGreen:((green * amount) + aColor scaledGreen) // (1 + amount)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5207
	scaledBlue:((blue * amount) + aColor scaledBlue) // (1 + amount)
2943
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5208
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5209
    "
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5210
     (Color red) mixed:1 with:(Color yellow)
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5211
     (Color red) mixed:0.9 with:(Color yellow)
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5212
     (Color red) mixed:0.8 with:(Color yellow)
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5213
     (Color red) mixed:0.5 with:(Color yellow)
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5214
     (Color red) mixed:0.25 with:(Color yellow)
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5215
     (Color red) mixed:0 with:(Color yellow)
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5216
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5217
     (Color red) mixed:1 with:(Color white)
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5218
     (Color red) mixed:0.8 with:(Color white)
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5219
     (Color red) mixed:0.8 with:(Color black)
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5220
    "
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5221
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5222
    "Modified: 10.2.1997 / 22:08:14 / cg"
3724
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5223
!
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5224
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5225
slightlyDarkened
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5226
    "return a new color, which is a bit darker than the receiver"
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5227
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5228
    ^ self blendWith:(self blendWith:Black)
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5229
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5230
    "
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5231
     (Color green) inspect
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5232
     (Color green) darkened inspect
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5233
     (Color green) slightlyDarkened inspect
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5234
    "
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5235
!
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5236
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5237
slightlyLightened
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5238
    "return a new color, which is a bit lighter than the receiver"
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5239
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5240
    ^ self blendWith:(self blendWith:White)
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5241
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5242
    "
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5243
     (Color red) inspect
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5244
     (Color red) lightened inspect
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5245
     (Color red) slightlyLightened inspect
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5246
    "
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5247
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5248
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5249
!Color methodsFor:'instance release'!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5250
2845
0794fef6db4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
  5251
executor
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5252
    "redefined, since for finalization only device and colorIndex
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5253
     are needed - thus a faster copy is possible here"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5254
2845
0794fef6db4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
  5255
    ^ DeviceColorHandle basicNew setDevice:device colorId:colorId
0794fef6db4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
  5256
!
0794fef6db4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
  5257
0794fef6db4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
  5258
releaseFromDevice
0794fef6db4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
  5259
    "I am no longer available on the device"
0794fef6db4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
  5260
2975
9ddc41c98ca6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2973
diff changeset
  5261
    colorId := device := ditherForm := replacementColor := nil.
2845
0794fef6db4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
  5262
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5263
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5264
3122
ecf190618501 AEG extensions removed
Claus Gittinger <cg@exept.de>
parents: 3039
diff changeset
  5265
!Color methodsFor:'misc'!
ecf190618501 AEG extensions removed
Claus Gittinger <cg@exept.de>
parents: 3039
diff changeset
  5266
ecf190618501 AEG extensions removed
Claus Gittinger <cg@exept.de>
parents: 3039
diff changeset
  5267
magnifiedTo: extent
ecf190618501 AEG extensions removed
Claus Gittinger <cg@exept.de>
parents: 3039
diff changeset
  5268
    "do nothing here, for compatibility with Image/Form"
ecf190618501 AEG extensions removed
Claus Gittinger <cg@exept.de>
parents: 3039
diff changeset
  5269
! !
ecf190618501 AEG extensions removed
Claus Gittinger <cg@exept.de>
parents: 3039
diff changeset
  5270
6967
bd2a3899b4f9 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6830
diff changeset
  5271
4851
c0a32100d99e category change
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  5272
!Color methodsFor:'object persistency'!
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5273
4207
9e70f7998f66 elementDescriptorFor: instead of encodingVectorFor:
penk
parents: 4203
diff changeset
  5274
elementDescriptorFor:aspect
4851
c0a32100d99e category change
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  5275
    "support for persistency:
c0a32100d99e category change
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  5276
     answer the elements to be made persistent with an ObjectCoder"
c0a32100d99e category change
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  5277
3935
c025aa0417cd encodingVectorFor:aspect (XMLStandardCoder)
tm
parents: 3931
diff changeset
  5278
    red isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5279
	^ Array with:(#colorId->colorId)
3935
c025aa0417cd encodingVectorFor:aspect (XMLStandardCoder)
tm
parents: 3931
diff changeset
  5280
    ].
c025aa0417cd encodingVectorFor:aspect (XMLStandardCoder)
tm
parents: 3931
diff changeset
  5281
    ^ Array with:(#red->self red) with:(#green->self green) with:(#blue->self blue)
4851
c0a32100d99e category change
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  5282
! !
c0a32100d99e category change
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  5283
c0a32100d99e category change
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  5284
!Color methodsFor:'printing & storing'!
3935
c025aa0417cd encodingVectorFor:aspect (XMLStandardCoder)
tm
parents: 3931
diff changeset
  5285
4850
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5286
hex
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5287
    <resource: #obsolete>
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5288
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5289
    self obsoleteMethodWarning:'use #hexPrintString'.
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5290
    ^ self hexPrintString
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5291
!
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5292
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5293
hexPrintString
4908
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5294
    "return a hex-printString as rrggbb"
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5295
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5296
    |s|
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5297
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5298
    s := WriteStream on:(String new:6).
5920
6048353b1ba8 changed: #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 5779
diff changeset
  5299
    red isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5300
	colorId notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5301
	    colorId printOn:s base:16 size:6 fill:$0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5302
	]
5920
6048353b1ba8 changed: #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 5779
diff changeset
  5303
    ] ifFalse:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5304
	self redByte   printOn:s base:16 size:2 fill:$0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5305
	self greenByte printOn:s base:16 size:2 fill:$0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5306
	self blueByte  printOn:s base:16 size:2 fill:$0.
5920
6048353b1ba8 changed: #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 5779
diff changeset
  5307
    ].
4908
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5308
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5309
    ^ s contents.
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5310
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5311
    "
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5312
     Color red hexPrintString
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5313
     Color green hexPrintString
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5314
     Color blue hexPrintString
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5315
     Color yellow hexPrintString
4850
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5316
    "
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5317
!
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5318
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5319
htmlPrintString
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5320
    "return a hex-printString for html as #rrggbb;"
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5321
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5322
    ^ '#',(self hexPrintString)
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5323
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5324
    "
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5325
     Color red htmlPrintString
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5326
     Color green htmlPrintString
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5327
     Color blue htmlPrintString
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5328
     Color yellow htmlPrintString
4850
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5329
    "
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5330
!
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5331
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5332
printOn:aStream
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5333
    "append a string representing of the receiver
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5334
     to the argument, aStream"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5335
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5336
    self storeOn:aStream
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5337
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5338
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5339
storeOn:aStream
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5340
    "append a string representing an expression to reconstruct the receiver
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5341
     to the argument, aStream"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5342
2942
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5343
    |clsName|
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5344
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5345
    clsName := self class name.
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5346
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5347
    red isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5348
	colorId notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5349
	    aStream nextPutAll:'(' , clsName , ' colorId:'.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5350
	    colorId storeOn:aStream.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5351
	    aStream nextPut:$).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5352
	    ^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5353
	]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5354
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5355
    (red == green and:[red == blue]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5356
	red == 0 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5357
	    aStream nextPutAll:'(' , clsName , ' black)'.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5358
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5359
	    red == MaxValue ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5360
		aStream nextPutAll:'(' , clsName , ' white)'.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5361
	    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5362
		aStream nextPutAll:'(' , clsName , ' grey:'.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5363
		(self red) storeOn:aStream.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5364
		aStream nextPut:$).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5365
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5366
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5367
	^ self
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5368
    ].
2942
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5369
    aStream nextPutAll:'(' , clsName , ' red:'.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5370
    (self red) storeOn:aStream.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5371
    aStream nextPutAll:' green:'.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5372
    (self green) storeOn:aStream.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5373
    aStream nextPutAll:' blue:'.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5374
    (self blue) storeOn:aStream.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5375
    aStream nextPut:$).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5376
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5377
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5378
!Color methodsFor:'private'!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5379
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5380
restored
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5381
    "private: color has been restored (either from snapin or binary store);
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5382
     flush device stuff or reallocate a cell."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5383
1238
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5384
    ditherForm := replacementColor := nil.
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5385
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5386
    red notNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5387
	device := nil.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5388
	colorId := nil
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5389
    ] ifFalse:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5390
	"a variable color has been restored"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5391
	(colorId notNil and:[writable == true and:[device notNil]]) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5392
	    colorId := device colorCell.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5393
	    device setColor:colorId scaledRed:red scaledGreen:green scaledBlue:blue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5394
	]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5395
    ]
1238
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5396
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5397
    "Modified: 17.1.1997 / 00:04:14 / cg"
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5398
!
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5399
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5400
setColorId:anId
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5401
    "private: set the deviceId"
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5402
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5403
    colorId := anId
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5404
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5405
    "Created: 17.1.1997 / 00:05:41 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5406
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5407
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5408
setDevice:aDevice colorId:aNumber
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5409
    "private:set device and colorId"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5410
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5411
    device := aDevice.
1934
fe7d73fe0df4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1929
diff changeset
  5412
    colorId := aNumber.
fe7d73fe0df4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1929
diff changeset
  5413
    writable := false.
fe7d73fe0df4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1929
diff changeset
  5414
!
fe7d73fe0df4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1929
diff changeset
  5415
fe7d73fe0df4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1929
diff changeset
  5416
setDevice:aDevice colorId:aNumber writable:wBool
fe7d73fe0df4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1929
diff changeset
  5417
    "private:set device, colorId and writable flag"
fe7d73fe0df4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1929
diff changeset
  5418
fe7d73fe0df4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1929
diff changeset
  5419
    device := aDevice.
fe7d73fe0df4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1929
diff changeset
  5420
    colorId := aNumber.
fe7d73fe0df4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1929
diff changeset
  5421
    writable := wBool.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5422
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5423
1238
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5424
setDitherForm:aForm
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5425
    "private: set the ditherForm"
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5426
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5427
    ditherForm := aForm
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5428
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5429
    "Created: 17.1.1997 / 00:04:57 / cg"
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5430
!
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5431
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5432
setScaledRed:r scaledGreen:g scaledBlue:b device:aDevice
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5433
    "private: set the components"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5434
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5435
    red notNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5436
	"oops cannot change (you want to make red be green - or what)"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5437
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5438
	self error:'Colors cannot change their components'.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5439
	^ self
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5440
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5441
    red := r.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5442
    green := g.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5443
    blue := b.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5444
    device := aDevice
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  5445
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  5446
    "Modified: 16.1.1997 / 22:39:26 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5447
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5448
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5449
!Color methodsFor:'queries'!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5450
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5451
averageColor
6793
4eb2c49db190 class: Color
Claus Gittinger <cg@exept.de>
parents: 6785
diff changeset
  5452
    "return the average color - that's myself.
4eb2c49db190 class: Color
Claus Gittinger <cg@exept.de>
parents: 6785
diff changeset
  5453
     This method has been added for compatibility with the image protocol."
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5454
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5455
    ^ self
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5456
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5457
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5458
averageColorIn:aRectangle
7580
1c51d1d76b32 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7569
diff changeset
  5459
    "return the average color - that's myself.
6793
4eb2c49db190 class: Color
Claus Gittinger <cg@exept.de>
parents: 6785
diff changeset
  5460
     This method has been added for compatibility with the image protocol."
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5461
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5462
    ^ self
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5463
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5464
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5465
brightness
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5466
    "ST80 compatibility: return the grey intensity in [0..1]"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5467
6384
b6ddf75e709e class: Color
Claus Gittinger <cg@exept.de>
parents: 6353
diff changeset
  5468
    red isNil ifTrue:[
b6ddf75e709e class: Color
Claus Gittinger <cg@exept.de>
parents: 6353
diff changeset
  5469
        "/ a hack for colorId:0 and colorId:1 pseudo mask colors.
b6ddf75e709e class: Color
Claus Gittinger <cg@exept.de>
parents: 6353
diff changeset
  5470
        colorId == 0 ifTrue:[^ 0].
b6ddf75e709e class: Color
Claus Gittinger <cg@exept.de>
parents: 6353
diff changeset
  5471
        ^ 1
b6ddf75e709e class: Color
Claus Gittinger <cg@exept.de>
parents: 6353
diff changeset
  5472
    ].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5473
    ^ ((3 * red) + (6 * green) + (blue)) / 10.0 / MaxValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5474
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5475
    "Modified: 7.6.1996 / 19:42:21 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5476
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5477
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5478
deltaFrom:aColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5479
    "return the distance of the receiver from some color specified
6785
7babceb91298 class: Color
Claus Gittinger <cg@exept.de>
parents: 6654
diff changeset
  5480
     by r/g/b values.
7babceb91298 class: Color
Claus Gittinger <cg@exept.de>
parents: 6654
diff changeset
  5481
     A very questionable value;
7411
9fdde791fac0 #DOCUMENTATION by mawalch
mawalch
parents: 7403
diff changeset
  5482
     basing the distance on rgb values is very bad
6785
7babceb91298 class: Color
Claus Gittinger <cg@exept.de>
parents: 6654
diff changeset
  5483
     - better do a distance in a cie color cone"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5484
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5485
    ^ aColor deltaFromRed:self red green:self green blue:self blue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5486
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  5487
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5488
     Color red deltaFrom:(Color blue)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5489
     Color red deltaFrom:(Color yellow)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5490
     Color red deltaFrom:(Color red:50)
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  5491
    "
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  5492
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5493
    "Created: 14.6.1996 / 20:07:22 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5494
    "Modified: 14.6.1996 / 20:49:32 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5495
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5496
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5497
deltaFromRed:r green:g blue:b
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5498
    "return the distance of the receiver from some color specified
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5499
     by r/g/b values"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5500
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5501
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5502
     Q: how should component errors be weighted ?
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5503
    "
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  5504
    ^ ((self red - r) abs
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5505
      + (self green - g) abs
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  5506
      + (self blue - b) abs) rounded.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5507
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5508
    "Created: 14.6.1996 / 20:03:58 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5509
    "Modified: 14.6.1996 / 20:20:24 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5510
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5511
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5512
deltaFromScaledRed:r scaledGreen:g scaledBlue:b
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5513
    "return the distance of the receiver from some color specified
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5514
     by r/g/b values"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5515
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5516
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5517
     Q: how should component errors be weighted ?
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5518
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5519
    ^ (red - r) abs
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5520
      + (green - g) abs
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5521
      + (blue - b) abs.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5522
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5523
    "Created: 11.6.1996 / 18:01:12 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5524
    "Modified: 14.6.1996 / 20:36:14 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5525
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5526
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5527
errorFrom:aColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5528
    "return some value which can be used to compare colors.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5529
     The following simply returns the vector distance of the r/g/b vectors.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5530
     This may not be a very good idea; probably, we should honor the
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5531
     fact that the hue difference should have more weight than saturation and/or light"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5532
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5533
    ^ (red - aColor scaledRed) squared
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5534
       + (green - aColor scaledGreen) squared
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5535
       + (blue - aColor scaledBlue) squared.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5536
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5537
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5538
grayIntensity
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5539
    "return the grey intensity in percent [0..100] (US version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5540
6385
463b0c40db9c class: Color
Claus Gittinger <cg@exept.de>
parents: 6384
diff changeset
  5541
    red isNil ifTrue:[
463b0c40db9c class: Color
Claus Gittinger <cg@exept.de>
parents: 6384
diff changeset
  5542
        "/ a hack for colorId:0 and colorId:1 pseudo mask colors.
463b0c40db9c class: Color
Claus Gittinger <cg@exept.de>
parents: 6384
diff changeset
  5543
        colorId == 0 ifTrue:[^ 0].
463b0c40db9c class: Color
Claus Gittinger <cg@exept.de>
parents: 6384
diff changeset
  5544
        ^ 100
463b0c40db9c class: Color
Claus Gittinger <cg@exept.de>
parents: 6384
diff changeset
  5545
    ].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5546
    ^ ((3 * red) + (6 * green) + (1 * blue)) * 10.0 / MaxValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5547
7758
2e96180d15d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7650
diff changeset
  5548
    "
2e96180d15d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7650
diff changeset
  5549
     Color red brightness
2e96180d15d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7650
diff changeset
  5550
     Color red grayIntensity
2e96180d15d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7650
diff changeset
  5551
    "
2e96180d15d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7650
diff changeset
  5552
    
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5553
    "Created: 2.5.1996 / 11:38:21 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5554
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5555
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5556
greyIntensity
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5557
    "return the grey intensity in percent [0..100] (English version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5558
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5559
    ^ self grayIntensity
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5560
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5561
    "Modified: 28.5.1996 / 20:45:41 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5562
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5563
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5564
isColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5565
    "return true if the receiver is a Color."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5566
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5567
    ^ true
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5568
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5569
2828
5795bf162314 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  5570
isColorObject
5795bf162314 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  5571
    ^ true
5795bf162314 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  5572
!
5795bf162314 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  5573
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5574
isDithered
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5575
    "return true, if this is a dithered Color.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5576
     Only makes sense if the receiver is a device color."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5577
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5578
    ^ ditherForm notNil
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5579
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5580
1326
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5581
isGray
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5582
    "same as isGrayColor - for ST80 compatibility."
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5583
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5584
    ^ self isGrayColor
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5585
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5586
    "
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5587
     (Color grey:50) isGray
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5588
     (Color red) isGray
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5589
    "
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5590
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5591
    "Created: 10.2.1997 / 22:10:25 / cg"
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5592
!
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5593
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5594
isGrayColor
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  5595
    "return true, if this color is a gray one (US version ;-) -
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5596
     i.e. red = green = blue"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5597
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5598
    red ~~ green ifTrue:[^ false].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5599
    ^ red == blue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5600
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5601
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5602
     (Color grey:50) isGrayColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5603
     (Color red) isGrayColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5604
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5605
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5606
    "Created: 2.5.1996 / 11:38:48 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5607
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5608
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5609
isGreyColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5610
    "return true, if this color is a grey one (English version ;-) -
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5611
     i.e. red = green = blue"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5612
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5613
    ^ self isGrayColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5614
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5615
    "(Color grey:50) isGreyColor"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5616
    "(Color red) isGreyColor"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5617
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5618
    "Modified: 28.5.1996 / 20:44:36 / cg"
2942
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5619
!
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5620
3598
2b6e50a38de6 New: #isOnDevice:
Stefan Vogel <sv@exept.de>
parents: 3543
diff changeset
  5621
isOnDevice:aGraphicsDevice
2b6e50a38de6 New: #isOnDevice:
Stefan Vogel <sv@exept.de>
parents: 3543
diff changeset
  5622
    "return true if i am allocated on aGraphicsDevice"
2b6e50a38de6 New: #isOnDevice:
Stefan Vogel <sv@exept.de>
parents: 3543
diff changeset
  5623
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5624
    ^ device == aGraphicsDevice
3598
2b6e50a38de6 New: #isOnDevice:
Stefan Vogel <sv@exept.de>
parents: 3543
diff changeset
  5625
      and:[colorId notNil or:[replacementColor notNil and:[replacementColor colorId notNil]]]
2b6e50a38de6 New: #isOnDevice:
Stefan Vogel <sv@exept.de>
parents: 3543
diff changeset
  5626
!
2b6e50a38de6 New: #isOnDevice:
Stefan Vogel <sv@exept.de>
parents: 3543
diff changeset
  5627
2942
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5628
isOpaque
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5629
    "return true, if I represent an opaque color"
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5630
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5631
    ^ true
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5632
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5633
!
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5634
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5635
isTranslucent
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5636
    "return true, if I represent a translucent color;
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5637
     that is: not completely opaque"
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5638
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5639
    ^ false
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5640
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5641
!
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5642
2945
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  5643
isTranslucentColor
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  5644
    "return true, if I represent a translucent color, but not transparent"
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  5645
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  5646
    ^ false
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  5647
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  5648
!
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  5649
2942
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5650
isTransparent
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5651
    "return true, if I represent a completely transparent color"
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5652
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5653
    ^ false
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5654
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5655
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5656
1907
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5657
!Color::DeviceColorHandle class methodsFor:'documentation'!
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5658
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5659
documentation
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5660
"
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5661
    This is an abstract class for device handles which are responsible
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5662
    for finalization i.e. to destroy underlying system resources, when the GC
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5663
    frees an object which has created some system object.
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5664
    These are used with colors.
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5665
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5666
    [see also:]
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5667
	Color
1907
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5668
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5669
    [author:]
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5670
	Claus Gittinger
1907
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5671
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5672
"
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5673
! !
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5674
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5675
!Color::DeviceColorHandle methodsFor:'accessing'!
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5676
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5677
setDevice:aDevice colorId:anId
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5678
    "set the handles contents"
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5679
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5680
    device := aDevice.
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5681
    colorId := anId.
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5682
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5683
    "Modified: 23.4.1996 / 22:10:26 / cg"
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5684
    "Created: 25.3.1997 / 14:29:10 / stefan"
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5685
! !
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5686
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5687
!Color::DeviceColorHandle methodsFor:'finalization'!
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5688
3611
8b4384c9e660 Use #finalize instead of #disposed
Stefan Vogel <sv@exept.de>
parents: 3598
diff changeset
  5689
finalize
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5690
    "the color for which I am a handle was collected
1907
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5691
     - release system resources"
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5692
2096
f3f0d358239f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2087
diff changeset
  5693
    |id|
f3f0d358239f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2087
diff changeset
  5694
f3f0d358239f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2087
diff changeset
  5695
    (id := colorId) notNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5696
	colorId := nil.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5697
	device freeColor:id.
1907
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5698
    ].
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5699
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5700
    "Created: 25.3.1997 / 14:29:10 / stefan"
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5701
! !
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5702
1144
07f3de59864d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
  5703
!Color class methodsFor:'documentation'!
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5704
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5705
version
6967
bd2a3899b4f9 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6830
diff changeset
  5706
    ^ '$Header$'
5419
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  5707
!
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  5708
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  5709
version_CVS
6967
bd2a3899b4f9 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6830
diff changeset
  5710
    ^ '$Header$'
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5711
! !
3757
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
  5712
6110
28bccabea00a class: Color
Claus Gittinger <cg@exept.de>
parents: 5965
diff changeset
  5713
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5714
Color initialize!