WinWorkstation.st
changeset 4575 e082b3fa71c8
parent 4539 d3aeb93c103b
child 4576 04bf0d3a0ddd
--- 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!