CharacterSetView.st
changeset 4132 45846662059e
parent 3932 6ec7e708cad5
child 4133 2eeeacf935a2
--- a/CharacterSetView.st	Fri Jun 08 09:38:47 2012 +0200
+++ b/CharacterSetView.st	Thu Jul 12 13:06:32 2012 +0200
@@ -362,7 +362,10 @@
 !CharacterSetView methodsFor:'drawing'!
 
 redraw
-    |wCol hRow dY|
+    |wCol hRow dY codePage selectedCodePoint|
+
+    codePage := self codePage.
+    selectedCodePoint := self selectedCodePoint.
 
     wCol := width / 16.
     hRow := height / 16.
@@ -383,7 +386,7 @@
         0 to:15 do:[:col |
             |x0 x1 x codePoint decodedCodePoint s|
 
-            codePoint := (self codePage * 16r100) + (rowBase + col).
+            codePoint := (codePage * 16r100) + (rowBase + col).
             encoderOrNil notNil ifTrue:[
                 decodedCodePoint := (encoderOrNil decode:codePoint) ? 0
             ] ifFalse:[
@@ -399,7 +402,7 @@
             x1 := ((col+1) * wCol) rounded asInteger.
             x1 := x1 rounded asInteger.
 
-            codePoint == self selectedCodePoint ifTrue:[
+            codePoint == selectedCodePoint ifTrue:[
                 self paint:(Color red).
                 self fillRectangle:((x0+1)@(y0+1) corner:(x1)@(y1)).
                 self paint:(Color white).
@@ -428,6 +431,8 @@
     "
      (self extent:300@600) open
     "
+
+    "Modified: / 12-07-2012 / 12:30:21 / cg"
 !
 
 sizeChanged:how
@@ -462,7 +467,22 @@
 keyPress:key x:x y:y
     |cp ncp|
 
-    cp := selectedCodePointHolder value. 
+    key == #NextPage ifTrue:[
+        codePageHolder value < 16r100 ifTrue: [
+            codePageHolder value:(codePageHolder value + 1).
+            selectedCodePointHolder value: nil.
+        ].
+        ^ self 
+    ].
+    key == #PreviousPage ifTrue:[  
+        codePageHolder value > 0 ifTrue: [
+            codePageHolder value:(codePageHolder value - 1).
+            selectedCodePointHolder value: nil.
+        ].
+        ^ self 
+    ].
+
+    cp := selectedCodePointHolder value ? 0. 
     key == #CursorRight ifTrue:[
         ncp := (cp + 1).
     ].
@@ -476,16 +496,16 @@
         ncp := (cp - 16).
     ].
     ncp notNil ifTrue:[
-        ncp >= 0 ifTrue:[
-            ncp <= 16rFFFF ifTrue:[
-                codePageHolder value:(ncp bitShift:-8).
-                selectedCodePointHolder value:ncp.
-            ]
+        (ncp between:0 and:16rFFFF) ifTrue:[
+            codePageHolder value:(ncp bitShift:-8).
+            selectedCodePointHolder value:ncp.
         ].
         ^ self.
     ].
 
-    super keyPress:key x:x y:y 
+    super keyPress:key x:x y:y
+
+    "Modified: / 12-07-2012 / 12:25:50 / cg"
 !
 
 selectedCodePointChanged
@@ -540,9 +560,9 @@
 !CharacterSetView class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libwidg2/CharacterSetView.st,v 1.25 2010-09-20 15:53:35 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libwidg2/CharacterSetView.st,v 1.26 2012-07-12 11:06:32 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libwidg2/CharacterSetView.st,v 1.25 2010-09-20 15:53:35 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libwidg2/CharacterSetView.st,v 1.26 2012-07-12 11:06:32 cg Exp $'
 ! !