Color.st
author Claus Gittinger <cg@exept.de>
Thu, 23 Oct 2014 14:19:08 +0200
changeset 6584 f087c33d95db
parent 6554 6595cc1cf732
child 6654 57ee2fe958b9
permissions -rw-r--r--
class: Color changed: #pixelScreenForDepth: use isSmalltalkX instead of dialectName-compare
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
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    14
Object subclass:#Color
3757
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
    15
	instanceVariableNames:'red green blue device colorId ditherForm replacementColor
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
    16
		writable'
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
    17
	classVariableNames:'MaxValue Cells Black White LightGrey Grey DarkGrey Pseudo0
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
    18
		Pseudo1 PseudoAll Red Green Blue RetryAllocation DitherBits
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
    19
		ColorErrorSignal ColorAllocationFailSignal InvalidColorNameSignal
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
    20
		StandardColorValues Transparent'
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
    21
	poolDictionaries:''
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
    22
	category:'Graphics-Support'
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    23
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    24
1907
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
    25
Object subclass:#DeviceColorHandle
3757
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
    26
	instanceVariableNames:'device colorId'
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
    27
	classVariableNames:''
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
    28
	poolDictionaries:''
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
    29
	privateIn:Color
1907
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
    30
!
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
    31
1144
07f3de59864d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
    32
!Color class methodsFor:'documentation'!
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    33
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    34
copyright
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 (c) 1992 by Claus Gittinger
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
    37
	      All Rights Reserved
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    38
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    39
 This software is furnished under a license and may be used
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    40
 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
    41
 inclusion of the above copyright notice.   This software may not
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    42
 be provided or otherwise made available to, or used by, any
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    43
 other person.  No title to or ownership of the software is
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    44
 hereby transferred.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    45
"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    46
!
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
documentation
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
    Color represents colors in a device independent manner, main info I keep about
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    51
    mySelf are the red, green and blue components scaled into 0 .. MaxValue.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    52
    The device specific color can be aquired by sending a color the 'on:aDevice' message,
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    53
    which will return a color with the same rgb values as the receiver but specific
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    54
    for that device.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    55
6553
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
    56
    Most of the device dependent coding was to support limited graphics devices (non-true color)
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
    57
    in a transparent way. This was required at that time (late 80's, early 90's),
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
    58
    but is now almost obsolete, as these days, virtually any graphic systems supports it.
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
    59
    It is arguably, if that stuff should remain here, or if we should simply give up support
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
    60
    for old VGA-like displays.
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
    61
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
    62
    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
    63
    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
    64
    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
    65
    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
    66
    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
    67
    colormap (as usual for bitmaps).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    68
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    69
    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
    70
    new colors are created. When running out of colors, dithered colors will be used,
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    71
    using existing nearest colors and a dither pattern to aproximate the color.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    72
    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
    73
    to ugly looking dither colors.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    74
    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
    75
    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
    76
    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
    77
    (beside 5x5x5, there are various other size combinations available).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    78
    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
    79
    preallocated table may steal colors from the image ...
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    80
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    81
    [Instance variables:]
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    82
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    83
      red             <Integer>       the red component (0..MaxValue)
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    84
      green           <Integer>       the green component (0..MaxValue)
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    85
      blue            <Integer>       the blue component (0..MaxValue)
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
      device          <Device>        the device I am on, or nil
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    88
      colorId         <Object>        some device dependent identifier (or nil if dithered)
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    89
      ditherForm      <Form>          the Form to dither this color (if non-nil)
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    90
      writable        <Boolean>       true if this is for a writable color cell
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    91
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    92
    [Class variables:]
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    93
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    94
      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
    95
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
    96
      Lobby           <Registry>      all colors in use - keeps track of already allocated
6553
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
    97
                                      colors for reuse and finalization.
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
    98
                                      (dont use it: this will be moved to the device)
1229
249c0d78fd34 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1224
diff changeset
    99
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   100
      Cells           <Registry>      keeps track of allocated writable color cells
6553
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   101
                                      (dont use it: this will be moved to the device)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   102
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   103
      FixColors       <Array>         preallocated colors for dithering on Display
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   104
      NumRedFix       <Integer>       number of distinct red values in FixColors
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   105
      NumGreenFix     <Integer>       number of distinct green values in FixColors
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   106
      NumBlueFix      <Integer>       number of distinct blue values in FixColors
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   107
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   108
      Black           <Color>         for fast return of black
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   109
      White           <Color>         for fast return of white
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   110
      Grey            <Color>         for fast return of grey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   111
      LightGrey       <Color>         for fast return of lightGrey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   112
      DarkGrey        <Color>         for fast return of darkGrey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   113
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   114
      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
   115
      Pseudo1         <Color>         a color with 1 as handle (for forms)
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   116
      PseudoAll       <Color>         a color with allPlanes as handle (for bitblit)
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   117
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   118
      Red             <Color>         red, needed for dithering
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   119
      Green           <Color>         green, for dithering
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   120
      Blue            <Color>         blue, for dithering
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   121
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   122
      DitherColors    <Collection>    some preallocated colors for dithering
6553
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   123
                                      (kept, so they are available when needed)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   124
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   125
      RetryAllocation <Boolean>       this flag controls how a request for a
6553
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   126
                                      color should be handled which failed previously.
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   127
                                      I.e. a color is asked for, which was dithered
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   128
                                      the last time. Since it could happen, that in
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   129
                                      the meantime more colors became free, the request
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   130
                                      might succeed this time - however, your screen may
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   131
                                      look a bit funny, due to having both dithered and
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   132
                                      undithered versions around.
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   133
                                      The default is true, which means: do retry
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   134
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   135
    compatibility issues:
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   136
6553
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   137
        ST-80 seems to represent colors internally with scaled smallInteger
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   138
        components (this can be guessed from uses of
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   139
        scaledRed:scaledGreen:scaledBlue:). The main instance creation method is
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   140
        via 'ColorValue red:green:blue:', passing components in 0..1.
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   141
        In ST/X, component are internally represented as percent.
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   142
        For more compatibility (when subclassing color), these internals may
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   143
        change in the near future. For migration, a compatibility subclass
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   144
        called ColorValue is provided.
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   145
        After the change, Color will be renamed to ColorValue and Color
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   146
        be made a subclass of ColorValue (offering the 0..100 interface for
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   147
        backward compatibility).
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   148
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   149
    [see also:]
6553
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   150
        DeviceWorkstation
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   151
        GraphicsContext DeviceDrawable Form Image Colormap
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   152
        Font Cursor
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   153
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   154
    [author:]
6553
7d7458ec2686 class: Color
Claus Gittinger <cg@exept.de>
parents: 6552
diff changeset
   155
        Claus Gittinger
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   156
"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   157
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   158
1144
07f3de59864d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   159
!Color class methodsFor:'initialization'!
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   160
3903
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   161
allocateColorsIn:aColorVector on:aDevice
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   162
    "{ Pragma: +optSpace }"
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   163
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   164
    "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
   165
     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
   166
     however, colors may be either inexact or dithered."
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   167
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   168
    |clr round
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   169
     devClr|
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   170
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   171
    round := 0.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   172
    1 to:aColorVector size do:[:dstIndex |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   173
	clr := aColorVector at:dstIndex.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   174
	devClr := clr exactOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   175
	devClr isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   176
	    round == 0 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   177
		'Color [info]: scavenge to reclaim colors' infoPrintCR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   178
		ObjectMemory scavenge.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   179
		round := 1.
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
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   182
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   183
	devClr isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   184
	    round == 1 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   185
		'Color [info]: collect garbage to reclaim colors' infoPrintCR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   186
		ObjectMemory performLowSpaceCleanup.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   187
		ObjectMemory garbageCollect; finalize.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   188
		round := 2.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   189
		devClr := clr exactOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   190
	   ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   191
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   192
	devClr isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   193
	    ColorAllocationFailSignal raiseErrorString:'failed to allocate fix color'.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   194
	    ^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   195
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   196
	aColorVector at:dstIndex put:devClr.
3903
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   197
    ].
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   198
!
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   199
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   200
colorCubeWithRed:nRed green:nGreen blue:nBlue
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   201
    "{ Pragma: +optSpace }"
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   202
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   203
    |nR "{Class: SmallInteger }"
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   204
     nG "{Class: SmallInteger }"
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   205
     nB "{Class: SmallInteger }"
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   206
     dR dG dB red green blue dstIndex clr round
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   207
     colorCube|
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 := nRed.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   210
    nG := nGreen.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   211
    nB := nBlue.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   212
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   213
    dR := 100.0 / (nR - 1).
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   214
    dG := 100.0 / (nG - 1).
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   215
    dB := 100.0 / (nB - 1).
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   216
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   217
    colorCube := Array new:(nR * nG * nB).
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
    round := 0.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   220
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   221
    dstIndex := 1.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   222
    1 to:nR do:[:sR |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   223
	red := dR * (sR - 1).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   224
	1 to:nG do:[:sG |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   225
	    green := dG * (sG - 1).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   226
	    1 to:nB do:[:sB |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   227
		blue := dB * (sB - 1).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   228
		clr := self red:red green:green blue:blue.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   229
		colorCube at:dstIndex put:clr.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   230
		dstIndex := dstIndex + 1
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   231
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   232
	]
3903
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   233
    ].
3904
52925c65a8cc colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3903
diff changeset
   234
    ^ colorCube
3903
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   235
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   236
    "Created: 11.7.1996 / 17:55:32 / cg"
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   237
    "Modified: 10.1.1997 / 15:37:13 / cg"
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   238
!
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   239
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   240
flushDeviceColors
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   241
    "unassign all colors from their device"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   242
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   243
    self allInstances do:[:aColor |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   244
	aColor restored
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   245
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   246
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
   247
    "Modified: 24.2.1997 / 18:27:06 / cg"
1023
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
3240
c93e33069fb5 color reinitialization when coming up on another device
Claus Gittinger <cg@exept.de>
parents: 3213
diff changeset
   250
flushDeviceColorsFor:aDevice
c93e33069fb5 color reinitialization when coming up on another device
Claus Gittinger <cg@exept.de>
parents: 3213
diff changeset
   251
    self allInstancesDo:[:aColor |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   252
	aColor device == aDevice ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   253
	    aColor restored
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   254
	]
3240
c93e33069fb5 color reinitialization when coming up on another device
Claus Gittinger <cg@exept.de>
parents: 3213
diff changeset
   255
    ]
c93e33069fb5 color reinitialization when coming up on another device
Claus Gittinger <cg@exept.de>
parents: 3213
diff changeset
   256
!
c93e33069fb5 color reinitialization when coming up on another device
Claus Gittinger <cg@exept.de>
parents: 3213
diff changeset
   257
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   258
getColors6x6x4
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   259
    "{ Pragma: +optSpace }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   260
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   261
    "preallocates a 6x6x4 (144) colorMap and later uses those colors only.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   262
     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
   263
     however, colors may be either inexact or dithered."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   264
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   265
    self getColorsRed:6 green:6 blue:4
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   266
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   267
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   268
     Color getColors6x6x4
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   269
    "
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
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   272
getColors6x6x5
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   273
    "{ Pragma: +optSpace }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   274
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   275
    "preallocates a 6x6x5 (180) colorMap and later uses those colors only.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   276
     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
   277
     however, colors may be either inexact or dithered."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   278
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   279
    self getColorsRed:6 green:6 blue:5
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   280
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   281
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   282
     Color getColors6x6x5
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   283
    "
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
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   286
getColors6x6x6
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   287
    "{ Pragma: +optSpace }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   288
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   289
    "preallocates a 6x6x6 (196) colorMap and later uses those colors only.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   290
     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
   291
     however, colors may be either inexact or dithered."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   292
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   293
    self getColorsRed:6 green:6 blue:6
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   294
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   295
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   296
     Color getColors6x6x6
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   297
    "
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
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   300
getColors6x7x4
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   301
    "{ Pragma: +optSpace }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   302
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   303
    "preallocates a 6x7x4 (168) colorMap and later uses those colors only.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   304
     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
   305
     however, colors may be either inexact or dithered."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   306
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   307
    self getColorsRed:6 green:7 blue:4
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   308
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   309
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   310
     Color getColors6x7x4
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   311
    "
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
    "Created: 12.6.1996 / 17:41:57 / cg"
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
getColors7x8x4
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   317
    "{ Pragma: +optSpace }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   318
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   319
    "preallocates a 7x8x4 (224) colorMap and later uses those colors only.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   320
     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
   321
     however, colors may be either inexact or dithered."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   322
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   323
    self getColorsRed:7 green:8 blue:4
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   324
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   325
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   326
     Color getColors7x8x4
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   327
    "
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
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   330
getColorsRed:nRed green:nGreen blue:nBlue
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   331
    "{ Pragma: +optSpace }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   332
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   333
    "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
   334
     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
   335
     however, colors may be either inexact or dithered."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   336
2999
5e9272beef1b eliminated refs to Display - must use Screen current
Stefan Vogel <sv@exept.de>
parents: 2976
diff changeset
   337
    self getColorsRed:nRed green:nGreen blue:nBlue on:Screen current
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   338
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   339
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   340
     Color getColorsRed:2 green:2 blue:2
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   341
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   342
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   343
    "Modified: 11.7.1996 / 17:58:09 / cg"
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
getColorsRed:nRed green:nGreen blue:nBlue on:aDevice
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   347
    "{ Pragma: +optSpace }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   348
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   349
    "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
   350
     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
   351
     however, colors may be either inexact or dithered."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   352
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   353
    |nR "{Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   354
     nG "{Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   355
     nB "{Class: SmallInteger }"
3903
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   356
     dR dG dB fixColors|
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   357
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   358
    aDevice visualType == #TrueColor ifTrue:[^ self].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   359
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   360
    nR := nRed.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   361
    nG := nGreen.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   362
    nB := nBlue.
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
    dR := 100.0 / (nR - 1).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   365
    dG := 100.0 / (nG - 1).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   366
    dB := 100.0 / (nB - 1).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   367
3903
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   368
    fixColors := self colorCubeWithRed:nRed green:nGreen blue:nBlue.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   369
    self allocateColorsIn:fixColors on:aDevice.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   370
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   371
    aDevice setFixColors:fixColors numRed:nR numGreen:nG numBlue:nB
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   372
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   373
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   374
     Color getColorsRed:2 green:2 blue:2 on:Display
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   375
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   376
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   377
    "Created: 11.7.1996 / 17:55:32 / cg"
1165
a5334c030820 new infoMessage scheme
Claus Gittinger <cg@exept.de>
parents: 1144
diff changeset
   378
    "Modified: 10.1.1997 / 15:37:13 / cg"
1023
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
1770
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   381
getGrayColors:nGray on:aDevice
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   382
    "{ Pragma: +optSpace }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   383
1770
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   384
    "preallocates nGray gray colors for later use in dithering.
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   385
     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
   386
     however, colors may be either inexact or dithered."
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   387
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   388
    |nG "{Class: SmallInteger }"
3903
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   389
     d fixGrayColors|
1770
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   390
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   391
    aDevice visualType == #TrueColor ifTrue:[^ self].
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   392
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   393
    nG := nGray.
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   394
    d := 100.0 / (nG - 1).
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   395
3903
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   396
    fixGrayColors := self grayColorVector:nGray.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   397
    self allocateColorsIn:fixGrayColors on:aDevice.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   398
1770
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   399
    aDevice setFixGrayColors:fixGrayColors
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   400
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   401
    "
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   402
     Color getGrayColors:16 on:Display
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   403
    "
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   404
144dc9afae32 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1707
diff changeset
   405
    "Created: 23.6.1997 / 15:29:50 / cg"
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
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   408
getPrimaryColorsOn:aDevice
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   409
    "{ Pragma: +optSpace }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   410
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   411
    "preallocate the primary colors.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   412
     Doing so during early startup prevents us from running out
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   413
     of (at least those required) colors later.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   414
     This guarantees, that at least some colors are available
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   415
     for dithering (although, with only black, white, red, green and blue,
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   416
     dithered images look very poor)."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   417
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   418
    |colors white black red green blue clr dDepth
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   419
     lastPix "{ Class: SmallInteger }" |
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   420
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   421
    (aDevice notNil and:[aDevice ditherColors isNil]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   422
	white := (self red:100 green:100 blue:100) exactOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   423
	white colorId isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   424
	    'Color [warning]: cannot allocate white color' errorPrintCR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   425
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   426
	black := (self red:0 green:0 blue:0) exactOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   427
	black colorId isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   428
	    'Color [warning]: cannot allocate black color' errorPrintCR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   429
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   430
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   431
	aDevice hasColors ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   432
	    red := (self red:100 green:0 blue:0) exactOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   433
	    green := (self red:0 green:100 blue:0) exactOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   434
	    blue := (self red:0 green:0 blue:100) exactOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   435
	    (red isNil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   436
	    or:[green isNil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   437
	    or:[blue isNil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   438
	    or:[red colorId isNil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   439
	    or:[green colorId isNil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   440
	    or:[blue colorId isNil]]]]]) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   441
		'Color [warning]: cannot allocate primary color(s)' errorPrintCR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   442
		dDepth := aDevice depth.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   443
		((dDepth >= 4) and:[dDepth <= 8]) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   444
		    "/
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   445
		    "/ see what we have ...
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   446
		    "/
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   447
		    lastPix := (1 bitShift:dDepth) - 1.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   448
		    0 to:lastPix do:[:pixel |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   449
			colors := OrderedCollection new.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   450
			aDevice getRGBFrom:pixel into:[:r :g :b |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   451
			    colors add:((Color red:r green:g blue:b) exactOn:aDevice).
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
		    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   454
		    red := (self red:100 green:0 blue:0) nearestOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   455
		    green := (self red:0 green:100 blue:0) nearestOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   456
		    blue := (self red:0 green:0 blue:100) nearestOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   457
		] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   458
		    aDevice hasColors:false.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   459
		    aDevice hasGrayscales:false.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   460
		    red := green := blue := nil.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   461
		]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   462
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   463
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   464
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   465
	aDevice == Display ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   466
	    "/ keep those around for the main display
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   467
	    White := white.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   468
	    Black := black.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   469
	    Red := red.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   470
	    Green := green.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   471
	    Blue := blue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   472
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   473
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   474
	aDevice visualType ~~ #TrueColor ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   475
	    aDevice hasColors ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   476
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   477
		"preallocate some colors for dithering
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   478
		 - otherwise, they may not be available when we need them ...
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   479
		 these are: black, white, grey50,
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   480
			    red, green, blue, yellow, cyan and magenta.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   481
		"
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
		colors := OrderedCollection new.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   484
		clr := (self gray:50) exactOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   485
		(clr notNil and:[clr colorId notNil]) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   486
		    colors add:clr
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 add:white; add:black; add:red; add:green; add:blue.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   490
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   491
		colors add:((self red:100 green:100 blue:0) exactOn:aDevice).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   492
		colors add:((self red:100 green:0 blue:100) exactOn:aDevice).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   493
		colors add:((self red:0 green:100 blue:100) exactOn:aDevice).
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
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   496
	    aDevice hasGrayscales ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   497
		aDevice hasColors ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   498
		    colors := OrderedCollection new.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   499
		    colors add:((self gray:50) exactOn:aDevice).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   500
		    colors add:white; add:black.
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
		].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   503
		colors add:((self gray:25) exactOn:aDevice).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   504
		colors add:((self gray:33) exactOn:aDevice).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   505
		colors add:((self gray:67) exactOn:aDevice).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   506
		colors add:((self gray:75) exactOn:aDevice).
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 notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   510
		colors := colors select:[:clr | clr notNil and:[clr colorId notNil]].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   511
		aDevice setDitherColors:(colors asArray).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   512
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   513
	]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   514
    ]
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   515
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   516
    "Created: 11.7.1996 / 18:09:28 / cg"
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   517
    "Modified: 21.10.1997 / 02:42:28 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   518
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   519
3903
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   520
grayColorVector:nGray
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   521
    |nG "{Class: SmallInteger }"
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   522
     d gray dstIndex clr round
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   523
     grayColors|
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   524
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   525
    nG := nGray.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   526
    d := 100.0 / (nG - 1).
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   527
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   528
    grayColors := Array new:nG.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   529
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   530
    round := 0.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   531
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   532
    dstIndex := 1.
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   533
    1 to:nG do:[:sG |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   534
	gray := d * (sG - 1).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   535
	clr := self red:gray green:gray blue:gray.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   536
	grayColors at:dstIndex put:clr.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   537
	dstIndex := dstIndex + 1
3903
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   538
    ].
3904
52925c65a8cc colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3903
diff changeset
   539
    ^ grayColors
3903
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   540
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   541
    "
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   542
     Color getGrayColors:16 on:Display
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   543
    "
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   544
dde30ac28db3 colorCube code refactored
Claus Gittinger <cg@exept.de>
parents: 3898
diff changeset
   545
    "Created: 23.6.1997 / 15:29:50 / cg"
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
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   548
initialize
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   549
    "setup tracker of known colors and initialize classvars with
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   550
     heavily used colors"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   551
2379
b2a844aabc93 made my signals children of a common colorErrorSignal
Claus Gittinger <cg@exept.de>
parents: 2375
diff changeset
   552
    ColorErrorSignal isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   553
	ColorErrorSignal := Error newSignalMayProceed:true.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   554
	ColorErrorSignal nameClass:self message:#colorErrorSignal.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   555
	ColorErrorSignal notifierString:'color error'.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   556
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   557
	ColorAllocationFailSignal := ColorErrorSignal newSignalMayProceed:true.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   558
	ColorAllocationFailSignal nameClass:self message:#colorAllocationFailSignal.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   559
	ColorAllocationFailSignal notifierString:'color allocation failed'.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   560
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   561
	InvalidColorNameSignal := ColorErrorSignal newSignalMayProceed:true.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   562
	InvalidColorNameSignal nameClass:self message:#invalidColorNameSignal.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   563
	InvalidColorNameSignal notifierString:'invalid color name'.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   564
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   565
	MaxValue := 16rFFFF.
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
	"want to be informed when returning from snapshot"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   568
	ObjectMemory addDependent:self.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   569
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   570
	RetryAllocation := true.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   571
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   572
	DitherBits := self ditherBits.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   573
	self initializeStandardColorNames.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   574
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   575
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
   576
    "
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
   577
     Color initialize
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
   578
    "
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
   579
2379
b2a844aabc93 made my signals children of a common colorErrorSignal
Claus Gittinger <cg@exept.de>
parents: 2375
diff changeset
   580
    "Modified: / 30.9.1998 / 21:56:50 / cg"
1428
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   581
!
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   582
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   583
initializeStandardColorNames
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   584
    "{ Pragma: +optSpace }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   585
1428
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   586
    "setup standard colors"
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
    StandardColorValues := Dictionary new.
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   589
    #(
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   590
		'red'     (16rFFFF 16r0000 16r0000)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   591
		'green'   (16r0000 16rFFFF 16r0000)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   592
		'blue'    (16r0000 16r0000 16rFFFF)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   593
		'yellow'  (16rFFFF 16rFFFF 16r0000)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   594
		'magenta' (16rFFFF 16r0000 16rFFFF)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   595
		'cyan'    (16r0000 16rFFFF 16rFFFF)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   596
		'white'   (16rFFFF 16rFFFF 16rFFFF)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   597
		'black'   (16r0000 16r0000 16r0000)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   598
		'olive'   (16r7FFF 16r7FFF 16r0000)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   599
		'teal'    (16r0000 16r7FFF 16r7FFF)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   600
		'silver'  (16r6666 16r6666 16r6666)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   601
		'lime'    (16r3333 16rFFFF 16r0000)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   602
		'fuchsia' (16r9999 16r07ae 16rFFFF)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   603
		'aqua'    (16r199a 16rFFFF 16rFFFF)
1428
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   604
    ) pairWiseDo:[:name :value |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   605
	StandardColorValues at:name put:value
1428
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   606
    ].
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   607
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   608
    "
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   609
     Color initializeStandardColorNames
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   610
    "
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   611
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
   612
    "Modified: 6.3.1997 / 02:28:58 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   613
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   614
3930
1eb2b8d1d01d +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
   615
standardDitherColorsForDepth8
3931
417757ef9695 +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3930
diff changeset
   616
    "return a set of colors useful for dithering (roughly 200 colors);
417757ef9695 +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3930
diff changeset
   617
     This includes a color cube and the main grayScale colors."
417757ef9695 +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3930
diff changeset
   618
3930
1eb2b8d1d01d +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
   619
    |ditherColors|
1eb2b8d1d01d +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
   620
1eb2b8d1d01d +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
   621
    ditherColors := self colorCubeWithRed:6 green:8 blue:4.
1eb2b8d1d01d +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
   622
    ditherColors := ditherColors ,
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   623
		    (Array
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   624
			with:(Color gray:20)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   625
			with:(Color gray:25)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   626
			with:(Color gray:40)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   627
			with:(Color gray:50)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   628
			with:(Color gray:60)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   629
			with:(Color gray:75)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   630
			with:(Color gray:80)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   631
			with:(Color rgbValue:16rBFBFBF)).
3930
1eb2b8d1d01d +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
   632
    ^ ditherColors
3931
417757ef9695 +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3930
diff changeset
   633
417757ef9695 +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3930
diff changeset
   634
    "
417757ef9695 +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3930
diff changeset
   635
     self standardDitherColorsForDepth8
417757ef9695 +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3930
diff changeset
   636
    "
3930
1eb2b8d1d01d +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
   637
!
1eb2b8d1d01d +standardDitherColorsForDepth8
Claus Gittinger <cg@exept.de>
parents: 3904
diff changeset
   638
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   639
update:something with:aParameter from:changedObject
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   640
    "handle image restarts and flush any device resource handles"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   641
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   642
    (something == #returnFromSnapshot) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   643
	Display notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   644
	    Display visualType == #TrueColor ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   645
		Display releaseFixColors
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   646
	    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   647
		Display fixColors notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   648
		    ColorAllocationFailSignal handle:[:ex |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   649
			ex return
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   650
		    ] do:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   651
			|nR nG nB|
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   652
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   653
			nR := Display numFixRed.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   654
			nG := Display numFixGreen.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   655
			nB := Display numFixBlue.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   656
			Display releaseFixColors.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   657
			self getColorsRed:nR
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   658
				    green:nG
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   659
				     blue:nB
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   660
				       on:Display
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   661
		    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   662
		]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   663
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   664
	]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   665
    ]
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   666
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   667
    "Created: 15.6.1996 / 15:14:03 / cg"
1370
37dfdffdd4b6 getPrimaryColors now invoked from device
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
   668
    "Modified: 24.2.1997 / 22:08:05 / cg"
4535
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   669
!
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   670
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   671
vgaColors
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   672
    "{ Pragma: +optSpace }"
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   673
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   674
    |colors|
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
    colors := Array new:16.
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   677
    colors at:1 put:(Color rgbValue:16rFFFFFF).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   678
    colors at:2 put:(Color rgbValue:16rC0C0C0).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   679
    colors at:3 put:(Color rgbValue:16r808080).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   680
    colors at:4 put:(Color rgbValue:16r000000).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   681
    colors at:5 put:(Color rgbValue:16rFF0000).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   682
    colors at:6 put:(Color rgbValue:16r800000).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   683
    colors at:7 put:(Color rgbValue:16r008000).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   684
    colors at:8 put:(Color rgbValue:16r00FF00).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   685
    colors at:9 put:(Color rgbValue:16r0000FF).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   686
    colors at:10 put:(Color rgbValue:16r000080).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   687
    colors at:11 put:(Color rgbValue:16rFF00FF).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   688
    colors at:12 put:(Color rgbValue:16r800080).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   689
    colors at:13 put:(Color rgbValue:16rFFFF00).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   690
    colors at:14 put:(Color rgbValue:16r808000).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   691
    colors at:15 put:(Color rgbValue:16r00FFFF).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   692
    colors at:16 put:(Color rgbValue:16r008080).
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   693
    ^ colors
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   694
9b9d6b7fa221 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4533
diff changeset
   695
    "Created: / 07-07-2006 / 13:36:15 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   696
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   697
1144
07f3de59864d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
   698
!Color class methodsFor:'instance creation'!
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   699
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   700
allColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   701
    "return a special color which, when used for bit-blitting will
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   702
     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
   703
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   704
    PseudoAll isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   705
	PseudoAll := self basicNew setColorId:-1
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   706
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   707
    ^ PseudoAll
1238
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
   708
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
   709
    "Modified: 17.1.1997 / 00:05:36 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   710
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   711
2455
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   712
bgrValue:bgr
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   713
    "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
   714
     The value is composed of b<<16 + g<<8 + r.
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   715
     (this byte-order is sometimes encountered with windows systems (progs)"
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   716
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   717
    |r g b|
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   718
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   719
    b := (bgr bitShift:-16) bitAnd:16rFF.
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   720
    g := (bgr bitShift:-8) bitAnd:16rFF.
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   721
    r := (bgr) bitAnd:16rFF.
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   722
    ^ self redByte:r greenByte:g blueByte:b
9d61d6c0d0f9 added #bgrValue (sigh)
Claus Gittinger <cg@exept.de>
parents: 2388
diff changeset
   723
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
1985
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
   726
blue: blue
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
   727
    "return a color from blue value;
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
   728
     the argument green is interpreted as percent (0..100)"
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
   729
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   730
    ^ here
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   731
	scaledRed:0 scaledGreen:0 scaledBlue:(blue * MaxValue // 100)
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   732
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   733
    "
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   734
     (Color blue:50) inspect
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   735
    "
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   736
1985
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
   737
!
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
   738
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   739
brightness:brightness
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   740
    "create a gray color with given brightness (0..1).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   741
     ST-80 compatibility."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   742
3264
ab71c2bd250f fixed #brightness:
Claus Gittinger <cg@exept.de>
parents: 3240
diff changeset
   743
    ^ self scaledGray:(brightness * MaxValue) rounded
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   744
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   745
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   746
colorId:id
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   747
    "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
   748
     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
   749
     or for bitblits if you want to manipulate a specific colorplane."
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
    id == 0 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   752
	^ self noColor
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   753
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   754
    id == 1 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   755
	Pseudo1 isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   756
	    Pseudo1 := self basicNew setColorId:1
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   757
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   758
	^ Pseudo1
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
	^ self allColor
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   762
    ].
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
   763
1238
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
   764
    ^ self basicNew setColorId:id
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
   765
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
   766
    "Modified: 24.2.1997 / 18:16:30 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   767
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   768
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   769
cyan:c magenta:m yellow:y
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   770
    "return a color from cyan, magenta and yellow values.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   771
     all values are given in percent (0..100)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   772
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   773
    ^ self
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   774
	redPercent:(100 - c)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   775
	greenPercent:(100 - m)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   776
	bluePercent:(100 - y)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   777
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   778
    "
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   779
     Color cyan:100 magenta:0 yellow:0      - cyan
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   780
     Color cyan:100 magenta:100 yellow:0    - blue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   781
     Color cyan:100 magenta:0 yellow:100    - green
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   782
     Color cyan:100 magenta:100 yellow:100  - black
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   783
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   784
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   785
    "Modified: 11.6.1996 / 18:29:15 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   786
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   787
2888
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   788
cyan:c magenta:m yellow:y black:k
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   789
    "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
   790
     all values are given in percent (0..100).
2889
143b466ea54b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
   791
     The value returned here is questionable.
143b466ea54b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
   792
     TODO: we loose information about one component here,
143b466ea54b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
   793
     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
   794
     information internally for later use (when saving)."
2888
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   795
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   796
    |scale r g b|
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   797
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   798
    "/ mhmh - how should we scale black into the components ?
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   799
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   800
    r := (100 - c).
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   801
    g := (100 - m).
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   802
    b := (100 - y).
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   803
    k ~~ 0 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   804
	"/ more black - darker
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   805
	scale := (100-k) max:0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   806
	scale := scale / 100.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   807
	r := r * scale.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   808
	g := g * scale.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   809
	b := b * scale.
2888
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   810
    ].
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   811
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   812
    ^ self redPercent:r greenPercent:g bluePercent:b
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   813
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   814
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   815
     Color cyan:100 magenta:0 yellow:0 black:0      - cyan
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   816
     Color cyan:100 magenta:0 yellow:0 black:50     - cyan darkened
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   817
     Color cyan:100 magenta:50 yellow:50 black:0    - cyan darkened
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   818
     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
   819
    "
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   820
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   821
    "Modified: 11.6.1996 / 18:29:15 / cg"
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   822
!
ce7e932e7cf6 added cyan:magenta:yellow:black
Claus Gittinger <cg@exept.de>
parents: 2845
diff changeset
   823
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   824
dither:fraction between:color1 and:color2 on:aDevice
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   825
    "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
   826
     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
   827
     colors.
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   828
     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
   829
     (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
   830
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   831
    |newColor form c1 c2|
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   832
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   833
    "/ both must be true device colors
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   834
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   835
    c1 := color1 exactOn:aDevice.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   836
    c2 := color2 exactOn:aDevice.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   837
    (c1 isNil or:[c2 isNil]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   838
	'Color [warning]: monoDither failed - no real colors given' errorPrintCR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   839
	^ nil
1707
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
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   842
    self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   843
	monoDitherFor:fraction
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   844
	between:c1
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   845
	and:c2
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   846
	on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   847
	into:[:c :f | newColor := c. form := f].
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   848
    newColor notNil ifTrue:[^ newColor].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   849
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   850
    form isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   851
	"/ cannot happen
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   852
	'Color [warning]: monoDither failed' errorPrintCR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   853
	^ nil
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   854
    ].
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
    newColor := self basicNew
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   857
			setScaledRed:nil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   858
			scaledGreen:nil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   859
			scaledBlue:nil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   860
			device:aDevice.
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   861
    newColor setDitherForm:form.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   862
    newColor setDevice:aDevice colorId:nil.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   863
    ^ newColor
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   864
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   865
    "
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   866
     (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
   867
     (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
   868
     (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
   869
    "
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
    "Created: 3.5.1997 / 10:54:32 / cg"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   872
    "Modified: 3.5.1997 / 11:10:51 / cg"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   873
!
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   874
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   875
dithered:fraction between:color1 and:color2 on:aDevice
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   876
    "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
   877
     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
   878
     colors.
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   879
     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
   880
     (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
   881
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   882
    |newColor form c1 c2|
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   883
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   884
    "/ both must be true device colors
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   885
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   886
    c1 := color1 exactOn:aDevice.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   887
    c2 := color2 exactOn:aDevice.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   888
    (c1 isNil or:[c2 isNil]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   889
	'Color [warning]: monoDither failed - no real colors given' errorPrintCR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   890
	^ nil
1707
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
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   893
    self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   894
	monoDitherFor:fraction
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   895
	between:c1
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   896
	and:c2
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   897
	on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   898
	into:[:c :f | newColor := c. form := f].
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   899
    newColor notNil ifTrue:[^ newColor].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   900
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   901
    form isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   902
	"/ cannot happen
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   903
	'Color [warning]: monoDither failed' errorPrintCR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   904
	^ nil
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   905
    ].
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
    newColor := self basicNew
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   908
			setScaledRed:nil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   909
			scaledGreen:nil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   910
			scaledBlue:nil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   911
			device:aDevice.
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   912
    newColor setDitherForm:form.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   913
    newColor setDevice:aDevice colorId:nil.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   914
    ^ newColor
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   915
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   916
    "
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   917
     |c|
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   918
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   919
     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
   920
     c inspect.
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
     |v 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
     v := StandardSystemView new.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   926
     v extent:100@100.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   927
     v openAndWait.
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
     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
   930
     v paint:c.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   931
     v fillRectangle:(10@10 corner:90@90).
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   932
    "
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   933
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   934
    "Created: 3.5.1997 / 10:54:32 / cg"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   935
    "Modified: 3.5.1997 / 11:13:12 / cg"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   936
!
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
   937
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   938
fromUser
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   939
    "{ Pragma: +optSpace }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
   940
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   941
    "let user point on a screen pixel.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   942
     Return an instance for that pixels color"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   943
4896
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   944
    ^ self fromUserWithFeedBack:nil
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   945
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   946
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   947
     Color fromUser
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   948
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   949
1976
fcf9afd72f0f Do not use obsolete method Color>>at:
Stefan Vogel <sv@exept.de>
parents: 1971
diff changeset
   950
    "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
   951
    "Modified: / 9.1.1998 / 20:48:58 / stefan"
1023
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
4896
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   954
fromUserWithFeedBack:feedbackBlockOrNil
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   955
    "{ Pragma: +optSpace }"
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   956
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   957
    "let user point on a screen pixel.
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   958
     Return an instance for that pixels color"
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   959
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   960
    |p screen|
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   961
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   962
    screen := Screen current.
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   963
    p := screen
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   964
	    pointFromUserShowing:(Cursor crossHair)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   965
	    positionFeedback:[:p |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   966
				feedbackBlockOrNil notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   967
				    feedbackBlockOrNil value:(screen colorAt:p)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   968
				]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   969
			    ].
4896
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   970
    ^ screen colorAt:p
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   971
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   972
    "
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   973
     Color fromUserWithFeedBack:nil
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   974
    "
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   975
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   976
    "Modified: / 31.8.1995 / 01:34:22 / claus"
bd1f161a578a added feedback option in color-fromUser
Claus Gittinger <cg@exept.de>
parents: 4851
diff changeset
   977
    "Modified: / 9.1.1998 / 20:48:58 / stefan"
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
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   980
green:green
1985
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
   981
    "return a color from green value;
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
   982
     the argument green is interpreted as percent (0..100)"
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
   983
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   984
    ^ here
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   985
	scaledRed:0 scaledGreen:(green * MaxValue // 100) scaledBlue:0
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   986
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   987
    "
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   988
     (Color green:50) inspect
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   989
    "
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
   990
1985
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
   991
!
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
   992
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   993
hue:h light:l saturation:s
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   994
    "return a color from hue, light and saturation values.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   995
     Hue is in degrees (0..360); light and sturation are
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   996
     in percent (0..100)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   997
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
   998
    self withRGBFromHue:h light:l saturation:s do:[:r :g :b |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
   999
	^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1000
	    redPercent:(r clampBetween:0 and:100)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1001
	    greenPercent:(g clampBetween:0 and:100)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1002
	    bluePercent:(b clampBetween:0 and:100)
1023
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
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1005
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1006
     Color hue:0 light:50 saturation:100     - red
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1007
     Color hue:60 light:50 saturation:100    - yellow
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1008
     Color hue:120 light:50 saturation:100   - green
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1009
     Color hue:120 light:75 saturation:100   - bright green
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1010
     Color hue:120 light:25 saturation:100   - dark green
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1011
     Color hue:120 light:50 saturation:50    - greyish dark green
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1012
     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
  1013
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1014
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1015
    "Modified: 23.4.1996 / 13:22:22 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1016
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1017
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  1018
name:colorName
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1019
    "Return a named color (either exact or dithered).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1020
     Report an error, if aString is not a valid color name.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1021
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1022
     We hereby only guarantee that the 8 basic colors are supported
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1023
     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
  1024
     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
  1025
     common names)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1026
     - use with special names (such as 'mediumGoldenRod' is not recommended).
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  1027
     Better use: #name:ifIllegal: and provide a fallBack."
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1028
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1029
    ^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1030
	name:colorName
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1031
	ifIllegal:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1032
	    InvalidColorNameSignal
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1033
		raiseRequestWith:colorName errorString:' : ' , colorName
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1034
	]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1035
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1036
    "
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1037
     Color name:'brown'
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1038
     Color name:'snow'
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1039
     Color name:'foo'
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1040
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1041
1534
73dd2c4b86c8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1502
diff changeset
  1042
    "Modified: 4.4.1997 / 15:32:33 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1043
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1044
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  1045
name:colorName ifIllegal:errorBlock
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1046
    "Return a named color (either exact or dithered).
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1047
     If aString is not a valid color name,
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  1048
     return the result from evaluating errorBlock."
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  1049
3399
02a4018f9549 care for no-display case when asking for a color-by-name
Claus Gittinger <cg@exept.de>
parents: 3396
diff changeset
  1050
    |triple r g b currScreen|
1428
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
  1051
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
  1052
    triple := StandardColorValues at:colorName asString ifAbsent:nil.
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
  1053
    triple notNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1054
	r := triple at:1.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1055
	g := triple at:2.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1056
	b := triple at:3.
1428
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
  1057
    ] ifFalse:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1058
	"/ ask display (if there is one) ...
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1059
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1060
	(Screen notNil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1061
	and:[ (currScreen := Screen current) notNil])
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1062
	ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1063
	    currScreen
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1064
		getScaledRGBFromName:colorName
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1065
		into:[:rr :gg :bb |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1066
		    r := rr.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1067
		    g := gg.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1068
		    b := bb
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1069
		].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1070
	]
1428
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
  1071
    ].
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  1072
    r notNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1073
	^ here scaledRed:r scaledGreen:g scaledBlue:b
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  1074
    ].
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  1075
    ^ errorBlock value
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1076
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1077
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1078
     Color name:'brown' ifIllegal:[Color black]
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1079
     Color name:'red' ifIllegal:[Color black]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1080
     Color name:'fuchsia' ifIllegal:[Color black]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1081
     Color name:'foo' ifIllegal:[Color black]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1082
     Color name:'foo' ifIllegal:[nil]
1023
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
1428
79251ddda7a1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1390
diff changeset
  1085
    "Modified: 6.3.1997 / 02:32:41 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1086
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1087
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1088
noColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1089
    "return a special color which, when used for bit-blitting will
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1090
     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
  1091
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1092
     Pseudo0 isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1093
	 Pseudo0 := self basicNew setColorId:0
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1094
     ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1095
     ^ Pseudo0
1238
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  1096
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  1097
    "Modified: 17.1.1997 / 00:06:49 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1098
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1099
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  1100
red:red
1985
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
  1101
    "return a color from red value;
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
  1102
     the argument r is interpreted as percent (0..100)"
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
  1103
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1104
    ^ here
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1105
	scaledRed:(red * MaxValue // 100) scaledGreen:0 scaledBlue:0
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  1106
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  1107
    "
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  1108
     (Color red:50) inspect
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  1109
    "
1985
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
  1110
!
4af804551b39 some instancing methods added
tz
parents: 1976
diff changeset
  1111
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1112
red:r green:g blue:b
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1113
    "return a color from red, green and blue values;
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1114
     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
  1115
1348
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1116
    ^ here scaledRed:(r * MaxValue // 100)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1117
	   scaledGreen:(g * MaxValue // 100)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1118
	   scaledBlue:(b * MaxValue // 100)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1119
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1120
1237
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1121
redByte:r greenByte:g blueByte:b
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1122
    "return a color from red, green and blue values;
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1123
     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
  1124
1348
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1125
    ^ here scaledRed:(r * MaxValue // 255)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1126
	   scaledGreen:(g * MaxValue // 255)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1127
	   scaledBlue:(b * MaxValue // 255)
1237
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1128
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1129
    "
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1130
     (Color redByte:255 greenByte:0 blueByte:0) inspect
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1131
     (Color redByte:255 greenByte:255 blueByte:255) inspect
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1132
     (Color redByte:0 greenByte:0 blueByte:0) inspect
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1133
    "
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
    "Modified: 16.1.1997 / 23:32:43 / cg"
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1136
!
15848ece8b95 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1235
diff changeset
  1137
4789
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1138
redByte:r greenByte:g blueByte:b alphaByte:a
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1139
    "return a color from red, green, blue and alpha values;
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1140
     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
  1141
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1142
    ^ (here scaledRed:(r * MaxValue // 255)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1143
	   scaledGreen:(g * MaxValue // 255)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1144
	   scaledBlue:(b * MaxValue // 255))
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1145
	   alpha:(a / 255)
4789
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1146
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
     (Color redByte:255 greenByte:0 blueByte:0 alphaByte:127) inspect
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1149
    "
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1150
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1151
    "Created: / 06-06-2007 / 11:15:47 / cg"
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
5144
d93391e9ea8d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5131
diff changeset
  1154
redFraction:r greenFraction:g blueFraction:b
d93391e9ea8d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5131
diff changeset
  1155
    "return a color from red, green and blue values;
d93391e9ea8d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5131
diff changeset
  1156
     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
  1157
d93391e9ea8d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5131
diff changeset
  1158
    ^ here scaledRed:(r * MaxValue) rounded
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1159
	   scaledGreen:(g * MaxValue) rounded
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1160
	   scaledBlue:(b * MaxValue) rounded
5144
d93391e9ea8d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5131
diff changeset
  1161
!
d93391e9ea8d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5131
diff changeset
  1162
1348
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1163
redPercent:r greenPercent:g bluePercent:b
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1164
    "return a color from red, green and blue values;
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1165
     the arguments, r, g and b are interpreted as percent (0..100)"
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1166
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1167
    ^ here scaledRed:(r * MaxValue // 100)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1168
	   scaledGreen:(g * MaxValue // 100)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1169
	   scaledBlue:(b * MaxValue // 100)
1348
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1170
!
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1171
5127
40d2ac51c76d color conversions fixed (16bit images)
Claus Gittinger <cg@exept.de>
parents: 4986
diff changeset
  1172
redPercent:r greenPercent:g bluePercent:b alphaPercent:a
40d2ac51c76d color conversions fixed (16bit images)
Claus Gittinger <cg@exept.de>
parents: 4986
diff changeset
  1173
    "return a color from red, green and blue values;
40d2ac51c76d color conversions fixed (16bit images)
Claus Gittinger <cg@exept.de>
parents: 4986
diff changeset
  1174
     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
  1175
40d2ac51c76d color conversions fixed (16bit images)
Claus Gittinger <cg@exept.de>
parents: 4986
diff changeset
  1176
    ^ (here scaledRed:(r * MaxValue // 100)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1177
	   scaledGreen:(g * MaxValue // 100)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1178
	   scaledBlue:(b * MaxValue // 100))
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1179
	   alpha:(a * 255 // 100)
5127
40d2ac51c76d color conversions fixed (16bit images)
Claus Gittinger <cg@exept.de>
parents: 4986
diff changeset
  1180
!
40d2ac51c76d color conversions fixed (16bit images)
Claus Gittinger <cg@exept.de>
parents: 4986
diff changeset
  1181
3956
74f5434f3e38 +redShort:greenShort:blueShort:
Claus Gittinger <cg@exept.de>
parents: 3935
diff changeset
  1182
redShort:r greenShort:g blueShort:b
74f5434f3e38 +redShort:greenShort:blueShort:
Claus Gittinger <cg@exept.de>
parents: 3935
diff changeset
  1183
    "return a color from red, green and blue short values;
74f5434f3e38 +redShort:greenShort:blueShort:
Claus Gittinger <cg@exept.de>
parents: 3935
diff changeset
  1184
     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
  1185
74f5434f3e38 +redShort:greenShort:blueShort:
Claus Gittinger <cg@exept.de>
parents: 3935
diff changeset
  1186
    ^ here scaledRed:(r * MaxValue // 16rFFFF)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1187
	   scaledGreen:(g * MaxValue // 16rFFFF)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1188
	   scaledBlue:(b * MaxValue // 16rFFFF)
3956
74f5434f3e38 +redShort:greenShort:blueShort:
Claus Gittinger <cg@exept.de>
parents: 3935
diff changeset
  1189
74f5434f3e38 +redShort:greenShort:blueShort:
Claus Gittinger <cg@exept.de>
parents: 3935
diff changeset
  1190
    "
74f5434f3e38 +redShort:greenShort:blueShort:
Claus Gittinger <cg@exept.de>
parents: 3935
diff changeset
  1191
     (Color redShort:16rFFFF greenShort:0 blueShort:0) inspect
74f5434f3e38 +redShort:greenShort:blueShort:
Claus Gittinger <cg@exept.de>
parents: 3935
diff changeset
  1192
    "
74f5434f3e38 +redShort:greenShort:blueShort:
Claus Gittinger <cg@exept.de>
parents: 3935
diff changeset
  1193
!
74f5434f3e38 +redShort:greenShort:blueShort:
Claus Gittinger <cg@exept.de>
parents: 3935
diff changeset
  1194
1859
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1195
rgbValue:rgb
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  1196
    "return a color from a 24bit RGB value;
1859
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1197
     The value is composed of r<<16 + g<<8 + b."
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1198
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1199
    |r g b|
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1200
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1201
    r := (rgb bitShift:-16) bitAnd:16rFF.
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1202
    g := (rgb bitShift:-8) bitAnd:16rFF.
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1203
    b := (rgb) bitAnd:16rFF.
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1204
    ^ self redByte:r greenByte:g blueByte:b
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1205
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
     (Color rgbValue:16rFF0000) inspect
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1208
     (Color rgbValue:16r00FF00) inspect
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1209
     (Color rgbValue:16r0000FF) inspect
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1210
     (Color rgbValue:16rFF00FF) inspect
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
    "Modified: 13.8.1997 / 20:24:37 / cg"
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1214
!
b483006c48f5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1856
diff changeset
  1215
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1216
scaledGray:aGrayValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1217
    "return a gray color with a scaled gray value (0..MaxValue)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1218
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1219
    ^ self scaledRed:aGrayValue scaledGreen:aGrayValue scaledBlue:aGrayValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1220
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1221
    "Modified: 11.6.1996 / 16:31:42 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1222
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1223
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1224
scaledRed:r scaledGreen:g scaledBlue:b
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1225
    "return a color from red, green and blue values;
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1226
     the arguments, r, g and b are interpreted as (0..MaxValue)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1227
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1228
    |newColor|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1229
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1230
"/    "look if already known"
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1231
"/
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1232
"/    aDevice deviceColors do:[:aColor |
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1233
"/        (r == aColor scaledRed) ifTrue:[
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1234
"/            (g == aColor scaledGreen) ifTrue:[
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1235
"/                (b == aColor scaledBlue) ifTrue:[
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1236
"/                    ^ aColor
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
"/            ]
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1239
"/        ]
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1240
"/    ].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1241
    newColor := self basicNew setScaledRed:r scaledGreen:g scaledBlue:b device:nil.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1242
    ^ newColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1243
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1244
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1245
     (Color red:100 green:0 blue:0) inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1246
     (Color red:100 green:50 blue:50) inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1247
     (Color red:50 green:0 blue:0) inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1248
    "
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
    "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
  1251
    "Modified: 24.2.1997 / 18:18:47 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1252
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1253
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1254
variableColorOn:aDevice
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1255
    "return a variable color (i.e. allocate a writable colorcell) on
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1256
     aDevice. The returned color is not shared and its rgb components
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1257
     are initially undefined. The components can be set to any value
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1258
     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
  1259
     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
  1260
     being a pseudocolor device using colormaps).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1261
     Returns nil, if no more colorCells are available, or the display
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1262
     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
  1263
     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
  1264
     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
  1265
     things in another color)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1266
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1267
    |c lutIndex|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1268
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1269
    lutIndex := aDevice colorCell.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1270
    lutIndex isNil ifTrue:[^ nil].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1271
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1272
    c := self new.
1934
fe7d73fe0df4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1929
diff changeset
  1273
    c setDevice:aDevice colorId:lutIndex writable:true.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1274
    Cells isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1275
	Cells := Registry new.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1276
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1277
    Cells register:c.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1278
    ^ c
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1279
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1280
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1281
     |l cell|
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
     l := Label new.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1284
     l label:('hello' asText allBold).
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
     cell := Color variableColorOn:(Screen current).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1287
     l foregroundColor:cell.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1288
     [
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1289
	1 to:40 do:[:i|
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1290
	    i odd ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1291
		cell red:100 green:0 blue:0
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1292
	    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1293
		cell red:0 green:0 blue:0
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1294
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1295
	    Display flush.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1296
	    (Delay forSeconds:0.4) wait
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1297
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1298
	l destroy.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1299
     ] fork.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1300
     l open
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1301
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1302
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1303
    "Modified: 13.5.1996 / 12:41:53 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1304
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1305
3892
fb62c937c134 category
Claus Gittinger <cg@exept.de>
parents: 3880
diff changeset
  1306
!Color class methodsFor:'Compatibility-Squeak'!
2934
33b1988133d3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
  1307
3021
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1308
colorPaletteForDepth: depth extent: chartExtent
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1309
	"Squeak mimicri:
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1310
	 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
  1311
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1312
	"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
  1313
	"(Color colorPaletteForDepth: 16 extent: 190@60) display"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1314
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1315
	| 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
  1316
a4244f890bde *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3309
diff changeset
  1317
"/        Smalltalk isSmalltalkX ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1318
	    palette := Image extent:chartExtent depth:24.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1319
	    palette photometric:#rgb.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1320
	    palette bits:(ByteArray new:chartExtent x * chartExtent y * 3).
3324
a4244f890bde *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3309
diff changeset
  1321
"/        ] ifFalse:[
a4244f890bde *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3309
diff changeset
  1322
"/            palette := Form extent: chartExtent depth: depth.
a4244f890bde *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3309
diff changeset
  1323
"/        ].
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1324
	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
  1325
		(Form extent: 34@9 depth: 1
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1326
			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
  1327
			offset: 0@0).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1328
	transHt := transCaption height.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1329
	palette fillWhite: (0@0 extent: palette width@transHt).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1330
	palette fillBlack: (0@transHt extent: palette width@1).
3021
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1331
"/        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
  1332
	grayWidth := 10.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1333
	startHue := 338.0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1334
	vSteps := palette height - transHt // 2.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1335
	hSteps := palette width - grayWidth.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1336
	x := 0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1337
	startHue to: startHue + 360.0 by: 360.0/hSteps do: [:h |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1338
		basicHue := Color h: h asFloat s: 1.0 v: 1.0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1339
		y := transHt+1.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1340
		0 to: vSteps do: [:n |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1341
			c := basicHue mixed: (n asFloat / vSteps asFloat) with: Color white.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1342
			palette fill: (x@y extent: 1@1) fillColor: c.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1343
			y := y + 1].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1344
		1 to: vSteps do: [:n |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1345
			c := Color black mixed: (n asFloat / vSteps asFloat) with: basicHue.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1346
			y < palette height ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1347
			    palette fill: (x@y extent: 1@1) fillColor: c.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1348
			].
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
		x := x + 1].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1351
	y := transHt + 1.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1352
	1 to: vSteps * 2 do: [:n |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1353
		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
  1354
		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
  1355
		y := y + 1].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1356
	^ palette
3021
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1357
!
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1358
3024
a565d805ad69 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
  1359
fromRgbTriplet:aTriple
a565d805ad69 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
  1360
    ^ self r:(aTriple at:1)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1361
	   g:(aTriple at:2)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1362
	   b:(aTriple at:3)
3024
a565d805ad69 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
  1363
a565d805ad69 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
  1364
!
a565d805ad69 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
  1365
3021
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1366
h:hue s:saturation v:brightness
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1367
    "Squeak mimicri:
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1368
     Create a color with the given hue, saturation, and brightness.
3021
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1369
     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
  1370
     where red is zero degrees.
3021
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1371
     Saturation and brightness are numbers in [0.0..1.0],
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1372
     where larger values are more saturated or brighter colors.
3021
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1373
     For example, (Color h: 0 s: 1 v: 1) is pure red."
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1374
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1375
    "Note: By convention, brightness is abbreviated 'v' to to avoid confusion with blue."
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1376
3024
a565d805ad69 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
  1377
    ^ self hue:hue light:(brightness*50) saturation:(saturation*100)
a565d805ad69 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
  1378
!
a565d805ad69 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
  1379
4986
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1380
indexedColors
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1381
    "Build an array of colors corresponding to the fixed colormap used
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1382
     for display depths of 1, 2, 4, or 8 bits."
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1383
    "Color indexedColors"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1384
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1385
    | a index grayVal |
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1386
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1387
    a := Array new: 256.
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1388
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1389
    "1-bit colors (monochrome)"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1390
    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
  1391
    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
  1392
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1393
    "additional colors for 2-bit color"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1394
    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
  1395
    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
  1396
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1397
    "additional colors for 4-bit color"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1398
    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
  1399
    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
  1400
    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
  1401
    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
  1402
    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
  1403
    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
  1404
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1405
    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
  1406
    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
  1407
    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
  1408
    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
  1409
    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
  1410
    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
  1411
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1412
    "additional colors for 8-bit color"
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1413
    "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
  1414
    index := 17.
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1415
    1 to: 31 do: [:v |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1416
	(v \\ 4) = 0 ifFalse: [
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1417
	    grayVal := v / 32.0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1418
	    a at: index put: (Color r: grayVal g: grayVal b: grayVal).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1419
	    index := index + 1]].
4986
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1420
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1421
    "The remainder of color table defines a color cube with six steps
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1422
     for each primary color. Note that the corners of this cube repeat
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1423
     previous colors, but this simplifies the mapping between RGB colors
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1424
     and color map indices. This color cube spans indices 40 through 255
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1425
     (indices 41-256 in this 1-based array)."
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1426
    0 to: 5 do: [:r |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1427
	0 to: 5 do: [:g |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1428
	    0 to: 5 do: [:b |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1429
		index := 41 + ((36 * r) + (6 * b) + g).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1430
		index > 256 ifTrue: [
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1431
		    self error: 'index out of range in color table compuation'].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1432
		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
  1433
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1434
    ^ a.
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1435
!
a9325e813324 +indexedColors
Claus Gittinger <cg@exept.de>
parents: 4910
diff changeset
  1436
3893
0e96816ba790 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3892
diff changeset
  1437
paleBlue
0e96816ba790 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3892
diff changeset
  1438
    ^ self r:0.75 g:0.75 b:1
0e96816ba790 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3892
diff changeset
  1439
!
0e96816ba790 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3892
diff changeset
  1440
3024
a565d805ad69 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
  1441
pixelScreenForDepth: depth
3898
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1442
    "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
  1443
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1444
    | mask bits |
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1445
6584
f087c33d95db class: Color
Claus Gittinger <cg@exept.de>
parents: 6554
diff changeset
  1446
    (Smalltalk isSmalltalkX) ifTrue:[
f087c33d95db class: Color
Claus Gittinger <cg@exept.de>
parents: 6554
diff changeset
  1447
        depth == 1 ifTrue:[
f087c33d95db class: Color
Claus Gittinger <cg@exept.de>
parents: 6554
diff changeset
  1448
            ^ Form mediumGreyFormOn:Screen current
f087c33d95db class: Color
Claus Gittinger <cg@exept.de>
parents: 6554
diff changeset
  1449
        ].
f087c33d95db class: Color
Claus Gittinger <cg@exept.de>
parents: 6554
diff changeset
  1450
        self shouldImplement.
3898
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1451
    ].
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1452
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1453
    mask := (1 bitShift: depth) - 1.
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1454
    bits := 2 * depth.
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1455
    [bits >= 32] whileFalse: [
6584
f087c33d95db class: Color
Claus Gittinger <cg@exept.de>
parents: 6554
diff changeset
  1456
        mask := mask bitOr: (mask bitShift: bits).  "double the length of mask"
f087c33d95db class: Color
Claus Gittinger <cg@exept.de>
parents: 6554
diff changeset
  1457
        bits := bits + bits
3898
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
    ^ Bitmap with: mask with: mask bitInvert32
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1460
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1461
    "
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1462
     self pixelScreenForDepth: depth
368c43005b5a isSmalltalkX -> dialectName comparison (CS-Compatibility)
Claus Gittinger <cg@exept.de>
parents: 3893
diff changeset
  1463
    "
3021
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1464
!
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1465
2934
33b1988133d3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
  1466
r:redFraction g:greenFraction b:blueFraction
3021
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1467
    "Squeak mimicri:
5f9fc57177b8 more Squeak compatibility stuff
ps
parents: 3005
diff changeset
  1468
     return a color from red, green and blue fractional values;
4789
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1469
     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
  1470
2937
4536e6de438a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2934
diff changeset
  1471
    ^ here scaledRed:(redFraction * MaxValue) rounded
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1472
	   scaledGreen:(greenFraction * MaxValue) rounded
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1473
	   scaledBlue:(blueFraction * MaxValue) rounded
4789
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1474
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1475
    "Modified: / 06-06-2007 / 11:19:53 / cg"
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1476
!
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1477
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1478
r:r g:g b:b alpha:alphaValue
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1479
    "return a color from red, green and blue values;
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1480
     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
  1481
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1482
    ^ (self r:r g:g b:b) alpha:alphaValue
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
    "
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1485
     (Color r:1 g:0 b:0 alpha:0) inspect
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1486
     (Color r:0 g:1 b:0 alpha:0.5) inspect
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1487
     (Color r:0 g:0 b:1 alpha:1) inspect
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1488
    "
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
    "Created: / 06-06-2007 / 10:48:21 / cg"
3396
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1491
!
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1492
4202
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1493
r:r g:g b:b range:componentMax
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1494
    "return a color from red, green and blue values;
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1495
     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
  1496
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1497
    ^ here scaledRed:(r * MaxValue // componentMax)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1498
	   scaledGreen:(g * MaxValue // componentMax)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1499
	   scaledBlue:(b * MaxValue // componentMax)
4202
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1500
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1501
    "
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1502
     (Color r:1023 g:0 b:0 range:1023) inspect
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1503
     (Color r:1023 g:1023 b:1023 range:1023) inspect
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1504
     (Color r:0 g:0 b:0 range:1023) inspect
a82c1cbb8d30 +r:g:b:range:
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
  1505
    "
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
3396
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1508
showColors: colorList
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1509
	"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
  1510
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1511
	| w r |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1512
	w := Screen current width // colorList size.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1513
	r := 0@0 extent: w@((w min: 30) max: 10).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1514
	colorList do: [:c |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1515
		Screen current fill: r fillColor: c.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1516
		r := r translateBy: w@0].
3396
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1517
!
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1518
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1519
wheel: thisMany
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1520
    "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
  1521
    "Color showColors: (Color wheel: 12)"
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1522
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1523
    ^ Color wheel: thisMany saturation: 0.9 brightness: 0.7
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
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1526
wheel: thisMany saturation: s brightness: v
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1527
    "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
  1528
     all of the given saturation and brightness."
3396
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1529
    "Color showColors: (Color wheel: 12 saturation: 0.4 brightness: 1.0)"
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  1530
    "Color showColors: (Color wheel: 12 saturation: 0.8 brightness: 0.5)"
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
    ^ (Color h: 0.0 s: s v: v) wheel: thisMany
4789
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1533
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  1534
    "Modified: / 06-06-2007 / 11:20:59 / cg"
2934
33b1988133d3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
  1535
! !
33b1988133d3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
  1536
1144
07f3de59864d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
  1537
!Color class methodsFor:'Signal constants'!
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1538
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1539
colorAllocationFailSignal
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1540
    "return the signal raised when a color allocation failed."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1541
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1542
    ^ ColorAllocationFailSignal
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1543
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1544
    "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
  1545
!
f0777b2cc08a use a signal for invalid color names
Claus Gittinger <cg@exept.de>
parents: 1239
diff changeset
  1546
2379
b2a844aabc93 made my signals children of a common colorErrorSignal
Claus Gittinger <cg@exept.de>
parents: 2375
diff changeset
  1547
colorErrorSignal
b2a844aabc93 made my signals children of a common colorErrorSignal
Claus Gittinger <cg@exept.de>
parents: 2375
diff changeset
  1548
    "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
  1549
b2a844aabc93 made my signals children of a common colorErrorSignal
Claus Gittinger <cg@exept.de>
parents: 2375
diff changeset
  1550
    ^ ColorErrorSignal
b2a844aabc93 made my signals children of a common colorErrorSignal
Claus Gittinger <cg@exept.de>
parents: 2375
diff changeset
  1551
b2a844aabc93 made my signals children of a common colorErrorSignal
Claus Gittinger <cg@exept.de>
parents: 2375
diff changeset
  1552
    "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
  1553
!
b2a844aabc93 made my signals children of a common colorErrorSignal
Claus Gittinger <cg@exept.de>
parents: 2375
diff changeset
  1554
1269
f0777b2cc08a use a signal for invalid color names
Claus Gittinger <cg@exept.de>
parents: 1239
diff changeset
  1555
invalidColorNameSignal
f0777b2cc08a use a signal for invalid color names
Claus Gittinger <cg@exept.de>
parents: 1239
diff changeset
  1556
    "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
  1557
f0777b2cc08a use a signal for invalid color names
Claus Gittinger <cg@exept.de>
parents: 1239
diff changeset
  1558
    ^ InvalidColorNameSignal
f0777b2cc08a use a signal for invalid color names
Claus Gittinger <cg@exept.de>
parents: 1239
diff changeset
  1559
f0777b2cc08a use a signal for invalid color names
Claus Gittinger <cg@exept.de>
parents: 1239
diff changeset
  1560
    "Created: 24.1.1997 / 13:36:25 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1561
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1562
1144
07f3de59864d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
  1563
!Color class methodsFor:'accessing'!
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1564
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1565
allocatedColorsOn:aDevice
3833
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1566
    "return a collection of colors which have already been allocated
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1567
     on aDevice."
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1568
4176
40b359dfc293 Mark obsolete methods
Stefan Vogel <sv@exept.de>
parents: 4170
diff changeset
  1569
    <resource: #obsolete>
3833
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1570
    self obsoleteMethodWarning:'use #allocatedColorsOnDevice:'.
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1571
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1572
    ^ self allocatedColorsOnDevice:aDevice
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1573
!
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1574
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1575
allocatedColorsOnDevice:aDevice
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1576
    "return a collection of colors which have already been allocated
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1577
     on aDevice."
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1578
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1579
    |colors|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1580
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1581
    colors := OrderedCollection new.
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1582
    aDevice deviceColors do:[:clr |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1583
	clr colorId notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1584
	    colors add:clr
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1585
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1586
	    'Color [oops]: nil colorId in color' infoPrintCR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1587
	]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1588
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1589
    ^ colors asArray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1590
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1591
    "
3833
4537841edc0f code cleanup
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  1592
     Color allocatedColorsOnDevice:Display
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1593
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1594
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  1595
    "Modified: 24.2.1997 / 18:16:14 / cg"
1023
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
1144
07f3de59864d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
  1598
!Color class methodsFor:'color space conversions'!
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
withHLSFromRed:r green:g blue:b do:aBlock
3543
240b9b32ec20 comments
Claus Gittinger <cg@exept.de>
parents: 3427
diff changeset
  1601
    "compute hls form rgb, evaluate aBlock with h,l and s as arguments.
240b9b32ec20 comments
Claus Gittinger <cg@exept.de>
parents: 3427
diff changeset
  1602
     r,g,b in 0..100
240b9b32ec20 comments
Claus Gittinger <cg@exept.de>
parents: 3427
diff changeset
  1603
     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
  1604
6110
28bccabea00a class: Color
Claus Gittinger <cg@exept.de>
parents: 5965
diff changeset
  1605
    |max min r1 g1 b1 delta h l s divisor|
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1606
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1607
    r1 := r / 100.   "scale to  0..1"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1608
    g1 := g / 100.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1609
    b1 := b / 100.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1610
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1611
    max := (r1 max:g1) max:b1.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1612
    min := (r1 min:g1) min:b1.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1613
    l := (max + min) / 2.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1614
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1615
    max = min ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1616
	"achromatic, r=g=b"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1617
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1618
	s := 0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1619
	h := nil
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1620
    ] ifFalse:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1621
	l < 0.5 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1622
	    divisor := (max + min)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1623
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1624
	    divisor := (2 - max - min)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1625
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1626
	divisor = 0 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1627
	    s := 1.0
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1628
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1629
	    s := (max - min) / divisor
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1630
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1631
	"calc hue"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1632
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1633
	delta := max - min.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1634
	r1 = max ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1635
	    h := (g1 - b1) / delta
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1636
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1637
	    g1 = max ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1638
		h := 2 + ((b1 - r1) / delta)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1639
	    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1640
		h := 4 + ((r1 - g1) / delta)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1641
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1642
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1643
	h := h * 60.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1644
	h < 0 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1645
	    h := h + 360
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1646
	].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1647
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1648
    aBlock value:h value:(l * 100) value:(s * 100)
6110
28bccabea00a class: Color
Claus Gittinger <cg@exept.de>
parents: 5965
diff changeset
  1649
28bccabea00a class: Color
Claus Gittinger <cg@exept.de>
parents: 5965
diff changeset
  1650
    "Modified: / 27-07-2013 / 11:48:20 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1651
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1652
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1653
withHLSFromScaledRed:r scaledGreen:g scaledBlue:b do:aBlock
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1654
    "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
  1655
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1656
    ^ self withHLSFromRed:(r * 100.0 / MaxValue)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1657
		    green:(g * 100.0 / MaxValue)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1658
		     blue:(b * 100.0 / MaxValue)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1659
		       do:aBlock
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1660
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1661
    "Created: 11.6.1996 / 17:23:47 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1662
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1663
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1664
withRGBFromHue:h light:l saturation:s do:aBlock
3543
240b9b32ec20 comments
Claus Gittinger <cg@exept.de>
parents: 3427
diff changeset
  1665
    "compute rgb form hls, evaluate aBlock with r,g and b as arguments
240b9b32ec20 comments
Claus Gittinger <cg@exept.de>
parents: 3427
diff changeset
  1666
     r,g,b in 0..100
240b9b32ec20 comments
Claus Gittinger <cg@exept.de>
parents: 3427
diff changeset
  1667
     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
  1668
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1669
    |valueFunc s1 l1 r g b m1 m2|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1670
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1671
    valueFunc := [:n1 :n2 :hIn |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1672
	|hue|
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1673
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1674
	hue := hIn.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1675
	hue > 360 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1676
	    hue := hue - 360
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1677
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1678
	    hue < 0 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1679
		hue := hue + 360
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1680
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1681
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1682
	hue < 60 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1683
	    n1 + ((n2 - n1) * hue / 60)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1684
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1685
	    hue < 180 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1686
		n2
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1687
	    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1688
		hue < 240 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1689
		    n1 + ((n2 - n1) * (240 - 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
		    n1
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1692
		]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1693
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1694
	]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1695
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1696
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1697
    "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
  1698
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1699
    s1 := s / 100.0.   "scale to  0..1"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1700
    l1 := l / 100.0.
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
    l1 <= 0.5 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1703
	m2 := l1 * (1 + s1)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1704
    ] ifFalse:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1705
	m2 := l1 + s1 - (l1 * s1)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1706
    ].
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
    m1 := 2 * l1 - m2.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1709
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1710
    s1 = 0 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1711
	"achromatic, ignore hue"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1712
	r := g := b := l1
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1713
    ] ifFalse:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1714
	r := valueFunc value:m1 value:m2 value:h + 120.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1715
	g := valueFunc value:m1 value:m2 value:h.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1716
	b := valueFunc value:m1 value:m2 value:h - 120.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1717
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1718
    aBlock value:r*100 value:g*100 value:b*100
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1719
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1720
1144
07f3de59864d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
  1721
!Color class methodsFor:'constant colors'!
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1722
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1723
black
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1724
    "return the black color"
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
    Black isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1727
	Black := self red:0 green:0 blue:0
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
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
     Color black inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1733
    "
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
    "Modified: 11.6.1996 / 15:55:31 / cg"
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
blue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1739
    "return the blue color"
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
    Blue isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1742
	Blue := self redPercent:0 greenPercent:0 bluePercent:100
1023
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
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
     Color blue inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1748
    "
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
    "Modified: 23.4.1996 / 13:15:51 / cg"
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
2962
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1753
brown
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1754
    ^ self redPercent:60 greenPercent:20 bluePercent:0
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1755
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1756
    "
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1757
     Color brown
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1758
    "
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1759
!
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1760
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1761
cyan
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1762
    "return the cyan color - ST-80 compatibility"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1763
2087
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1764
    ^ self cyan:100
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1765
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1766
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1767
     Color cyan inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1768
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1769
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1770
    "Modified: 23.4.1996 / 13:16:07 / cg"
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
2087
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1773
cyan: cyan
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1774
    "return a cyan color;
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1775
     the argument cyan is interpreted as percent (0..100)"
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1776
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1777
     ^ self cyan:100 magenta:100-cyan yellow:100-cyan
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1778
2087
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1779
!
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1780
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1781
darkGray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1782
    "return the dark grey color (English version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1783
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1784
    DarkGrey isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1785
	DarkGrey := self grayPercent:33
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1786
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1787
    ^ DarkGrey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1788
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
     Color darkGray inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1791
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1792
1368
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  1793
    "Modified: 24.2.1997 / 21:33:11 / cg"
1023
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
darkGrey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1797
    "return the darkGrey color (US version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1798
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1799
    ^ self darkGray
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
     Color darkGrey inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1803
    "
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
    "Modified: 28.5.1996 / 20:47:14 / cg"
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
gray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1809
    "return a medium grey color (US version ;-)"
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
    Grey isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1812
	Grey := self grayPercent:50
1023
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
    ^ Grey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1815
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
     Color gray inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1818
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1819
1368
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  1820
    "Modified: 24.2.1997 / 21:33:19 / cg"
1023
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
gray:gray
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1824
    "return a gray color (US version).
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1825
     The argument, gray is interpreted as percent (0..100)."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1826
1348
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1827
    ^ self redPercent:gray greenPercent:gray bluePercent:gray
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1828
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1829
    "
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1830
     Color gray:25
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1831
    "
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1832
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1833
    "Modified: 28.5.1996 / 20:49:51 / cg"
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
grayPercent:gray
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1837
    "return a gray color (US version).
1348
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1838
     The argument, gray is interpreted as percent (0..100)."
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1839
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  1840
    ^ self redPercent:gray greenPercent:gray bluePercent:gray
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1841
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1842
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1843
     Color gray:25
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1844
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1845
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1846
    "Modified: 28.5.1996 / 20:49:51 / cg"
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
green
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1850
    "return green"
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
    Green isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1853
	Green := self redPercent:0 greenPercent:100 bluePercent:0
1023
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
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
     Color green inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1859
    "
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
    "Modified: 23.4.1996 / 13:23:08 / cg"
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
grey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1865
    "return the grey color (English version ;-)"
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
    ^ self gray
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
     Color grey inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1871
    "
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
    "Modified: 28.5.1996 / 20:48:26 / cg"
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
grey:grey
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1877
    "return a grey color (English version).
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1878
     The argument, grey is interpreted as percent (0..100)."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1879
1368
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  1880
    ^ self grayPercent:grey
1023
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
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1883
     Color grey:25
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1884
     Color grey:12.5
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1885
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1886
1368
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  1887
    "Modified: 24.2.1997 / 21:33:28 / cg"
1023
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
5419
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  1890
greyByte:greyByte
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1891
    "return a grey color (English version).
5419
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  1892
     The argument, grey is interpreted as byte-value (0..255)."
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  1893
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  1894
    ^ self redByte:greyByte greenByte:greyByte blueByte:greyByte
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  1895
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  1896
    "
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  1897
     Color greyByte:127
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  1898
    "
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
2388
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1901
lightBlue
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1902
    "return a light blue color"
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1903
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1904
    ^ self redPercent:50 greenPercent:50 bluePercent:100
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1905
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1906
    "
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1907
     Color lightBlue inspect
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1908
    "
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
    "Modified: 23.4.1996 / 13:23:08 / cg"
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
2962
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1913
lightBrown
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1914
    ^ self brown lighter
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1915
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1916
    "
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1917
     Color lightBrown
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1918
    "
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1919
!
c60ec983a6f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2949
diff changeset
  1920
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1921
lightGray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1922
    "return the lightGrey color (US version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1923
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1924
    LightGrey isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1925
	LightGrey := self grayPercent:67
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1926
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1927
    ^ LightGrey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1928
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
     Color lightGray inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1931
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1932
1368
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  1933
    "Modified: 24.2.1997 / 21:33:41 / cg"
1023
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
2388
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1936
lightGreen
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1937
    "return a light green color"
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1938
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1939
    ^ self redPercent:50 greenPercent:100 bluePercent:50
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1940
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1941
    "
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1942
     Color lightGreen inspect
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1943
    "
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
    "Modified: 23.4.1996 / 13:23:08 / cg"
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
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1948
lightGrey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1949
    "return the lightGrey color (English version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1950
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1951
    ^ self lightGray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1952
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1953
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1954
     Color lightGrey inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1955
    "
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
    "Modified: 28.5.1996 / 20:51:11 / cg"
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
2388
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1960
lightRed
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1961
    "return a light red color"
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1962
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1963
    ^ self redPercent:100 greenPercent:50 bluePercent:50
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1964
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1965
    "
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1966
     Color lightRed inspect
8a7f4bb3847c added lightRed/lightGreen/lightBlue
Claus Gittinger <cg@exept.de>
parents: 2379
diff changeset
  1967
    "
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
    "Modified: 23.4.1996 / 13:23:08 / cg"
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
2949
b747daf42e13 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2948
diff changeset
  1972
lightYellow
b747daf42e13 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2948
diff changeset
  1973
    ^ self yellow lighter
b747daf42e13 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2948
diff changeset
  1974
!
b747daf42e13 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2948
diff changeset
  1975
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1976
magenta
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1977
    "return the magenta color - ST-80 compatibility"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1978
2087
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1979
    ^ self magenta:100
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1980
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1981
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1982
     Color magenta inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1983
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1984
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1985
    "Modified: 23.4.1996 / 13:23:41 / cg"
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
2087
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1988
magenta: magenta
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1989
    "return a magenta color;
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1990
     the argument magenta is interpreted as percent (0..100)"
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1991
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1992
     ^ self cyan:100-magenta magenta:100 yellow:100-magenta
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  1993
2087
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1994
!
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  1995
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1996
mediumGray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1997
    "return medium-grey color (US version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1998
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  1999
    ^ self gray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2000
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2001
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2002
     Color mediumGray inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2003
    "
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
    "Created: 23.4.1996 / 13:24:17 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2006
    "Modified: 28.5.1996 / 20:51:21 / cg"
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
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2009
mediumGrey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2010
    "return medium-grey color (English version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2011
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2012
    ^ self gray
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
     Color mediumGrey inspect
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2016
    "
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
    "Modified: 28.5.1996 / 20:51:24 / cg"
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
orange
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2022
    "return the orange color - ST-80 compatibility"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2023
2077
442b9763111c #orange should return an orange color and not a brown color
tz
parents: 2071
diff changeset
  2024
     ^ self orange:100
442b9763111c #orange should return an orange color and not a brown color
tz
parents: 2071
diff changeset
  2025
!
442b9763111c #orange should return an orange color and not a brown color
tz
parents: 2071
diff changeset
  2026
442b9763111c #orange should return an orange color and not a brown color
tz
parents: 2071
diff changeset
  2027
orange: orange
442b9763111c #orange should return an orange color and not a brown color
tz
parents: 2071
diff changeset
  2028
    "return a orange color;
442b9763111c #orange should return an orange color and not a brown color
tz
parents: 2071
diff changeset
  2029
     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
  2030
442b9763111c #orange should return an orange color and not a brown color
tz
parents: 2071
diff changeset
  2031
     ^ self redPercent:orange greenPercent:orange/2 bluePercent:0
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2032
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2033
!
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2034
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2035
pink
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2036
    "return the pink color - ST-80 compatibility"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2037
1348
acb4e4874e4d care for ColorValue (ColorValue cyan)
ca
parents: 1347
diff changeset
  2038
     ^ self redPercent:100 greenPercent:0 bluePercent:100
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2039
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2040
    "Modified: 23.4.1996 / 13:29:38 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2041
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2042
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2043
red
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2044
    "return the red color"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2045
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2046
    Red isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2047
	Red := self redPercent:100 greenPercent:0 bluePercent:0.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2048
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2049
    ^ Red
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2050
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2051
    "Modified: 23.4.1996 / 13:29:44 / cg"
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
2942
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2054
transparent
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2055
    "return the transparent-color"
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2056
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2057
    Transparent isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2058
	Transparent := TranslucentColor scaledRed:0 scaledGreen:0 scaledBlue:0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2059
	Transparent setAlphaByte:0.
2942
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2060
    ].
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2061
    ^ Transparent
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2062
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2063
    "
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2064
     self transparent
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2065
    "
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2066
!
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  2067
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2068
veryDarkGray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2069
    "return a very dark-grey color (US version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2070
1368
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  2071
    ^ self grayPercent:13
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2072
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2073
    "Created: 23.4.1996 / 13:33:14 / cg"
1368
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  2074
    "Modified: 24.2.1997 / 21:33:52 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2075
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2076
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2077
veryDarkGrey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2078
    "return a very dark-grey color (English version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2079
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2080
    ^ self veryDarkGray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2081
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2082
    "Modified: 28.5.1996 / 20:52:49 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2083
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2084
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2085
veryLightGray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2086
    "return a very light-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:87
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:46 / cg"
1368
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  2091
    "Modified: 24.2.1997 / 21:33:58 / 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
veryLightGrey
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2095
    "return a very light-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 veryLightGray
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:03 / 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
3030
11cb6482e344 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3024
diff changeset
  2102
veryVeryLightGray
11cb6482e344 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3024
diff changeset
  2103
    "return a very very light-grey color (US version ;-)"
11cb6482e344 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3024
diff changeset
  2104
11cb6482e344 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3024
diff changeset
  2105
    ^ self grayPercent:93
11cb6482e344 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3024
diff changeset
  2106
11cb6482e344 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3024
diff changeset
  2107
!
11cb6482e344 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3024
diff changeset
  2108
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2109
white
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2110
    "return the white-color"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2111
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2112
    White isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2113
	White := self redPercent:100 greenPercent:100 bluePercent:100.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2114
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2115
    ^ White
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2116
!
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
yellow
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2119
    "return the yellow color - ST-80 compatibility"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2120
2087
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  2121
    ^ self yellow:100
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2122
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2123
    "Modified: 23.4.1996 / 13:33:56 / cg"
2087
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  2124
!
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  2125
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  2126
yellow: yellow
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  2127
    "return a yellow color;
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  2128
     the argument yellow is interpreted as percent (0..100)"
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  2129
619e0288e4e1 #cyan:, #magenta:, and #yellow: added
tz
parents: 2083
diff changeset
  2130
     ^ self cyan:100-yellow magenta:100-yellow yellow:100
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2131
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2132
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2133
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2134
!Color class methodsFor:'obsolete'!
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2135
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2136
nameOrDither:colorName
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2137
    "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
  2138
     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
  2139
     illegal."
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2140
3427
609caad9766c Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3399
diff changeset
  2141
    <resource:#obsolete>
609caad9766c Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3399
diff changeset
  2142
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2143
    self obsoleteMethodWarning:'use #name:'.
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2144
    ^ self name:colorName
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2145
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2146
    "Modified: 16.1.1997 / 23:01:03 / cg"
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2147
!
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2148
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2149
nameOrDither:colorName ifIllegal:errorBlock
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2150
    "return a named color - if the exact color is not available,
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2151
     return a dithered color. If the colorname is illegal, return
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2152
     the value of evaluating errorBlock."
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2153
3427
609caad9766c Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3399
diff changeset
  2154
    <resource:#obsolete>
609caad9766c Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3399
diff changeset
  2155
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2156
    self obsoleteMethodWarning:'use #name:ifIllegal:'.
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2157
    ^ self name:colorName ifIllegal:errorBlock
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2158
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2159
    "Modified: 16.1.1997 / 23:01:32 / cg"
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2160
!
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2161
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2162
nameOrNearest:colorName
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2163
    "return a named color - or its nearest match"
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2164
3427
609caad9766c Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3399
diff changeset
  2165
    <resource:#obsolete>
609caad9766c Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3399
diff changeset
  2166
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2167
    self obsoleteMethodWarning:'use #name:'.
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2168
    ^ self name:colorName
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2169
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2170
    "Modified: 16.1.1997 / 23:02:18 / cg"
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2171
! !
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  2172
1144
07f3de59864d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
  2173
!Color class methodsFor:'private'!
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2174
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2175
colorNearRed:r green:g blue:b on:aDevice
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2176
    "return a device color on aDevice with rgb values
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2177
     almost matching. If there is one, nil otherwise.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2178
     This is tried as a last chance before dithering.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2179
     The algorithm needs rework, the color components
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2180
     should be weighted according some theory :-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2181
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2182
    |bestColor minDelta diff rr rg rb dRed|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2183
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2184
"/    rr := (r * 3.0) rounded / 3.0.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2185
"/    rg := (g * 3.0) rounded / 3.0.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2186
"/    rb := (b * 3.0) rounded / 3.0.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2187
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2188
    rr := r rounded.                "round to 1%"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2189
    rg := (g * 2.0) rounded / 2.0.  "round to 0.5%"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2190
    rb := (b / 2) rounded * 2.      "round to 2%"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2191
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2192
    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
  2193
    aDevice deviceColors do:[:aColor |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2194
	dRed := rr - aColor red.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2195
	dRed < 10 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2196
	    diff := dRed asInteger squared
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2197
		    + (rg - aColor green) asInteger squared
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2198
		    + (rb - aColor blue) asInteger squared.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2199
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2200
	    diff < minDelta ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2201
		diff = 0 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2202
		    "got it"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2203
		    ^ aColor
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2204
		].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2205
		bestColor := aColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2206
		minDelta := diff
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2207
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2208
	]
1023
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
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2211
    "allow an error of 10% per component"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2212
    minDelta < (100+100+100) ifTrue:[ ^ bestColor ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2213
    ^ nil
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2214
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  2215
    "Modified: 24.2.1997 / 18:17:24 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2216
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2217
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2218
existingColorRed:r green:g blue:b on:aDevice
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2219
    "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
  2220
     if there is one, nil otherwise."
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2221
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2222
    ^ self existingColorScaledRed:(r * MaxValue // 100)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2223
			scaledGreen:(g * MaxValue // 100)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2224
			scaledBlue:(b * MaxValue // 100)
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2225
!
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2226
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2227
existingColorScaledRed:r scaledGreen:g scaledBlue:b on:aDevice
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2228
    "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
  2229
     if there is one, nil otherwise."
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2230
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2231
    aDevice deviceColors do:[:aColor |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2232
	(r == aColor scaledRed) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2233
	    (g == aColor scaledGreen) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2234
		(b == aColor scaledBlue) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2235
		    ^ aColor
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2236
		]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2237
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2238
	]
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2239
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2240
    ^ nil
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2241
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2242
    "Modified: 24.2.1997 / 18:17:35 / cg"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2243
! !
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2244
3878
28052cae1ad3 method category rename
Claus Gittinger <cg@exept.de>
parents: 3833
diff changeset
  2245
!Color class methodsFor:'private-dithering'!
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2246
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2247
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
  2248
    "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
  2249
     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
  2250
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2251
    |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
  2252
     dir   "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2253
     start "{ Class: SmallInteger }"
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2254
     end   "{ Class: SmallInteger }"
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  2255
     map
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  2256
     w     "{ Class: SmallInteger }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  2257
     h     "{ Class: SmallInteger }"|
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  2258
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  2259
"/    w := h := 32.
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  2260
"/    w := h := 4.
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  2261
    w := h := 2.
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2262
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2263
    errR := 0.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2264
    errG := 0.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2265
    errB := 0.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2266
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2267
    "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
  2268
    f := Form width:w height:h depth:(aDevice depth) onDevice:aDevice.
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2269
    map := IdentityDictionary new.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2270
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  2271
    0 to:(w-1) do:[:x |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2272
	x even ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2273
	    dir := 1.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2274
	    start := 0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2275
	    end := (h-1).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2276
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2277
	    dir := -1.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2278
	    start := (h-1).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2279
	    end := 0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2280
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2281
	start to:end by:dir do:[:y |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2282
	    wantR := red + errR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2283
	    wantR > MaxValue ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2284
		wantR := MaxValue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2285
	    ] ifFalse:[ wantR < 0 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2286
		wantR := 0
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2287
	    ]].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2288
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2289
	    wantG := green + errG.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2290
	    wantG > MaxValue ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2291
		wantG := MaxValue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2292
	    ] ifFalse:[ wantG < 0 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2293
		wantG := 0
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2294
	    ]].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2295
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2296
	    wantB := blue + errB.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2297
	    wantB > MaxValue ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2298
		wantB := MaxValue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2299
	    ] ifFalse:[ wantB < 0 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2300
		wantB := 0
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2301
	    ]].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2302
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2303
	    "find the nearest color"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2304
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2305
	    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
  2306
"
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2307
	    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
  2308
"
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2309
	    clr isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2310
		clr := Color scaledRed:wantR scaledGreen:wantG scaledBlue:wantB.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2311
		clr brightness > 0.5 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2312
		    clr := Color white
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2313
		] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2314
		    clr := Color black
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2315
		].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2316
		clr := clr onDevice:aDevice
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2317
"
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2318
		^ aBlock value:nil value:nil
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2319
"
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2320
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2321
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2322
	    f paint:clr.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2323
	    f displayPointX:x y:y.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2324
	    map at:clr colorId + 1 put:clr.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2325
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2326
	    "compute the new error"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2327
	    errR := wantR - clr scaledRed.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2328
	    errG := wantG - clr scaledGreen.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2329
	    errB := wantB - clr scaledBlue.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2330
	].
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2331
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2332
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2333
    f colorMap:map.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2334
"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2335
'hard dither' printNewline.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2336
"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2337
    ^ aBlock value:nil value:f
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2338
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2339
    "Created: 3.5.1997 / 11:02:47 / cg"
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  2340
    "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
  2341
!
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  2342
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2343
ditherBits
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2344
    "return a dither pattern for x/64; x in 1..63"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2345
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2346
    ^ #(
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  2347
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2348
	"/ 1in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2349
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2350
	  #[2r10000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2351
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2352
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2353
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2354
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2355
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2356
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2357
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2358
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2359
	"/ 2in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2360
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2361
	  #[2r10000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2362
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2363
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2364
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2365
	    2r00001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2366
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2367
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2368
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2369
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2370
	"/ 3in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2371
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2372
	  #[2r10000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2373
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2374
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2375
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2376
	    2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2377
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2378
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2379
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2380
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2381
	"/ 4in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2382
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2383
	  #[2r10001000
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
	    2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2388
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2389
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2390
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2391
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2392
	"/ 5in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2393
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2394
	  #[2r10001000
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
	    2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2399
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2400
	    2r00000010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2401
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2402
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2403
	"/ 6in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2404
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
	    2r00100000
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
	    2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2410
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2411
	    2r00000010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2412
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2413
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2414
	"/ 7in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2415
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
	    2r00100010
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
	    2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2421
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2422
	    2r00000010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2423
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2424
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2425
	"/ 8in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2426
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
	    2r00100010
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
	    2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2432
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2433
	    2r00100010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2434
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2435
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2436
	"/ 9in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2437
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
	    2r00100010
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
	    2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2443
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2444
	    2r10100010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2445
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2446
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2447
	"/ 10in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2448
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
	    2r00101010
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
	    2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2454
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2455
	    2r10100010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2456
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2457
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2458
	"/ 11in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2459
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
	    2r00101010
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
	    2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2465
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2466
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2467
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2468
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2469
	"/ 12in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2470
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
	    2r10101010
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
	    2r10001000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2476
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2477
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2478
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2479
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2480
	"/ 13in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2481
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
	    2r10101010
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
	    2r10101000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2487
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2488
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2489
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2490
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2491
	"/ 14in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2492
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2493
	  #[2r10001010
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
	    2r10101000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2498
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2499
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2500
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2501
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2502
	"/ 15in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2503
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2504
	  #[2r10001010
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
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2509
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2510
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2511
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2512
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2513
	"/ 16in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2514
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2515
	  #[2r10101010
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
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2520
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2521
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2522
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2523
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2524
	"/ 17in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2525
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2526
	  #[2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2527
	    2r01000000
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
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2531
	    2r00000000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2532
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2533
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2534
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2535
	"/ 18in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2536
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
	    2r01000000
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
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2542
	    2r00000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2543
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2544
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2545
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2546
	"/ 19in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2547
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
	    2r01000000
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
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2553
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2554
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2555
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2556
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2557
	"/ 20in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2558
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
	    2r01000100
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
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2564
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2565
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2566
	    2r00000000]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2567
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2568
	"/ 21in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2569
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
	    2r01000100
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
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2575
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2576
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2577
	    2r00000001]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2578
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2579
	"/ 22in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2580
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
	    2r00010000
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2585
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2586
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2587
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2588
	    2r00000001]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2589
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2590
	"/ 23in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2591
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
	    2r00010001
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2596
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2597
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2598
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2599
	    2r00000001]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2600
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2601
	"/ 24in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2602
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
	    2r00010001
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2607
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2608
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2609
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2610
	    2r00010001]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2611
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2612
	"/ 25in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2613
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
	    2r00010001
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2618
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2619
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2620
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2621
	    2r01010001]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2622
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2623
	"/ 26in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2624
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
	    2r00010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2629
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2630
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2631
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2632
	    2r01010001]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2633
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2634
	"/ 27in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2635
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
	    2r00010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2640
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2641
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2642
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2643
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2644
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2645
	"/ 28in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2646
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
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2651
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2652
	    2r01000100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2653
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2654
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2655
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2656
	"/ 29in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2657
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
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2662
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2663
	    2r01010100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2664
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2665
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2666
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2667
	"/ 30in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2668
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
	    2r01000101
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
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2674
	    2r01010100
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2675
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2676
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2677
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2678
	"/ 31in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2679
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
	    2r01000101
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
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2685
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2686
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2687
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2688
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2689
	"/ 32in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2690
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
	    2r01010101
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
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2696
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2697
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2698
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2699
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2700
	"/ 33in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2701
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2702
	  #[2r11101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2703
	    2r01010101
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
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2707
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2708
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2709
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2710
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2711
	"/ 34in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2712
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2713
	  #[2r11101010
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
	    2r10101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2718
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2719
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2720
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2721
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2722
	"/ 35in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2723
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2724
	  #[2r11101010
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
	    2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2729
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2730
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2731
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2732
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2733
	"/ 36in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2734
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2735
	  #[2r11101110
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
	    2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2740
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2741
	    2r10101010
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2742
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2743
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2744
	"/ 37in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2745
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2746
	  #[2r11101110
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
	    2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2751
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2752
	    2r10101011
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2753
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2754
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2755
	"/ 38in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2756
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
	    2r10111010
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
	    2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2762
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2763
	    2r10101011
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2764
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2765
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2766
	"/ 39in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2767
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
	    2r10111011
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
	    2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2773
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2774
	    2r10101011
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2775
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2776
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2777
	"/ 40in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2778
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
	    2r10111011
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
	    2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2784
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2785
	    2r10111011
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2786
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2787
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2788
	"/ 41in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2789
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
	    2r10111011
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
	    2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2795
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2796
	    2r11111011
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2797
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2798
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2799
	"/ 42in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2800
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
	    2r10111111
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
	    2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2806
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2807
	    2r11111011
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2808
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2809
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2810
	"/ 43in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2811
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
	    2r10111111
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
	    2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2817
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2818
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2819
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2820
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2821
	"/ 44in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2822
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
	    2r11111111
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
	    2r11101110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2828
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2829
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2830
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2831
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2832
	"/ 45in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2833
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
	    2r11111111
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
	    2r11111110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2839
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2840
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2841
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2842
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2843
	"/ 46in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2844
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2845
	  #[2r11101111
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
	    2r11111110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2850
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2851
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2852
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2853
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2854
	"/ 47in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2855
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2856
	  #[2r11101111
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
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2861
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2862
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2863
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2864
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2865
	"/ 48in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2866
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2867
	  #[2r11111111
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
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2872
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2873
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2874
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2875
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2876
	"/ 49in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2877
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2878
	  #[2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2879
	    2r01110101
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
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2883
	    2r01010101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2884
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2885
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2886
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2887
	"/ 50in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2888
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
	    2r01110101
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
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2894
	    2r01010111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2895
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2896
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2897
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2898
	"/ 51in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2899
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
	    2r01110101
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
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2905
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2906
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2907
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2908
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2909
	"/ 52in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2910
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
	    2r01110111
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
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2916
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2917
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2918
	    2r01010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2919
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2920
	"/ 53in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2921
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
	    2r01110111
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
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2927
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2928
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2929
	    2r11010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2930
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2931
	"/ 54in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2932
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
	    2r01011101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2937
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2938
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2939
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2940
	    2r11010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2941
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2942
	"/ 55in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2943
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
	    2r11011101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2948
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2949
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2950
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2951
	    2r11010101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2952
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2953
	"/ 56in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2954
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
	    2r11011101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2959
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2960
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2961
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2962
	    2r11011101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2963
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2964
	"/ 57in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2965
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
	    2r11011101
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2970
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2971
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2972
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2973
	    2r11111101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2974
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2975
	"/ 58in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2976
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
	    2r11011111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2981
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2982
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2983
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2984
	    2r11111101]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2985
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2986
	"/ 59in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2987
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
	    2r11011111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2992
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2993
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2994
	    2r11111111
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
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2997
	"/ 60in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  2998
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
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3003
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3004
	    2r01110111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3005
	    2r11111111
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
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3008
	"/ 61in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3009
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
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3014
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3015
	    2r01111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3016
	    2r11111111
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
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3019
	"/ 62in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3020
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
	    2r11110111
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
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3026
	    2r01111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3027
	    2r11111111
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
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3030
	"/ 63in64
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3031
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
	    2r11110111
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
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3037
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3038
	    2r11111111
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3039
	    2r11111111]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3040
     )
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3041
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3042
    "Modified: 23.4.1996 / 13:31:50 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3043
    "Created: 11.6.1996 / 15:34:29 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3044
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3045
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3046
ditherGrayFor:fraction on:aDevice into:aBlock
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3047
    "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
  3048
     Fraction is 0..1.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3049
     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
  3050
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3051
    |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
  3052
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3053
    d := aDevice depth.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3054
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3055
    "/ special code for b&w displays
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3056
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3057
    d == 1 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3058
	aDevice blackpixel == 0 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3059
	    clr1 := Black.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3060
	    clr2 := White.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3061
	    newFraction := fraction.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3062
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3063
	    clr1 := White.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3064
	    clr2 := Black.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3065
	    newFraction := 1 - fraction
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3066
	]
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3067
    ] ifFalse:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3068
	"/ special code for 2-plane displays (NeXT)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3069
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3070
	d == 2 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3071
	    fraction <= 0.01 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3072
		clr1 := Black exactOn:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3073
	    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3074
		(fraction between:0.32 and:0.34) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3075
		    clr1 := (Color gray:33) exactOn:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3076
		] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3077
		    (fraction between:0.66 and:0.68) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3078
			clr1 := (Color gray:67) exactOn:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3079
		    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3080
			fraction >= 0.99 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3081
			    clr1 := White exactOn:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3082
			]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3083
		    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3084
		]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3085
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3086
	    clr1 notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3087
		^ aBlock value:clr1 value:nil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3088
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3089
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3090
	    (fraction between:0 and:0.33) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3091
		clr1 := Black.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3092
		clr2 := Color gray:33.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3093
	    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3094
		(fraction between:0.34 and:0.66) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3095
		    clr1 := Color gray:33.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3096
		    clr2 := Color gray:67.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3097
		] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3098
		    clr1 := Color gray:67.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3099
		    clr2 := White.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3100
		]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3101
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3102
	    scaledGray1 := clr1 scaledRed.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3103
	    scaledGray2 := clr2 scaledRed.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3104
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3105
	    scaledGrey := (MaxValue * fraction) rounded.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3106
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3107
	    nGray := (1 bitShift:d) - 1.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3108
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3109
	    "/ scale greyValue into grey levels
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3110
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3111
	    grayBelow := (fraction * nGray) truncated.
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
	    grayBelow < 0 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3114
		^ Color black exactOn:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3115
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3116
	    grayBelow >= nGray ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3117
		^ Color white exactOn:aDevice
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
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3120
	    scaledGrey := (MaxValue * fraction) rounded.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3121
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3122
	    step := MaxValue // nGray.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3123
	    scaledGray1 := grayBelow * step.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3124
	    scaledGray2 := scaledGray1 + step.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3125
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3126
	    clr1 := Color scaledGray:scaledGray1.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3127
	    clr2 := Color scaledGray:scaledGray2.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3128
	].
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
	"/ scale remainder in between low..high
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3131
	newFraction := (scaledGrey - scaledGray1) asFloat / (scaledGray2 - scaledGray1).
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3132
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3133
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3134
    clr1 := clr1 exactOn:aDevice.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3135
    clr2 := clr2 exactOn:aDevice.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3136
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3137
    (clr1 isNil or:[clr2 isNil]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3138
	"/ fall back to b&w dither
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3139
	aDevice blackpixel == 0 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3140
	    clr1 := Black.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3141
	    clr2 := White.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3142
	    newFraction := fraction.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3143
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3144
	    clr1 := White.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3145
	    clr2 := Black.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3146
	    newFraction := 1 - fraction
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3147
	]
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3148
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3149
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3150
    ^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3151
	monoDitherFor:newFraction
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3152
	between:clr1 and:clr2
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3153
	on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3154
	into:aBlock
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3155
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3156
    "
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3157
     Color basicNew
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3158
	ditherGrayFor:0.5
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3159
	on:Display
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3160
	into:[:clr :form | clr notNil ifTrue:[clr inspect].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3161
			   form notNil ifTrue:[(form magnifiedBy:16) inspect].]
1707
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
    "
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3164
     Color basicNew
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3165
	ditherGrayFor:0.25
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3166
	on:Display
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3167
	into:[:clr :form | clr notNil ifTrue:[clr inspect].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3168
			   form notNil ifTrue:[(form magnifiedBy:16) inspect].]
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3169
    "
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3170
5779
def9764b9b8a changed: #ditherGrayFor:on:into:
Claus Gittinger <cg@exept.de>
parents: 5689
diff changeset
  3171
    "Created: / 03-05-1997 / 10:59:57 / cg"
def9764b9b8a changed: #ditherGrayFor:on:into:
Claus Gittinger <cg@exept.de>
parents: 5689
diff changeset
  3172
    "Modified: / 24-07-2011 / 07:18:00 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3173
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3174
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3175
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
  3176
    "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
  3177
     Returns 2 values (either color or ditherForm) through
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3178
     aBlock.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3179
     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
  3180
     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
  3181
     are handled"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3182
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3183
    |rh rl rs
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3184
     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
  3185
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3186
    "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
  3187
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3188
    Color withHLSFromScaledRed:rV scaledGreen:gV scaledBlue:bV do:[:h :l :s |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3189
	h notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3190
	    rh := (h * 3.0) rounded / 3.0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3191
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3192
	rl := (l * 3.0) rounded / 3.0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3193
	rs := (s * 3.0) rounded / 3.0.
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3194
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3195
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3196
    rh isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3197
	"achromatic,  dither between achromatic colors"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3198
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3199
	lowL := nil.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3200
	hiL := nil.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3201
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3202
	"find the 2 bounding colors"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3203
	aDevice deviceColors do:[:aColor |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3204
	    aColor colorId notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3205
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3206
		Color withHLSFromRed:aColor red green:aColor green blue:aColor blue do:[:h :l :s |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3207
		    | cl |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3208
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3209
		    h isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3210
			cl := (l * 3.0) rounded / 3.0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3211
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3212
			cl > rl ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3213
			    hiL isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3214
				hiL := aColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3215
				hiValL := cl.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3216
			    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3217
				cl < hiValL ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3218
				    hiL := aColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3219
				    hiValL := cl.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3220
				]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3221
			    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3222
			] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3223
			    lowL isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3224
				lowL := aColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3225
				lowValL := cl
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3226
			    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3227
				cl > lowValL ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3228
				    lowL := aColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3229
				    lowValL := cl
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3230
				]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3231
			    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3232
			]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3233
		    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3234
		]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3235
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3236
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3237
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3238
	(lowL notNil and:[hiL notNil]) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3239
	    ^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3240
		monoDitherFor:1.0 / (hiValL - lowValL) * (rl - lowValL)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3241
		between:lowL and:hiL
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3242
		on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3243
		into:aBlock
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3244
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3245
	"cannot happen, should always find at least black and white"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3246
	'Color [info]: oops - color to dither is not bound by b&w' infoPrintCR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3247
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3248
	^ aBlock value:nil value:nil
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3249
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3250
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3251
    "chromatic case"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3252
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3253
    aDevice hasColors ifFalse:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3254
	"no chance, return nil values"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3255
	^ aBlock value:nil value:nil
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3256
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3257
    (Red isNil or:[Green isNil or:[Blue isNil]]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3258
	"if we where not able to get primary colors: no chance"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3259
	^ aBlock value:nil value:nil
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3260
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3261
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3262
    "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
  3263
     dither on light between those"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3264
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3265
    lowL := nil.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3266
    hiL := nil.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3267
    lowS := nil.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3268
    hiS := nil.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3269
    lowH := nil.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3270
    hiH := nil.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3271
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  3272
    aDevice deviceColors do:[:aColor |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3273
	aColor colorId notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3274
	    Color withHLSFromRed:aColor red green:aColor green blue:aColor blue do:[:h :l :s |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3275
		| cl ch cs|
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3276
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3277
		h notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3278
		   ch := (h * 3.0) rounded / 3.0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3279
		] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3280
		   ch := nil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3281
		].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3282
		cl := (l * 3.0) rounded / 3.0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3283
		cs := (s * 3.0) rounded / 3.0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3284
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3285
		((ch = rh) and:[cs = rs]) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3286
		    "found a color with same saturation and same hue, keep for light"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3287
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3288
		    cl > rl ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3289
			hiL isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3290
			    hiL := aColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3291
			    hiValL := cl
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3292
			] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3293
			    cl < hiValL ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3294
				hiL := aColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3295
				hiValL := cl
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3296
			    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3297
			].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3298
		    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3299
			lowL isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3300
			    lowL := aColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3301
			    lowValL := cl
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3302
			] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3303
			    cl > lowValL ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3304
				lowL := aColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3305
				lowValL := cl
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3306
			    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3307
			]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3308
		    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3309
		].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3310
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3311
		(((ch = rh) or:[ch == nil]) and:[cl = rl]) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3312
		    "found a color with same light and same hue, keep for saturation"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3313
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3314
		    cs > rs ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3315
			hiS isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3316
			    hiS := aColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3317
			    hiValS := cs
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3318
			] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3319
			    cs < hiValS ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3320
				hiS := aColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3321
				hiValS := cs
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3322
			    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3323
			].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3324
		    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3325
			lowS isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3326
			    lowS := aColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3327
			    lowValS := cs
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3328
			] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3329
			    cs > lowValS ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3330
				lowS := aColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3331
				lowValS := cs
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3332
			    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3333
			]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3334
		    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3335
		].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3336
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3337
		rh notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3338
		    cl = rl ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3339
			cs = rs ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3340
			    ch notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3341
				d := (ch - rh) abs.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3342
				d > 300 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3343
				    rh > 180 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3344
					ch := ch + 360
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3345
				    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3346
					ch := ch - 360
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3347
				    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3348
				].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3349
				ch > rh ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3350
				    hiH isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3351
					hiH := aColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3352
					hiValH := ch
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3353
				    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3354
					ch < hiValH ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3355
					    hiH := aColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3356
					    hiValH := ch
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3357
					]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3358
				    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3359
				] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3360
				    lowH isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3361
					lowH := aColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3362
					lowValH := ch
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3363
				    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3364
					ch > lowValH ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3365
					    lowH := aColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3366
					    lowValH := ch
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3367
					]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3368
				    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3369
				]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3370
			    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3371
			]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3372
		    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3373
		]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3374
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3375
	]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3376
    ].
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3377
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3378
    "found bounds for light ?"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3379
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3380
    lowL notNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3381
	rl = lowValL ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3382
	    ^ aBlock value:lowL value:nil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3383
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3384
	hiL notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3385
	    ^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3386
		monoDitherFor:1.0 / (hiValL - lowValL) / (rl - lowValL)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3387
		between:lowL and:hiL
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3388
		on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3389
		into:aBlock
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3390
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3391
	"found bound for light - dither with white"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3392
	^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3393
	    monoDitherFor:1.0 / (100 - lowValL) / (rl - lowValL)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3394
	    between:lowL and:White
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3395
	    on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3396
	    into:aBlock
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3397
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3398
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3399
    "found bound for light - dither with black"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3400
    hiL notNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3401
	^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3402
	    monoDitherFor:1.0 / (hiValL) / (rl)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3403
	    between:Black and:hiL
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3404
	    on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3405
	    into:aBlock
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
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
    "found bounds for saturation?"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3410
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3411
    (lowS notNil and:[hiS notNil]) ifTrue:[
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3412
"
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3413
	'saturation dither' printNewline.
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3414
"
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3415
	^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3416
	    monoDitherFor:1.0 / (hiValS - lowValS) / (rs - lowValS)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3417
	    between:lowS and:hiS
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3418
	    on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3419
	    into:aBlock
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3420
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3421
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3422
    "found bounds for hue ?"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3423
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3424
    (lowH notNil and:[hiH notNil]) ifTrue:[
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3425
"
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3426
	'hue dither' printNewline.
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3427
"
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3428
	hiValH < lowValH ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3429
	    hiValH := hiValH + 360
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3430
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3431
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3432
	d := hiValH - lowValH.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3433
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3434
	^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3435
	    monoDitherFor:1.0 / (d / (rh - lowValH))
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3436
	    between:lowH and:hiH
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3437
	    on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3438
	    into:aBlock
1707
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
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3441
    ^ aBlock value:nil value:nil
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3442
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3443
    "Modified: 3.5.1997 / 10:58:54 / cg"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3444
    "Created: 3.5.1997 / 11:02:03 / cg"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3445
!
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3446
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3447
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
  3448
    "get a dither form for an rgb value.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3449
     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
  3450
     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
  3451
     dither colors."
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3452
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3453
    |
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3454
     nR "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3455
     nG "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3456
     nB "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3457
     hR "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3458
     hG "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3459
     hB "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3460
     eR eG eB
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3461
     rI "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3462
     gI "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3463
     bI  "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3464
     idx "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3465
     f clr
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3466
     r    "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3467
     g    "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3468
     b    "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3469
     x1   "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3470
     x2   "{ Class: SmallInteger }"
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3471
     step "{ Class: SmallInteger }"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3472
     lastIdx mx
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3473
     dS   "{ Class: SmallInteger }"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3474
     cube|
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
    (cube := aDevice fixColors) notNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3477
	dS := 4.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3478
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3479
	f := Form width:dS height:dS depth:(aDevice depth) onDevice:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3480
	f initGC.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3481
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3482
	mx := MaxValue asFloat.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3483
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3484
	nR := aDevice numFixRed.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3485
	nG := aDevice numFixGreen.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3486
	nB := aDevice numFixBlue.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3487
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3488
	hR := nR // 2.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3489
	hG := nG // 2.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3490
	hB := nB // 2.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3491
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3492
	eR := eG := eB := 0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3493
	r := redVal.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3494
	g := greenVal.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3495
	b := blueVal.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3496
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3497
	step := -1.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3498
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3499
	0 to:dS-1 do:[:y |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3500
	    step == -1 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3501
		x1 := 0. x2 := dS-1. step := 1.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3502
	    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3503
		x1 := dS-1. x2 := 0. step := -1.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3504
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3505
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3506
	    x1 to:x2 by:step do:[:x |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3507
		"/ the nearest along the grid
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3508
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3509
		r := redVal + eR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3510
		r > MaxValue ifTrue:[r := MaxValue]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3511
			     ifFalse:[r < 0 ifTrue:[r := 0]].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3512
		g := greenVal + eG.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3513
		g > MaxValue ifTrue:[g := MaxValue]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3514
			     ifFalse:[g < 0 ifTrue:[g := 0]].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3515
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3516
		b := blueVal + eB.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3517
		b > MaxValue ifTrue:[b := MaxValue]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3518
			     ifFalse:[b < 0 ifTrue:[b := 0]].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3519
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3520
		rI := (r * (nR-1) + hR / mx) rounded.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3521
		gI := (g * (nG-1) + hG / mx) rounded .
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3522
		bI := (b * (nB-1) + hB / mx) rounded .
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3523
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3524
		idx := (((rI * nG) + gI) * nB + bI) + 1.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3525
		clr := (cube at:idx) exactOn:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3526
		lastIdx isNil ifTrue:[lastIdx := idx]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3527
		ifFalse:[lastIdx ~~ idx ifTrue:[lastIdx := -1]].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3528
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3529
		f foreground:clr.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3530
		f displayPointX:x y:y.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3531
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3532
		eR := r  - clr scaledRed.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3533
		eG := g  - clr scaledGreen.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3534
		eB := b  - clr scaledBlue.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3535
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3536
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3537
	f releaseGC.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3538
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3539
	lastIdx ~~ -1 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3540
	    ^ aBlock value:clr value:nil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3541
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3542
	^ aBlock value:nil value:f
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3543
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3544
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3545
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3546
    ^ aBlock value:nil value:nil
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3547
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3548
    "Modified: 11.7.1996 / 18:30:28 / cg"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3549
    "Created: 3.5.1997 / 11:03:18 / cg"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3550
!
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3551
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3552
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
  3553
    "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
  3554
     Fraction is 0..1.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3555
     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
  3556
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3557
    |form c1 c2
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3558
     index "{ Class:SmallInteger }"|
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3559
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3560
    "/
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3561
    "/ 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
  3562
    "/ 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
  3563
    "/
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3564
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3565
    index := (fraction * 64) rounded.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3566
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3567
    c1 := color1 exactOn:aDevice.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3568
    index < 1 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3569
	^ aBlock value:c1 value:nil
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3570
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3571
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3572
    c2 := color2 exactOn:aDevice.
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3573
    index >= 64 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3574
	^ aBlock value:c2 value:nil
1707
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
4772
be4524221fa7 Use Form class>>#width:height:fromArray:onDevice: instead of obsolete
Stefan Vogel <sv@exept.de>
parents: 4749
diff changeset
  3577
    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
  3578
    form colorMap:(Array with:c1 with:c2).
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3579
    ^ aBlock value:nil value:form
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
     Color basicNew
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3583
	monoDitherFor:(MaxValue // 2)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3584
	between:Color black
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3585
	and:Color white
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3586
	on:Display
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3587
	into:[:clr :dither | clr inspect. dither inspect]
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3588
    "
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
    "Created: 3.5.1997 / 10:55:06 / cg"
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  3591
    "Modified: 3.5.1997 / 11:05:20 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3592
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3593
1144
07f3de59864d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
  3594
!Color class methodsFor:'queries'!
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3595
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3596
constantNames
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3597
    "return names known as instance creation messages"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3598
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3599
    ^ #(white black
6534
876e009486be class: Color
Claus Gittinger <cg@exept.de>
parents: 6385
diff changeset
  3600
        grey mediumGray veryLightGray lightGray darkGray veryDarkGray
876e009486be class: Color
Claus Gittinger <cg@exept.de>
parents: 6385
diff changeset
  3601
        red green blue cyan yellow pink orange magenta)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3602
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3603
    "Modified: 2.5.1996 / 11:34:05 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3604
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3605
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3606
scalingValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3607
    "ST-80 compatibility"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3608
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3609
    ^ MaxValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3610
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3611
    "Created: 2.5.1996 / 11:30:09 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3612
    "Modified: 11.7.1996 / 21:42:26 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3613
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3614
1144
07f3de59864d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
  3615
!Color class methodsFor:'special instance creation'!
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3616
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3617
nearestColorRed:r green:g blue:b on:aDevice in:colors
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3618
    "return the nearest color on aDevice with RGB values
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3619
     same or near r/g/b in a collection of colors.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3620
     If there is one, return it; nil otherwise.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3621
     Near is defined as having an error less than the argument
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3622
     error (in percent). The error is computed by the color
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3623
     vector distance (which may not be the best possible solution)."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3624
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3625
    ^ self
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3626
	nearestColorScaledRed:(r * MaxValue // 100)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3627
		  scaledGreen:(g * MaxValue // 100)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3628
		   scaledBlue:(b * MaxValue // 100)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3629
			   on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3630
			   in:colors
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3631
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3632
    "Modified: 11.6.1996 / 18:04:55 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3633
    "Created: 14.6.1996 / 20:05:13 / 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
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
  3637
    "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
  3638
     collection, containing colors from a colorCube.
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3639
     This is used with preallocated fixColors and is quite fast
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3640
     (no need to search)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3641
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3642
    |sR  "{ Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3643
     sG  "{ Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3644
     sB  "{ Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3645
     idx "{ Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3646
     nR  "{ Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3647
     nG  "{ Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3648
     nB  "{ Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3649
     rI  "{ Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3650
     gI  "{ Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3651
     bI  "{ Class: SmallInteger }"|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3652
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3653
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3654
     round to the step given by FixColors
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3655
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3656
    nR := nRed.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3657
    nG := nGreen.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3658
    nB := nBlue.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3659
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3660
    sR := MaxValue // (nR - 1).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3661
    sG := MaxValue // (nG - 1).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3662
    sB := MaxValue // (nB - 1).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3663
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3664
    rI := (r + (sR // 2)) // sR.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3665
    gI := (g + (sG // 2)) // sG.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3666
    bI := (b + (sB // 2)) // sB.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3667
    idx := (((rI * nG) + gI) * nB + bI) + 1.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3668
    ^ aColorCube at:idx
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3669
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3670
    "Modified: 11.7.1996 / 17:52:46 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3671
    "Created: 11.7.1996 / 18:20:13 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3672
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3673
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3674
nearestColorScaledRed:r scaledGreen:g scaledBlue:b on:aDevice
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3675
    "return a device color on aDevice with RGB values
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3676
     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
  3677
     Near is defined as having an error less than the argument
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3678
     error (in percent). The error is computed by the color
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3679
     vector distance (which may not be the best possible solution)."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3680
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3681
    |cube|
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
     if there are preallocated colors, things are much easier ...
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
    (cube := aDevice fixColors) notNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3687
	^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3688
	    nearestColorScaledRed:r
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3689
	    scaledGreen:g
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3690
	    scaledBlue:b
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3691
	    inCube:cube
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3692
	    numRed:(aDevice numFixRed)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3693
	    numGreen:(aDevice numFixGreen)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3694
	    numBlue:(aDevice numFixBlue)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3695
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3696
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3697
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3698
     search in existing colors ...
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3699
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3700
    ^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3701
	nearestColorScaledRed:r
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3702
	scaledGreen:g
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3703
	scaledBlue:b
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3704
	on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3705
	in:aDevice deviceColors
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3706
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3707
    "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
  3708
    "Modified: 24.2.1997 / 18:17:51 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3709
!
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
nearestColorScaledRed:r scaledGreen:g scaledBlue:b on:aDevice in:colors
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3712
    "return the nearest color on aDevice with RGB values
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3713
     same or near r/g/b in a collection of colors.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3714
     If there is one, return it; nil otherwise."
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
    |delta minDelta bestSoFar|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3717
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3718
    minDelta := 9999999.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3719
1619
4a7dbd25c588 handle the case where not even r/g/b primaries can be allocated
Claus Gittinger <cg@exept.de>
parents: 1534
diff changeset
  3720
    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
  3721
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3722
    colors do:[:aColor |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3723
	|cr cg cb|
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3724
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3725
	(aDevice isNil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3726
	or:[(aColor graphicsDevice == aDevice)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3727
	    and:[aColor colorId notNil]]) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3728
		delta := aColor deltaFromScaledRed:r scaledGreen:g scaledBlue:b.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3729
		delta < minDelta ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3730
		    "
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3731
		     an exact fit - no need to continue search
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3732
		    "
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3733
		    delta == 0 ifTrue:[^ aColor].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3734
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3735
		    bestSoFar := aColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3736
		    minDelta := delta
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3737
		]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3738
	    ]
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
    ^ bestSoFar
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3742
2198
122ff0da86d6 added support to find the nearest color in a colorMap.
Claus Gittinger <cg@exept.de>
parents: 2183
diff changeset
  3743
    "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
  3744
    "Modified: / 28.7.1998 / 20:40:41 / cg"
1023
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
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3747
quickNearestColorScaledRed:r scaledGreen:g scaledBlue:b on:aDevice
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3748
    "return a device color on aDevice with rgb values
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3749
     same or near r/g/b.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3750
     This looks for primary colors only and is thus faster
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3751
     than the general nearestColor search (slightly uglier though)."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3752
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3753
    |cube|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3754
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3755
    "
1954
479d294564d8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1934
diff changeset
  3756
     if there are preallocated colors, things are much easier ...
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3757
    "
1954
479d294564d8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1934
diff changeset
  3758
    (cube := aDevice fixColors) notNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3759
	^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3760
	    nearestColorScaledRed:r
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3761
	    scaledGreen:g
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3762
	    scaledBlue:b
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3763
	    inCube:cube
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3764
	    numRed:(aDevice numFixRed)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3765
	    numGreen:(aDevice numFixGreen)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3766
	    numBlue:(aDevice numFixBlue)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3767
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3768
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
     search in existing colors ...
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3771
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3772
    ^ self nearestColorScaledRed:r
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3773
		     scaledGreen:g
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3774
		      scaledBlue:b
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3775
			on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3776
			in:(aDevice availableDitherColors)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3777
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3778
    "Created: 14.6.1996 / 20:13:22 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3779
    "Modified: 11.7.1996 / 18:20:14 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3780
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3781
3880
c4c8268a2d9f method category rename
Claus Gittinger <cg@exept.de>
parents: 3878
diff changeset
  3782
!Color methodsFor:'Compatibility-ST80'!
1347
4e19b2d586a4 VW now has #on:, but calls it #asDevicePaintOn:
ca
parents: 1326
diff changeset
  3783
4e19b2d586a4 VW now has #on:, but calls it #asDevicePaintOn:
ca
parents: 1326
diff changeset
  3784
asDevicePaintOn:aDevice
4e19b2d586a4 VW now has #on:, but calls it #asDevicePaintOn:
ca
parents: 1326
diff changeset
  3785
    "ST-80 compatibility: an alias for on:.
4e19b2d586a4 VW now has #on:, but calls it #asDevicePaintOn:
ca
parents: 1326
diff changeset
  3786
     create a new Color representing the same color as
4e19b2d586a4 VW now has #on:, but calls it #asDevicePaintOn:
ca
parents: 1326
diff changeset
  3787
     myself on aDevice; if one already exists, return the one"
4e19b2d586a4 VW now has #on:, but calls it #asDevicePaintOn:
ca
parents: 1326
diff changeset
  3788
2828
5795bf162314 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  3789
    ^ self onDevice:aDevice
2943
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3790
!
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3791
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3792
asHiliteColor
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3793
    "same as lightened - for ST-80 compatibility"
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3794
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3795
    ^ self lightened
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3796
!
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3797
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3798
asShadowColor
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3799
    "same as darkened - for ST-80 compatibility"
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3800
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3801
    ^ self darkened
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3802
! !
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3803
3880
c4c8268a2d9f method category rename
Claus Gittinger <cg@exept.de>
parents: 3878
diff changeset
  3804
!Color methodsFor:'Compatibility-Squeak'!
2943
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3805
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3806
alphaMixed: proportion with: aColor
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3807
    "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
  3808
     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
  3809
     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
  3810
     receiver. This method uses RGB interpolation; HSV interpolation can lead
4789
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  3811
     to surprises.  Mixes the alphas (for transparency) also."
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  3812
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  3813
    | frac1 frac2 |
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  3814
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  3815
    frac1 := proportion asFloat min: 1.0 max: 0.0.
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  3816
    frac2 := 1.0 - frac1.
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  3817
    ^ Color
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3818
	r: ((red * frac1) + (aColor scaledRed * frac2)) / MaxValue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3819
	g: ((green * frac1) + (aColor scaledGreen * frac2)) / MaxValue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3820
	b: ((blue * frac1) + (aColor scaledBlue * frac2)) / MaxValue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3821
	alpha: (self alpha * frac1) + (aColor alpha * frac2)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3822
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3823
    "
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3824
     (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
  3825
     (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
  3826
    "
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  3827
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  3828
    "Created: / 06-06-2007 / 10:53:25 / cg"
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  3829
!
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  3830
2945
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3831
bitPatternForDepth: depth
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3832
    "Return a Bitmap, possibly containing a stipple pattern,
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3833
     that best represents this color at the given depth.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3834
     BitBlt calls this method to convert colors into Bitmaps.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3835
     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
  3836
     pattern of several lines.  "
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3837
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3838
    "See also:
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3839
	pixelValueAtDepth:      -- value for single pixel
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3840
	pixelWordAtDepth:       -- a 32-bit word filled with the pixel value"
2945
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3841
    "Details: The pattern for the most recently requested depth is cached."
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3842
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3843
^ self.
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3844
"/    depth == cachedDepth ifTrue: [^ cachedBitPattern].
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3845
"/    cachedDepth _ depth.
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3846
"/
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3847
"/    depth > 2 ifTrue: [^ cachedBitPattern _ Bitmap with: (self pixelWordForDepth: depth)].
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3848
"/    depth = 1 ifTrue: [^ cachedBitPattern _ self halfTonePattern1].
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3849
"/    depth = 2 ifTrue: [^ cachedBitPattern _ self halfTonePattern2].
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3850
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3851
!
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  3852
3396
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3853
colorForInsets
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3854
    ^ self
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3855
!
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3856
2943
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3857
darker
3030
11cb6482e344 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3024
diff changeset
  3858
    "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
  3859
     Almost the same as darkened for Squeak compatibility."
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3860
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3861
    ^ self mixed:0.8333 with:Black
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3862
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3863
    "
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3864
     (Color red) darker
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3865
     (Color red) muchDarker
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3866
    "
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3867
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3868
    "Modified: 11.6.1996 / 18:10:37 / cg"
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3869
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3870
!
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3871
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3872
lighter
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3873
    "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
  3874
     Almost the same as lightened for Squeak compatibility."
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3875
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3876
    ^ self mixed:0.8333 with:White
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3877
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3878
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3879
     (Color red)
2943
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3880
     (Color red) lighter
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3881
     (Color red) muchLighter
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3882
     (Color red) veryMuchLighter
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3883
    "
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3884
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3885
    "Modified: 11.6.1996 / 18:10:49 / cg"
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3886
!
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3887
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3888
muchDarker
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3889
    "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
  3890
     Added for Squeak compatibility."
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3891
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3892
    ^ self mixed:0.233 with:Black
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
    "
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3895
     (Color red) darker
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3896
     (Color red) muchDarker
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
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3899
    "Modified: 11.6.1996 / 18:10:49 / cg"
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
muchLighter
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3903
    "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
  3904
     Added 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.233 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
    "
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3909
     (Color red) lighter
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3910
     (Color red) mixed:0.833 with:Color white
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
3024
a565d805ad69 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
  3918
newTileMorphRepresentative
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3919
	^ ColorTileMorph new colorSwatchColor: self
3396
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3920
!
3024
a565d805ad69 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3021
diff changeset
  3921
4203
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3922
privateBlue
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3923
    "Squeak compatibility:
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3924
     return the blue components value mapped to 0..MaxValue"
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3925
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3926
    ^ self scaledBlue
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3927
!
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3928
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3929
privateGreen
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3930
    "Squeak compatibility:
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3931
     return the green components value mapped to 0..MaxValue"
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3932
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3933
    ^ self scaledGreen
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3934
!
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3935
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3936
privateRed
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3937
    "Squeak compatibility:
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3938
     return the red components value mapped to 0..MaxValue"
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3939
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3940
    ^ self scaledRed
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3941
!
b306a1133946 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4202
diff changeset
  3942
3309
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  3943
scaledPixelValue32
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  3944
    ^ (self redByte bitShift:16)
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  3945
      + (self greenByte bitShift:8)
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  3946
      + (self blueByte)
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  3947
      + (self alphaByte bitShift:24)
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  3948
!
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  3949
2943
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3950
veryMuchLighter
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3951
    "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
  3952
     Added for Squeak compatibility."
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3953
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3954
    ^ self mixed:0.1165 with:White
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3955
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3956
    "
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3957
     (Color red) lighter
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3958
     (Color red) muchLighter
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3959
     (Color red) veryMuchLighter
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3960
    "
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3961
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  3962
    "Modified: 11.6.1996 / 18:10:49 / cg"
3396
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3963
!
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3964
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3965
wheel:thisMany
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3966
    "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
  3967
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3968
    | sat bri hue step c |
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3969
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3970
    thisMany = 1 ifTrue: [^ Array with: self].
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3971
    sat := self saturation / 100.
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3972
    bri := self brightness.
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3973
    hue := self hue.
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3974
    step := 360.0 / thisMany.
18f99e9fc5ec *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3324
diff changeset
  3975
    ^ (1 to: thisMany) collect: [:num |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3976
	    c := Color h: hue s: sat v: bri.  "hue is taken mod 360"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3977
	    hue := hue + step.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  3978
	    c].
1347
4e19b2d586a4 VW now has #on:, but calls it #asDevicePaintOn:
ca
parents: 1326
diff changeset
  3979
! !
4e19b2d586a4 VW now has #on:, but calls it #asDevicePaintOn:
ca
parents: 1326
diff changeset
  3980
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3981
!Color methodsFor:'accessing'!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3982
2942
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  3983
alpha
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  3984
    "return the alpha value (0..1),
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  3985
     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
  3986
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  3987
    ^ 1.
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  3988
!
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  3989
3309
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  3990
alphaByte
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  3991
    "return the alpha byte-value (0..255),
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  3992
     where 0 is completely transparent and 255 is completely opaque"
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  3993
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  3994
    ^ 255.
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  3995
!
cea34469e23f squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3277
diff changeset
  3996
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3997
blue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3998
    "return the blue component in percent [0..100]"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  3999
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4000
    (blue isNil and:[colorId notNil]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4001
	device isNil ifTrue:[^ 0].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4002
	device getRGBFrom:colorId into:[:r :g :b | ^ b].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4003
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4004
    ^ blue * 100.0 / MaxValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4005
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4006
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4007
blueByte
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4008
    "return the blue components value mapped to 0..255"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4009
2183
3c2115660746 removed row[Red/Green/Blue]Byte;
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  4010
    blue isNil ifTrue:[^ nil].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4011
    ^ blue * 255 // MaxValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4012
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4013
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4014
     Color red blueByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4015
     Color blue blueByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4016
     Color green blueByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4017
     Color black blueByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4018
     Color grey blueByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4019
     Color white blueByte
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4020
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4021
2183
3c2115660746 removed row[Red/Green/Blue]Byte;
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  4022
    "Created: / 7.6.1996 / 18:30:25 / cg"
3c2115660746 removed row[Red/Green/Blue]Byte;
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  4023
    "Modified: / 26.7.1998 / 12:31:44 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4024
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4025
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4026
colorId
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4027
    "return the device-dependent color-id"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4028
1238
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  4029
    colorId notNil ifTrue:[^ colorId].
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  4030
    replacementColor notNil ifTrue:[^ replacementColor colorId].
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  4031
    ^ nil
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  4032
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  4033
    "Modified: 17.1.1997 / 00:03:18 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4034
!
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
cyan
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4037
    "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
  4038
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4039
    ^ 100 - self red
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4040
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4041
    "Modified: 11.6.1996 / 17:20:07 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4042
    "Created: 11.6.1996 / 18:30:00 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4043
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4044
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4045
device
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4046
    "return the device I am associated to"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4047
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4048
    ^ device
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4049
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4050
    "Modified: 23.4.1996 / 13:36:42 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4051
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4052
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4053
deviceBlue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4054
    "return the actual value of the blue component in percent."
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
    |v|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4057
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4058
    device getRGBFrom:colorId into:[:r :g :b | v := b].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4059
    ^ v
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4060
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4061
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4062
deviceGreen
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4063
    "return the actual value of the green component in percent.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4064
     (usually 16bit in X; but could be different on other systems)"
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
    |v|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4067
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4068
    device getRGBFrom:colorId into:[:r :g :b | v := g].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4069
    ^ v
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
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4072
deviceRed
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4073
    "return the actual value of the red component in percent."
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
    |v|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4076
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4077
    device getRGBFrom:colorId into:[:r :g :b | v := r].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4078
    ^ v
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
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4081
     (Color yellow on:Display) deviceRedValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4082
     (Color yellow on:aPrinterPage) deviceRedValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4083
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4084
!
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
ditherForm
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4087
    "return the form to dither the color"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4088
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4089
    ^ ditherForm
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
graphicsDevice
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4093
    "same as #device, for ST-80 compatibility naming.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4094
     Return the device I am associated with."
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
    ^ device
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
    "Created: 28.5.1996 / 18:39:27 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4099
!
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
green
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4102
    "return the green component in percent [0..100]"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4103
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4104
    (green isNil and:[colorId notNil]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4105
	device isNil ifTrue:[^ 0].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4106
	device getRGBFrom:colorId into:[:r :g :b | ^ g].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4107
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4108
    ^ green * 100.0 / MaxValue
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
greenByte
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4112
    "return the green components value mapped to 0..255"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4113
2183
3c2115660746 removed row[Red/Green/Blue]Byte;
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  4114
    green isNil ifTrue:[^ nil].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4115
    ^ green * 255 // MaxValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4116
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4117
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4118
     Color red greenByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4119
     Color blue greenByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4120
     Color green greenByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4121
     Color black greenByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4122
     Color grey greenByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4123
     Color white greenByte
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4124
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4125
2183
3c2115660746 removed row[Red/Green/Blue]Byte;
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  4126
    "Modified: / 26.7.1998 / 12:31:33 / cg"
1023
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
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4129
hue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4130
    "return the hue (in hue/light/saturation model) in degrees [0..360]"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4131
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4132
    |r g b h|
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
    (red isNil and:[colorId notNil]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4135
	device getRGBFrom:colorId into:[:xr :xg :xb |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4136
	    r := xr.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4137
	    g := xg.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4138
	    b := xb.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4139
	]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4140
    ] ifFalse:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4141
	r := self red.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4142
	g := self green.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4143
	b := self blue.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4144
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4145
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4146
    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
  4147
	h := xh
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4148
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4149
    ^ h
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4150
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4151
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4152
     Color yellow hue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4153
    "
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
    "Modified: 11.6.1996 / 17:14:51 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4156
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4157
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4158
light
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4159
    "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
  4160
     This corresponds to the brightness of the color (if displayed on
6170
8b03d05c720d class: Color
Claus Gittinger <cg@exept.de>
parents: 6110
diff changeset
  4161
     a b&w television screen).
8b03d05c720d class: Color
Claus Gittinger <cg@exept.de>
parents: 6110
diff changeset
  4162
     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
  4163
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4164
    |r g b l|
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:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4167
	device getRGBFrom:colorId into:[:xr :xg :xb |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4168
	    r := xr.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4169
	    g := xg.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4170
	    b := xb.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4171
	]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4172
    ] ifFalse:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4173
	r := self red.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4174
	g := self green.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
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 |
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4179
	l := xl
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
    ^ l
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
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4184
     Color yellow light
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4185
     Color yellow darkened light
1023
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
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4188
    "Modified: 11.6.1996 / 17:15:24 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4189
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4190
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4191
magenta
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4192
    "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
  4193
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4194
    ^ 100 - self green
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4195
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4196
    "Modified: 11.6.1996 / 17:20:07 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4197
    "Created: 11.6.1996 / 18:30:11 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4198
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4199
2945
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  4200
privateAlpha
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  4201
    "return the internal alpha value (0..255),
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  4202
     where 0 is completely transparent and 255 is completely opaque"
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  4203
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4204
    ^ 255
2945
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  4205
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  4206
!
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  4207
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4208
red
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4209
    "return the red component in percent [0..100]"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4210
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4211
    (red isNil and:[colorId notNil]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4212
	device isNil ifTrue:[^ 0].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4213
	device getRGBFrom:colorId into:[:r :g :b | ^ r].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4214
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4215
    red isNil ifTrue:[^ 0].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4216
    ^ red * 100.0 / MaxValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4217
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4218
    "Modified: 11.6.1996 / 17:20:07 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4219
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4220
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4221
red:r green:g blue:b
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4222
    "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
  4223
     table in pseudocolor devices.
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4224
     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
  4225
     Color>>variableColorOn: on pseudoColor displays).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4226
     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
  4227
     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
  4228
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4229
    ^ self scaledRed:(r * MaxValue // 100)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4230
	   scaledGreen:(g * MaxValue // 100)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4231
	   scaledBlue:(b * MaxValue // 100)
1023
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
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4234
     |c|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4235
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4236
     c := Color variableColorOn:Display.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4237
     c inspect.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4238
     (Delay forSeconds:5) wait.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4239
     c red:100 green:0 blue:0.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4240
     (Delay forSeconds:5) wait.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4241
     c red:0 green:100 blue:0.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4242
     (Delay forSeconds:5) wait.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4243
     c red:0 green:0 blue:100.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4244
    "
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
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4247
redByte
2183
3c2115660746 removed row[Red/Green/Blue]Byte;
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  4248
    "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
  4249
     nil if it has no red component."
3c2115660746 removed row[Red/Green/Blue]Byte;
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  4250
3c2115660746 removed row[Red/Green/Blue]Byte;
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  4251
    red isNil ifTrue:[^ nil].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4252
    ^ red * 255 // MaxValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4253
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4254
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4255
     Color red redByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4256
     Color blue redByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4257
     Color green redByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4258
     Color black redByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4259
     Color grey redByte
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4260
     Color white redByte
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4261
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4262
2183
3c2115660746 removed row[Red/Green/Blue]Byte;
Claus Gittinger <cg@exept.de>
parents: 2096
diff changeset
  4263
    "Modified: / 26.7.1998 / 12:31:22 / cg"
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
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4266
rgbValue
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4267
    "return the rgb byteValues packed into a 24bit integer;
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4268
     The returned value is composed of r<<16 + g<<8 + b."
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4269
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4270
    |t "{ Class: SmallInteger }"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4271
     v "{ Class: SmallInteger }"|
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4272
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4273
    v := red * 255 // MaxValue.
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4274
    t := green * 255 // MaxValue.
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4275
    v := (v bitShift:8) + t.
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4276
    t := blue * 255 // MaxValue.
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4277
    ^ (v bitShift:8) + t.
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4278
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4279
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4280
     Color red rgbValue hexPrintString
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4281
     Color blue rgbValue hexPrintString
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4282
     Color green rgbValue hexPrintString
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4283
     Color black rgbValue hexPrintString
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4284
     Color grey rgbValue hexPrintString
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4285
     Color white rgbValue hexPrintString
1929
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4286
    "
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4287
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4288
    "Modified: 17.10.1997 / 20:00:25 / cg"
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4289
!
e500fcf94969 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1928
diff changeset
  4290
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4291
saturation
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4292
    "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
  4293
     This corresponds to the saturation setting of a color TV"
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
    |r g b s|
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
    (red isNil and:[colorId notNil]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4298
	device getRGBFrom:colorId into:[:xr :xg :xb |
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4299
	    r := xr.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4300
	    g := xg.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4301
	    b := xb.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4302
	]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4303
    ] ifFalse:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4304
	r := self red.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4305
	g := self green.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4306
	b := self blue.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4307
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4308
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4309
    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
  4310
	s := xs
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
    ^ s
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4313
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
     Color yellow saturation
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4316
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4317
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4318
    "Modified: 11.6.1996 / 17:15:47 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4319
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4320
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4321
scaledAlpha
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4322
    "ST-80 compatibility:
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4323
     return the alpha components value mapped to 0..MaxValue"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4324
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4325
    ^ MaxValue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4326
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4327
    "
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4328
     Color blue scaledBlue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4329
     Color black scaledBlue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4330
     Color grey scaledBlue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4331
    "
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4332
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4333
    "Modified: 7.6.1996 / 18:32:30 / cg"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4334
!
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4335
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4336
scaledBlue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4337
    "ST-80 compatibility:
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4338
     return the blue components value mapped to 0..MaxValue"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4339
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4340
    ^ blue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4341
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4342
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4343
     Color blue scaledBlue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4344
     Color black scaledBlue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4345
     Color grey scaledBlue
1023
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
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4348
    "Modified: 7.6.1996 / 18:32:30 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4349
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4350
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4351
scaledGray
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4352
    "return the grey intensity scaled to 0..MaxValue"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4353
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4354
    ^ ((red * 3) + (green * 6) + blue) // 10
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4355
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4356
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4357
     Color blue scaledGray
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4358
     Color black scaledGray
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4359
     Color white scaledGray
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4360
     Color grey scaledGray
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
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4363
    "Modified: 11.6.1996 / 14:43:51 / cg"
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
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4366
scaledGreen
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4367
    "ST-80 compatibility:
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4368
     return the green components value mapped to 0..MaxValue"
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
    ^ green
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4371
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4372
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4373
     Color green scaledRed
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4374
     Color black scaledRed
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4375
     Color grey scaledRed
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4376
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4377
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4378
    "Modified: 7.6.1996 / 18:32:38 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4379
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4380
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4381
scaledRed
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4382
    "ST-80 compatibility:
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4383
     return the red components value mapped to 0..MaxValue"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4384
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4385
    ^ red
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4386
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4387
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4388
     Color red scaledRed
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4389
     Color black scaledRed
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4390
     Color grey scaledRed
1023
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
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4393
    "Modified: 7.6.1996 / 18:32:43 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4394
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4395
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4396
scaledRed:r scaledGreen:g scaledBlue:b
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4397
    "set r/g/b components in 0..MaxValue.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4398
     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
  4399
     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
  4400
     Color>>variableColorOn: on pseudoColor displays).
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4401
     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
  4402
     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
  4403
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4404
    (colorId isNil or:[red notNil]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4405
	^ self error:'operation is not allowed for shared colors'
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4406
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4407
    device setColor:colorId scaledRed:r scaledGreen:g scaledBlue:b
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4408
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4409
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4410
writable
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4411
    "return true, if this is a writable colorcell"
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
    ^ writable == true
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
yellow
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4417
    "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
  4418
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4419
    ^ 100 - self blue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4420
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4421
    "Modified: 11.6.1996 / 17:20:07 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4422
    "Created: 11.6.1996 / 18:30:20 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4423
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4424
5131
95d91d6d649c care for invalid hue/light/saturation
Claus Gittinger <cg@exept.de>
parents: 5127
diff changeset
  4425
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4426
!Color methodsFor:'comparing'!
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
= aColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4429
    "two colors are considered equal, if the color components are;
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4430
     independent of the device, the color is on"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4431
2083
117f2e5ca733 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2077
diff changeset
  4432
    aColor == self ifTrue:[^ true].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4433
    aColor isColor ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4434
	(red == aColor scaledRed) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4435
	    (green == aColor scaledGreen) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4436
		(blue == aColor scaledBlue) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4437
		    ^ true
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4438
		]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4439
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4440
	]
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
    ^ false
2083
117f2e5ca733 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2077
diff changeset
  4443
117f2e5ca733 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2077
diff changeset
  4444
    "Modified: / 2.4.1998 / 10:04:39 / cg"
1023
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
1390
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4447
almostSameAs:aColor
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4448
    "return true, if aColor looks almost the same as the receiver
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4449
     (i.e. the components differ by a small, invisible amount).
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4450
     We assume, that the human eye can distinguish roughly 100 grey levels
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4451
     (which is optimistic ;-);
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4452
     therefore, allow a 1 percent difference in each component for the colors
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4453
     to compare as looking the same."
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4454
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4455
     (self red - aColor red) abs > 1 ifTrue:[^ false].
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4456
     (self green - aColor green) abs > 1 ifTrue:[^ false].
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4457
     (self blue - aColor blue) abs > 1 ifTrue:[^ false].
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4458
     ^ true
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4459
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4460
     "
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4461
      (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
  4462
     "
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4463
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4464
    "Modified: 28.2.1997 / 12:00:01 / cg"
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4465
!
4b519886451f added #almostSameAs:
Claus Gittinger <cg@exept.de>
parents: 1370
diff changeset
  4466
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4467
hash
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4468
    "return an integer useful as hash key for the receiver.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4469
     Redefined since = is redefined"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4470
2318
36d73b850969 fixed hash for colorId colors.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  4471
    red isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4472
	^ colorId
2318
36d73b850969 fixed hash for colorId colors.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  4473
    ].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4474
    ^ red + green + blue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4475
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4476
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4477
!Color methodsFor:'converting'!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4478
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4479
fromLiteralArrayEncoding:encoding
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4480
    "read my values from an encoding.
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4481
     The encoding is supposed to be either of the form:
6552
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4482
        (#Color redPart greenPart bluePart)
2778
3ef64f104266 allow 'Color colorName' in literalEncoding.
Claus Gittinger <cg@exept.de>
parents: 2455
diff changeset
  4483
     or:
6552
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4484
        (#Color constantColorSymbol)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4485
     This is the reverse operation to #literalArrayEncoding."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4486
6552
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4487
    |clr nameOrRGB|
2778
3ef64f104266 allow 'Color colorName' in literalEncoding.
Claus Gittinger <cg@exept.de>
parents: 2455
diff changeset
  4488
3ef64f104266 allow 'Color colorName' in literalEncoding.
Claus Gittinger <cg@exept.de>
parents: 2455
diff changeset
  4489
    encoding size == 2 ifTrue:[
6552
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4490
        nameOrRGB := encoding at:2.
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4491
        nameOrRGB isSymbol ifTrue:[ 
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4492
            clr := Color perform:nameOrRGB
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4493
        ] ifFalse:[ 
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4494
            clr := Color rgbValue:nameOrRGB.
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4495
        ].
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4496
        red := clr scaledRed.
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4497
        green := clr scaledGreen.
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4498
        blue := clr scaledBlue
2778
3ef64f104266 allow 'Color colorName' in literalEncoding.
Claus Gittinger <cg@exept.de>
parents: 2455
diff changeset
  4499
    ] ifFalse:[
6554
6595cc1cf732 class: Color
Claus Gittinger <cg@exept.de>
parents: 6553
diff changeset
  4500
        red := ((encoding at:2) / 100.0 * MaxValue) rounded asInteger.
6595cc1cf732 class: Color
Claus Gittinger <cg@exept.de>
parents: 6553
diff changeset
  4501
        green := ((encoding at:3) / 100.0 * MaxValue) rounded asInteger.
6595cc1cf732 class: Color
Claus Gittinger <cg@exept.de>
parents: 6553
diff changeset
  4502
        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
  4503
    ].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4504
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4505
    "
6552
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4506
      Color new fromLiteralArrayEncoding:#(#Color 50 25 25)  
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4507
      Color new fromLiteralArrayEncoding:#(#Color 16rFF00FF) 
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4508
      Color new fromLiteralArrayEncoding:#(#Color blue)      
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4509
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4510
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4511
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4512
literalArrayEncoding
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4513
    "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
  4514
     can be reconstructed with #decodeAsLiteralArray.
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4515
     The encoding is:
6552
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4516
        (#Color redPart greenPart bluePart)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4517
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4518
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4519
    ^ Array
6552
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4520
        with:self class name
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4521
        with:((red * 100.0 / MaxValue) roundTo:0.25) 
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4522
        with:((green * 100.0 / MaxValue) roundTo:0.25) 
9a9548feb83c class: Color
Claus Gittinger <cg@exept.de>
parents: 6534
diff changeset
  4523
        with:((blue * 100.0 / MaxValue) roundTo:0.25) 
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4524
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
      Color new fromLiteralArrayEncoding:#(#Color 50 25 25)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4527
      (Color red:25 green:30 blue:70) literalArrayEncoding
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4528
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4529
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4530
    "Modified: 22.4.1996 / 13:00:11 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4531
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4532
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4533
!Color methodsFor:'copying'!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4534
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4535
postCopy
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4536
    "redefined to clear out any device handles in the copy"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4537
1238
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  4538
    device := colorId := ditherForm := replacementColor := nil
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  4539
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  4540
    "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
  4541
!
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4542
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4543
skipInstvarIndexInDeepCopy:index
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4544
    index == 4 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4545
	^ true "/ skip device
2910
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4546
    ].
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4547
    index == 5 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4548
	^ true "/ skip colorId
2910
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4549
    ].
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4550
    index == 6 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4551
	^ true "/ skip ditherForm
2910
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4552
    ].
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4553
    index == 7 ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4554
	^ true "/ skip replacementColor
2910
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4555
    ].
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4556
    ^ false
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4557
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4558
    "
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
diff changeset
  4559
     (Color black onDevice:Screen current) deepCopy
97a836c7e15c deepCopy fix (do not copy device dependent stuff)
Claus Gittinger <cg@exept.de>
parents: 2889
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
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4563
!Color methodsFor:'getting a device color'!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4564
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4565
exactOn:aDevice
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4566
    "create a new Color representing the same color as
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4567
     myself on aDevice; if one already exists, return the one.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4568
     Do not dither or otherwise approximate the color, but return
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4569
     nil, if the exact color is not available.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4570
     Used to aquire primary colors for dithering, during startup."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4571
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4572
    |newColor id r g b|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4573
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4574
    "if Iam already assigned to that device ..."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4575
    (device == aDevice and:[ditherForm isNil]) ifTrue:[^ self].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4576
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4577
    r := red.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4578
    g := green.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4579
    b := blue.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4580
1239
f4bd3bc9f3f9 oops - dont round when searching for existing colors
Claus Gittinger <cg@exept.de>
parents: 1238
diff changeset
  4581
    "first look if not already there"
f4bd3bc9f3f9 oops - dont round when searching for existing colors
Claus Gittinger <cg@exept.de>
parents: 1238
diff changeset
  4582
    newColor := Color existingColorScaledRed:r scaledGreen:g scaledBlue:b on:aDevice.
f4bd3bc9f3f9 oops - dont round when searching for existing colors
Claus Gittinger <cg@exept.de>
parents: 1238
diff changeset
  4583
    (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
  4584
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4585
    r := (r bitAnd:16rFF00) bitOr:(r bitShift:-8).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4586
    g := (g bitAnd:16rFF00) bitOr:(g bitShift:-8).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4587
    b := (b bitAnd:16rFF00) bitOr:(b bitShift:-8).
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
    "ask that device for the color"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4590
    id := aDevice colorScaledRed:r scaledGreen:g scaledBlue:b.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4591
    id isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4592
	"/ this is a kludge: scavenge to free unused colors
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4593
	"/  and try again ...
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4594
	ObjectMemory scavenge; finalize.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4595
	id := aDevice colorScaledRed:r scaledGreen:g scaledBlue:b
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4596
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4597
    id isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4598
	"no such color - fail"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4599
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4600
"/      'COLOR: no color for ' infoPrint. self displayString infoPrintCR.
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4601
	^ nil
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4602
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4603
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4604
    "receiver was not associated - do it now"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4605
    device isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4606
	device := aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4607
	colorId := id.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4608
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4609
	aDevice visualType ~~ #TrueColor ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4610
	    "/ Lobby register:self.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4611
	    aDevice registerColor:self.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4612
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4613
	^ self
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4614
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4615
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4616
    "receiver was already associated to another device - need a new color"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4617
    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
  4618
    newColor setColorId:id.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4619
    aDevice visualType ~~ #TrueColor ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4620
	"/ Lobby register:newColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4621
	aDevice registerColor:newColor.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4622
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4623
    ^ newColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4624
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  4625
    "Modified: 24.2.1997 / 18:23:20 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4626
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4627
1856
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4628
exactOrNearestOn:aDevice
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4629
    "get a device color for the receiver, which is either exact
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4630
     or the nearest, but never dithered.
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4631
     This can be used for viewBackgrounds, where the exact greyLevel
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4632
     does not matter, but a dithered color is not wanted."
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4633
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4634
    |deviceColor|
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4635
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4636
    deviceColor := self exactOn:aDevice.
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4637
    deviceColor isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4638
	deviceColor := self nearestOn:aDevice
1856
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4639
    ].
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4640
    ^ deviceColor
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4641
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4642
    "Created: 13.8.1997 / 15:25:48 / cg"
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4643
!
50a92c932fbd added #exactOrNearestOn:
Claus Gittinger <cg@exept.de>
parents: 1855
diff changeset
  4644
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4645
nearestIn:aColorMap
2198
122ff0da86d6 added support to find the nearest color in a colorMap.
Claus Gittinger <cg@exept.de>
parents: 2183
diff changeset
  4646
    "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
  4647
122ff0da86d6 added support to find the nearest color in a colorMap.
Claus Gittinger <cg@exept.de>
parents: 2183
diff changeset
  4648
    ^ self class
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4649
	nearestColorScaledRed:(self scaledRed)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4650
		  scaledGreen:(self scaledGreen)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4651
		   scaledBlue:(self scaledBlue)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4652
			   on:nil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4653
			   in:aColorMap
2198
122ff0da86d6 added support to find the nearest color in a colorMap.
Claus Gittinger <cg@exept.de>
parents: 2183
diff changeset
  4654
122ff0da86d6 added support to find the nearest color in a colorMap.
Claus Gittinger <cg@exept.de>
parents: 2183
diff changeset
  4655
    "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
  4656
!
122ff0da86d6 added support to find the nearest color in a colorMap.
Claus Gittinger <cg@exept.de>
parents: 2183
diff changeset
  4657
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4658
nearestOn:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4659
    "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
  4660
     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
  4661
     search for the nearest match"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4662
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4663
    |newColor id|
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4664
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4665
    "if I'am already assigned to that device ..."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4666
    (device == aDevice) ifTrue:[^ self].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4667
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4668
    "first look if not already there"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4669
    newColor := Color nearestColorScaledRed:red scaledGreen:green scaledBlue:blue on:aDevice.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4670
    newColor notNil ifTrue:[^ newColor].
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
    "ask that device for the color"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4673
    id := aDevice colorScaledRed:red scaledGreen:green scaledBlue:blue.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4674
    id isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4675
	"this is a kludge:
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4676
	    scavenge to possuby free unused colors and try again ...
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4677
	    this is a compromise: actually a full GC is required here,
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4678
	    but that is too expensive.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4679
	"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4680
" "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4681
	ObjectMemory scavenge; finalize.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4682
	id := aDevice colorScaledRed:red scaledGreen:green scaledBlue:blue
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
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4685
    id isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4686
	"no color - fail"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4687
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4688
	^ nil
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4689
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4690
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4691
    "receiver was not associated - do it now"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4692
    device isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4693
	device := aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4694
	colorId := id.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4695
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4696
	aDevice visualType ~~ #TrueColor ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4697
	    "/ Lobby register:self.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4698
	    aDevice registerColor:self.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4699
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4700
	^ self
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4701
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4702
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4703
    "receiver was already associated to another device - need a new color"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4704
    newColor := (self class basicNew) setScaledRed:red scaledGreen:green sclaedBlue:blue device:aDevice.
1238
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  4705
    newColor setColorId:id.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4706
    aDevice visualType ~~ #TrueColor ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4707
	"/ Lobby register:newColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4708
	aDevice registerColor:newColor.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4709
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4710
    ^ newColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4711
1365
37a9e7ac4dbc moved color registration from Color class to per-device lobby
Claus Gittinger <cg@exept.de>
parents: 1348
diff changeset
  4712
    "Modified: 24.2.1997 / 18:23:26 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4713
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4714
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4715
on:aDevice
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4716
    "create a new Color representing the same color as
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4717
     myself on aDevice; if one already exists, return the one"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4718
3623
16665d9b7263 #on: -> #onDevice
Claus Gittinger <cg@exept.de>
parents: 3611
diff changeset
  4719
    "/ send out a warning: #on: is typically used to create views
16665d9b7263 #on: -> #onDevice
Claus Gittinger <cg@exept.de>
parents: 3611
diff changeset
  4720
    "/ operating on a model.
16665d9b7263 #on: -> #onDevice
Claus Gittinger <cg@exept.de>
parents: 3611
diff changeset
  4721
    "/ Please use #onDevice: to avoid confusion.
16665d9b7263 #on: -> #onDevice
Claus Gittinger <cg@exept.de>
parents: 3611
diff changeset
  4722
16665d9b7263 #on: -> #onDevice
Claus Gittinger <cg@exept.de>
parents: 3611
diff changeset
  4723
    <resource:#obsolete>
16665d9b7263 #on: -> #onDevice
Claus Gittinger <cg@exept.de>
parents: 3611
diff changeset
  4724
16665d9b7263 #on: -> #onDevice
Claus Gittinger <cg@exept.de>
parents: 3611
diff changeset
  4725
    self obsoleteMethodWarning:'use #onDevice:'.
2836
6c1f6b223329 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2828
diff changeset
  4726
    ^ self onDevice:aDevice
6c1f6b223329 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2828
diff changeset
  4727
6c1f6b223329 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2828
diff changeset
  4728
    "Created: / 16.11.1995 / 20:16:42 / cg"
6c1f6b223329 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2828
diff changeset
  4729
    "Modified: / 8.9.1998 / 17:32:10 / cg"
6c1f6b223329 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2828
diff changeset
  4730
!
6c1f6b223329 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2828
diff changeset
  4731
6c1f6b223329 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2828
diff changeset
  4732
onDevice:aDevice
6c1f6b223329 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2828
diff changeset
  4733
    "create a new Color representing the same color as
6c1f6b223329 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2828
diff changeset
  4734
     myself on aDevice; if one already exists, return the one"
6c1f6b223329 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2828
diff changeset
  4735
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4736
    |newColor id form
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4737
     greyV "{ Class: SmallInteger }"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4738
     rV    "{ Class: SmallInteger }"
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4739
     gV    "{ Class: SmallInteger }"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4740
     bV    "{ Class: SmallInteger }"
2375
265a5137e286 oops - possible color reuse between devices fixed
Claus Gittinger <cg@exept.de>
parents: 2318
diff changeset
  4741
     deviceVisual deviceFixColors deviceDepth|
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4742
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4743
    "/ the most common cases (already allocated) first
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  4744
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  4745
    colorId notNil ifTrue:[
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  4746
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4747
	"/ is someone validating me before drawing on aDevice ?
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4748
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4749
	aDevice notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4750
	    aDevice == device ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4751
		^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4752
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4753
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4754
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4755
	"/ a special case for pseudo-colors (0 and 1 in bitmaps)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4756
	"/ those have nil r/g/b values, but a nonNil colorId
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4757
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4758
	red isNil ifTrue:[^ self].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4759
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4760
	"/ want to release color ?
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4761
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4762
	(aDevice isNil and:[device notNil]) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4763
	    "/ trueColor device-colors are not registered
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4764
	    device visualType ~~ #TrueColor ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4765
		device unregisterColor:newColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4766
		device freeColor:colorId
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4767
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4768
	    device := nil.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4769
	    colorId := nil.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4770
	    ^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4771
	].
1205
e28b664586f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1165
diff changeset
  4772
    ].
2313
35b10e50a455 care for early onDevice:nil
Claus Gittinger <cg@exept.de>
parents: 2288
diff changeset
  4773
    aDevice isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4774
	^ self
2313
35b10e50a455 care for early onDevice:nil
Claus Gittinger <cg@exept.de>
parents: 2288
diff changeset
  4775
    ].
1205
e28b664586f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1165
diff changeset
  4776
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  4777
    device == aDevice ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4778
	ditherForm notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4779
	    ^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4780
	]
1707
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  4781
    ].
c4ba0f13330c made all dither stuff class protocol
Claus Gittinger <cg@exept.de>
parents: 1621
diff changeset
  4782
1368
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4783
    "/ on high-resolution true-color systems, dont care for dithering and
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4784
    "/ especially freeing colors
2842
dcb1f8eb648f removed obsolete method
Claus Gittinger <cg@exept.de>
parents: 2836
diff changeset
  4785
    "/ (no need to register)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4786
2375
265a5137e286 oops - possible color reuse between devices fixed
Claus Gittinger <cg@exept.de>
parents: 2318
diff changeset
  4787
    deviceDepth := aDevice depth.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4788
    (deviceVisual := aDevice visualType) == #TrueColor ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4789
	deviceDepth >= 15 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4790
	    id := aDevice colorScaledRed:red scaledGreen:green scaledBlue:blue.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4791
	    id notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4792
		device isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4793
		    "/ receiver was not associated - do it now & return mySelf
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4794
		    colorId := id.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4795
		    ditherForm := nil.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4796
		    device := aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4797
		    ^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4798
		].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4799
		newColor := (self class basicNew)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4800
				    setScaledRed:red
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4801
				    scaledGreen:green
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4802
				    scaledBlue:blue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4803
				    device:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4804
		newColor setColorId:id.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4805
		^ newColor
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4806
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4807
	]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4808
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4809
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4810
    "/ round a bit within 1% in red & green, 2% in blue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4811
1239
f4bd3bc9f3f9 oops - dont round when searching for existing colors
Claus Gittinger <cg@exept.de>
parents: 1238
diff changeset
  4812
    rV := red.
f4bd3bc9f3f9 oops - dont round when searching for existing colors
Claus Gittinger <cg@exept.de>
parents: 1238
diff changeset
  4813
    gV := green.
f4bd3bc9f3f9 oops - dont round when searching for existing colors
Claus Gittinger <cg@exept.de>
parents: 1238
diff changeset
  4814
    bV := blue.
f4bd3bc9f3f9 oops - dont round when searching for existing colors
Claus Gittinger <cg@exept.de>
parents: 1238
diff changeset
  4815
f4bd3bc9f3f9 oops - dont round when searching for existing colors
Claus Gittinger <cg@exept.de>
parents: 1238
diff changeset
  4816
"/    rV := (red / 100.0) rounded * 100.
f4bd3bc9f3f9 oops - dont round when searching for existing colors
Claus Gittinger <cg@exept.de>
parents: 1238
diff changeset
  4817
"/    gV := (green / 100.0) rounded * 100.
f4bd3bc9f3f9 oops - dont round when searching for existing colors
Claus Gittinger <cg@exept.de>
parents: 1238
diff changeset
  4818
"/    bV := (blue / 50.0) rounded * 50.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4819
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  4820
    "/ if I am already assigned to that device ...
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  4821
1368
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4822
"/    ((device == aDevice) and:[ditherForm notNil]) ifTrue:[
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4823
"/
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4824
"/        "/ 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
  4825
"/        "/ try again - maybe some colors were reclaimed in the meanwhile
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4826
"/
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4827
"/        deviceFixColors := aDevice fixColors.
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4828
"/
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4829
"/        (deviceFixColors isNil
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4830
"/         and:[RetryAllocation]) ifTrue:[
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4831
"/            "
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4832
"/             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
  4833
"/            "
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4834
"/            aDevice depth > 2 ifTrue:[
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4835
"/                id := aDevice colorScaledRed:rV scaledGreen:gV scaledBlue:bV.
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4836
"/                id notNil ifTrue:[
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4837
"/                    colorId := id.
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4838
"/                    ditherForm := nil.
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4839
"/                    device registerColor:self.
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4840
"/                ]
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4841
"/            ]
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4842
"/        ].
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4843
"/        ^ self
cb5fbbcf568f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1365
diff changeset
  4844
"/    ].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4845
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4846
    newColor := Color existingColorScaledRed:rV scaledGreen:gV scaledBlue:bV on:aDevice.
2973
59770deee81c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2972
diff changeset
  4847
    newColor notNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4848
	(newColor scaledRed ~~ red
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4849
	or:[newColor scaledGreen ~~ green
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4850
	or:[newColor scaledBlue ~~ blue]]) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4851
	    Transcript showCR:'Color>>#onDevice: got different color'.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4852
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4853
	^ newColor
2973
59770deee81c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2972
diff changeset
  4854
    ].
59770deee81c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2972
diff changeset
  4855
59770deee81c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2972
diff changeset
  4856
    "/ ask that device for the exact color
59770deee81c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2972
diff changeset
  4857
    id := aDevice colorScaledRed:red scaledGreen:green scaledBlue:blue.
59770deee81c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2972
diff changeset
  4858
    id notNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4859
	device isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4860
	    "/ receiver was not associated - do it now & return mySelf
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4861
	    colorId := id.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4862
	    ditherForm := nil.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4863
	    device := aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4864
	    newColor := self.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4865
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4866
	    newColor := (self class basicNew)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4867
				setScaledRed:red
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4868
				scaledGreen:green
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4869
				scaledBlue:blue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4870
				device:aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4871
	    newColor setColorId:id.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4872
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4873
	id notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4874
	    deviceVisual ~~ #TrueColor ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4875
		aDevice registerColor:newColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4876
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4877
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4878
	^ newColor
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4879
    ].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4880
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4881
    "/
2973
59770deee81c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2972
diff changeset
  4882
    "/ 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
  4883
    "/ the nearest.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4884
    "/ 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
  4885
    "/
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4886
    greyV := (3 * red) + (6 * green) + (1 * blue).
1621
5b1e6427d5f6 monochrome fixes
Claus Gittinger <cg@exept.de>
parents: 1619
diff changeset
  4887
    greyV := (greyV / 1000.0) rounded * 100.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4888
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4889
    "/ allow an error of 1% in red & green, 2% in blue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4890
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4891
    ((rV - greyV) abs <= 655                    "/ MaxValue // 100
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4892
    and:[(gV - greyV) abs <= 655                "/ MaxValue // 100
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4893
    and:[(bV - greyV) abs <= 1310]]) ifTrue:[   "/ MaxValue // 100 * 2
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4894
	rV := gV := bV := greyV.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4895
    ] ifFalse:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4896
	rV := red. gV := green. bV := blue.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4897
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4898
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4899
    aDevice hasColors ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4900
	deviceFixColors := aDevice fixColors.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4901
	deviceFixColors isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4902
	    "/ ask that device for the exact color
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4903
	    id := aDevice colorScaledRed:rV scaledGreen:gV scaledBlue:bV.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4904
	    id isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4905
		aDevice isOpen ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4906
		    ^ nil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4907
		].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4908
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4909
		"/ this is a kludge: scavenge to free unused colors
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4910
		"/ and try again ...
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4911
		ObjectMemory scavenge; finalize.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4912
		id := aDevice colorScaledRed:rV scaledGreen:gV scaledBlue:bV
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4913
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4914
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4915
	    id isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4916
		"/ no such color - try color dithers
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4917
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4918
		self class
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4919
		    ditherRed:rV green:gV blue:bV
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4920
		    on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4921
		    into:[:c :f | newColor := c. form := f].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4922
		newColor notNil ifTrue:[^ newColor].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4923
	    ].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4924
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4925
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4926
	"/ none found ? -> do a hard dither using fixColors
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4927
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4928
	(id isNil and:[form isNil]) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4929
	    deviceFixColors notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4930
		self class
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4931
		    fixDitherRed:rV green:gV blue:bV
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4932
		    on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4933
		    into:[:c :f | newColor := c. form := f].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4934
		newColor notNil ifTrue:[^ newColor].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4935
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4936
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4937
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4938
	"/ still none found ? -> do a very hard dither using existing colors
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4939
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4940
	(id isNil and:[form isNil]) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4941
	    self class
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4942
		complexDitherRed:rV green:gV blue:bV
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4943
		on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4944
		into:[:c :f | newColor := c. form := f].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4945
	    newColor notNil ifTrue:[^ newColor].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4946
	].
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
    (id isNil and:[form isNil]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4950
	"still no result - try graying"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4951
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4952
	greyV == 0 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4953
	    id := aDevice blackpixel
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4954
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4955
	    greyV == MaxValue ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4956
		id := aDevice whitepixel
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4957
	    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4958
		aDevice hasGrayscales ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4959
		    self class
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4960
			ditherGrayFor:(greyV / MaxValue)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4961
			on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4962
			into:[:c :f | newColor := c. form := f].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4963
		    newColor notNil ifTrue:[^ newColor].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4964
		].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4965
		form isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4966
		    "/ still none - dither b&w
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4967
		    self class
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4968
			monoDitherFor:(greyV / MaxValue)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4969
			between:Black and:White
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4970
			on:aDevice
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4971
			into:[:c :f | newColor := c. form := f].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4972
		    newColor notNil ifTrue:[^ newColor].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4973
		    form isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4974
			"/ cannot happen
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4975
			'Color [warning]: monoDither failed' errorPrintCR.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4976
			^ nil
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4977
		    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4978
		]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4979
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4980
	].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4981
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4982
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  4983
    device isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4984
	"/ receiver was not associated - do it now & return mySelf
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4985
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4986
	device := aDevice.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4987
	id isNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4988
	    ditherForm := form
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4989
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4990
	colorId := id.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4991
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4992
	"/ have to register - otherwise it keeps old info around
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4993
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4994
	id notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4995
	    deviceVisual ~~ #TrueColor ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4996
		aDevice registerColor:self.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4997
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4998
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  4999
	^ self
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5000
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5001
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5002
    "/ receiver was already associated to another device
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5003
    "/ - need a new color and return it
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5004
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5005
    newColor := (self class basicNew)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5006
			setScaledRed:red
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5007
			scaledGreen:green
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5008
			scaledBlue:blue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5009
			device:aDevice.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5010
    id isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5011
	newColor setDitherForm:form
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5012
    ] ifFalse:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5013
	newColor setColorId:id.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5014
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5015
	"/ trueColor device-colors are not registered
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5016
	deviceVisual ~~ #TrueColor ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5017
	    aDevice registerColor:newColor.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5018
	]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5019
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5020
    ^ newColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5021
2313
35b10e50a455 care for early onDevice:nil
Claus Gittinger <cg@exept.de>
parents: 2288
diff changeset
  5022
    "Created: / 16.11.1995 / 20:16:42 / cg"
35b10e50a455 care for early onDevice:nil
Claus Gittinger <cg@exept.de>
parents: 2288
diff changeset
  5023
    "Modified: / 8.9.1998 / 17:32:10 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5024
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5025
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5026
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5027
!Color methodsFor:'instance creation'!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5028
2948
86566f076d30 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2945
diff changeset
  5029
alpha:alphaValue
4789
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  5030
    "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
  5031
     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
  5032
86566f076d30 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2945
diff changeset
  5033
    alphaValue = 1 ifTrue:[ ^ self].
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5034
    ^ (TranslucentColor
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5035
	   scaledRed:red
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5036
	   scaledGreen:green
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5037
	   scaledBlue:blue) alpha:alphaValue
2948
86566f076d30 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2945
diff changeset
  5038
86566f076d30 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2945
diff changeset
  5039
    "
4789
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  5040
     (Color red alpha:0.5) alpha
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5041
     Color red alpha
4789
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  5042
    "
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  5043
8a525695f2ba *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4785
diff changeset
  5044
    "Modified: / 06-06-2007 / 11:17:55 / cg"
2948
86566f076d30 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2945
diff changeset
  5045
!
86566f076d30 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2945
diff changeset
  5046
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5047
blendWith:aColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5048
    "create a new color from equally mixing the receiver
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5049
     and the argument, aColor.
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5050
     Mixing is done by adding components
2943
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5051
     (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
  5052
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5053
    ^ self mixed:1 with:aColor
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5054
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5055
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5056
     (Color red) blendWith:(Color yellow)
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5057
     (Color red) blendWith:(Color blue)
1326
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5058
     (Color red) blendWith:(Color black)
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5059
     (Color red) blendWith:(Color white)
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5060
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5061
1326
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5062
    "Modified: 10.2.1997 / 22:08:14 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5063
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5064
5965
4f8e9e2ec50b class: Color
Stefan Vogel <sv@exept.de>
parents: 5957
diff changeset
  5065
contrastingBlackOrWhite
4f8e9e2ec50b class: Color
Stefan Vogel <sv@exept.de>
parents: 5957
diff changeset
  5066
    "answer either black or white, whichever gives a better contrast"
4f8e9e2ec50b class: Color
Stefan Vogel <sv@exept.de>
parents: 5957
diff changeset
  5067
4f8e9e2ec50b class: Color
Stefan Vogel <sv@exept.de>
parents: 5957
diff changeset
  5068
    ^ self brightness < 0.65 ifTrue:[self class white] ifFalse:[self class black]
4f8e9e2ec50b class: Color
Stefan Vogel <sv@exept.de>
parents: 5957
diff changeset
  5069
!
4f8e9e2ec50b class: Color
Stefan Vogel <sv@exept.de>
parents: 5957
diff changeset
  5070
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5071
darkened
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5072
    "return a new color, which is slightly darker than the receiver"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5073
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5074
    ^ self blendWith:Black
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 red) darkened
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5078
     (Color red) darkened darkened
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5079
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5080
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5081
    "Modified: 11.6.1996 / 18:10:37 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5082
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5083
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5084
lightened
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5085
    "return a new color, which is slightly lighter than the receiver"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5086
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5087
    ^ self blendWith:White
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5088
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5089
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5090
     (Color red) lightened
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5091
     (Color red) lightened lightened
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5092
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5093
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5094
    "Modified: 11.6.1996 / 18:10:49 / cg"
2943
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5095
!
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5096
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5097
mixed:amount with:aColor
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5098
    "create a new color from mixing amount of the receiver
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5099
     with the argument, aColor.
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5100
     Mixing is done by adding components (i.e. additive mixing)
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
     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
  5103
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5104
    red isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5105
	^ aColor
2943
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5106
    ].
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5107
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5108
    ^ (self class)
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5109
	scaledRed:((red * amount) + aColor scaledRed) // (1 + amount)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5110
	scaledGreen:((green * amount) + aColor scaledGreen) // (1 + amount)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5111
	scaledBlue:((blue * amount) + aColor scaledBlue) // (1 + amount)
2943
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5112
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5113
    "
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5114
     (Color red) mixed:1 with:(Color yellow)
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5115
     (Color red) mixed:0.9 with:(Color yellow)
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5116
     (Color red) mixed:0.8 with:(Color yellow)
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5117
     (Color red) mixed:0.5 with:(Color yellow)
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5118
     (Color red) mixed:0.25 with:(Color yellow)
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5119
     (Color red) mixed:0 with:(Color yellow)
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5120
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5121
     (Color red) mixed:1 with:(Color white)
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5122
     (Color red) mixed:0.8 with:(Color white)
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5123
     (Color red) mixed:0.8 with:(Color black)
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5124
    "
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5125
6b4dca5fbee2 more lightening/darkening stuff
Claus Gittinger <cg@exept.de>
parents: 2942
diff changeset
  5126
    "Modified: 10.2.1997 / 22:08:14 / cg"
3724
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5127
!
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5128
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5129
slightlyDarkened
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5130
    "return a new color, which is a bit darker than the receiver"
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5131
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5132
    ^ self blendWith:(self blendWith:Black)
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5133
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5134
    "
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5135
     (Color green) inspect
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5136
     (Color green) darkened inspect
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5137
     (Color green) slightlyDarkened inspect
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5138
    "
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5139
!
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5140
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5141
slightlyLightened
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5142
    "return a new color, which is a bit lighter than the receiver"
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5143
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5144
    ^ self blendWith:(self blendWith:White)
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5145
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5146
    "
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5147
     (Color red) inspect
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5148
     (Color red) lightened inspect
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5149
     (Color red) slightlyLightened inspect
e35133b39f25 + slightlyLightened/darkened
Claus Gittinger <cg@exept.de>
parents: 3665
diff changeset
  5150
    "
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5151
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5152
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5153
!Color methodsFor:'instance release'!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5154
2845
0794fef6db4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
  5155
executor
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5156
    "redefined, since for finalization only device and colorIndex
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5157
     are needed - thus a faster copy is possible here"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5158
2845
0794fef6db4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
  5159
    ^ DeviceColorHandle basicNew setDevice:device colorId:colorId
0794fef6db4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
  5160
!
0794fef6db4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
  5161
0794fef6db4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
  5162
releaseFromDevice
0794fef6db4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
  5163
    "I am no longer available on the device"
0794fef6db4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
  5164
2975
9ddc41c98ca6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2973
diff changeset
  5165
    colorId := device := ditherForm := replacementColor := nil.
2845
0794fef6db4a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2842
diff changeset
  5166
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5167
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5168
3122
ecf190618501 AEG extensions removed
Claus Gittinger <cg@exept.de>
parents: 3039
diff changeset
  5169
!Color methodsFor:'misc'!
ecf190618501 AEG extensions removed
Claus Gittinger <cg@exept.de>
parents: 3039
diff changeset
  5170
ecf190618501 AEG extensions removed
Claus Gittinger <cg@exept.de>
parents: 3039
diff changeset
  5171
magnifiedTo: extent
ecf190618501 AEG extensions removed
Claus Gittinger <cg@exept.de>
parents: 3039
diff changeset
  5172
    "do nothing here, for compatibility with Image/Form"
ecf190618501 AEG extensions removed
Claus Gittinger <cg@exept.de>
parents: 3039
diff changeset
  5173
! !
ecf190618501 AEG extensions removed
Claus Gittinger <cg@exept.de>
parents: 3039
diff changeset
  5174
4851
c0a32100d99e category change
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  5175
!Color methodsFor:'object persistency'!
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5176
4207
9e70f7998f66 elementDescriptorFor: instead of encodingVectorFor:
penk
parents: 4203
diff changeset
  5177
elementDescriptorFor:aspect
4851
c0a32100d99e category change
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  5178
    "support for persistency:
c0a32100d99e category change
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  5179
     answer the elements to be made persistent with an ObjectCoder"
c0a32100d99e category change
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  5180
3935
c025aa0417cd encodingVectorFor:aspect (XMLStandardCoder)
tm
parents: 3931
diff changeset
  5181
    red isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5182
	^ Array with:(#colorId->colorId)
3935
c025aa0417cd encodingVectorFor:aspect (XMLStandardCoder)
tm
parents: 3931
diff changeset
  5183
    ].
c025aa0417cd encodingVectorFor:aspect (XMLStandardCoder)
tm
parents: 3931
diff changeset
  5184
    ^ 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
  5185
! !
c0a32100d99e category change
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  5186
c0a32100d99e category change
Claus Gittinger <cg@exept.de>
parents: 4850
diff changeset
  5187
!Color methodsFor:'printing & storing'!
3935
c025aa0417cd encodingVectorFor:aspect (XMLStandardCoder)
tm
parents: 3931
diff changeset
  5188
4850
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5189
hex
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5190
    <resource: #obsolete>
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5191
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5192
    self obsoleteMethodWarning:'use #hexPrintString'.
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5193
    ^ self hexPrintString
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5194
!
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5195
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5196
hexPrintString
4908
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5197
    "return a hex-printString as rrggbb"
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5198
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5199
    |s|
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5200
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5201
    s := WriteStream on:(String new:6).
5920
6048353b1ba8 changed: #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 5779
diff changeset
  5202
    red isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5203
	colorId notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5204
	    colorId printOn:s base:16 size:6 fill:$0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5205
	]
5920
6048353b1ba8 changed: #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 5779
diff changeset
  5206
    ] ifFalse:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5207
	self redByte   printOn:s base:16 size:2 fill:$0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5208
	self greenByte printOn:s base:16 size:2 fill:$0.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5209
	self blueByte  printOn:s base:16 size:2 fill:$0.
5920
6048353b1ba8 changed: #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 5779
diff changeset
  5210
    ].
4908
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5211
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5212
    ^ s contents.
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5213
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5214
    "
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5215
     Color red hexPrintString
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5216
     Color green hexPrintString
bb534a1fc0e3 #hexPrintString
Stefan Vogel <sv@exept.de>
parents: 4896
diff changeset
  5217
     Color blue hexPrintString
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5218
     Color yellow hexPrintString
4850
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5219
    "
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5220
!
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5221
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5222
htmlPrintString
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5223
    "return a hex-printString for html as #rrggbb;"
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5224
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5225
    ^ '#',(self hexPrintString)
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5226
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5227
    "
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5228
     Color red htmlPrintString
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5229
     Color green htmlPrintString
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5230
     Color blue htmlPrintString
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5231
     Color yellow htmlPrintString
4850
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5232
    "
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5233
!
5e45abdda305 hexPrintString; htmlPrintString
Claus Gittinger <cg@exept.de>
parents: 4789
diff changeset
  5234
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5235
printOn:aStream
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5236
    "append a string representing of the receiver
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5237
     to the argument, aStream"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5238
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5239
    self storeOn:aStream
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5240
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5241
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5242
storeOn:aStream
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5243
    "append a string representing an expression to reconstruct the receiver
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5244
     to the argument, aStream"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5245
2942
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5246
    |clsName|
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5247
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5248
    clsName := self class name.
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5249
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5250
    red isNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5251
	colorId notNil ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5252
	    aStream nextPutAll:'(' , clsName , ' colorId:'.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5253
	    colorId storeOn:aStream.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5254
	    aStream nextPut:$).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5255
	    ^ self
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5256
	]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5257
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5258
    (red == green and:[red == blue]) ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5259
	red == 0 ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5260
	    aStream nextPutAll:'(' , clsName , ' black)'.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5261
	] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5262
	    red == MaxValue ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5263
		aStream nextPutAll:'(' , clsName , ' white)'.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5264
	    ] ifFalse:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5265
		aStream nextPutAll:'(' , clsName , ' grey:'.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5266
		(self red) storeOn:aStream.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5267
		aStream nextPut:$).
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5268
	    ]
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5269
	].
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5270
	^ self
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5271
    ].
2942
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5272
    aStream nextPutAll:'(' , clsName , ' red:'.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5273
    (self red) storeOn:aStream.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5274
    aStream nextPutAll:' green:'.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5275
    (self green) storeOn:aStream.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5276
    aStream nextPutAll:' blue:'.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5277
    (self blue) storeOn:aStream.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5278
    aStream nextPut:$).
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5279
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5280
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5281
!Color methodsFor:'private'!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5282
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5283
restored
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5284
    "private: color has been restored (either from snapin or binary store);
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5285
     flush device stuff or reallocate a cell."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5286
1238
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5287
    ditherForm := replacementColor := nil.
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5288
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5289
    red notNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5290
	device := nil.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5291
	colorId := nil
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5292
    ] ifFalse:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5293
	"a variable color has been restored"
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5294
	(colorId notNil and:[writable == true and:[device notNil]]) ifTrue:[
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5295
	    colorId := device colorCell.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5296
	    device setColor:colorId scaledRed:red scaledGreen:green scaledBlue:blue
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5297
	]
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5298
    ]
1238
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5299
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5300
    "Modified: 17.1.1997 / 00:04:14 / cg"
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5301
!
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5302
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5303
setColorId:anId
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5304
    "private: set the deviceId"
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5305
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5306
    colorId := anId
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5307
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5308
    "Created: 17.1.1997 / 00:05:41 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5309
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5310
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5311
setDevice:aDevice colorId:aNumber
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5312
    "private:set device and colorId"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5313
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5314
    device := aDevice.
1934
fe7d73fe0df4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1929
diff changeset
  5315
    colorId := aNumber.
fe7d73fe0df4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1929
diff changeset
  5316
    writable := false.
fe7d73fe0df4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1929
diff changeset
  5317
!
fe7d73fe0df4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1929
diff changeset
  5318
fe7d73fe0df4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1929
diff changeset
  5319
setDevice:aDevice colorId:aNumber writable:wBool
fe7d73fe0df4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1929
diff changeset
  5320
    "private:set device, colorId and writable flag"
fe7d73fe0df4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1929
diff changeset
  5321
fe7d73fe0df4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1929
diff changeset
  5322
    device := aDevice.
fe7d73fe0df4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1929
diff changeset
  5323
    colorId := aNumber.
fe7d73fe0df4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1929
diff changeset
  5324
    writable := wBool.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5325
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5326
1238
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5327
setDitherForm:aForm
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5328
    "private: set the ditherForm"
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5329
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5330
    ditherForm := aForm
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5331
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5332
    "Created: 17.1.1997 / 00:04:57 / cg"
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5333
!
b363894182d0 prepare for replacement colors
Claus Gittinger <cg@exept.de>
parents: 1237
diff changeset
  5334
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5335
setScaledRed:r scaledGreen:g scaledBlue:b device:aDevice
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5336
    "private: set the components"
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
    red notNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5339
	"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
  5340
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5341
	self error:'Colors cannot change their components'.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5342
	^ self
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5343
    ].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5344
    red := r.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5345
    green := g.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5346
    blue := b.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5347
    device := aDevice
1233
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  5348
c6796bddc7d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1229
diff changeset
  5349
    "Modified: 16.1.1997 / 22:39:26 / cg"
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5350
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5351
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5352
!Color methodsFor:'queries'!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5353
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5354
averageColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5355
    "return the average color - thats myself.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5356
     This method has been added for compatibility with the image
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5357
     protocol."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5358
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5359
    ^ self
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5360
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5361
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5362
averageColorIn:aRectangle
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5363
    "return the average color - thats myself.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5364
     This method has been added for compatibility with the image
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5365
     protocol."
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5366
6353
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
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5369
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5370
brightness
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5371
    "ST80 compatibility: return the grey intensity in [0..1]"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5372
6384
b6ddf75e709e class: Color
Claus Gittinger <cg@exept.de>
parents: 6353
diff changeset
  5373
    red isNil ifTrue:[
b6ddf75e709e class: Color
Claus Gittinger <cg@exept.de>
parents: 6353
diff changeset
  5374
        "/ a hack for colorId:0 and colorId:1 pseudo mask colors.
b6ddf75e709e class: Color
Claus Gittinger <cg@exept.de>
parents: 6353
diff changeset
  5375
        colorId == 0 ifTrue:[^ 0].
b6ddf75e709e class: Color
Claus Gittinger <cg@exept.de>
parents: 6353
diff changeset
  5376
        ^ 1
b6ddf75e709e class: Color
Claus Gittinger <cg@exept.de>
parents: 6353
diff changeset
  5377
    ].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5378
    ^ ((3 * red) + (6 * green) + (blue)) / 10.0 / MaxValue
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
    "Modified: 7.6.1996 / 19:42:21 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5381
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5382
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5383
deltaFrom:aColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5384
    "return the distance of the receiver from some color specified
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5385
     by r/g/b values"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5386
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5387
    ^ aColor deltaFromRed:self red green:self green blue:self blue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5388
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  5389
    "
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5390
     Color red deltaFrom:(Color blue)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5391
     Color red deltaFrom:(Color yellow)
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5392
     Color red deltaFrom:(Color red:50)
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  5393
    "
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  5394
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5395
    "Created: 14.6.1996 / 20:07:22 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5396
    "Modified: 14.6.1996 / 20:49:32 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5397
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5398
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5399
deltaFromRed:r green:g blue:b
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5400
    "return the distance of the receiver from some color specified
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5401
     by r/g/b values"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5402
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5403
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5404
     Q: how should component errors be weighted ?
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5405
    "
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  5406
    ^ ((self red - r) abs
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5407
      + (self green - g) abs
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  5408
      + (self blue - b) abs) rounded.
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5409
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5410
    "Created: 14.6.1996 / 20:03:58 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5411
    "Modified: 14.6.1996 / 20:20:24 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5412
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5413
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5414
deltaFromScaledRed:r scaledGreen:g scaledBlue:b
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5415
    "return the distance of the receiver from some color specified
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5416
     by r/g/b values"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5417
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5418
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5419
     Q: how should component errors be weighted ?
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5420
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5421
    ^ (red - r) abs
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5422
      + (green - g) abs
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5423
      + (blue - b) abs.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5424
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5425
    "Created: 11.6.1996 / 18:01:12 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5426
    "Modified: 14.6.1996 / 20:36:14 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5427
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5428
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5429
errorFrom:aColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5430
    "return some value which can be used to compare colors.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5431
     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
  5432
     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
  5433
     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
  5434
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5435
    ^ (red - aColor scaledRed) squared
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5436
       + (green - aColor scaledGreen) squared
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5437
       + (blue - aColor scaledBlue) squared.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5438
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5439
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5440
grayIntensity
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5441
    "return the grey intensity in percent [0..100] (US version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5442
6385
463b0c40db9c class: Color
Claus Gittinger <cg@exept.de>
parents: 6384
diff changeset
  5443
    red isNil ifTrue:[
463b0c40db9c class: Color
Claus Gittinger <cg@exept.de>
parents: 6384
diff changeset
  5444
        "/ a hack for colorId:0 and colorId:1 pseudo mask colors.
463b0c40db9c class: Color
Claus Gittinger <cg@exept.de>
parents: 6384
diff changeset
  5445
        colorId == 0 ifTrue:[^ 0].
463b0c40db9c class: Color
Claus Gittinger <cg@exept.de>
parents: 6384
diff changeset
  5446
        ^ 100
463b0c40db9c class: Color
Claus Gittinger <cg@exept.de>
parents: 6384
diff changeset
  5447
    ].
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5448
    ^ ((3 * red) + (6 * green) + (1 * blue)) * 10.0 / MaxValue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5449
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5450
    "Created: 2.5.1996 / 11:38:21 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5451
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5452
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5453
greyIntensity
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5454
    "return the grey intensity in percent [0..100] (English version ;-)"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5455
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5456
    ^ self grayIntensity
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
    "Modified: 28.5.1996 / 20:45:41 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5459
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5460
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5461
isColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5462
    "return true if the receiver is a Color."
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
    ^ true
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5465
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5466
2828
5795bf162314 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  5467
isColorObject
5795bf162314 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  5468
    ^ true
5795bf162314 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  5469
!
5795bf162314 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2779
diff changeset
  5470
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5471
isDithered
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5472
    "return true, if this is a dithered Color.
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5473
     Only makes sense if the receiver is a device color."
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
    ^ ditherForm notNil
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
1326
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5478
isGray
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5479
    "same as isGrayColor - for ST80 compatibility."
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5480
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5481
    ^ self isGrayColor
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5482
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5483
    "
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5484
     (Color grey:50) isGray
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5485
     (Color red) isGray
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5486
    "
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5487
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5488
    "Created: 10.2.1997 / 22:10:25 / cg"
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5489
!
a519593747e8 #isGray - ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 1269
diff changeset
  5490
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5491
isGrayColor
3005
b8d9132ebbfd checkin from browser
Stefan Vogel <sv@exept.de>
parents: 2999
diff changeset
  5492
    "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
  5493
     i.e. red = green = blue"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5494
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5495
    red ~~ green ifTrue:[^ false].
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5496
    ^ red == blue
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5497
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5498
    "
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5499
     (Color grey:50) isGrayColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5500
     (Color red) isGrayColor
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
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5503
    "Created: 2.5.1996 / 11:38:48 / cg"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5504
!
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5505
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5506
isGreyColor
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5507
    "return true, if this color is a grey one (English version ;-) -
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5508
     i.e. red = green = blue"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5509
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5510
    ^ self isGrayColor
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
    "(Color grey:50) isGreyColor"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5513
    "(Color red) isGreyColor"
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5514
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5515
    "Modified: 28.5.1996 / 20:44:36 / cg"
2942
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5516
!
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5517
3598
2b6e50a38de6 New: #isOnDevice:
Stefan Vogel <sv@exept.de>
parents: 3543
diff changeset
  5518
isOnDevice:aGraphicsDevice
2b6e50a38de6 New: #isOnDevice:
Stefan Vogel <sv@exept.de>
parents: 3543
diff changeset
  5519
    "return true if i am allocated on aGraphicsDevice"
2b6e50a38de6 New: #isOnDevice:
Stefan Vogel <sv@exept.de>
parents: 3543
diff changeset
  5520
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5521
    ^ device == aGraphicsDevice
3598
2b6e50a38de6 New: #isOnDevice:
Stefan Vogel <sv@exept.de>
parents: 3543
diff changeset
  5522
      and:[colorId notNil or:[replacementColor notNil and:[replacementColor colorId notNil]]]
2b6e50a38de6 New: #isOnDevice:
Stefan Vogel <sv@exept.de>
parents: 3543
diff changeset
  5523
!
2b6e50a38de6 New: #isOnDevice:
Stefan Vogel <sv@exept.de>
parents: 3543
diff changeset
  5524
2942
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5525
isOpaque
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5526
    "return true, if I represent an opaque color"
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5527
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5528
    ^ true
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5529
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5530
!
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5531
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5532
isTranslucent
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5533
    "return true, if I represent a translucent color;
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5534
     that is: not completely opaque"
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5535
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5536
    ^ false
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5537
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5538
!
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5539
2945
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  5540
isTranslucentColor
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  5541
    "return true, if I represent a translucent color, but not transparent"
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  5542
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  5543
    ^ false
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  5544
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  5545
!
937fdf02965d more compatibility stuff
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
  5546
2942
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5547
isTransparent
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5548
    "return true, if I represent a completely transparent color"
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5549
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5550
    ^ false
513981eb5180 prepared support for translucent colors
Claus Gittinger <cg@exept.de>
parents: 2937
diff changeset
  5551
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5552
! !
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5553
1907
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5554
!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
  5555
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5556
documentation
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5557
"
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5558
    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
  5559
    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
  5560
    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
  5561
    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
  5562
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5563
    [see also:]
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5564
	Color
1907
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5565
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5566
    [author:]
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5567
	Claus Gittinger
1907
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5568
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5569
"
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5570
! !
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5571
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5572
!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
  5573
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5574
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
  5575
    "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
  5576
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5577
    device := aDevice.
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5578
    colorId := anId.
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5579
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5580
    "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
  5581
    "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
  5582
! !
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5583
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5584
!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
  5585
3611
8b4384c9e660 Use #finalize instead of #disposed
Stefan Vogel <sv@exept.de>
parents: 3598
diff changeset
  5586
finalize
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5587
    "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
  5588
     - release system resources"
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5589
2096
f3f0d358239f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2087
diff changeset
  5590
    |id|
f3f0d358239f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2087
diff changeset
  5591
f3f0d358239f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2087
diff changeset
  5592
    (id := colorId) notNil ifTrue:[
6353
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5593
	colorId := nil.
757f173c4d2c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6206
diff changeset
  5594
	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
  5595
    ].
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5596
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5597
    "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
  5598
! !
61fdff318175 Make Device*Handles (used for finalization) private in their resp. classes.
Stefan Vogel <sv@exept.de>
parents: 1859
diff changeset
  5599
1144
07f3de59864d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1023
diff changeset
  5600
!Color class methodsFor:'documentation'!
1023
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
version
6584
f087c33d95db class: Color
Claus Gittinger <cg@exept.de>
parents: 6554
diff changeset
  5603
    ^ '$Header: /cvs/stx/stx/libview/Color.st,v 1.235 2014-10-23 12:19:08 cg Exp $'
5419
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  5604
!
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  5605
7718ae7f7e6b added: #greyByte:
Claus Gittinger <cg@exept.de>
parents: 5337
diff changeset
  5606
version_CVS
6584
f087c33d95db class: Color
Claus Gittinger <cg@exept.de>
parents: 6554
diff changeset
  5607
    ^ '$Header: /cvs/stx/stx/libview/Color.st,v 1.235 2014-10-23 12:19:08 cg Exp $'
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5608
! !
3757
d6b9e17dcc45 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3727
diff changeset
  5609
6110
28bccabea00a class: Color
Claus Gittinger <cg@exept.de>
parents: 5965
diff changeset
  5610
1023
ddbc71885249 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1021
diff changeset
  5611
Color initialize!