CharacterSetView.st
changeset 5533 1cfdd4a99f96
parent 5420 ca55021599d4
child 5535 050287c97b5b
--- a/CharacterSetView.st	Wed Apr 12 20:22:09 2017 +0200
+++ b/CharacterSetView.st	Wed Apr 26 18:18:52 2017 +0200
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "
  COPYRIGHT (c) 2004 by eXept Software AG
               All Rights Reserved
@@ -96,30 +98,8 @@
     "
 !
 
-openOn:aFont label:viewLabel clickLabel:clickLabel
-    ^ self 
-        openOn:aFont 
-        label:viewLabel 
-        clickLabel:clickLabel 
-        asInputFor:nil
-!
-
-openOn:aFont label:viewLabel clickLabel:clickLabel asInputFor:aView
-    self
-        openOn:aFont 
-        label:viewLabel 
-        clickLabel:clickLabel 
-        asInputFor:aView 
-        encoder:nil
-
-    "
-     self openOn:(View defaultFont).
-     self openOn:(Font family:'courier' face:'medium' style:'roman' size:12 encoding:'iso10646-1').
-    "
-!
-
-openOn:aFont label:viewLabel clickLabel:clickLabel asInputFor:aConsumingView encoder:aCharacterEncoderOrNil
-    |top panel v bNext bPrev bFirst bLast comboList rangeLabel codePointLabel
+openOn:aFont in:aTopView label:viewLabel clickLabel:clickLabel asInputFor:aConsumingView encoder:aCharacterEncoderOrNil
+    |panel v bNext bPrev bFirst bLast comboList rangeLabel codePointLabel
      first last next prev enable update updateCodePoint w h
      minPage maxPage insertCharacter deviceFont minCode maxCode
      htmlHolder codePageList|
@@ -138,19 +118,16 @@
     minPage := minCode >> 8.
     maxPage := maxCode >> 8.
 
-    top := StandardSystemView new.
-    top label:viewLabel.
-
-    v := self origin:0.0@0.0 corner:1.0@1.0 in:top.
-    v topInset:25.
+    v := self origin:0.0@0.0 corner:1.0@1.0 in:aTopView.
+    v topInset:30.
     v font:aFont.
     v codePageHolder value:minPage.
     v characterEncoding:(aFont encoding).
     v encoder:aCharacterEncoderOrNil.
 
-    panel := HorizontalPanelView in:top.
+    panel := HorizontalPanelView in:aTopView.
     panel origin:(0.0 @ 0.0) corner:(1.0 @ 0.0).
-    panel bottomInset:-25.
+    panel bottomInset:-30.
     panel horizontalLayout:#leftSpace.
 
     aConsumingView notNil ifTrue:[
@@ -290,7 +267,7 @@
 
         comboList := ComboListView in:panel.
         comboList extent:(16@16).
-        comboList label:'?'.
+        comboList label:' '.
         codePageList := 
             #(
                 (16r00   'Latin')          
@@ -351,9 +328,68 @@
     v selectedCodePointHolder onChangeEvaluate:updateCodePoint.
     v codePageHolder onChangeEvaluate:update.
 
-    w := v preferredWidth max:(panel preferredWidth).
-    h := v preferredHeight + (panel preferredHeight).
-    top extent:(w @ h).
+    "/  w := v preferredWidth max:(panel preferredWidth).
+    "/  h := v preferredHeight + (panel preferredHeight).
+    "/  v extent:(w @ h).
+    ^ v
+
+    "
+     self openOn:(View defaultFont).
+     self openOn:(Font family:'courier' face:'medium' style:'roman' size:12 encoding:'iso10646-1').
+    "
+
+    "Modified: / 11-10-2006 / 22:30:32 / cg"
+!
+
+openOn:aFont label:viewLabel clickLabel:clickLabel
+    ^ self 
+        openOn:aFont 
+        label:viewLabel 
+        clickLabel:clickLabel 
+        asInputFor:nil
+!
+
+openOn:aFont label:viewLabel clickLabel:clickLabel asInputFor:aView
+    self
+        openOn:aFont 
+        label:viewLabel 
+        clickLabel:clickLabel 
+        asInputFor:aView 
+        encoder:nil
+
+    "
+     self openOn:(View defaultFont).
+     self openOn:(Font family:'courier' face:'medium' style:'roman' size:12 encoding:'iso10646-1').
+    "
+!
+
+openOn:aFont label:viewLabel clickLabel:clickLabel asInputFor:aConsumingView encoder:aCharacterEncoderOrNil
+    |top v minPage maxPage deviceFont minCode maxCode
+     htmlHolder|
+
+    htmlHolder := false asValue.
+
+    aCharacterEncoderOrNil isNil ifTrue:[
+        deviceFont := aFont onDevice:Screen current.
+        minCode := deviceFont minCode.
+        maxCode := deviceFont maxCode.
+    ] ifFalse:[
+        minCode := aCharacterEncoderOrNil minCode.
+        maxCode := aCharacterEncoderOrNil maxCode.
+    ].
+
+    minPage := minCode >> 8.
+    maxPage := maxCode >> 8.
+
+    top := StandardSystemView new.
+    top label:viewLabel.
+
+    v := self
+            openOn:aFont in:top 
+            label:viewLabel clickLabel:clickLabel 
+            asInputFor:aConsumingView encoder:aCharacterEncoderOrNil.
+
+    top extent:(v preferredExtent).
 
     aConsumingView notNil ifTrue:[
         top application:(aConsumingView application).