CharacterSetView.st
changeset 2648 188fb279a589
parent 2639 6d95857dd389
child 2649 c65e9d0c2b35
--- a/CharacterSetView.st	Sun Feb 22 23:46:39 2004 +0100
+++ b/CharacterSetView.st	Mon Feb 23 14:27:44 2004 +0100
@@ -86,14 +86,25 @@
 
     "/ actions
     updateCodePoint := [
-            |selectedCodePoint|
+            |selectedCodePoint selectedChar 
+             isLetter isDigit isUppercase isLowercase|
 
             selectedCodePoint := v selectedCodePoint.
             selectedCodePoint isNil ifTrue:[
                 codePointLabel label:clickLabel
             ] ifFalse:[
-                codePointLabel label:('Selected: u%1'
-                        bindWith:((selectedCodePoint printStringRadix:16) leftPaddedTo:4 with:$0)).
+                selectedChar := Character value:selectedCodePoint.
+                isLetter := selectedChar isNationalLetter.
+                isDigit := selectedChar isNationalDigit.
+                isUppercase := selectedChar isUppercase.
+                isLowercase := selectedChar isLowercase.
+                codePointLabel 
+                    label:
+                        ('Selected: u%1 %2 %3'
+                            bindWith:((selectedCodePoint printStringRadix:16) leftPaddedTo:4 with:$0)
+                            with:(isUppercase ifTrue:'Uppercase' ifFalse:[isLowercase ifTrue:'lowercase' ifFalse:''])
+                            with:(isLetter ifTrue:'Letter' ifFalse:[(isDigit ifTrue:'Digit' ifFalse:'')])
+                        ).
             ].
             codePointLabel repairDamage.
     ].
@@ -179,6 +190,7 @@
     enable value.
 
     v selectedCodePointHolder onChangeEvaluate:updateCodePoint.
+    v codePageHolder onChangeEvaluate:update.
 
     w := v preferredExtent x max:(panel preferredExtent x).
     h := v preferredExtent y + (panel preferredExtent y).
@@ -189,6 +201,7 @@
 
     "
      self openOn:(View defaultFont).
+     self openOn:(Font family:'courier' face:'medium' style:'roman' size:12 encoding:'iso10646-1').
     "
 ! !
 
@@ -307,6 +320,35 @@
     ].
 !
 
+keyPress:key x:x y:y
+    |cp ncp|
+
+    cp := selectedCodePointHolder value. 
+    key == #CursorRight ifTrue:[
+        ncp := (cp + 1).
+    ].
+    key == #CursorLeft ifTrue:[
+        ncp := (cp - 1).
+    ].
+    key == #CursorDown ifTrue:[
+        ncp := (cp + 16).
+    ].
+    key == #CursorUp ifTrue:[
+        ncp := (cp - 16).
+    ].
+    ncp notNil ifTrue:[
+        ncp >= 0 ifTrue:[
+            ncp <= 16rFFFF ifTrue:[
+                codePageHolder value:(ncp bitShift:-8).
+                selectedCodePointHolder value:ncp.
+            ]
+        ].
+        ^ self.
+    ].
+
+    super keyPress:key x:x y:y 
+!
+
 selectedCodePointChanged
     realized ifTrue:[
         self clear.
@@ -340,5 +382,5 @@
 !CharacterSetView class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libwidg2/CharacterSetView.st,v 1.11 2004-02-19 00:39:25 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libwidg2/CharacterSetView.st,v 1.12 2004-02-23 13:27:44 cg Exp $'
 ! !