Merged 9dad6d1245cc and 69f2878eaacb (branch default) delegated_gc_jv
authorJan Vrany <jan.vrany@fit.cvut.cz>
Thu, 27 Nov 2014 11:15:56 +0000
branchdelegated_gc_jv
changeset 6636 2603da69ccf0
parent 6616 9dad6d1245cc (current diff)
parent 6634 69f2878eaacb (diff)
child 6655 c600b219bb9e
Merged 9dad6d1245cc and 69f2878eaacb (branch default)
DeviceGraphicsContext.st
SimpleView.st
XWorkstation.st
XftFontDescription.st
--- a/FontDescription.st	Mon Nov 24 13:47:35 2014 +0000
+++ b/FontDescription.st	Thu Nov 27 11:15:56 2014 +0000
@@ -1059,6 +1059,28 @@
     ^ self asStyle:#oblique
 !
 
+asPixelSize:anotherSize
+    "return another font corresponding to the receivers family, face and style but
+     with another pixel size"
+
+    |newFont|
+
+    family isNil ifTrue:[
+        "CompoundFonts do not have a family"
+        ^ self
+    ].
+    newFont := self class 
+        family:family 
+        face:face 
+        style:style 
+        size:anotherSize 
+        sizeUnit:#px
+        encoding:encoding.
+
+    newFont isGenericFont:self isGenericFont.
+    ^ newFont onDevice:self graphicsDevice.
+!
+
 asSize:anotherSize
     "return another font corresponding to the receivers family, face and style but
      with another size"
@@ -1708,11 +1730,11 @@
 !FontDescription class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/FontDescription.st,v 1.96 2014-07-09 02:52:30 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/FontDescription.st,v 1.97 2014-11-27 00:10:50 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libview/FontDescription.st,v 1.96 2014-07-09 02:52:30 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/FontDescription.st,v 1.97 2014-11-27 00:10:50 cg Exp $'
 ! !
 
 
--- a/GLXWorkstation.st	Mon Nov 24 13:47:35 2014 +0000
+++ b/GLXWorkstation.st	Thu Nov 27 11:15:56 2014 +0000
@@ -20,6 +20,8 @@
 
 !GLXWorkstation primitiveDefinitions!
 %{
+#include "stxOSDefs.h"
+
 /*
  * on SGI, this class is compiled with -DGLX, while
  * for simulation (using vogl), this is compiled with -DVGL
@@ -77,7 +79,27 @@
 # include "vms_Xnames.h"
 #endif
 
-#include <stdio.h>
+#ifdef __arm__
+// # define _POSIX_C_SOURCE
+#endif
+
+#ifndef _STDIO_H_INCLUDED_
+# include <stdio.h>
+# define _STDIO_H_INCLUDED_
+#endif
+
+#ifdef __arm__
+# ifndef _SYS_TYPES_H_INCLUDED_
+#  include <sys/types.h>
+#  define _SYS_TYPES_H_INCLUDED_
+# endif
+# ifndef _SYS_SIGNAL_H_INCLUDED_
+#  include <sys/signal.h>
+#  define _SYS_SIGNAL_H_INCLUDED_
+# endif
+
+#endif
+
 #ifdef __osx__
 # include <sys/signal.h>
 # define DYNAMICALLY_LOADABLE
@@ -457,7 +479,9 @@
 # ifndef VGL
 #  include        <gl/glws.h>
 # endif
-# include        <signal.h>
+# ifndef _SIGNAL_H_INCLUDED_
+#  include        <signal.h>
+# endif
 # include        <setjmp.h>
 # include        "stcIntern.h"
 
@@ -543,9 +567,9 @@
     int scr, i, nret;
     Window win;
 #ifdef HAS_SIGACTION
-    struct sigaction oldSig, newSig;
-#else
-    void *oldSig;
+    struct sigaction oldSigSegv, newSigSegv;
+#else
+    void *oldSigSegv;
 #endif
 
 #if !defined(OPENGL)
@@ -554,11 +578,14 @@
 
     if (stx_setjmp(errorReturn)) {
 	console_fprintf(stderr, "hard error in GL - return\n");
-#ifdef HAS_SIGACTION
-	sigaction(SIGSEGV, &oldSig, 0);
-#else
-	signal(SIGSEGV, oldSig);
-#endif
+#ifdef SIGSEGV
+# ifdef HAS_SIGACTION
+	sigaction(SIGSEGV, &oldSigSegv, 0);
+# else
+	signal(SIGSEGV, oldSigSegv);
+# endif
+#endif
+
 #if !defined(OPENGL)
 	__catchExit(0);
 #endif
@@ -605,19 +632,25 @@
      * views are created ... just to make certain, we catch those
      * in GL too.
      */
-#  ifdef HAS_SIGACTION
-    sigaction(SIGSEGV, (struct sigaction *)0, &oldSig);
-    newSig = oldSig;
-    newSig.sa_handler = glAbort;
-    sigaction(SIGSEGV, &newSig, (struct sigaction *)0);
-#  else
-    oldSig = signal(SIGSEGV, glAbort);
+#  ifdef SIGSEGV
+#   ifdef HAS_SIGACTION
+    sigaction(SIGSEGV, (struct sigaction *)0, &oldSigSegv);
+    newSigSegv = oldSigSegv;
+    newSigSegv.sa_handler = glAbort;
+    sigaction(SIGSEGV, &newSigSegv, (struct sigaction *)0);
+#   else
+    oldSigSegv = signal(SIGSEGV, glAbort);
+#   endif
 #  endif
+
     i = GLXlink(dpy, win);
-#  ifdef HAS_SIGACTION
-    sigaction(SIGSEGV, &oldSig, (struct sigaction *)0);
-#  else
-    signal(SIGSEGV, oldSig);
+
+#  ifdef SIGSEGV
+#   ifdef HAS_SIGACTION
+    sigaction(SIGSEGV, &oldSigSegv, (struct sigaction *)0);
+#   else
+    signal(SIGSEGV, oldSigSegv);
+#   endif
 #  endif
 
     if (i < 0) {
@@ -719,19 +752,25 @@
      * on iris, seg-violations occur in the GL, if too many
      * views are created ...
      */
-#  ifdef HAS_SIGACTION
-    sigaction(SIGSEGV, (struct sigaction *)0, &oldSig);
-    newSig = oldSig;
-    newSig.sa_handler = glAbort;
-    sigaction(SIGSEGV, &newSig, (struct sigaction *)0);
-#  else
-    oldSig = signal(SIGSEGV, glAbort);
+#  ifdef SIGSEGV
+#   ifdef HAS_SIGACTION
+    sigaction(SIGSEGV, (struct sigaction *)0, &oldSigSegv);
+    newSigSegv = oldSigSegv;
+    newSigSegv.sa_handler = glAbort;
+    sigaction(SIGSEGV, &newSigSegv, (struct sigaction *)0);
+#   else
+    oldSigSegv = signal(SIGSEGV, glAbort);
+#   endif
 #  endif
+
     i = GLXlink(dpy, retconfig);
-#  ifdef HAS_SIGACTION
-    sigaction(SIGSEGV, &oldSig, (struct sigaction *)0);
-#  else
-    signal(SIGSEGV, oldSig);
+
+#  ifdef SIGSEGV
+#   ifdef HAS_SIGACTION
+    sigaction(SIGSEGV, &oldSigSegv, (struct sigaction *)0);
+#   else
+    signal(SIGSEGV, oldSigSegv);
+#   endif
 #  endif
 
     if (i < 0) {
@@ -8786,9 +8825,9 @@
 !GLXWorkstation class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/GLXWorkstation.st,v 1.87 2014-02-08 21:42:13 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/GLXWorkstation.st,v 1.88 2014-11-24 13:56:09 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libview/GLXWorkstation.st,v 1.87 2014-02-08 21:42:13 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/GLXWorkstation.st,v 1.88 2014-11-24 13:56:09 cg Exp $'
 ! !
--- a/Image.st	Mon Nov 24 13:47:35 2014 +0000
+++ b/Image.st	Thu Nov 27 11:15:56 2014 +0000
@@ -11306,6 +11306,40 @@
     "Modified: 24.4.1997 / 18:33:42 / cg"
 !
 
+slightlyDarkened
+    "return a new image which is slightly darker than the receiver.
+     The receiver must be a palette image (currently).
+     CAVEAT: this only works with palette images (i.e. not for rgb or greyScale).
+     CAVEAT: Need an argument, which specifies by how much it should be lighter."
+
+    ^ self copyWithColorMapProcessing:[:clr | clr slightlyDarkened]
+
+    "
+     (Smalltalk bitmapFromFileNamed:'gifImages/claus.gif' inPackage:'stx:goodies') inspect
+     (Smalltalk bitmapFromFileNamed:'gifImages/claus.gif' inPackage:'stx:goodies') lightened inspect
+     (Smalltalk bitmapFromFileNamed:'gifImages/claus.gif' inPackage:'stx:goodies') darkened inspect
+     (Smalltalk bitmapFromFileNamed:'gifImages/claus.gif' inPackage:'stx:goodies') darkened darkened inspect
+    "
+!
+
+slightlyLightened
+    "return a new image which is slightly brighter than the receiver.
+     The receiver must be a palette image (currently).
+     CAVEAT: this only works with palette images (i.e. not for rgb or greyScale).
+     CAVEAT: Need an argument, which specifies by how much it should be lighter."
+
+    ^ self copyWithColorMapProcessing:[:clr | clr slightlyLightened]
+
+    "
+     (Smalltalk bitmapFromFileNamed:'gifImages/claus.gif' inPackage:'stx:goodies') inspect
+     (Smalltalk bitmapFromFileNamed:'gifImages/claus.gif' inPackage:'stx:goodies') lightened inspect
+     (Smalltalk bitmapFromFileNamed:'gifImages/claus.gif' inPackage:'stx:goodies') darkened inspect
+     (Smalltalk bitmapFromFileNamed:'gifImages/claus.gif' inPackage:'stx:goodies') darkened darkened inspect
+    "
+
+    "Modified: / 24-11-2010 / 11:17:55 / cg"
+!
+
 threeDProjected:fraction1 and:fraction2
     "return a 3D-projected version"
 
@@ -14442,11 +14476,11 @@
 !Image class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/Image.st,v 1.461 2014-11-23 18:38:49 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/Image.st,v 1.462 2014-11-26 20:39:47 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libview/Image.st,v 1.461 2014-11-23 18:38:49 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/Image.st,v 1.462 2014-11-26 20:39:47 cg Exp $'
 ! !
 
 
--- a/ImageReader.st	Mon Nov 24 13:47:35 2014 +0000
+++ b/ImageReader.st	Thu Nov 27 11:15:56 2014 +0000
@@ -1887,10 +1887,10 @@
 
     errorString := self class name , ' [info]: ' , aMessage.
     inStream isFileStream ifTrue:[
-	errorString := errorString , ' [in ' , inStream pathName , ']'
+        errorString := errorString , ' [in ' , inStream pathName , ']'
     ].
 
-    Image badImageFormatQuerySignal raiseErrorString:errorString.
+    Image badImageFormatQuerySignal raiseRequestErrorString:errorString.
     ^ nil
 
     "Created: / 3.2.1998 / 17:50:06 / cg"
@@ -2108,10 +2108,10 @@
 !ImageReader class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/ImageReader.st,v 1.112 2014-11-10 22:20:20 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/ImageReader.st,v 1.113 2014-11-26 15:03:52 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libview/ImageReader.st,v 1.112 2014-11-10 22:20:20 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/ImageReader.st,v 1.113 2014-11-26 15:03:52 cg Exp $'
 ! !
 
--- a/ResourcePack.st	Mon Nov 24 13:47:35 2014 +0000
+++ b/ResourcePack.st	Thu Nov 27 11:15:56 2014 +0000
@@ -591,7 +591,8 @@
             (value == #Error) ifTrue:[
                 hasError := true.
                 printError value:('error in: "self ' , rest , '"').
-            ]
+            ].
+            "/ 'self ' print. rest print. ' -> ' print. value printCR.
         ]
     ] ifFalse:[
         lineStream peek == $' ifTrue:[
@@ -601,13 +602,16 @@
                                     printError value:('invalid line <' , lineString , '>').
                                     nil
                                 ].
+            "/ ' -> ' print. value printCR.
         ] ifFalse:[
             rest := lineStream upToEnd.
             [
                 value := Compiler evaluate:rest compile:"true" false.
             ] on:Error do:[
-                value := rest
+                printError value:('invalid line <' , rest , '>').
+                "/ value := rest
             ].
+            "/ rest print. ' -> ' print. value printCR.
         ].
         (value == #Error) ifTrue:[
             hasError := true.
@@ -1474,11 +1478,11 @@
 !ResourcePack class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/ResourcePack.st,v 1.157 2014-07-10 12:24:00 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/ResourcePack.st,v 1.158 2014-11-27 01:46:22 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libview/ResourcePack.st,v 1.157 2014-07-10 12:24:00 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/ResourcePack.st,v 1.158 2014-11-27 01:46:22 cg Exp $'
 ! !
 
 
--- a/SimpleView.st	Mon Nov 24 13:47:35 2014 +0000
+++ b/SimpleView.st	Thu Nov 27 11:15:56 2014 +0000
@@ -1324,26 +1324,29 @@
                        #viewBackground #shadowColor #lightColor
                        #focusColor #focusBorderWidth)>
 
-    |bgGrey currentScreen|
+    |styleSheet bgGrey currentScreen|
+
+    styleSheet := StyleSheet.
 
     "
      when coming here the first time, we read the styleSheet
      and keep the values in fast class variables
     "
-    StyleSheet isNil ifTrue:[
+    styleSheet isNil ifTrue:[
         self setDefaultStyle.
         self readStyleSheet.
+        styleSheet := StyleSheet.
     ].
 
     currentScreen := Screen current ? Screen default.
 
-    Grey := StyleSheet viewGrey.
+    Grey := styleSheet viewGrey.
     Grey isNil ifTrue:[
         Grey := Color gray
     ].
     Grey := Grey onDevice:currentScreen.
 
-    StyleSheet fileReadFailed ifTrue:[
+    styleSheet fileReadFailed ifTrue:[
         bgGrey := Color white
     ] ifFalse:[
         currentScreen hasGrayscales ifTrue:[
@@ -1354,32 +1357,32 @@
     ].
     bgGrey := bgGrey onDevice:currentScreen.
 
-    ViewSpacing := StyleSheet at:#viewSpacing.
+    ViewSpacing := styleSheet at:#viewSpacing.
     ViewSpacing isNil ifTrue:[
         ViewSpacing := currentScreen defaultStyleValueFor:#viewSpacing.
     ].
 
-    DefaultBorderColor := StyleSheet colorAt:#borderColor.
+    DefaultBorderColor := styleSheet colorAt:#borderColor.
     DefaultBorderColor isNil ifTrue:[
         DefaultBorderColor := currentScreen defaultStyleValueFor:#borderColor
     ].
 
-    StyleSheet fileReadFailed ifTrue:[
+    styleSheet fileReadFailed ifTrue:[
         DefaultBorderWidth := 1.
         DefaultFocusColor := DefaultShadowColor := Color black.
         DefaultViewBackgroundColor := DefaultLightColor :=  Color white.
         DefaultFocusBorderWidth := 1.
     ] ifFalse:[
-        DefaultBorderWidth := StyleSheet at:#borderWidth default:0.
-        DefaultViewBackgroundColor := StyleSheet colorAt:#viewBackground default:bgGrey.
-        DefaultShadowColor := StyleSheet colorAt:#shadowColor.
-        DefaultLightColor := StyleSheet colorAt:#lightColor.
-        DefaultFocusColor := StyleSheet colorAt:#focusColor default:Color red.
-        DefaultFocusBorderWidth := StyleSheet at:'focusBorderWidth' default:2.
+        DefaultBorderWidth := styleSheet at:#borderWidth default:0.
+        DefaultViewBackgroundColor := styleSheet colorAt:#viewBackground default:bgGrey.
+        DefaultShadowColor := styleSheet colorAt:#shadowColor.
+        DefaultLightColor := styleSheet colorAt:#lightColor.
+        DefaultFocusColor := styleSheet colorAt:#focusColor default:Color red.
+        DefaultFocusBorderWidth := styleSheet at:'focusBorderWidth' default:2.
     ].
 
     self == SimpleView ifTrue:[
-        DefaultFont := StyleSheet at:#font.
+        DefaultFont := styleSheet at:#font.
         DefaultFont isNil ifTrue:[
             DefaultFont := Font family:'courier' face:'medium' style:'roman' size:12.
         ].
@@ -11046,6 +11049,15 @@
 
 !SimpleView methodsFor:'testing'!
 
+hasOwnScrollbars
+    "a hack for codeView2, which behaves like a TextView, but has its own
+     scrollbars embedded - sigh (an extra load one).
+     This allows for the UIBuilder to avoid creating an extra set around such
+     a view (as is the case with TextSpec with scrollbars when using CodeView2)"
+
+    ^ false
+!
+
 isApplicationSubView
     ^ false
 !
@@ -11234,11 +11246,11 @@
 !SimpleView class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/SimpleView.st,v 1.765 2014-11-23 13:43:51 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/SimpleView.st,v 1.767 2014-11-27 01:47:03 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libview/SimpleView.st,v 1.765 2014-11-23 13:43:51 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/SimpleView.st,v 1.767 2014-11-27 01:47:03 cg Exp $'
 !
 
 version_SVN
--- a/WindowGroup.st	Mon Nov 24 13:47:35 2014 +0000
+++ b/WindowGroup.st	Thu Nov 27 11:15:56 2014 +0000
@@ -2002,7 +2002,7 @@
 
 focusMomentaryRelease
     "release and reacquire focus.
-     Use this to allow inputs fiels with accept on lost focus
+     Use this to allow inputs fields with accept on lost focus
      to accept when a button or menu item is pressed"
 
     |oldFocusView|
@@ -2849,11 +2849,11 @@
 !WindowGroup class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/WindowGroup.st,v 1.333 2014-08-26 09:48:39 ca Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/WindowGroup.st,v 1.334 2014-11-26 18:11:12 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libview/WindowGroup.st,v 1.333 2014-08-26 09:48:39 ca Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/WindowGroup.st,v 1.334 2014-11-26 18:11:12 cg Exp $'
 ! !
 
 
--- a/XWorkstation.st	Mon Nov 24 13:47:35 2014 +0000
+++ b/XWorkstation.st	Thu Nov 27 11:15:56 2014 +0000
@@ -7550,26 +7550,30 @@
      next time. The elements of the returned collection are instances of
      FontDescription."
 
-    |names|
+    |names listOfXftFonts|
 
     listOfXFonts isNil ifTrue:[
-	names := self getAvailableFontsMatching:'*'.
-	names isNil ifTrue:[
-	    "no names returned ..."
-	    ^ nil
-	].
-	listOfXFonts := names collect:[:aName | self fontDescriptionFromXFontName:aName].
-	listOfXFonts := FontDescription genericFonts, listOfXFonts.
+        names := self getAvailableFontsMatching:'*'.
+        names isNil ifTrue:[
+            "no names returned ..."
+            ^ nil
+        ].
+        listOfXFonts := names collect:[:aName | self fontDescriptionFromXFontName:aName].
+        listOfXFonts := FontDescription genericFonts, listOfXFonts.
     ].
 
     (XftFontDescription notNil
-	    and:[ XftFontDescription isLoaded
-	    and:[ self supportsXFTFonts ]]
+            and:[ XftFontDescription isLoaded
+            and:[ self supportsXFTFonts ]]
     ) ifTrue:[
-	UserPreferences current useXftFontsOnly ifTrue:[
-	    ^ (XftFontDescription listOfAvailableFonts)
-	].
-	^ listOfXFonts , (XftFontDescription listOfAvailableFonts).
+        UserPreferences current useXFontsOnly ifFalse:[
+            listOfXftFonts := XftFontDescription listOfAvailableFonts.
+
+            UserPreferences current useXftFontsOnly ifTrue:[
+                ^ listOfXftFonts
+            ].
+            ^ listOfXftFonts , listOfXFonts.
+        ].
     ].
     ^ listOfXFonts
 
@@ -13615,11 +13619,11 @@
 !XWorkstation class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/XWorkstation.st,v 1.600 2014-09-22 09:06:27 vrany Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/XWorkstation.st,v 1.601 2014-11-27 00:11:44 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libview/XWorkstation.st,v 1.600 2014-09-22 09:06:27 vrany Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/XWorkstation.st,v 1.601 2014-11-27 00:11:44 cg Exp $'
 !
 
 version_HG
--- a/XftFontDescription.st	Mon Nov 24 13:47:35 2014 +0000
+++ b/XftFontDescription.st	Thu Nov 27 11:15:56 2014 +0000
@@ -1810,51 +1810,51 @@
     list := OrderedCollection new.
 
     readEntry :=
-	[
-	    |key|
+        [
+            |key|
 
-	    [l startsWith:'Pattern has'] whileFalse:[
-	      l := pipeStream nextLine. Transcript showCR:l.
-	    ].
+            [l startsWith:'Pattern has'] whileFalse:[
+              l := pipeStream nextLine. Transcript showCR:l.
+            ].
 
-	    currentDescription := XftFontDescription new.
-	    [ l := pipeStream nextLine. l notEmptyOrNil ] whileTrue:[
-		"/ Transcript showCR:l.
-		lineStream := l readStream. lineStream skipSeparators.
-		key := lineStream upToSeparator.
-		(
-		    #('family:' 'style:' 'slant:' 'weight:' 'width:'
-		      'pixelsize:' 'spacing:' 'foundry:' 'antialias:'
-		      'file:' 'outline' 'scalable:' 'charset:' 'lang:'
-		      'fontversion:' 'fontformat:' 'decorative:' 'index:'
-		      'outline:' 'familylang:' 'stylelang:' 'fullname:'
-		      'fullnamelang:' 'capability:' 'hash:' 'postscriptname:'
-		    ) includes:key
-		) ifTrue:[
-		    self perform:('fc_',(key allButLast)) asSymbol
-		] ifFalse:[
-		    Transcript show:'Xft ignored line: '; showCR:l.
-		    self breakPoint:#cg.
-		].
-	    ].
-	    list add:currentDescription
-	].
+            currentDescription := XftFontDescription new.
+            [ l := pipeStream nextLine. l notEmptyOrNil ] whileTrue:[
+                "/ Transcript showCR:l.
+                lineStream := l readStream. lineStream skipSeparators.
+                key := lineStream upToSeparator.
+                (
+                    #('family:' 'style:' 'slant:' 'weight:' 'width:'
+                      'pixelsize:' 'spacing:' 'foundry:' 'antialias:'
+                      'file:' 'outline' 'scalable:' 'charset:' 'lang:'
+                      'fontversion:' 'fontformat:' 'decorative:' 'index:'
+                      'outline:' 'familylang:' 'stylelang:' 'fullname:'
+                      'fullnamelang:' 'capability:' 'hash:' 'postscriptname:'
+                    ) includes:key
+                ) ifTrue:[
+                    self perform:('fc_',(key allButLast)) asSymbol
+                ] ifFalse:[
+                    Transcript show:'Xft ignored line: '; showCR:l.
+                    self breakPoint:#cg.
+                ].
+            ].
+            list add:currentDescription
+        ].
 
     fcListProg := #('/usr/bin/fc-list' '/usr/X11/bin/fc-list') detect:[:eachProg|
-			eachProg asFilename isExecutableProgram
-		    ] ifNone:[
-			'fc-list program not found - no XFT fonts' infoPrintCR.
-			^ list.
-		    ].
+                        eachProg asFilename isExecutableProgram
+                    ] ifNone:[
+                        'XftFontDescription [warning]: fc-list program not found - no XFT fonts' errorPrintCR.
+                        ^ list.
+                    ].
 
     pipeStream := PipeStream readingFrom:fcListProg, ' -v'.
     [
-	[pipeStream atEnd] whileFalse:[
-	    l := pipeStream nextLine.
-	    readEntry value.
-	]
+        [pipeStream atEnd] whileFalse:[
+            l := pipeStream nextLine.
+            readEntry value.
+        ]
     ] ensure:[
-	pipeStream close
+        pipeStream close
     ].
     ^ list
 
@@ -2099,11 +2099,11 @@
 !XftFontDescription class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/XftFontDescription.st,v 1.61 2014-11-12 12:14:33 ab Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/XftFontDescription.st,v 1.62 2014-11-27 00:12:23 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libview/XftFontDescription.st,v 1.61 2014-11-12 12:14:33 ab Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/XftFontDescription.st,v 1.62 2014-11-27 00:12:23 cg Exp $'
 !
 
 version_HG
--- a/styles/expecco.style	Mon Nov 24 13:47:35 2014 +0000
+++ b/styles/expecco.style	Thu Nov 27 11:15:56 2014 +0000
@@ -1,6 +1,6 @@
 ; View defaultStyle:#mswindowsVista
 ;
-; $Header: /cvs/stx/stx/libview/styles/expecco.style,v 1.3 2011-01-20 07:33:25 cg Exp $
+; $Header: /cvs/stx/stx/libview/styles/expecco.style,v 1.4 2014-11-26 19:13:52 cg Exp $
 
 name                            #expecco
 
@@ -50,7 +50,7 @@
 darkenedViewGrey                Color redByte:150 greenByte:150 blueByte:150
 #endif
 
-viewGrey                        Color rgbValue:16r5E7B92
+viewGrey                        (Color rgbValue:16rAEBDC8)
 lightenedViewGrey               =viewGrey lightened
 darkenedViewGrey                =viewGrey darkened
 
--- a/styles/greenPC.style	Mon Nov 24 13:47:35 2014 +0000
+++ b/styles/greenPC.style	Thu Nov 27 11:15:56 2014 +0000
@@ -10,13 +10,13 @@
 ; On my SGI, this one looks great; on VGA's, the colors come out
 ; a bit too dark.
 ;
-; $Header: /cvs/stx/stx/libview/styles/greenPC.style,v 1.11 2014-02-06 14:38:41 cg Exp $
+; $Header: /cvs/stx/stx/libview/styles/greenPC.style,v 1.12 2014-11-26 20:02:48 cg Exp $
 
 previewFileName         'viewStyleSample_greenpc.png'
 
 #if Screen current hasGreyscales
 wooden             (Smalltalk imageFromFileNamed:'bitmaps/wood2H.tiff' inPackage:'stx:libwidg3')
-granite            (Smalltalk imageFromFileNamed:'bitmaps/granite.tiff' inPackage:'stx:libwidg3')
+granite            (Smalltalk imageFromFileNamed:'bitmaps/granite3.tiff' inPackage:'stx:libwidg3')
 
 graniteLight       = granite lightened
 
@@ -35,12 +35,12 @@
 
 #include 'motif.common'
 
-comment  'Fun style.\Like motif, with cute (back to nature) viewbackground.\Not recommended for slow display servers.'
+comment  'Fun style; "motif", with cute (back to nature) viewbackground.\Not recommended for slow display servers.'
 
 name #greenPC
 
 #if (Language == #german) or:[Language == #de]
-comment  'Wie ''motif'', mit geändertem (zurück zur Natur) Hintergrund.\\Nicht sinnvoll bei langsamen Maschinen.'
+comment  'Fun Style; "motif" mit geändertem (zurück zur Natur) Hintergrund.\\Nicht sinnvoll bei langsamen Maschinen.'
 #endif
 
 #if Screen current hasGreyscales
--- a/styles/macosx.style	Mon Nov 24 13:47:35 2014 +0000
+++ b/styles/macosx.style	Thu Nov 27 11:15:56 2014 +0000
@@ -1,12 +1,12 @@
 ; View defaultStyle:#mswindowsVista
 ;
-; $Header: /cvs/stx/stx/libview/styles/macosx.style,v 1.6 2014-11-22 22:58:28 cg Exp $
+; $Header: /cvs/stx/stx/libview/styles/macosx.style,v 1.7 2014-11-26 19:13:52 cg Exp $
 
 #include 'Adwaita.style'
 
 name                            #macosx
 
-ToolbarIconLibrary              ?(Smalltalk at:#MacOSXToolbarIconLibrary) ? (Smalltalk at:#XPToolbarIconLibrary) ? GenericToolbarIconLibrary
+ToolbarIconLibrary              [ (Smalltalk at:#MacOSXToolbarIconLibrary) ? (Smalltalk at:#XPToolbarIconLibrary) ? GenericToolbarIconLibrary ]
 
 ;
 ; unfinished
--- a/styles/motif.common	Mon Nov 24 13:47:35 2014 +0000
+++ b/styles/motif.common	Thu Nov 27 11:15:56 2014 +0000
@@ -2,7 +2,7 @@
 ; common motif stuff (not a style, but included by all motif style variations)
 ;
 ;
-; $Header: /cvs/stx/stx/libview/styles/motif.common,v 1.36 2002-10-29 11:24:12 cg Exp $
+; $Header: /cvs/stx/stx/libview/styles/motif.common,v 1.37 2014-11-26 19:13:52 cg Exp $
 
 ;
 ; this is to be included from the real style,
@@ -18,7 +18,7 @@
 selectionFont                   ? =fatFont
 labelFont                       ? =fatFont
 menuFont                        ? =fatFont
-textFont                        ? Font family:'courier' size:12 
+textFont                        ? Font family:'courier' size:12
 
 viewBackground                  =viewGrey
 borderWidth                     0
@@ -28,8 +28,8 @@
 focus.explicitWithButtonPress   true
 ; focusColor                      Color yellow
 
-scrollBar.position               #right 
-scrollBar.buttonPositions        #around     
+scrollBar.position               #right
+scrollBar.buttonPositions        #around
 scrollBar.level                  -2
 scrollBar.elementSpacing         0
 scrollBar.disableButtons         true
@@ -62,7 +62,7 @@
 
 label.foregroundColor             Color black
 
-button.activeLevel                -2 
+button.activeLevel                -2
 button.passiveLevel               2
 button.returnButtonHasBorder      true
 
@@ -90,6 +90,7 @@
 
 menu.hilightLevel                 2
 menu.separatingLineInset          0
+menuBackgroundColor              =viewGrey
 menu.viewBackgroundColor         =viewGrey
 menu.disabledForegroundColor     =shadowColor
 
@@ -104,8 +105,8 @@
 pullDownMenu.autoselectFirst         true
 
 popup.level                          2
-popup.borderWidth                    1     
-popup.hideOnRelease                  false    
+popup.borderWidth                    1
+popup.hideOnRelease                  false
 ; popup.shadow                       false      "/ false is the default, anyway
 
 #selection.multiSelectionModifier      #Control
--- a/styles/motif.style	Mon Nov 24 13:47:35 2014 +0000
+++ b/styles/motif.style	Thu Nov 27 11:15:56 2014 +0000
@@ -7,7 +7,7 @@
 ; on VGA displays, where the colors are a bit darkish,
 ; use motif_light
 ;
-; $Header: /cvs/stx/stx/libview/styles/motif.style,v 1.21 2009-11-02 16:07:35 cg Exp $
+; $Header: /cvs/stx/stx/libview/styles/motif.style,v 1.22 2014-11-26 18:24:11 cg Exp $
 
 #if Screen current hasGreyscales
 ;
@@ -44,10 +44,10 @@
 
 #include 'motif.common'
 
-comment  '`motif'' look alike. Unbelievable how ugly by todays standards...'
+comment  '`motif'' look alike.\Unbelievable how ugly by todays standards...'
 
 #if (Language == #german) or:[Language == #de]
-comment  'An `motif'' angelehnter Stil. Unglaublich häßlich nach heutigem Standard...'
+comment  'An `motif'' angelehnter Stil.\Unglaublich häßlich nach heutigem Standard...'
 #endif
 #if (Language == #french) or:[Language == #fr]
 comment  'Un style qui resemble `motif'''
@@ -55,7 +55,7 @@
 
 previewFileName         'viewStyleSample_motif.png'
 
-fatFont                     Font family:'helvetica' face:'bold' style:'roman' size:12
+fatFont                 Font family:'helvetica' face:'bold' style:'roman' size:12
 
 #if (Screen current platformName = 'WIN32' and:[Screen current width <= 640])
 fatFont          Font family:'helvetica' face:'bold' style:'roman' size:8
--- a/styles/motif_blue_red.style	Mon Nov 24 13:47:35 2014 +0000
+++ b/styles/motif_blue_red.style	Thu Nov 27 11:15:56 2014 +0000
@@ -1,11 +1,11 @@
-; View defaultStyle:#'motif_blue_red' 
+; View defaultStyle:#'motif_blue_red'
 ;
 ; blue'ish motif with red menus
 ;
 ; another demo - not good to work with
 ; (thats how the views look in the style-guide ;-)
 ;
-; $Header: /cvs/stx/stx/libview/styles/motif_blue_red.style,v 1.5 1997-11-02 19:49:01 cg Exp $
+; $Header: /cvs/stx/stx/libview/styles/motif_blue_red.style,v 1.6 2014-11-26 19:13:52 cg Exp $
 
 #include 'motif_blue.style'
 
@@ -16,7 +16,8 @@
 #endif
 
 menu.foregroundColor             Color white
-menu.backgroundColor             Color red:45 green:5 blue:5
+menuBackgroundColor              Color red:45 green:5 blue:5
+menu.backgroundColor             =menuBackgroundColor
 menu.shadowColor                 =menuBackgroundColor darkened
 menu.lightColor                  =menuBackgroundColor lightened
 menu.hilightForegroundColor      =menuForegroundColor
@@ -27,4 +28,3 @@
 pullDownMenu.backgroundColor         =menuBackgroundColor
 pullDownMenu.viewBackground          =menuBackgroundColor
 pullDownMenu.hilightForegroundColor  Color white
-
--- a/styles/mswindows95MiniScroller.style	Mon Nov 24 13:47:35 2014 +0000
+++ b/styles/mswindows95MiniScroller.style	Thu Nov 27 11:15:56 2014 +0000
@@ -1,6 +1,8 @@
-; View defaultStyle:#mswindows95MiniScroller 
+; View defaultStyle:#mswindows95MiniScroller
 ;
-; $Header: /cvs/stx/stx/libview/styles/mswindows95MiniScroller.style,v 1.1 2000-08-24 18:53:55 cg Exp $
+; $Header: /cvs/stx/stx/libview/styles/mswindows95MiniScroller.style,v 1.2 2014-11-26 19:13:52 cg Exp $
+
+#include 'mswindows95.style'
 
 comment  'like win95, with miniScrollers'
 
@@ -8,7 +10,4 @@
 comment  'wie Win95, mit MiniScroller'
 #endif
 
-#include 'mswindows95.style'
-
 scrollBar.neverMini                      false
-
--- a/styles/mswindows95_ca.style	Mon Nov 24 13:47:35 2014 +0000
+++ b/styles/mswindows95_ca.style	Thu Nov 27 11:15:56 2014 +0000
@@ -1,6 +1,8 @@
-; View defaultStyle:#mswindows95MiniScroller 
+; View defaultStyle:#mswindows95MiniScroller
 ;
-; $Header: /cvs/stx/stx/libview/styles/mswindows95_ca.style,v 1.1 2002-10-25 10:06:19 ca Exp $
+; $Header: /cvs/stx/stx/libview/styles/mswindows95_ca.style,v 1.2 2014-11-26 19:13:52 cg Exp $
+
+#include 'mswindows95.style'
 
 comment  'like win95, with non-hiding scrollbars on the left (+ block-cursor)'
 
@@ -8,17 +10,16 @@
 comment  'wie Win95, mit Scrollbars links, BlockCursor'
 #endif
 
-#include 'mswindows95.style'
 
-name                            #xxx 
+name                            #xxx
 
 scrollBar.neverMini              false
-scrollBar.position               #left 
-scrollBar.hiding                 false          
+scrollBar.position               #left
+scrollBar.hiding                 false
 scrolledView.margin              0
 scrollBar.spacing                1
 
-textCursor.type                  #block 
+textCursor.type                  #block
 
 ; thin scrollbars
 arrowButton.upFormFile                   'ScrollUp.w95.9.xbm'.
--- a/styles/mswindows95b.style	Mon Nov 24 13:47:35 2014 +0000
+++ b/styles/mswindows95b.style	Thu Nov 27 11:15:56 2014 +0000
@@ -1,6 +1,8 @@
-; View defaultStyle:#mswindows95b 
+; View defaultStyle:#mswindows95b
 ;
-; $Header: /cvs/stx/stx/libview/styles/mswindows95b.style,v 1.2 1999-10-27 13:28:03 stefan Exp $
+; $Header: /cvs/stx/stx/libview/styles/mswindows95b.style,v 1.3 2014-11-26 19:13:52 cg Exp $
+
+#include 'mswindows95.style'
 
 comment  'win95 with changed font'
 
@@ -12,8 +14,7 @@
 comment  'MS Windows95 aved typographie differente'
 #endif
 
-#include 'mswindows95.style'
-name                            #win95b 
+name                            #win95b
 
 #if Screen current platformName = 'WIN32'
 
@@ -26,5 +27,3 @@
 
 menuFont         =font
 selection.font   =font
-
-
--- a/styles/napkin.style	Mon Nov 24 13:47:35 2014 +0000
+++ b/styles/napkin.style	Thu Nov 27 11:15:56 2014 +0000
@@ -3,22 +3,66 @@
 ; napkin (demo) style - unfinished
 ; (google: napkin look & feel)
 ;
-; $Header: /cvs/stx/stx/libview/styles/napkin.style,v 1.1 2009-12-07 14:45:10 cg Exp $
+; $Header: /cvs/stx/stx/libview/styles/napkin.style,v 1.6 2014-11-27 01:54:19 cg Exp $
+
+#include 'Adwaita.style'
 
 name                            #napkin
 
-comment                 'Don''t make a demo look like a finished product'
+comment                 'Drawn on a Napkin: don''t make a prototype look like a finished product\in a presentation...'
 previewFileName         'viewStyleSample_napkin.png'
 
 #if (Language == #german) or:[Language == #de]
-comment  'Ein Stil für Demos und Prototypen'
+comment                 'Auf eine Serviette gemalt: lassen Sie einen Prototypen bei einer\Präsentation nicht wie ein fertiges Produkt aussehen'
+#endif
+
+#if (Screen current platformName = 'WIN32')
+variableFont                     Font family:'Segoe Print' face:'medium' style:'roman' size:10
 #endif
 
-variableFont                     Font family:'Segoe Print' face:'medium' style:'roman' size:10
+#if false "/ (Screen current listOfAvailableFonts contains:[:f | f family = 'Business As Usual' ])
+variableFont                     Font family:'Business As Usual' face:'regular' style:'roman' size:16
+#else
+#if (Screen current listOfAvailableFonts contains:[:f | f family = 'Indie Flower' ])
+variableFont                     Font family:'Indie Flower' face:'regular' style:'roman' size:11
+menu.font                        Font family:'Indie Flower' face:'regular' style:'roman' size:10
+#else
+#if (Screen current listOfAvailableFonts contains:[:f | f family = 'Comic Sans MS' ])
+variableFont                     Font family:'Comic Sans MS' face:'regular' style:'roman' size:16
+#else
+#if (Screen current listOfAvailableFonts contains:[:f | f family = 'Chalkduster' ])
+variableFont                     Font family:'Chalkduster' face:'regular' style:'roman' size:16
+#else
+#if (Screen current listOfAvailableFonts contains:[:f | f family = 'Architects Daughter' ])
+variableFont                     Font family:'Architects Daughter' face:'regular' style:'roman' size:16
+#else
+#if (Screen current listOfAvailableFonts contains:[:f | f family = 'Apple Chancery' ])
+variableFont                     Font family:'Apple Chancery' face:'regular' style:'roman' size:16
+#else
+#if (Screen current listOfAvailableFonts contains:[:f | f family = 'Angelina' ])
+variableFont                     Font family:'Angelina' face:'regular' style:'roman' size:16
+#else
+#if (Screen current listOfAvailableFonts contains:[:f | f family = 'A Sensible Armadillo' ])
+variableFont                     Font family:'A Sensible Armadillo' face:'regular' style:'roman' size:16
+#else
+#if (Screen current listOfAvailableFonts contains:[:f | f family = 'A Safe Place to Fall' ])
+variableFont                     Font family:'A Safe Place to Fall' face:'regular' style:'roman' size:16
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
 
+textView.font                    =variableFont
 editField.font                   =variableFont
 selection.font                   =variableFont
 label.font                       =variableFont
+menu.font                        ? =variableFont
+font                             =variableFont
 
 napkin             (Image fromFile:(Smalltalk getBitmapFileName:'styles/napkin.gif' forPackage:'stx:libview'))
 
@@ -69,11 +113,22 @@
 E1\WE0XGM@D#JB,WE1\WE1TXE0H:BR(HM1\WE04XE1\WGA<[@08!E0T-E1\WE1\WDSLZGP$-E1\WE1\WE1\8MC@.E1\WE1\WE1\WE1PTE1\WE1\WE1\WE1\W\
 ') ; colorMapFromArray:#[141 141 141 24 24 24 183 183 183 68 68 68 78 78 78 92 92 92 101 101 101 140 140 140 151 151 151 54 54 54 195 195 195 206 206 206 220 220 220 100 100 100 126 126 126 139 139 139 148 148 148 182 182 182 193 193 193 77 77 77 219 219 219 99 99 99 121 121 121 0 0 0 146 146 146 181 181 181 62 62 62 76 76 76 217 217 217 98 98 98 120 120 120 145 145 145 165 165 165 190 190 190 75 75 75 88 88 88 97 97 97 112 112 112 144 144 144 36 36 36 189 189 189 73 73 73 87 87 87 224 224 224 111 111 111 143 143 143 160 160 160 57 57 57 70 70 70 211 211 211 223 223 223 105 105 105 142 142 142 155 155 155 185 185 185 198 198 198 207 207 207 94 94 94 103 103 103]; mask:((Depth1Image new) width: 12; height: 15; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@<@O0A?@_<G?0<?O#=8O? ?_#<_/0O?@O<@O0@O') ; yourself); yourself]
 
+arrowButton.upForm [((Depth8Image new) width: 12; height: 15; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'\
+E1\WE1\WE1\WE1\WE1\WE1\WE1\WE1P2E1\WE1\WE1\WHB<XE1\WE1\WE1H,AB\_E1\WE1\LI"$VB2P@E1\WE1$#NSXWE1TPE1\JIQL5J1\WE14XE0<"G#DW\
+E1\WE0XGM@D#JB,WE1\WE1TXE0H:BR(HM1\WE04XE1\WGA<[@08!E0T-E1\WE1\WDSLZGP$-E1\WE1\WE1\8MC@.E1\WE1\WE1\WE1PTE1\WE1\WE1\WE1\W\
+') ; colorMapFromArray:#[141 141 141 24 24 24 183 183 183 68 68 68 78 78 78 92 92 92 101 101 101 140 140 140 151 151 151 54 54 54 195 195 195 206 206 206 220 220 220 100 100 100 126 126 126 139 139 139 148 148 148 182 182 182 193 193 193 77 77 77 219 219 219 99 99 99 121 121 121 0 0 0 146 146 146 181 181 181 62 62 62 76 76 76 217 217 217 98 98 98 120 120 120 145 145 145 165 165 165 190 190 190 75 75 75 88 88 88 97 97 97 112 112 112 144 144 144 36 36 36 189 189 189 73 73 73 87 87 87 224 224 224 111 111 111 143 143 143 160 160 160 57 57 57 70 70 70 211 211 211 223 223 223 105 105 105 142 142 142 155 155 155 185 185 185 198 198 198 207 207 207 94 94 94 103 103 103]; mask:((Depth1Image new) width: 12; height: 15; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@<@O0A?@_<G?0<?O#=8O? ?_#<_/0O?@O<@O0@O') ; yourself); yourself) rotated:90]
+
 arrowButton.rightForm [(Depth8Image new) width: 13; height: 15; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'\
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H407O@@@@@@@@@@@@BMAA$<BL @@@@@@@E@XQ$\#S \/@@@@@@AGCC4@@AD6FP([@@@@I0@V@@@@@A,?@4(E\
 @DT!K@@@@@@@GRIAQ#)DHA\@@@@@C1T0P@@@AEHM@@@1R3,>NP@@@DMFI@@.G!@M@@@@@@@NI$,KI#YP@@@@@@@@P DZG2T@@@@@@@@@@C!MKR @@@@@@@@@ \
 @@@SL @@@@@@@@@@@@@@') ; colorMapFromArray:#[134 134 134 29 29 29 173 173 173 67 67 67 204 204 204 212 212 212 91 91 91 101 101 101 235 235 235 240 240 240 125 125 125 133 133 133 154 154 154 171 171 171 194 194 194 202 202 202 83 83 83 219 219 219 229 229 229 234 234 234 239 239 239 123 123 123 130 130 130 153 153 153 165 165 165 62 62 62 73 73 73 211 211 211 217 217 217 228 228 228 105 105 105 110 110 110 121 121 121 129 129 129 145 145 145 164 164 164 190 190 190 201 201 201 81 81 81 216 216 216 227 227 227 233 233 233 238 238 238 244 244 244 142 142 142 163 163 163 186 186 186 200 200 200 79 79 79 215 215 215 225 225 225 232 232 232 237 237 237 243 243 243 140 140 140 162 162 162 185 185 185 198 198 198 207 207 207 86 86 86 223 223 223 103 103 103 108 108 108 114 114 114 139 139 139 32 32 32 183 183 183 197 197 197 206 206 206 214 214 214 94 94 94 231 231 231 236 236 236 242 242 242 135 135 135 160 160 160 49 49 49 68 68 68 77 77 77 84 84 84 222 222 222 230 230 230 107 107 107]; mask:((Depth1Image new) width: 13; height: 15; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@\@A7 G_ _?A>_G8__ ?>G''9<_/A?8G>@_0A<@G') ; yourself); yourself]
 
+arrowButton.downForm [((Depth8Image new) width: 13; height: 15; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'\
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H407O@@@@@@@@@@@@BMAA$<BL @@@@@@@E@XQ$\#S \/@@@@@@AGCC4@@AD6FP([@@@@I0@V@@@@@A,?@4(E\
+@DT!K@@@@@@@GRIAQ#)DHA\@@@@@C1T0P@@@AEHM@@@1R3,>NP@@@DMFI@@.G!@M@@@@@@@NI$,KI#YP@@@@@@@@P DZG2T@@@@@@@@@@C!MKR @@@@@@@@@ \
+@@@SL @@@@@@@@@@@@@@') ; colorMapFromArray:#[134 134 134 29 29 29 173 173 173 67 67 67 204 204 204 212 212 212 91 91 91 101 101 101 235 235 235 240 240 240 125 125 125 133 133 133 154 154 154 171 171 171 194 194 194 202 202 202 83 83 83 219 219 219 229 229 229 234 234 234 239 239 239 123 123 123 130 130 130 153 153 153 165 165 165 62 62 62 73 73 73 211 211 211 217 217 217 228 228 228 105 105 105 110 110 110 121 121 121 129 129 129 145 145 145 164 164 164 190 190 190 201 201 201 81 81 81 216 216 216 227 227 227 233 233 233 238 238 238 244 244 244 142 142 142 163 163 163 186 186 186 200 200 200 79 79 79 215 215 215 225 225 225 232 232 232 237 237 237 243 243 243 140 140 140 162 162 162 185 185 185 198 198 198 207 207 207 86 86 86 223 223 223 103 103 103 108 108 108 114 114 114 139 139 139 32 32 32 183 183 183 197 197 197 206 206 206 214 214 214 94 94 94 231 231 231 236 236 236 242 242 242 135 135 135 160 160 160 49 49 49 68 68 68 77 77 77 84 84 84 222 222 222 230 230 230 107 107 107]; mask:((Depth1Image new) width: 13; height: 15; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@\@A7 G_ _?A>_G8__ ?>G''9<_/A?8G>@_0A<@G') ; yourself); yourself) rotated:90]
+
+
 checkToggle.activeImage      [(Depth8Image new) width: 20; height: 20; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'\
 LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@@@@@@@@@@@@@@@@@@EB\!LC@0LEPFA XFA XFA Y%LEIBC&M,LC@0I PDA@Q%YVU%YS@@LR,>O3@0LCA%YS@0LC@0\
 LC@0PF4[TCP0LC@0LFTFLC@0LC@0L@LQ]#LVA#@0LCA8K$ 0LC@0LCA2L#-QX PFLC@0Q&$JD2(0LC@0OTU9DGD0A@X0LC@RXC)^C@$0LG,BPW\OLC@D@S@0\
@@ -81,9 +136,13 @@
 R440LC@0YPD0LC@0LA1_F#@<KD1DLC@0LCA%@S@0LC@0S05+LCU4]T$0LC@0LFTALC@0LC@ALC@0LC@0LC@0LC@0YPD0LEUUUUU!XVE!XVE!XVE!XVE%@S@0\
 UUUUG0PDYVU%YVU%YVU%YVTALCAUUUT0LC@0LC@0LC@0LC@0YPEUL@@a') ; colorMapFromArray:#[142 218 81 176 173 137 144 202 76 162 212 82 42 42 42 82 205 48 189 189 189 198 237 106 105 199 53 210 234 119 112 206 65 230 230 230 114 198 63 108 108 108 24 167 4 138 224 80 37 181 18 42 180 21 153 222 87 160 232 102 176 236 101 78 195 40 186 240 113 199 239 108 206 245 123 106 199 59 227 227 227 12 176 9 107 107 107 21 181 14 232 247 131 150 147 116 28 160 4 152 224 83 45 176 19 160 229 97 69 184 26 179 179 179 187 187 187 93 206 52 83 83 83 108 203 60 215 250 133 12 170 3 15 174 7 18 176 11 231 249 134 30 185 19 0 0 0 38 175 16 50 189 27 54 187 30 172 240 105 171 219 96 180 227 104 196 228 99 201 233 110 10 179 4 6 168 3 13 173 5 109 199 60 223 245 132 26 181 14 136 218 74 142 214 79 46 177 18 54 187 29 59 180 28 176 230 101 79 195 42 190 230 106 197 235 116 220 220 220 213 234 118 10 174 7 120 219 72 14 179 11 228 248 135 21 162 4 135 135 135 46 185 26 53 187 29 165 216 86 69 190 38 183 183 183 63 63 63 74 74 74 112 206 56 11 175 4 19 185 10 218 245 132 121 209 68 18 170 9 28 183 17 32 174 19 140 140 140 51 179 22 161 161 161 176 240 109 77 180 29 189 238 111 73 73 73 7 183 9 11 181 9 116 209 65 118 203 61 18 171 4 231 231 231 226 241 134 36 177 18 44 178 17 53 189 29 62 187 29 174 229 98 185 237 106 61 61 61 85 189 45 101 196 55 8 178 9 11 172 4 225 251 130 20 178 9 228 254 138 230 253 141 128 191 60]; mask:((Depth1Image new) width: 20; height: 20; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@C G?70G?/ F@_@F@?@NA?@_C;@_''3@_73@O?#@G?#@G?C@G?C@G^C@G^C@D@C@C??@G??@@@C@') ; yourself); yourself]
 
+checkToggle.enteredActiveImage      =checkToggle.activeImage
+
 checkToggle.passiveImage      [(Depth8Image new) width: 20; height: 20; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'\
 LC@0LC@0LC@0LC@0LC@0@@@@@@@0LC@@@@@@@@@@@@@@@@@@@@@@@C@0LEPFA XFA XFA DAYVU%YP@@LC@0I PDA@Q%YVU%A@PDA@PF@@@0LCA%YP@@@@@@\
 @@@@@@@@A@X0L@@@@FTF@@@@@@@@@@@@@@@DA#@0@@@@YRT@@@@@@@@@@@@@@@PFLC@@@@A%IP@@@@@@@@@@@@@@A@X0L@@@@FT%@@@@@@@@@@@@@@@D@S@0\
 @@@@YRT@@@@@@@@@@@@@@FUHLC@@@@A%IP@@@@@@@@@@@@@@YPD0LC@0LFT%@@@@@@@@@@@@@@A%RC@0LC@0\2T@@@@@@@@@@@@@@FTALC@0LC@(XP@@@@@@\
 @@@@@@@@YPD0LC@0LA1_@@@@@@@@@@@@@@A%@S@0LC@0S04@@@@@@@@@@@@@@FTALC@0LC@ALC@0LC@0LC@0LC@0YPD0LEUUUUU!XVE!XVE!XVE!XVE%@S@0\
 UUUUG0PDYVU%YVU%YVU%YVTALCAUUUT0LC@0LC@0LC@0LC@0YPEUL@@a') ; colorMapFromArray:#[142 218 81 176 173 137 144 202 76 162 212 82 42 42 42 82 205 48 189 189 189 198 237 106 105 199 53 210 234 119 112 206 65 230 230 230 114 198 63 108 108 108 24 167 4 138 224 80 37 181 18 42 180 21 153 222 87 160 232 102 176 236 101 78 195 40 186 240 113 199 239 108 206 245 123 106 199 59 227 227 227 12 176 9 107 107 107 21 181 14 232 247 131 150 147 116 28 160 4 152 224 83 45 176 19 160 229 97 69 184 26 179 179 179 187 187 187 93 206 52 83 83 83 108 203 60 215 250 133 12 170 3 15 174 7 18 176 11 231 249 134 30 185 19 0 0 0 38 175 16 50 189 27 54 187 30 172 240 105 171 219 96 180 227 104 196 228 99 201 233 110 10 179 4 6 168 3 13 173 5 109 199 60 223 245 132 26 181 14 136 218 74 142 214 79 46 177 18 54 187 29 59 180 28 176 230 101 79 195 42 190 230 106 197 235 116 220 220 220 213 234 118 10 174 7 120 219 72 14 179 11 228 248 135 21 162 4 135 135 135 46 185 26 53 187 29 165 216 86 69 190 38 183 183 183 63 63 63 74 74 74 112 206 56 11 175 4 19 185 10 218 245 132 121 209 68 18 170 9 28 183 17 32 174 19 140 140 140 51 179 22 161 161 161 176 240 109 77 180 29 189 238 111 73 73 73 7 183 9 11 181 9 116 209 65 118 203 61 18 171 4 231 231 231 226 241 134 36 177 18 44 178 17 53 189 29 62 187 29 174 229 98 185 237 106 61 61 61]; mask:((Depth1Image new) width: 20; height: 20; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@G??@G??@F@C@F@C@F@C@F@C@F@C@F@C@F@C@F@C@F@C@F@C@F@C@F@C@D@C@C??@G??@@@C@') ; yourself); yourself]
+
+checkToggle.enteredPassiveImage      =checkToggle.passiveImage