ViewStyle.st
changeset 3678 d180d63dc7ca
parent 3118 5a03bfe77f91
child 4289 ec3a39d6f98a
--- a/ViewStyle.st	Thu Jul 25 18:04:04 2002 +0200
+++ b/ViewStyle.st	Thu Jul 25 18:06:01 2002 +0200
@@ -10,6 +10,8 @@
  hereby transferred.
 "
 
+"{ Package: 'stx:libview' }"
+
 ResourcePack subclass:#ViewStyle
 	instanceVariableNames:'name is3D viewGrey'
 	classVariableNames:''
@@ -52,18 +54,19 @@
 
 !ViewStyle class methodsFor:'instance creation'!
 
-fromFile:aFileName
+fromFile:aFileNameArg
     "get the preferences definitions from a file"
 
-    |prefs failed nm dir d path|
+    |aFileName prefs failed nm dir d path|
 
-    prefs := self new.
-    (aFileName endsWith:'.style') ifTrue:[
-        nm := aFileName copyWithoutLast:6
+    aFileName := aFileNameArg asFilename.
+    (aFileName hasSuffix:'style') ifTrue:[
+        nm := aFileName withoutSuffix
     ] ifFalse:[
         nm := aFileName
     ].
-    prefs at:#name put:nm. 
+    prefs := self new.
+    prefs at:#name put:nm baseName. 
 
     "/ generic search first (allows for user to overwrite it)
     path := Smalltalk getResourceFileName:aFileName forPackage:'stx:libview'.
@@ -73,13 +76,15 @@
         "/ then search in the classes package directory ...
         dir := Smalltalk projectDirectoryForPackage:'stx:libview'.
         dir notNil ifTrue:[
-            d := dir asFilename construct:'resources'.
+            dir := dir asFilename.
+            d := dir construct:'resources'.
             (d exists and:[(d construct:aFileName) exists]) ifFalse:[
-                d := dir asFilename construct:'styles'.
+                d := dir construct:'styles'.
             ].
             (d exists and:[(d construct:aFileName) exists]) ifTrue:[
-                dir := d pathName
+                dir := d
             ].
+            dir := dir pathName.
         ].
     ].
     failed := (prefs readFromFile:aFileName directory:dir) isNil.
@@ -90,6 +95,7 @@
      ViewStyle fromFile:'motif.style'  
      ViewStyle fromFile:'normal.style' 
      ViewStyle fromFile:'iris.style'
+     ViewStyle fromFile:'iris.style' asFilename
     "
 
     "Modified: / 10.12.1999 / 16:05:30 / cg"
@@ -154,17 +160,11 @@
     |aResource deviceResource device|
 
     device := Display.
+
     aResource := self at:aKey default:default.
-    aResource isNil ifTrue:[
-	aResource := default
-    ].
-    aResource notNil ifTrue:[
-	device notNil ifTrue:[
-	    deviceResource := aResource onDevice:device.
-	]
-    ].
-    deviceResource notNil ifTrue:[
-	^ deviceResource
+    (aResource notNil and:[device notNil]) ifTrue:[
+        deviceResource := aResource onDevice:device.
+        deviceResource notNil ifTrue:[^ deviceResource].
     ].
     ^ aResource
 
@@ -221,6 +221,20 @@
     "Created: 6.9.1997 / 11:40:16 / cg"
 ! !
 
+!ViewStyle methodsFor:'queries'!
+
+isWindowsStyle
+    "answer true if this is a MS-Windows style.
+     XXX Currently we simply check the name"
+
+    name isNil ifTrue:[
+        "read name into instance variable name (for speed)"
+        self name
+    ].
+
+    ^ name == #win95
+! !
+
 !ViewStyle methodsFor:'special'!
 
 newDerivedStyle
@@ -252,5 +266,5 @@
 !ViewStyle class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/ViewStyle.st,v 1.27 1999-12-15 16:49:53 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/ViewStyle.st,v 1.28 2002-07-25 16:06:01 stefan Exp $'
 ! !