Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  nodelist  faq  login

C'est magnifique, mais ce n'est pas l'Informatique. -- Bosquet [on seeing the IBM 4341]


programming / comp.lang.smalltalk.dolphin / Dolphin in WineHQ (for Mac)

SubjectAuthor
* Dolphin in WineHQ (for Mac)Diego Coronel
+- Re: Dolphin in WineHQ (for Mac)Baquii
`* Re: Dolphin in WineHQ (for Mac)Baquii
 `- Re: Dolphin in WineHQ (for Mac)Diego Coronel

1
Subject: Dolphin in WineHQ (for Mac)
From: Diego Coronel
Newsgroups: comp.lang.smalltalk.dolphin
Date: Mon, 10 Aug 2020 17:02 UTC
X-Received: by 2002:ac8:7205:: with SMTP id a5mr28658354qtp.235.1597078955000;
Mon, 10 Aug 2020 10:02:35 -0700 (PDT)
X-Received: by 2002:aca:ac8f:: with SMTP id v137mr206722oie.59.1597078954644;
Mon, 10 Aug 2020 10:02:34 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder7.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.smalltalk.dolphin
Date: Mon, 10 Aug 2020 10:02:34 -0700 (PDT)
Complaints-To: groups-abuse@google.com
Injection-Info: google-groups.googlegroups.com; posting-host=181.93.211.204; posting-account=VJ0GcgoAAABQ5vE-PDWCV3gIubu0nRH2
NNTP-Posting-Host: 181.93.211.204
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <81aeaec1-c250-476d-ad20-5abe3ea258b1n@googlegroups.com>
Subject: Dolphin in WineHQ (for Mac)
From: dcorone...@gmail.com (Diego Coronel)
Injection-Date: Mon, 10 Aug 2020 17:02:34 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
View all headers
Hi,
Does anybody have the winefix.st file?. I would like to make some testing with winehq and crossover and the file is not anymore in OA site. Some years ago I used Wineskin and OA tutorials, they worked but the compatility was not enought for "real world" applications (as far as I could). A that time winehq was at 1.6 version, and now is 5.1, may be is easier or better now. Unfortunately, Wineskin seems to be discontinued, and is not compatibly with recent winehq versions that why I plan to use Crossover.
If anyone is working on something similar, please let me know. Thank you.

Diego Coronel


Subject: Re: Dolphin in WineHQ (for Mac)
From: Baquii
Newsgroups: comp.lang.smalltalk.dolphin
Date: Tue, 11 Aug 2020 10:18 UTC
References: 1
X-Received: by 2002:aed:27c8:: with SMTP id m8mr275529qtg.302.1597141084505;
Tue, 11 Aug 2020 03:18:04 -0700 (PDT)
X-Received: by 2002:a9d:19a3:: with SMTP id k32mr4425560otk.273.1597141084262;
Tue, 11 Aug 2020 03:18:04 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder7.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.smalltalk.dolphin
Date: Tue, 11 Aug 2020 03:18:04 -0700 (PDT)
In-Reply-To: <81aeaec1-c250-476d-ad20-5abe3ea258b1n@googlegroups.com>
Complaints-To: groups-abuse@google.com
Injection-Info: google-groups.googlegroups.com; posting-host=2.110.118.198; posting-account=KFN-QwoAAADbepSJDNFEdfhaL4P57zxF
NNTP-Posting-Host: 2.110.118.198
References: <81aeaec1-c250-476d-ad20-5abe3ea258b1n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <7bad010a-3fee-4ab5-9057-de77b6644a17o@googlegroups.com>
Subject: Re: Dolphin in WineHQ (for Mac)
From: skogstad...@gmail.com (Baquii)
Injection-Date: Tue, 11 Aug 2020 10:18:04 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
View all headers
mandag den 10. august 2020 kl. 19.02.36 UTC+2 skrev Diego Coronel:
Hi,
Does anybody have the winefix.st file?. I would like to make some testing with winehq and crossover and the file is not anymore in OA site. Some years ago I used Wineskin and OA tutorials, they worked but the compatility was not enought for "real world" applications (as far as I could). A that time winehq was at 1.6 version, and now is 5.1, may be is easier or better now.. Unfortunately, Wineskin seems to be discontinued, and is not compatibly with recent winehq versions that why I plan to use Crossover.
If anyone is working on something similar, please let me know. Thank you.

Diego Coronel



Subject: Re: Dolphin in WineHQ (for Mac)
From: Baquii
Newsgroups: comp.lang.smalltalk.dolphin
Date: Tue, 11 Aug 2020 10:21 UTC
References: 1
X-Received: by 2002:ac8:1bb7:: with SMTP id z52mr284004qtj.221.1597141318734;
Tue, 11 Aug 2020 03:21:58 -0700 (PDT)
X-Received: by 2002:a9d:a65:: with SMTP id 92mr1479562otg.282.1597141318437;
Tue, 11 Aug 2020 03:21:58 -0700 (PDT)
Path: i2pn2.org!i2pn.org!aioe.org!peer03.ams4!peer.am4.highwinds-media.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.smalltalk.dolphin
Date: Tue, 11 Aug 2020 03:21:58 -0700 (PDT)
In-Reply-To: <81aeaec1-c250-476d-ad20-5abe3ea258b1n@googlegroups.com>
Complaints-To: groups-abuse@google.com
Injection-Info: google-groups.googlegroups.com; posting-host=2.110.118.198; posting-account=KFN-QwoAAADbepSJDNFEdfhaL4P57zxF
NNTP-Posting-Host: 2.110.118.198
References: <81aeaec1-c250-476d-ad20-5abe3ea258b1n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <05d0b306-aad0-4c0d-8ea7-d12a7337366co@googlegroups.com>
Subject: Re: Dolphin in WineHQ (for Mac)
From: skogstad...@gmail.com (Baquii)
Injection-Date: Tue, 11 Aug 2020 10:21:58 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 25001
X-Received-Body-CRC: 3275152296
View all headers
mandag den 10. august 2020 kl. 19.02.36 UTC+2 skrev Diego Coronel:
Hi,
Does anybody have the winefix.st file?. I would like to make some testing with winehq and crossover and the file is not anymore in OA site. Some years ago I used Wineskin and OA tutorials, they worked but the compatility was not enought for "real world" applications (as far as I could). A that time winehq was at 1.6 version, and now is 5.1, may be is easier or better now.. Unfortunately, Wineskin seems to be discontinued, and is not compatibly with recent winehq versions that why I plan to use Crossover.
If anyone is working on something similar, please let me know. Thank you.

Diego Coronel

Here is my winefix.st version - maybe it will help, it worked for me.


"File in to make Dolphin 6.0x, 6.1x images compatible with Wine"!

"** WF1 ** Label the image as Wine compatible and running under Mac OS/X if applicable"!
!KernelLibrary class methodsFor!

isMacOSX
"Answer true if this image is running under Mac OS/X under WINE"
#wineFix.
^self isWine and: [true]!

isWine
"Answer true if this image is running under WINE"
#wineFix.
^true! !
!KernelLibrary class categoriesFor: #isMacOSX!public!wine fix! !
!KernelLibrary class categoriesFor: #isWine!public!wine fix! !

"** WF2 ** Wine doesn't yet implement EM_SETMARGINS "!
!TextEdit methodsFor!

setMarginWidths: anArray
| margins |
KernelLibrary isWine
ifTrue:
[ #wineFix.
^self].
margins := (DWORD new)
highWord: anArray first;
lowWord: anArray last.
self
sendMessage: EM_SETMARGINS
wParam: (EC_LEFTMARGIN bitOr: EC_RIGHTMARGIN)
lParam: margins asParameter! !
!TextEdit categoriesFor: #setMarginWidths:!accessing!private!wine fix! !

"** WF3 ** Wine doesn't yet implement GDILibrary>>getPaletteEntries:..."!
!IndexedColor methodsFor!

asRGBUsingNoPalette
"Answer the receiver as an RGB  when no palette is available ."

| colorNameMap stdColorName |
#wineFix.
colorNameMap := LookupTable new.
#(#(#black 16r1000000) #(#darkRed 16r1000001) #(#darkGreen 16r1000002) #(#brown 16r1000003) #(#darkBlue 16r1000004) #(#darkMagenta 16r1000005) #(#darkCyan 16r1000006) #(#gray 16r1000007) #(#darkGray 16r100000C) #(#red 16r100000D) #(#green 16r100000E) #(#yellow 16r100000F) #(#blue 16r1000010) #(#magenta 16r1000011) #(#cyan 16r1000012) #(#white 16r1000013))
do: [:each | colorNameMap at: each second put: each first].
stdColorName := colorNameMap at: index.
^RGB stdColor: stdColorName! !
!IndexedColor categoriesFor: #asRGBUsingNoPalette!converting!public!wine fix! !

!IndexedColor methodsFor!

asRGB
"Answer the receiver as an RGB using the default palette."
#wineFix.
KernelLibrary isWine ifTrue: [
^self asRGBUsingNoPalette].
^self asRGBUsingPalette: self defaultPalette! !
!IndexedColor categoriesFor: #asRGBUsingPalette:!converting!public!wine fix! !

"** WF4 ** ListView watermark in system folder causes problems"!
!SmalltalkSystemShell methodsFor!

onViewCreated
"Private - The receiver's has been created (that is the CreateWindow() API call has returned), but may
not yet be connected to the receiver (if the view-presenter pair is being instantiated, then
the connection will not have been made, but if the view is being restored from saved state
in the image then the presenter will be connected). This is an appropriate point for
subclasses to apply any dynamic view configuration that must be performed every time the
view is created. Typically this might involve customising some feature of the view that it
does not itself save, perhaps because a feature of the underlying control does not have full
support in the wrapper class. Note that one should normally override #onViewAvailable to
restore user configuration settings, since the views will normally save and restore all
relevant settings across an image save."

KernelLibrary isWine ifFalse: [
#wineFix.
[self setListViewWatermark] postToMessageQueue].
self registerHotKey.
^super onViewCreated! !
!SmalltalkSystemShell categoriesFor: #onViewCreated!event handling!private!wine fix! !

"** WF5 ** Wine does not support the ComCtrlLibrary>>loadIconWithScaleDown:... method which is normally availble under Vista
and later. Hence we don't allow this to be called even if the Windows version indicates Vista is available"!
!Icon methodsFor!

valueWithHandle: operation forExtent: aPoint
"Private - Evaluate the <monadicValuable>, operation, with a handle for the receiver's icon at the best possible
rendering for the specified extent. On Vista and later platforms the icon will be scaled down from the next largest
icon if the requested size is not available."

| hModule ident |
self handle = self class question handle
ifTrue:
["If the icon failed to load, the standard question icon will have been substituted"
hModule := 0.
ident := self class question identifier]
ifFalse:
[ident := self identifier.
hModule := instanceHandle asParameter].
hModule isNull
ifTrue:
["If loaded from a file or a standard system icon, then need to reload to ensure has correct extent"
instanceHandle isNil
ifTrue:
[(self loadFromFile: self fileSpec extent: aPoint) ifNotNil: [:hIcon | ^operation value: hIcon]]
ifFalse:
[(hModule == 0
and: [aPoint ~= SystemMetrics current largeIconExtent and: [#wineFix.
OSVERSIONINFO current isWinVista & KernelLibrary isWine not ]])
ifTrue:
[(self
load: ident
fromInstance: hModule
extent: aPoint) ifNotNil: [:hIcon | ^operation value: hIcon]]]].
^operation value: self asParameter! !
!Icon categoriesFor: #valueWithHandle:forExtent:!helpers!private!wine fix! !

"** WF6 **  Suppressible message boxes under Wine have a bug where they ignore the buttonStyles #yesNo and #yesNoCancel and will
always answer #ok or #cancel instead. Here we map the return button ids to the correct values"!

!MessageBox methodsFor!

result
"Answer a portable symbolic constant describing the button that was pressed by the user
to close the receiver."

KernelLibrary isWine
ifTrue:
[#wineFix.
"Suppressible message boxes under Wine have a bug where they ignore the buttonStyles #yesNo and #yesNoCancel and will
always answer #ok or #cancel instead. Here we map the return button ids to the correct values"
(self buttonStyle == #yesNo or: [self buttonStyle == #yesNoCancel])
ifTrue:
[button = IDOK ifTrue: [button := IDYES].
button = IDCANCEL ifTrue: [button := IDNO]]].
^ButtonMap at: button! !
!MessageBox categoriesFor: #result!accessing!public!wine fix! !

"** WF7 ** Helper method to edit view resources - will appear in D6.2"!

!ResourceIdentifier methodsFor!

editViewUsing: aMonadicBlock
| view |
view := self loadWithContext: View desktop.
aMonadicBlock value: view.
self assign: view literalStoreArray.
view destroy! !
!ResourceIdentifier categoriesFor: #editViewUsing:!operations!public! !

"** WF8 ** Wine gives error when turning of theming"!
!View methodsFor!

beNotThemed
"Turns off any visual theme for the receiver. Only effective on Windows XP and above"

KernelLibrary isWine ifTrue: [
"Wine currently errors on this, so ignore"
#wineFix.
^self].

ThemeLibrary default
setWindowTheme: self handle
pszSubAppName: '' asUnicodeString
pszSubIdList: '' asUnicodeString! !
!View categoriesFor: #beNotThemed!modes!wine fix!public! !

"** WF9 ** Having autoSelectPackages option turned on in System Browser gives unpleasant scrolling effect when many multiple packages
are selected. This also happens in Package Browser. Problem under Wine traced to LVIS_FOCUSED option in ListView>>selectIndex:. Not
sure  what overall effect it will have turning this off."!

!ListView methodsFor!

selectIndex: anInteger set: aBoolean
"Private - Set/reset the selection state of the object at the specified one-based <integer>
index within the receiver according to the <boolean> argument."

| anLvItem mask |
anLvItem := LVITEM new.
mask := ##(LVIS_SELECTED|LVIS_FOCUSED).
KernelLibrary isWine ifTrue: [
#wineFix.
mask := mask maskClear: LVIS_FOCUSED
].
anLvItem stateMask: mask.
aBoolean ifTrue: [anLvItem dwState: mask].
self lvmSetItem: anInteger - 1 state: anLvItem! !
!ListView categoriesFor: #selectIndex:set:!private!selection! !

"** WF10 ** Wine ListViews seem to expect image indices to always be set in ListView>>onDisplayDetailsRequired:, even if we don't want
images to appear. Normally, we don't set an image if none is required. In Wine we set an image index of 0"!

!ListViewColumn methodsFor!

imageFromRow: item
"Private - Answer the image for this column extracted from the <Object>, item,
which is an element of the receiver's parent <ListView>.
As of Dolphin 3.0 the image block is permitted to be nil for the common case
where the columns does not have images."

KernelLibrary isWine ifTrue: [
#wineFix.
"WF10: Wine ListViews seem to expect image indices to always be set in ListView>>onDisplayDetailsRequired:,
even if we don't want images to appear. Normally, we answer nil here if no image is required.

Click here to read the complete article
Subject: Re: Dolphin in WineHQ (for Mac)
From: Diego Coronel
Newsgroups: comp.lang.smalltalk.dolphin
Date: Mon, 17 Aug 2020 15:55 UTC
References: 1 2
X-Received: by 2002:a05:620a:68c:: with SMTP id f12mr13272318qkh.337.1597679726350; Mon, 17 Aug 2020 08:55:26 -0700 (PDT)
X-Received: by 2002:a05:6808:99a:: with SMTP id a26mr10213686oic.75.1597679725989; Mon, 17 Aug 2020 08:55:25 -0700 (PDT)
Path: i2pn2.org!i2pn.org!aioe.org!peer01.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!feeder1.feed.usenet.farm!feed.usenet.farm!feeder.usenetexpress.com!tr2.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.smalltalk.dolphin
Date: Mon, 17 Aug 2020 08:55:25 -0700 (PDT)
In-Reply-To: <05d0b306-aad0-4c0d-8ea7-d12a7337366co@googlegroups.com>
Complaints-To: groups-abuse@google.com
Injection-Info: google-groups.googlegroups.com; posting-host=181.93.211.204; posting-account=VJ0GcgoAAABQ5vE-PDWCV3gIubu0nRH2
NNTP-Posting-Host: 181.93.211.204
References: <81aeaec1-c250-476d-ad20-5abe3ea258b1n@googlegroups.com> <05d0b306-aad0-4c0d-8ea7-d12a7337366co@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d6cb3c9b-4842-4296-be67-f43ca3e7b25an@googlegroups.com>
Subject: Re: Dolphin in WineHQ (for Mac)
From: dcorone...@gmail.com (Diego Coronel)
Injection-Date: Mon, 17 Aug 2020 15:55:26 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 618
X-Received-Bytes: 26794
X-Received-Body-CRC: 2793645576
View all headers
El martes, 11 de agosto de 2020 a la(s) 07:21:59 UTC-3, Baquii escribió:
mandag den 10. august 2020 kl. 19.02.36 UTC+2 skrev Diego Coronel:
Hi,
Does anybody have the winefix.st file?. I would like to make some testing with winehq and crossover and the file is not anymore in OA site. Some years ago I used Wineskin and OA tutorials, they worked but the compatility was not enought for "real world" applications (as far as I could). A that time winehq was at 1.6 version, and now is 5.1, may be is easier or better now. Unfortunately, Wineskin seems to be discontinued, and is not compatibly with recent winehq versions that why I plan to use Crossover.
If anyone is working on something similar, please let me know. Thank you.

Diego Coronel
Here is my winefix.st version - maybe it will help, it worked for me.


"File in to make Dolphin 6.0x, 6.1x images compatible with Wine"!

"** WF1 ** Label the image as Wine compatible and running under Mac OS/X if applicable"!
!KernelLibrary class methodsFor!

isMacOSX
"Answer true if this image is running under Mac OS/X under WINE"
#wineFix.
^self isWine and: [true]!

isWine
"Answer true if this image is running under WINE"
#wineFix.
^true! !
!KernelLibrary class categoriesFor: #isMacOSX!public!wine fix! !
!KernelLibrary class categoriesFor: #isWine!public!wine fix! !

"** WF2 ** Wine doesn't yet implement EM_SETMARGINS "!
!TextEdit methodsFor!

setMarginWidths: anArray
| margins |
KernelLibrary isWine
ifTrue:
[ #wineFix.
^self].
margins := (DWORD new)
highWord: anArray first;
lowWord: anArray last.
self
sendMessage: EM_SETMARGINS
wParam: (EC_LEFTMARGIN bitOr: EC_RIGHTMARGIN)
lParam: margins asParameter! !
!TextEdit categoriesFor: #setMarginWidths:!accessing!private!wine fix! !

"** WF3 ** Wine doesn't yet implement GDILibrary>>getPaletteEntries:..."!
!IndexedColor methodsFor!

asRGBUsingNoPalette
"Answer the receiver as an RGB when no palette is available ."

| colorNameMap stdColorName |
#wineFix.
colorNameMap := LookupTable new.
#(#(#black 16r1000000) #(#darkRed 16r1000001) #(#darkGreen 16r1000002) #(#brown 16r1000003) #(#darkBlue 16r1000004) #(#darkMagenta 16r1000005) #(#darkCyan 16r1000006) #(#gray 16r1000007) #(#darkGray 16r100000C) #(#red 16r100000D) #(#green 16r100000E) #(#yellow 16r100000F) #(#blue 16r1000010) #(#magenta 16r1000011) #(#cyan 16r1000012) #(#white 16r1000013))
do: [:each | colorNameMap at: each second put: each first].
stdColorName := colorNameMap at: index.
^RGB stdColor: stdColorName! !
!IndexedColor categoriesFor: #asRGBUsingNoPalette!converting!public!wine fix! !

!IndexedColor methodsFor!

asRGB
"Answer the receiver as an RGB using the default palette."
#wineFix.
KernelLibrary isWine ifTrue: [
^self asRGBUsingNoPalette].
^self asRGBUsingPalette: self defaultPalette! !
!IndexedColor categoriesFor: #asRGBUsingPalette:!converting!public!wine fix! !

"** WF4 ** ListView watermark in system folder causes problems"!
!SmalltalkSystemShell methodsFor!

onViewCreated
"Private - The receiver's has been created (that is the CreateWindow() API call has returned), but may
not yet be connected to the receiver (if the view-presenter pair is being instantiated, then
the connection will not have been made, but if the view is being restored from saved state
in the image then the presenter will be connected). This is an appropriate point for
subclasses to apply any dynamic view configuration that must be performed every time the
view is created. Typically this might involve customising some feature of the view that it
does not itself save, perhaps because a feature of the underlying control does not have full
support in the wrapper class. Note that one should normally override #onViewAvailable to
restore user configuration settings, since the views will normally save and restore all
relevant settings across an image save."

KernelLibrary isWine ifFalse: [
#wineFix.
[self setListViewWatermark] postToMessageQueue].
self registerHotKey.
^super onViewCreated! !
!SmalltalkSystemShell categoriesFor: #onViewCreated!event handling!private!wine fix! !

"** WF5 ** Wine does not support the ComCtrlLibrary>>loadIconWithScaleDown:.. method which is normally availble under Vista
and later. Hence we don't allow this to be called even if the Windows version indicates Vista is available"!
!Icon methodsFor!

valueWithHandle: operation forExtent: aPoint
"Private - Evaluate the <monadicValuable>, operation, with a handle for the receiver's icon at the best possible
rendering for the specified extent. On Vista and later platforms the icon will be scaled down from the next largest
icon if the requested size is not available."

| hModule ident |
self handle = self class question handle
ifTrue:
["If the icon failed to load, the standard question icon will have been substituted"
hModule := 0.
ident := self class question identifier]
ifFalse:
[ident := self identifier.
hModule := instanceHandle asParameter].
hModule isNull
ifTrue:
["If loaded from a file or a standard system icon, then need to reload to ensure has correct extent"
instanceHandle isNil
ifTrue:
[(self loadFromFile: self fileSpec extent: aPoint) ifNotNil: [:hIcon | ^operation value: hIcon]]
ifFalse:
[(hModule == 0
and: [aPoint ~= SystemMetrics current largeIconExtent and: [#wineFix.
OSVERSIONINFO current isWinVista & KernelLibrary isWine not ]])
ifTrue:
[(self
load: ident
fromInstance: hModule
extent: aPoint) ifNotNil: [:hIcon | ^operation value: hIcon]]]].
^operation value: self asParameter! !
!Icon categoriesFor: #valueWithHandle:forExtent:!helpers!private!wine fix! !

"** WF6 ** Suppressible message boxes under Wine have a bug where they ignore the buttonStyles #yesNo and #yesNoCancel and will
always answer #ok or #cancel instead. Here we map the return button ids to the correct values"!

!MessageBox methodsFor!

result
"Answer a portable symbolic constant describing the button that was pressed by the user
to close the receiver."

KernelLibrary isWine
ifTrue:
[#wineFix.
"Suppressible message boxes under Wine have a bug where they ignore the buttonStyles #yesNo and #yesNoCancel and will
always answer #ok or #cancel instead. Here we map the return button ids to the correct values"
(self buttonStyle == #yesNo or: [self buttonStyle == #yesNoCancel])
ifTrue:
[button = IDOK ifTrue: [button := IDYES].
button = IDCANCEL ifTrue: [button := IDNO]]].
^ButtonMap at: button! !
!MessageBox categoriesFor: #result!accessing!public!wine fix! !

"** WF7 ** Helper method to edit view resources - will appear in D6.2"!

!ResourceIdentifier methodsFor!

editViewUsing: aMonadicBlock
| view |
view := self loadWithContext: View desktop.
aMonadicBlock value: view.
self assign: view literalStoreArray.
view destroy! !
!ResourceIdentifier categoriesFor: #editViewUsing:!operations!public! !

"** WF8 ** Wine gives error when turning of theming"!
!View methodsFor!

beNotThemed
"Turns off any visual theme for the receiver. Only effective on Windows XP and above"

KernelLibrary isWine ifTrue: [
"Wine currently errors on this, so ignore"
#wineFix.
^self].

ThemeLibrary default
setWindowTheme: self handle
pszSubAppName: '' asUnicodeString
pszSubIdList: '' asUnicodeString! !
!View categoriesFor: #beNotThemed!modes!wine fix!public! !

"** WF9 ** Having autoSelectPackages option turned on in System Browser gives unpleasant scrolling effect when many multiple packages
are selected. This also happens in Package Browser. Problem under Wine traced to LVIS_FOCUSED option in ListView>>selectIndex:. Not
sure what overall effect it will have turning this off."!

!ListView methodsFor!

selectIndex: anInteger set: aBoolean
"Private - Set/reset the selection state of the object at the specified one-based <integer>
index within the receiver according to the <boolean> argument."

| anLvItem mask |
anLvItem := LVITEM new.
mask := ##(LVIS_SELECTED|LVIS_FOCUSED).
KernelLibrary isWine ifTrue: [
#wineFix.
mask := mask maskClear: LVIS_FOCUSED
].
anLvItem stateMask: mask.
aBoolean ifTrue: [anLvItem dwState: mask].
self lvmSetItem: anInteger - 1 state: anLvItem! !
!ListView categoriesFor: #selectIndex:set:!private!selection! !

"** WF10 ** Wine ListViews seem to expect image indices to always be set in ListView>>onDisplayDetailsRequired:, even if we don't want
images to appear. Normally, we don't set an image if none is required. In Wine we set an image index of 0"!

!ListViewColumn methodsFor!

imageFromRow: item
"Private - Answer the image for this column extracted from the <Object>, item,
which is an element of the receiver's parent <ListView>.
As of Dolphin 3.0 the image block is permitted to be nil for the common case
where the columns does not have images."

KernelLibrary isWine ifTrue: [
#wineFix.
"WF10: Wine ListViews seem to expect image indices to always be set in ListView>>onDisplayDetailsRequired:,
even if we don't want images to appear. Normally, we answer nil here if no image is required.

Click here to read the complete article
1
rocksolid light 0.7.2
clearneti2ptor