--- a/ApplicationDefinition.st Thu Apr 21 07:59:19 2016 +0100
+++ b/ApplicationDefinition.st Fri Apr 22 08:34:39 2016 +0100
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
"
COPYRIGHT (c) 2006 by eXept Software AG
All Rights Reserved
@@ -963,6 +961,15 @@
"Modified: / 15-05-2007 / 17:27:04 / cg"
!
+bmake_dot_mak_mappings
+ ^ super bmake_dot_mak_mappings
+ at:'SKIP_IF_ARG_IS_APP_TARGET' put:'
+@IF "%%1" EQU "exe" exit /b 0
+@IF "%%1" EQU "setup" exit /b 0
+@IF "%%1" EQU "pluginSetup" exit /b 0
+'
+!
+
buildDate_dot_h_mappings
|d|
@@ -2249,6 +2256,31 @@
"Created: / 15-05-2007 / 17:27:37 / cg"
!
+bmake_dot_mak
+ "the template code for the bmake.bat file
+ Notice: duplicate %'s if they are needed as such in the generated file"
+
+ ^
+'@REM -------
+@REM make using Borland bcc32
+@REM type bmake, and wait...
+@REM do not edit - automatically generated from ProjectDefinition
+@REM -------
+@SET DEFINES=
+
+make.exe -N -f bc.mak %%DEFINES%% %%*
+
+@IF "%%1" EQU "exe" exit /b 0
+@IF "%%1" EQU "setup" exit /b 0
+@IF "%%1" EQU "pluginSetup" exit /b 0
+
+%(SUBPROJECT_BMAKE_CALLS)
+'
+
+ "Created: / 17-08-2006 / 20:04:14 / cg"
+ "Modified: / 04-09-2012 / 11:46:22 / cg"
+!
+
buildDate_dot_h
"the template code for the buildDate.h file"
@@ -2892,7 +2924,7 @@
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
SectionEnd
-LangString appOpen ${LANG_GERMAN} "Mit %(PRODUCT_NAME) öffnen"
+LangString appOpen ${LANG_GERMAN} "Mit %(PRODUCT_NAME) ffnen"
LangString appOpen ${LANG_ENGLISH} "Open with %(PRODUCT_NAME)"
LangString DESC_Section1 ${LANG_ENGLISH} "Program components of %(PRODUCT_NAME)"
@@ -2926,7 +2958,7 @@
Function un.onInit
!!insertmacro MUI_UNGETLANGUAGE
- MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Möchten Sie %(PRODUCT_NAME) und alle seine Komponenten deinstallieren?" IDYES +2
+ MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Mchten Sie %(PRODUCT_NAME) und alle seine Komponenten deinstallieren?" IDYES +2
Abort
FunctionEnd
--- a/ProjectDefinition.st Thu Apr 21 07:59:19 2016 +0100
+++ b/ProjectDefinition.st Fri Apr 22 08:34:39 2016 +0100
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
"
COPYRIGHT (c) 2006 by eXept Software AG
All Rights Reserved
@@ -2746,6 +2744,7 @@
"Created: / 18-08-2006 / 12:51:38 / cg"
! !
+
!ProjectDefinition class methodsFor:'description - project information'!
applicationAdditionalIconFileNames
@@ -4781,6 +4780,7 @@
^ self subProjectMakeCallsUsing:'call vcmake %1 %2'.
! !
+
!ProjectDefinition class methodsFor:'file templates'!
autopackage_default_dot_apspec
@@ -4908,10 +4908,8 @@
make.exe -N -f bc.mak %%DEFINES%% %%*
+%(SKIP_IF_ARG_IS_APP_TARGET)
@IF "%%1" EQU "test" exit /b 0
-@IF "%%1" EQU "exe" exit /b 0
-@IF "%%1" EQU "setup" exit /b 0
-@IF "%%1" EQU "pluginSetup" exit /b 0
%(SUBPROJECT_BMAKE_CALLS)
'
@@ -4991,10 +4989,8 @@
@REM -------
make.exe -N -f bc.mak -DUSELCC=1 %%*
+%(SKIP_IF_ARG_IS_APP_TARGET)
@IF "%%1" EQU "test" exit /b 0
-@IF "%%1" EQU "exe" exit /b 0
-@IF "%%1" EQU "setup" exit /b 0
-@IF "%%1" EQU "pluginSetup" exit /b 0
%(SUBPROJECT_LCCMAKE_CALLS)
'
@@ -5124,10 +5120,8 @@
@popd
make.exe -N -f bc.mak %DEFINES% %%USEMINGW_ARG%% %%*
+%(SKIP_IF_ARG_IS_APP_TARGET)
@IF "%%1" EQU "test" exit /b 0
-@IF "%%1" EQU "exe" exit /b 0
-@IF "%%1" EQU "setup" exit /b 0
-@IF "%%1" EQU "pluginSetup" exit /b 0
%(SUBPROJECT_MINGWMAKE_CALLS)
'
@@ -5221,9 +5215,7 @@
make.exe -N -f bc.mak -DUSETCC=1 %%*
@IF "%%1" EQU "test" exit /b 0
-@IF "%%1" EQU "exe" exit /b 0
-@IF "%%1" EQU "setup" exit /b 0
-@IF "%%1" EQU "pluginSetup" exit /b 0
+%(SKIP_IF_ARG_IS_APP_TARGET)
%(SUBPROJECT_TCCMAKE_CALLS)
@@ -5255,10 +5247,8 @@
make.exe -N -f bc.mak -DUSEVC=1 %DEFINES% %*
+%(SKIP_IF_ARG_IS_APP_TARGET)
@IF "%%1" EQU "test" exit /b 0
-@IF "%%1" EQU "exe" exit /b 0
-@IF "%%1" EQU "setup" exit /b 0
-@IF "%%1" EQU "pluginSetup" exit /b 0
%(SUBPROJECT_VCMAKE_CALLS)
'
--- a/UninterpretedBytes.st Thu Apr 21 07:59:19 2016 +0100
+++ b/UninterpretedBytes.st Fri Apr 22 08:34:39 2016 +0100
@@ -1912,7 +1912,7 @@
The index is a smalltalk index (i.e. 1-based).
Notice, that (currently) ST/X Floats are what Doubles are in ST-80.
Notice also, that the bytes are expected to be in this machine's
- float representation - if the bytearray originated from another
+ float representation and byte order - if the bytearray originated from another
machine, some conversion is usually needed."
|newFloat|
@@ -1991,7 +1991,7 @@
The index is a smalltalk index (i.e. 1-based).
Notice, that (currently) ST/X Floats are what Doubles are in ST-80.
Notice also, that the bytes are expected to be in this machine's
- float representation - if the bytearray originated from another
+ float representation and byte order - if the bytearray originated from another
machine, some conversion is usually needed."
|flt|
@@ -2071,7 +2071,7 @@
therefore this method reads a 4-byte float from the byteArray and returns
a float object which keeps an 8-byte double internally.
Notice also, that the bytes are expected to be in this machine's
- float representation and order - if the bytearray originated from another
+ float representation and byte order - if the bytearray originated from another
machine, some conversion is usually needed."
|newFloat|
@@ -2144,7 +2144,7 @@
The index is a smalltalk index (i.e. 1-based).
Notice, that (currently) ST/X Floats are what Doubles are in ST-80.
Notice also, that the bytes are expected to be in this machines
- float representation - if the bytearray originated from another
+ float representation and byte order - if the bytearray originated from another
machine, some conversion is usually needed."
|sflt|
@@ -2220,7 +2220,7 @@
"retrieve the 8 bytes starting at index as a float.
The index is a smalltalk index (i.e. 1-based).
The 8 bytes are assumed to be in IEEE floating point single precision
- number format."
+ number format in the native byte order."
"
currently, we assume that the machine's native number format is already
@@ -2240,7 +2240,7 @@
"store the value of the argument, aFloat into the receiver
The index is a smalltalk index (i.e. 1-based).
starting at index. Storage is in IEEE floating point double precision format.
- (i.e. 8 bytes are stored)."
+ (i.e. 8 bytes are stored in the native byte order)."
"
currently, we assume that the machine's native number format is already
@@ -2260,7 +2260,7 @@
"retrieve the 4 bytes starting at index as a float.
The index is a smalltalk index (i.e. 1-based).
The 4 bytes are assumed to be in IEEE floating point single precision
- number format."
+ number format in the native byte order."
"
currently, we assume that the machine's native number format is already
@@ -2280,8 +2280,9 @@
"store the value of the argument, aFloat into the receiver
starting at index, which is a smalltalk index (i.e. 1-based).
Storage is in IEEE floating point single precision format.
- (i.e. 4 bytes are stored). Since ST/X floats are really doubles, the low-
- order 4 bytes of the precision is lost."
+ (i.e. 4 bytes are stored in the native byte order).
+ Since ST/X floats are really doubles,
+ the low- order 4 bytes of the precision are lost."
"
currently, we assume that the machine's native number format is already
@@ -2307,7 +2308,7 @@
|w|
- w := self unsignedInt64At:index bigEndian:IsBigEndian.
+ w := self unsignedInt64At:index MSB:(UninterpretedBytes isBigEndian).
(w > (16r7FFFFFFFFFFFFFFF)) ifTrue:[
^ w - (16r10000000000000000)
].
@@ -2356,7 +2357,7 @@
The index is a smalltalk index (i.e. 1-based).
Same as #signedQuadWordAt:put: - for ST80 compatibility."
- ^ self signedInt64At:byteIndex put:anInteger MSB:IsBigEndian
+ ^ self signedInt64At:byteIndex put:anInteger MSB:(UninterpretedBytes isBigEndian)
!
signedInt64At:byteIndex put:anInteger MSB:msb
@@ -2377,12 +2378,44 @@
"Modified: / 9.5.1998 / 01:13:34 / cg"
!
+signedInt64AtLSB:byteIndex
+ "return the 8-bytes starting at index as a signed 64bit Integer.
+ The index is a smalltalk index (i.e. 1-based).
+ The value is retrieved with least significant byte first"
+
+ ^ self signedInt64At:byteIndex MSB:false
+!
+
+signedInt64AtLSB:byteIndex put:anInteger
+ "set the 8-bytes starting at index from the signed Integer anInteger.
+ The index is a smalltalk index (i.e. 1-based).
+ The integer is stored with least significant byte first."
+
+ ^ self signedInt64At:byteIndex put:anInteger MSB:false
+!
+
+signedInt64AtMSB:byteIndex
+ "return the 8-bytes starting at index as a signed 64bit Integer.
+ The index is a smalltalk index (i.e. 1-based).
+ The value is retrieved with most significant byte first"
+
+ ^ self signedInt64At:byteIndex MSB:true
+!
+
+signedInt64AtMSB:byteIndex put:anInteger
+ "set the 8-bytes starting at index from the signed Integer anInteger.
+ The index is a smalltalk index (i.e. 1-based).
+ The integer is stored with least significant byte first."
+
+ ^ self signedInt64At:byteIndex put:anInteger MSB:true
+!
+
unsignedInt64At:byteIndex
"return the 8-bytes starting at index in the machine's native
byteorder as an unsigned integer.
The index is a smalltalk index (i.e. 1-based)"
- ^ self unsignedInt64At:byteIndex MSB:IsBigEndian
+ ^ self unsignedInt64At:byteIndex MSB:(UninterpretedBytes isBigEndian)
"
|b|
@@ -2435,7 +2468,7 @@
The value must be in the range 0 to 16rFFFFFFFFFFFFFFFF.
The value is stored in the machine's natural byteorder."
- ^ self unsignedInt64At:byteIndex put:anInteger MSB:IsBigEndian
+ ^ self unsignedInt64At:byteIndex put:anInteger MSB:(UninterpretedBytes isBigEndian)
"
|b|
@@ -2482,6 +2515,38 @@
"
"Created: / 5.3.1998 / 14:06:02 / stefan"
+!
+
+unsignedInt64AtLSB:byteIndex
+ "return the 8-bytes starting at index as an unsigned 64bit Integer.
+ The index is a smalltalk index (i.e. 1-based).
+ The value is retrieved with most significant byte first"
+
+ ^ self unsignedInt64At:byteIndex MSB:false
+!
+
+unsignedInt64AtLSB:byteIndex put:anInteger
+ "set the 8-bytes starting at index from the unsigned Integer anInteger.
+ The index is a smalltalk index (i.e. 1-based).
+ The integer is stored with least significant byte first."
+
+ ^ self unsignedInt64At:byteIndex put:anInteger MSB:false
+!
+
+unsignedInt64AtMSB:byteIndex
+ "return the 8-bytes starting at index as an unsigned 64bit Integer.
+ The index is a smalltalk index (i.e. 1-based).
+ The value is retrieved with most significant byte first"
+
+ ^ self unsignedInt64At:byteIndex MSB:true
+!
+
+unsignedInt64AtMSB:byteIndex put:anInteger
+ "set the 8-bytes starting at index from the unsigned Integer anInteger.
+ The index is a smalltalk index (i.e. 1-based).
+ The integer is stored with least significant byte first."
+
+ ^ self unsignedInt64At:byteIndex put:anInteger MSB:true
! !
!UninterpretedBytes methodsFor:'accessing-longs (32bit)'!
@@ -2963,6 +3028,38 @@
"Created: / 5.3.1998 / 10:57:18 / stefan"
!
+signedInt32AtLSB:byteIndex
+ "return the 4-bytes starting at index as a signed 32bit Integer.
+ The index is a smalltalk index (i.e. 1-based).
+ The value is retrieved with least significant byte first"
+
+ ^ self signedInt32At:byteIndex MSB:false
+!
+
+signedInt32AtLSB:byteIndex put:anInteger
+ "set the 4-bytes starting at index from the signed Integer anInteger.
+ The index is a smalltalk index (i.e. 1-based).
+ The integer is stored with least significant byte first."
+
+ ^ self signedInt32At:byteIndex put:anInteger MSB:false
+!
+
+signedInt32AtMSB:byteIndex
+ "return the 4-bytes starting at index as a signed 32bit Integer.
+ The index is a smalltalk index (i.e. 1-based).
+ The value is retrieved with most significant byte first"
+
+ ^ self signedInt32At:byteIndex MSB:true
+!
+
+signedInt32AtMSB:byteIndex put:anInteger
+ "set the 4-bytes starting at index from the signed Integer anInteger.
+ The index is a smalltalk index (i.e. 1-based).
+ The integer is stored with most significant byte first."
+
+ ^ self signedInt32At:byteIndex put:anInteger MSB:true
+!
+
unsignedInt32At:byteIndex
"return the 4-bytes starting at index as an (unsigned) Integer.
The index is a smalltalk index (i.e. 1-based).
@@ -3211,6 +3308,38 @@
b unsignedInt32At:1 put:16rFFFFFFFF.
(b signedInt32At:1)
"
+!
+
+unsignedInt32AtLSB:byteIndex
+ "return the 4-bytes starting at index as an unsigned 32bit Integer.
+ The index is a smalltalk index (i.e. 1-based).
+ The value is retrieved with least significant byte first"
+
+ ^ self unsignedInt32At:byteIndex MSB:false
+!
+
+unsignedInt32AtLSB:byteIndex put:anInteger
+ "set the 4-bytes starting at index from the unsigned Integer anInteger.
+ The index is a smalltalk index (i.e. 1-based).
+ The integer is stored with least significant byte first."
+
+ ^ self unsignedInt32At:byteIndex put:anInteger MSB:false
+!
+
+unsignedInt32AtMSB:byteIndex
+ "return the 4-bytes starting at index as an unsigned 32bit Integer.
+ The index is a smalltalk index (i.e. 1-based).
+ The value is retrieved with most significant byte first"
+
+ ^ self unsignedInt32At:byteIndex MSB:true
+!
+
+unsignedInt32AtMSB:byteIndex put:anInteger
+ "set the 4-bytes starting at index from the unsigned Integer anInteger.
+ The index is a smalltalk index (i.e. 1-based).
+ The integer is stored with most significant byte first."
+
+ ^ self unsignedInt32At:byteIndex put:anInteger MSB:true
! !
!UninterpretedBytes methodsFor:'accessing-shorts (16bit)'!
@@ -3369,6 +3498,82 @@
"Modified: 1.7.1996 / 21:12:13 / cg"
!
+signedInt16AtLSB:byteIndex
+ "return the 2-bytes starting at index as a signed Integer.
+ The index is a smalltalk index (i.e. 1-based).
+ The value is retrieved with least significant byte first"
+
+ ^ self signedInt16At:byteIndex MSB:false
+
+ "
+ |b|
+ b := ByteArray new:2.
+ b wordAt:1 put:16rFFFE.
+ b signedInt16AtLSB:1.
+ b signedInt16AtMSB:1.
+ "
+
+ "Modified: 1.7.1996 / 21:14:38 / cg"
+!
+
+signedInt16AtLSB:index put:anInteger
+ "set the 2-bytes starting at index from the signed Integer value.
+ The index is a smalltalk index (i.e. 1-based).
+ The stored value must be in the range 0 .. 16rFFFF.
+ The value is stored with least significant byte first"
+
+ ^ self signedInt16At:index put:anInteger MSB:false
+
+ "
+ |b|
+ b := ByteArray new:4.
+ b signedInt16At:1 put:16r0102.
+ b signedInt16At:3 put:16r0304.
+ b inspect
+ "
+
+ "Created: / 5.3.1998 / 11:54:52 / stefan"
+ "Modified: / 5.3.1998 / 14:59:38 / stefan"
+!
+
+signedInt16AtMSB:byteIndex
+ "return the 2-bytes starting at index as a signed Integer.
+ The index is a smalltalk index (i.e. 1-based).
+ The value is retrieved with most significant byte first"
+
+ ^ self signedInt16At:byteIndex MSB:true
+
+ "
+ |b|
+ b := ByteArray new:2.
+ b wordAt:1 put:16rFFFE.
+ b signedInt16AtLSB:1.
+ b signedInt16AtMSB:1.
+ "
+
+ "Modified: 1.7.1996 / 21:14:38 / cg"
+!
+
+signedInt16AtMSB:index put:anInteger
+ "set the 2-bytes starting at index from the signed Integer value.
+ The index is a smalltalk index (i.e. 1-based).
+ The stored value must be in the range 0 .. 16rFFFF.
+ The value is stored with most significant byte first"
+
+ ^ self signedInt16At:index put:anInteger MSB:true
+
+ "
+ |b|
+ b := ByteArray new:4.
+ b signedInt16At:1 put:16r0102.
+ b signedInt16At:3 put:16r0304.
+ b inspect
+ "
+
+ "Created: / 5.3.1998 / 11:54:52 / stefan"
+ "Modified: / 5.3.1998 / 14:59:38 / stefan"
+!
+
unsignedInt16At:index
"return the 2-bytes starting at index as an (unsigned) Integer.
The index is a smalltalk index (i.e. 1-based).
@@ -3536,6 +3741,81 @@
"Modified: / 21.1.1998 / 17:48:15 / cg"
"Modified: / 5.3.1998 / 11:52:28 / stefan"
+!
+
+unsignedInt16AtLSB:byteIndex
+ "return the 2-bytes starting at index as an unsigned Integer.
+ The index is a smalltalk index (i.e. 1-based).
+ The value is retrieved with least significant byte first"
+
+ ^ self unsignedInt16At:byteIndex MSB:false
+
+ "
+ |b|
+ b := ByteArray new:2.
+ b wordAt:1 put:16rFFFE.
+ b unsignedInt16AtLSB:1.
+ b unsignedInt16AtMSB:1.
+ "
+
+ "Modified: 1.7.1996 / 21:14:38 / cg"
+!
+
+unsignedInt16AtLSB:index put:anInteger
+ "set the 2-bytes starting at index from the (unsigned) Integer value.
+ The index is a smalltalk index (i.e. 1-based).
+ The stored value must be in the range 0 .. 16rFFFF.
+ The value is stored with least significant byte first"
+
+ ^ self unsignedInt16At:index put:anInteger MSB:false
+
+ "
+ |b|
+ b := ByteArray new:4.
+ b unsignedInt16At:1 put:16r0102.
+ b unsignedInt16At:3 put:16r0304.
+ b inspect
+ "
+
+ "Created: / 5.3.1998 / 11:54:52 / stefan"
+ "Modified: / 5.3.1998 / 14:59:38 / stefan"
+!
+
+unsignedInt16AtMSB:byteIndex
+ "return the 2-bytes starting at index as an unsigned Integer.
+ The index is a smalltalk index (i.e. 1-based).
+ The value is retrieved with most significant byte first"
+
+ ^ self unsignedInt16At:byteIndex MSB:true
+
+ "
+ |b|
+ b := ByteArray new:2.
+ b wordAt:1 put:16rFFFF.
+ b signedWordAt:1
+ "
+
+ "Modified: 1.7.1996 / 21:14:38 / cg"
+!
+
+unsignedInt16AtMSB:index put:anInteger
+ "set the 2-bytes starting at index from the (unsigned) Integer value.
+ The index is a smalltalk index (i.e. 1-based).
+ The stored value must be in the range 0 .. 16rFFFF.
+ The value is stored with most significant byte first"
+
+ ^ self unsignedInt16At:index put:anInteger MSB:true
+
+ "
+ |b|
+ b := ByteArray new:4.
+ b unsignedInt16At:1 put:16r0102.
+ b unsignedInt16At:3 put:16r0304.
+ b inspect
+ "
+
+ "Created: / 5.3.1998 / 11:54:52 / stefan"
+ "Modified: / 5.3.1998 / 14:59:38 / stefan"
! !
!UninterpretedBytes methodsFor:'accessing-strings'!
--- a/UserPreferences.st Thu Apr 21 07:59:19 2016 +0100
+++ b/UserPreferences.st Fri Apr 22 08:34:39 2016 +0100
@@ -14,7 +14,7 @@
"{ NameSpace: Smalltalk }"
IdentityDictionary subclass:#UserPreferences
- instanceVariableNames:''
+ instanceVariableNames:'modified'
classVariableNames:'CurrentPreferences DefaultPreferences'
poolDictionaries:''
category:'System-Support'
@@ -761,6 +761,7 @@
s nextPutLine:(' territory:',UserPreferences current languageTerritory storeString,'.').
].
s syncData.
+ userPrefs beUnmodified.
].
"
@@ -838,6 +839,27 @@
^ super at:key asSymbol put:value
"Modified: / 15-01-2012 / 14:26:53 / cg"
+!
+
+beModified
+ "this is not needed for settings applications, which notice any modifications
+ themself. Howvever, if someone else modifies the settings (programmatically),
+ the change should be remembered, so that the user can be warned at session end"
+
+ modified := true
+!
+
+beUnmodified
+ "done when saved"
+
+ modified := false
+!
+
+isModified
+ "this is set, if someone modifies the settings programmatically,
+ so that the user can be warned at session end"
+
+ ^ modified ? false
! !
@@ -1924,6 +1946,11 @@
aDictionary isNil ifTrue:[^ self].
self fontPreferencesChanged.
+
+ "
+ UserPreferences current fontPreferences
+ UserPreferences current fontPreferences:nil
+ "
!
fontPreferencesChanged
@@ -1933,7 +1960,7 @@
dict := self at:#fontPreferences.
dict isNil ifTrue:[^ self].
-
+
getFont :=
[:key|
|s fn|
@@ -1943,7 +1970,8 @@
fn := Object readFrom:s.
self useXftFontsOnly ifTrue:[
fn := XftFontDescription for:fn
- ]
+ ].
+ Display notNil ifTrue:[fn := fn onDevice:Display].
].
fn
].