--- a/WinWorkstation.st Fri Sep 08 15:41:38 2006 +0200
+++ b/WinWorkstation.st Fri Sep 08 16:18:40 2006 +0200
@@ -6421,188 +6421,195 @@
int arg;
if (__isSmallInteger(aNumberOrSymbol)) {
- arg = __intVal(aNumberOrSymbol);
+ arg = __intVal(aNumberOrSymbol);
} else if ((aNumberOrSymbol == @symbol(swapButton)) || (aNumberOrSymbol == @symbol(SM_SWAPBUTTON))) {
- arg = SM_SWAPBUTTON;
- isBool = 1;
+ arg = SM_SWAPBUTTON;
+ isBool = 1;
} else if ((aNumberOrSymbol == @symbol(mousePresent)) || (aNumberOrSymbol == @symbol(SM_MOUSEPRESENT))) {
- arg = SM_MOUSEPRESENT;
- isBool = 1;
+ arg = SM_MOUSEPRESENT;
+ isBool = 1;
} else if ((aNumberOrSymbol == @symbol(mouseButtons)) || (aNumberOrSymbol == @symbol(SM_CMOUSEBUTTONS))) {
- arg = SM_CMOUSEBUTTONS;
+ arg = SM_CMOUSEBUTTONS;
} else if ((aNumberOrSymbol == @symbol(iconWidth)) || (aNumberOrSymbol == @symbol(SM_CXICON))) {
- arg = SM_CXICON;
+ arg = SM_CXICON;
} else if ((aNumberOrSymbol == @symbol(iconHeight)) || (aNumberOrSymbol == @symbol(SM_CYICON))) {
- arg = SM_CYICON;
+ arg = SM_CYICON;
} else if ((aNumberOrSymbol == @symbol(iconWidth)) || (aNumberOrSymbol == @symbol(SM_CXDOUBLECLK))) {
- arg = SM_CXDOUBLECLK;
+ arg = SM_CXDOUBLECLK;
} else if ((aNumberOrSymbol == @symbol(iconHeight)) || (aNumberOrSymbol == @symbol(SM_CYDOUBLECLK))) {
- arg = SM_CYDOUBLECLK;
+ arg = SM_CYDOUBLECLK;
} else if ((aNumberOrSymbol == @symbol(cursorWidth)) || (aNumberOrSymbol == @symbol(SM_CXCURSOR))) {
- arg = SM_CXCURSOR;
+ arg = SM_CXCURSOR;
} else if ((aNumberOrSymbol == @symbol(cursorHeight)) || (aNumberOrSymbol == @symbol(SM_CYCURSOR))) {
- arg = SM_CYCURSOR;
+ arg = SM_CYCURSOR;
} else if ((aNumberOrSymbol == @symbol(captionHeight)) || (aNumberOrSymbol == @symbol(SM_CYCAPTION))) {
- arg = SM_CYCAPTION;
+ arg = SM_CYCAPTION;
} else if ((aNumberOrSymbol == @symbol(resizeFrameWidth)) || (aNumberOrSymbol == @symbol(SM_CXFRAME))) {
- arg = SM_CXFRAME;
+ arg = SM_CXFRAME;
} else if ((aNumberOrSymbol == @symbol(resizeFrameHeight)) || (aNumberOrSymbol == @symbol(SM_CYFRAME))) {
- arg = SM_CYFRAME;
+ arg = SM_CYFRAME;
} else if ((aNumberOrSymbol == @symbol(borderFrameWidth)) || (aNumberOrSymbol == @symbol(SM_CXBORDER))) {
- arg = SM_CXBORDER;
+ arg = SM_CXBORDER;
} else if ((aNumberOrSymbol == @symbol(borderFrameHeight)) || (aNumberOrSymbol == @symbol(SM_CYBORDER))) {
- arg = SM_CYBORDER;
+ arg = SM_CYBORDER;
} else if (aNumberOrSymbol == @symbol(SM_CXDLGFRAME)) {
- arg = SM_CXDLGFRAME;
+ arg = SM_CXDLGFRAME;
} else if (aNumberOrSymbol == @symbol(SM_CYDLGFRAME)) {
- arg = SM_CYDLGFRAME;
+ arg = SM_CYDLGFRAME;
} else if ((aNumberOrSymbol == @symbol(fullScreenWindowWidth)) || (aNumberOrSymbol == @symbol(SM_CXFULLSCREEN))) {
- arg = SM_CXFULLSCREEN;
+ arg = SM_CXFULLSCREEN;
} else if ((aNumberOrSymbol == @symbol(fullScreenWindowHeight)) || (aNumberOrSymbol == @symbol(SM_CYFULLSCREEN))) {
- arg = SM_CYFULLSCREEN;
+ arg = SM_CYFULLSCREEN;
} else if ((aNumberOrSymbol == @symbol(screenWidth)) || (aNumberOrSymbol == @symbol(SM_CXSCREEN))) {
- arg = SM_CXSCREEN;
+ arg = SM_CXSCREEN;
} else if ((aNumberOrSymbol == @symbol(screenHeight)) || (aNumberOrSymbol == @symbol(SM_CYSCREEN))) {
- arg = SM_CYSCREEN;
+ arg = SM_CYSCREEN;
} else if ((aNumberOrSymbol == @symbol(minWindowWidth)) || (aNumberOrSymbol == @symbol(SM_CXMIN))) {
- arg = SM_CXMIN;
+ arg = SM_CXMIN;
} else if ((aNumberOrSymbol == @symbol(minWindowHeight)) || (aNumberOrSymbol == @symbol(SM_CYMIN))) {
- arg = SM_CYMIN;
+ arg = SM_CYMIN;
} else if ((aNumberOrSymbol == @symbol(vScrollbarWidth)) || (aNumberOrSymbol == @symbol(SM_CXVSCROLL))) {
- arg = SM_CXVSCROLL;
+ arg = SM_CXVSCROLL;
} else if ((aNumberOrSymbol == @symbol(hScrollbarHeight)) || (aNumberOrSymbol == @symbol(SM_CYHSCROLL))) {
- arg = SM_CYHSCROLL;
+ arg = SM_CYHSCROLL;
} else if ((aNumberOrSymbol == @symbol(vThumbHeight)) || (aNumberOrSymbol == @symbol(SM_CYVTHUMB))) {
- arg = SM_CYVTHUMB;
+ arg = SM_CYVTHUMB;
} else if ((aNumberOrSymbol == @symbol(hThumbWidth)) || (aNumberOrSymbol == @symbol(SM_CXHTHUMB))) {
- arg = SM_CXHTHUMB;
+ arg = SM_CXHTHUMB;
} else if ((aNumberOrSymbol == @symbol(SM_CXSIZE))) {
- arg = SM_CXSIZE;
+ arg = SM_CXSIZE;
} else if ((aNumberOrSymbol == @symbol(SM_CYSIZE))) {
- arg = SM_CYSIZE;
+ arg = SM_CYSIZE;
} else if ((aNumberOrSymbol == @symbol(SM_CYVSCROLL))) {
- arg = SM_CYVSCROLL;
+ arg = SM_CYVSCROLL;
} else if ((aNumberOrSymbol == @symbol(SM_CXHSCROLL))) {
- arg = SM_CXHSCROLL;
+ arg = SM_CXHSCROLL;
} else if ((aNumberOrSymbol == @symbol(SM_CXMINTRACK))) {
- arg = SM_CXMINTRACK;
+ arg = SM_CXMINTRACK;
} else if ((aNumberOrSymbol == @symbol(SM_CYMINTRACK))) {
- arg = SM_CYMINTRACK;
+ arg = SM_CYMINTRACK;
} else if ((aNumberOrSymbol == @symbol(SM_CXICONSPACING))) {
- arg = SM_CXICONSPACING;
+ arg = SM_CXICONSPACING;
} else if ((aNumberOrSymbol == @symbol(SM_CYICONSPACING))) {
- arg = SM_CYICONSPACING;
+ arg = SM_CYICONSPACING;
} else if ((aNumberOrSymbol == @symbol(SM_CYMENU))) {
- arg = SM_CYMENU;
+ arg = SM_CYMENU;
} else if ((aNumberOrSymbol == @symbol(SM_MENUDROPALIGNMENT))) {
- arg = SM_MENUDROPALIGNMENT;
+ arg = SM_MENUDROPALIGNMENT;
} else if ((aNumberOrSymbol == @symbol(SM_PENWINDOWS))) {
- arg = SM_PENWINDOWS;
+ arg = SM_PENWINDOWS;
} else if ((aNumberOrSymbol == @symbol(SM_DBCSENABLED))) {
- arg = SM_DBCSENABLED;
+ arg = SM_DBCSENABLED;
} else if ((aNumberOrSymbol == @symbol(SM_CXFIXEDFRAME))) {
- arg = SM_CXFIXEDFRAME;
+ arg = SM_CXFIXEDFRAME;
} else if ((aNumberOrSymbol == @symbol(SM_CYFIXEDFRAME))) {
- arg = SM_CYFIXEDFRAME;
+ arg = SM_CYFIXEDFRAME;
} else if ((aNumberOrSymbol == @symbol(SM_CXSIZEFRAME))) {
- arg = SM_CXSIZEFRAME;
+ arg = SM_CXSIZEFRAME;
} else if ((aNumberOrSymbol == @symbol(SM_CYSIZEFRAME))) {
- arg = SM_CYSIZEFRAME;
+ arg = SM_CYSIZEFRAME;
} else if ((aNumberOrSymbol == @symbol(SM_CYKANJIWINDOW))) {
- arg = SM_CYKANJIWINDOW;
+ arg = SM_CYKANJIWINDOW;
} else if ((aNumberOrSymbol == @symbol(SM_SECURE))) {
- arg = SM_SECURE;
+ arg = SM_SECURE;
} else if ((aNumberOrSymbol == @symbol(SM_CXEDGE))) {
- arg = SM_CXEDGE;
+ arg = SM_CXEDGE;
} else if ((aNumberOrSymbol == @symbol(SM_CYEDGE))) {
- arg = SM_CYEDGE;
+ arg = SM_CYEDGE;
} else if ((aNumberOrSymbol == @symbol(SM_CXMINSPACING))) {
- arg = SM_CXMINSPACING;
+ arg = SM_CXMINSPACING;
} else if ((aNumberOrSymbol == @symbol(SM_CYMINSPACING))) {
- arg = SM_CYMINSPACING;
+ arg = SM_CYMINSPACING;
} else if ((aNumberOrSymbol == @symbol(SM_CXSMICON))) {
- arg = SM_CXSMICON;
+ arg = SM_CXSMICON;
} else if ((aNumberOrSymbol == @symbol(SM_CYSMICON))) {
- arg = SM_CYSMICON;
+ arg = SM_CYSMICON;
} else if ((aNumberOrSymbol == @symbol(SM_CYSMCAPTION))) {
- arg = SM_CYSMCAPTION;
+ arg = SM_CYSMCAPTION;
} else if ((aNumberOrSymbol == @symbol(SM_CXSMSIZE))) {
- arg = SM_CXSMSIZE;
+ arg = SM_CXSMSIZE;
} else if ((aNumberOrSymbol == @symbol(SM_CYSMSIZE))) {
- arg = SM_CYSMSIZE;
+ arg = SM_CYSMSIZE;
} else if ((aNumberOrSymbol == @symbol(SM_CXMENUSIZE))) {
- arg = SM_CXMENUSIZE;
+ arg = SM_CXMENUSIZE;
} else if ((aNumberOrSymbol == @symbol(SM_CYMENUSIZE))) {
- arg = SM_CYMENUSIZE;
+ arg = SM_CYMENUSIZE;
} else if ((aNumberOrSymbol == @symbol(SM_ARRANGE))) {
- arg = SM_ARRANGE;
+ arg = SM_ARRANGE;
} else if ((aNumberOrSymbol == @symbol(SM_CXMINIMIZED))) {
- arg = SM_CXMINIMIZED;
+ arg = SM_CXMINIMIZED;
} else if ((aNumberOrSymbol == @symbol(SM_CYMINIMIZED))) {
- arg = SM_CYMINIMIZED;
+ arg = SM_CYMINIMIZED;
} else if ((aNumberOrSymbol == @symbol(SM_CXMAXTRACK))) {
- arg = SM_CXMAXTRACK;
+ arg = SM_CXMAXTRACK;
} else if ((aNumberOrSymbol == @symbol(SM_CYMAXTRACK))) {
- arg = SM_CYMAXTRACK;
+ arg = SM_CYMAXTRACK;
} else if ((aNumberOrSymbol == @symbol(SM_CXMAXIMIZED))) {
- arg = SM_CXMAXIMIZED;
+ arg = SM_CXMAXIMIZED;
} else if ((aNumberOrSymbol == @symbol(SM_CYMAXIMIZED))) {
- arg = SM_CYMAXIMIZED;
+ arg = SM_CYMAXIMIZED;
} else if ((aNumberOrSymbol == @symbol(SM_NETWORK))) {
- arg = SM_NETWORK;
+ arg = SM_NETWORK;
} else if ((aNumberOrSymbol == @symbol(SM_CXDRAG))) {
- arg = SM_CXDRAG;
+ arg = SM_CXDRAG;
} else if ((aNumberOrSymbol == @symbol(SM_CYDRAG))) {
- arg = SM_CYDRAG;
+ arg = SM_CYDRAG;
} else if ((aNumberOrSymbol == @symbol(SM_NETWORK))) {
- arg = SM_NETWORK;
+ arg = SM_NETWORK;
} else if ((aNumberOrSymbol == @symbol(SM_SHOWSOUNDS))) {
- arg = SM_SHOWSOUNDS;
+ arg = SM_SHOWSOUNDS;
} else if ((aNumberOrSymbol == @symbol(SM_CXMENUCHECK))) {
- arg = SM_CXMENUCHECK;
+ arg = SM_CXMENUCHECK;
} else if ((aNumberOrSymbol == @symbol(SM_CYMENUCHECK))) {
- arg = SM_CYMENUCHECK;
+ arg = SM_CYMENUCHECK;
} else if ((aNumberOrSymbol == @symbol(SM_SLOWMACHINE))) {
- arg = SM_SLOWMACHINE;
+ arg = SM_SLOWMACHINE;
} else if ((aNumberOrSymbol == @symbol(SM_MIDEASTENABLED))) {
- arg = SM_MIDEASTENABLED;
+ arg = SM_MIDEASTENABLED;
} else if ((aNumberOrSymbol == @symbol(SM_MOUSEWHEELPRESENT))) {
- arg = SM_MOUSEWHEELPRESENT;
+ arg = SM_MOUSEWHEELPRESENT;
} else if ((aNumberOrSymbol == @symbol(SM_XVIRTUALSCREEN))) {
- arg = SM_XVIRTUALSCREEN;
+ arg = SM_XVIRTUALSCREEN;
} else if ((aNumberOrSymbol == @symbol(SM_YVIRTUALSCREEN))) {
- arg = SM_YVIRTUALSCREEN;
+ arg = SM_YVIRTUALSCREEN;
} else if ((aNumberOrSymbol == @symbol(SM_CXVIRTUALSCREEN))) {
- arg = SM_CXVIRTUALSCREEN;
+ arg = SM_CXVIRTUALSCREEN;
} else if ((aNumberOrSymbol == @symbol(SM_CYVIRTUALSCREEN))) {
- arg = SM_CYVIRTUALSCREEN;
+ arg = SM_CYVIRTUALSCREEN;
} else if ((aNumberOrSymbol == @symbol(SM_CMONITORS))) {
- arg = SM_CMONITORS;
+ arg = SM_CMONITORS;
} else if ((aNumberOrSymbol == @symbol(SM_SAMEDISPLAYFORMAT))) {
- arg = SM_SAMEDISPLAYFORMAT;
+ arg = SM_SAMEDISPLAYFORMAT;
#ifdef SM_IMMENABLED
} else if ((aNumberOrSymbol == @symbol(SM_IMMENABLED))) {
- arg = SM_IMMENABLED;
+ arg = SM_IMMENABLED;
#endif
} else if ((aNumberOrSymbol == @symbol(SM_DEBUG))) {
- arg = SM_DEBUG;
+ arg = SM_DEBUG;
#ifdef SM_REMOTESESSION
} else if ((aNumberOrSymbol == @symbol(SM_REMOTESESSION))) {
- arg = SM_REMOTESESSION;
+ arg = SM_REMOTESESSION;
#endif
} else {
- RETURN (nil);
+ RETURN (nil);
}
info = GetSystemMetrics(arg);
if (isBool) {
- RETURN (info ? true : false);
+ RETURN (info ? true : false);
}
RETURN (__MKSMALLINT(info));
%}
"
Screen current getSystemMetrics:#SM_MOUSEWHEELPRESENT
Screen current getSystemMetrics:#SM_ARRANGE
- "
+ Screen current getSystemMetrics:#SM_XVIRTUALSCREEN
+ Screen current getSystemMetrics:#SM_CXVIRTUALSCREEN
+ Screen current getSystemMetrics:#SM_CYVIRTUALSCREEN
+ Screen current getSystemMetrics:#SM_CMONITORS
+ Screen current getSystemMetrics:#SM_SAMEDISPLAYFORMAT
+ "
+
+ "Modified: / 08-09-2006 / 15:36:32 / cg"
!
getSystemParametersInfo:aNumberOrSymbol
@@ -7133,7 +7140,9 @@
"return the height in pixels of any caption (title-bar) in
standard topWindows."
- ^ self getSystemMetrics:#captionHeight
+ ^ self getSystemMetrics:#SM_CYCAPTION
+
+ "Modified: / 08-09-2006 / 15:39:24 / cg"
!
iconSizes
@@ -7141,8 +7150,8 @@
|d w h|
- w := self getSystemMetrics:#iconWidth.
- h := self getSystemMetrics:#iconHeight.
+ w := self getSystemMetrics:#SM_CXICON.
+ h := self getSystemMetrics:#SM_CYICON.
d := IdentityDictionary new.
d at:#minWidth put:w.
@@ -7155,8 +7164,10 @@
^ OrderedCollection with:d
"
- Display iconSizes
- "
+ Display iconSizes
+ "
+
+ "Modified: / 08-09-2006 / 15:40:18 / cg"
!
preferredIconSize
@@ -7278,13 +7289,22 @@
Normally, the same as extent, but may be smaller, in
case some menu space is taken up by the window manager (windows)"
- ^ (self getSystemMetrics:#fullScreenWindowWidth)
- @
- (self getSystemMetrics:#fullScreenWindowHeight)
-
- "
- Display usableExtent
- "
+ |w h |
+
+ w := self getSystemMetrics:#SM_CXVIRTUALSCREEN.
+ h := self getSystemMetrics:#SM_CYVIRTUALSCREEN.
+ (w isNil or:[h isNil]) ifTrue:[
+ "/ not supported under win95 and win-nt4 - fallback to real extent
+ w := self getSystemMetrics:#SM_CXFULLSCREEN.
+ h := self getSystemMetrics:#SM_CYFULLSCREEN.
+ ].
+ ^ w @ h.
+
+ "
+ Display usableExtent
+ "
+
+ "Modified: / 08-09-2006 / 16:18:49 / cg"
! !
!WinWorkstation methodsFor:'bitmap/window creation'!
@@ -7662,7 +7682,6 @@
%}
!
-
primCreateBitmapFromArray:anArray width:w height:h
%{
@@ -8981,8 +9000,8 @@
|padding bpl bplPadded srcOffs dstOffs
src mask srcPadded maskPadded cW cH nB nR cursor |
- cW := self getSystemMetrics:#cursorWidth.
- cH := self getSystemMetrics:#cursorHeight.
+ cW := self getSystemMetrics:#SM_CXCURSOR.
+ cH := self getSystemMetrics:#SM_CYCURSOR.
"/ ('cursorWidth ',cW printString,'cursorHeight ',cH printString) infoPrintCR.
src := sourceBytes.
@@ -8994,50 +9013,52 @@
bplPadded := (cW + padding - 1) // padding * 2.
bpl ~~ bplPadded ifTrue:[
- "/ 'repad cursor bits' infoPrintCR.
- srcPadded := ByteArray new:(bplPadded * cH).
- nB := bpl min: bplPadded.
- nR := cH min: h.
-
- dstOffs := srcOffs := 1.
- 1 to:nR do:[:row |
- srcPadded
- replaceFrom:dstOffs
- to:(dstOffs+nB-1)
- with:src
- startingAt:srcOffs.
- dstOffs := dstOffs + bplPadded.
- srcOffs := srcOffs + bpl.
- ].
-
- maskPadded := ByteArray new:(bplPadded * cH).
- dstOffs := srcOffs := 1.
- 1 to:nR do:[:row |
- maskPadded
- replaceFrom:dstOffs
- to:(dstOffs+nB-1)
- with:mask
- startingAt:srcOffs.
- dstOffs := dstOffs + bplPadded.
- srcOffs := srcOffs + bpl.
- ].
- src := srcPadded.
- mask := maskPadded.
+ "/ 'repad cursor bits' infoPrintCR.
+ srcPadded := ByteArray new:(bplPadded * cH).
+ nB := bpl min: bplPadded.
+ nR := cH min: h.
+
+ dstOffs := srcOffs := 1.
+ 1 to:nR do:[:row |
+ srcPadded
+ replaceFrom:dstOffs
+ to:(dstOffs+nB-1)
+ with:src
+ startingAt:srcOffs.
+ dstOffs := dstOffs + bplPadded.
+ srcOffs := srcOffs + bpl.
+ ].
+
+ maskPadded := ByteArray new:(bplPadded * cH).
+ dstOffs := srcOffs := 1.
+ 1 to:nR do:[:row |
+ maskPadded
+ replaceFrom:dstOffs
+ to:(dstOffs+nB-1)
+ with:mask
+ startingAt:srcOffs.
+ dstOffs := dstOffs + bplPadded.
+ srcOffs := srcOffs + bpl.
+ ].
+ src := srcPadded.
+ mask := maskPadded.
].
src invert.
1 to:src size do:[:index |
- src byteAt:index put:((src byteAt:index) bitAnd:(mask byteAt:index)).
+ src byteAt:index put:((src byteAt:index) bitAnd:(mask byteAt:index)).
].
mask invert.
cursor := self
- primCreateCursorSourceBits:src
- maskBits:mask
- hotX:hx hotY:hy
- width:cW height:cH.
+ primCreateCursorSourceBits:src
+ maskBits:mask
+ hotX:hx hotY:hy
+ width:cW height:cH.
cursor notNil ifTrue:[^ cursor ].
'WinWorkstation [warning]: could not create bitmap cursor' infoPrintCR.
+
+ "Modified: / 08-09-2006 / 15:39:42 / cg"
!
cursorBitmapPadding
@@ -16858,7 +16879,7 @@
!WinWorkstation class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libview/WinWorkstation.st,v 1.328 2006-07-28 21:44:57 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libview/WinWorkstation.st,v 1.329 2006-09-08 14:18:40 cg Exp $'
! !
WinWorkstation initialize!