*** empty log message ***
authorClaus Gittinger <cg@exept.de>
Thu, 05 Sep 2002 18:24:32 +0200
changeset 3721 c3e5152a3b66
parent 3720 746e0a7b1475
child 3722 61a5935d6c3e
*** empty log message ***
WinWorkstation.st
--- a/WinWorkstation.st	Thu Sep 05 18:16:34 2002 +0200
+++ b/WinWorkstation.st	Thu Sep 05 18:24:32 2002 +0200
@@ -5916,8 +5916,8 @@
 !
 
 getSystemMetrics:aNumberOrSymbol
-    "get a system metrics value; the argument is a #define-like symbol
-     as described in the windows API;
+    "get a system metrics value; 
+     the argument is a #define-like symbol as described in the windows API;
      However, to allow for future values to be retrieved, also allow an integer
      which must be the define-value."
 
@@ -5927,70 +5927,262 @@
     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;
+    } else if (aNumberOrSymbol == @symbol(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;
+    } else if ((aNumberOrSymbol == @symbol(SM_CXHSCROLL))) {
+        arg = SM_CXHSCROLL;
+    } else if ((aNumberOrSymbol == @symbol(SM_CXMINTRACK))) {
+        arg = SM_CXMINTRACK;
+    } else if ((aNumberOrSymbol == @symbol(SM_CYMINTRACK))) {
+        arg = SM_CYMINTRACK;
+    } else if ((aNumberOrSymbol == @symbol(SM_CXICONSPACING))) {
+        arg = SM_CXICONSPACING;
+    } else if ((aNumberOrSymbol == @symbol(SM_CYICONSPACING))) {
+        arg = SM_CYICONSPACING;
+    } else if ((aNumberOrSymbol == @symbol(SM_CYMENU))) {
+        arg = SM_CYMENU;
+    } else if ((aNumberOrSymbol == @symbol(SM_MENUDROPALIGNMENT))) {
+        arg = SM_MENUDROPALIGNMENT;
+    } else if ((aNumberOrSymbol == @symbol(SM_PENWINDOWS))) {
+        arg = SM_PENWINDOWS;
+    } else if ((aNumberOrSymbol == @symbol(SM_DBCSENABLED))) {
+        arg = SM_DBCSENABLED;
+    } else if ((aNumberOrSymbol == @symbol(SM_CXFIXEDFRAME))) {
+        arg = SM_CXFIXEDFRAME;
+    } else if ((aNumberOrSymbol == @symbol(SM_CYFIXEDFRAME))) {
+        arg = SM_CYFIXEDFRAME;
+    } else if ((aNumberOrSymbol == @symbol(SM_CXSIZEFRAME))) {
+        arg = SM_CXSIZEFRAME;
+    } else if ((aNumberOrSymbol == @symbol(SM_CYSIZEFRAME))) {
+        arg = SM_CYSIZEFRAME;
+    } else if ((aNumberOrSymbol == @symbol(SM_CYKANJIWINDOW))) {
+        arg = SM_CYKANJIWINDOW;
+    } else if ((aNumberOrSymbol == @symbol(SM_SECURE))) {
+        arg = SM_SECURE;
+    } else if ((aNumberOrSymbol == @symbol(SM_CXEDGE))) {
+        arg = SM_CXEDGE;
+    } else if ((aNumberOrSymbol == @symbol(SM_CYEDGE))) {
+        arg = SM_CYEDGE;
+    } else if ((aNumberOrSymbol == @symbol(SM_CXMINSPACING))) {
+        arg = SM_CXMINSPACING;
+    } else if ((aNumberOrSymbol == @symbol(SM_CYMINSPACING))) {
+        arg = SM_CYMINSPACING;
+    } else if ((aNumberOrSymbol == @symbol(SM_CXSMICON))) {
+        arg = SM_CXSMICON;
+    } else if ((aNumberOrSymbol == @symbol(SM_CYSMICON))) {
+        arg = SM_CYSMICON;
+    } else if ((aNumberOrSymbol == @symbol(SM_CYSMCAPTION))) {
+        arg = SM_CYSMCAPTION;
+    } else if ((aNumberOrSymbol == @symbol(SM_CXSMSIZE))) {
+        arg = SM_CXSMSIZE;
+    } else if ((aNumberOrSymbol == @symbol(SM_CYSMSIZE))) {
+        arg = SM_CYSMSIZE;
+    } else if ((aNumberOrSymbol == @symbol(SM_CXMENUSIZE))) {
+        arg = SM_CXMENUSIZE;
+    } else if ((aNumberOrSymbol == @symbol(SM_CYMENUSIZE))) {
+        arg = SM_CYMENUSIZE;
+    } else if ((aNumberOrSymbol == @symbol(SM_ARRANGE))) {
+        arg = SM_ARRANGE;
+    } else if ((aNumberOrSymbol == @symbol(SM_CXMINIMIZED))) {
+        arg = SM_CXMINIMIZED;
+    } else if ((aNumberOrSymbol == @symbol(SM_CYMINIMIZED))) {
+        arg = SM_CYMINIMIZED;
+    } else if ((aNumberOrSymbol == @symbol(SM_CXMAXTRACK))) {
+        arg = SM_CXMAXTRACK;
+    } else if ((aNumberOrSymbol == @symbol(SM_CYMAXTRACK))) {
+        arg = SM_CYMAXTRACK;
+    } else if ((aNumberOrSymbol == @symbol(SM_CXMAXIMIZED))) {
+        arg = SM_CXMAXIMIZED;
+    } else if ((aNumberOrSymbol == @symbol(SM_CYMAXIMIZED))) {
+        arg = SM_CYMAXIMIZED;
+    } else if ((aNumberOrSymbol == @symbol(SM_NETWORK))) {
+        arg = SM_NETWORK;
+    } else if ((aNumberOrSymbol == @symbol(SM_CXDRAG))) {
+        arg = SM_CXDRAG;
+    } else if ((aNumberOrSymbol == @symbol(SM_CYDRAG))) {
+        arg = SM_CYDRAG;
+    } else if ((aNumberOrSymbol == @symbol(SM_NETWORK))) {
+        arg = SM_NETWORK;
+    } else if ((aNumberOrSymbol == @symbol(SM_SHOWSOUNDS))) {
+        arg = SM_SHOWSOUNDS;
+    } else if ((aNumberOrSymbol == @symbol(SM_CXMENUCHECK))) {
+        arg = SM_CXMENUCHECK;
+    } else if ((aNumberOrSymbol == @symbol(SM_CYMENUCHECK))) {
+        arg = SM_CYMENUCHECK;
+    } else if ((aNumberOrSymbol == @symbol(SM_SLOWMACHINE))) {
+        arg = SM_SLOWMACHINE;
+    } else if ((aNumberOrSymbol == @symbol(SM_MIDEASTENABLED))) {
+        arg = SM_MIDEASTENABLED;
+    } else if ((aNumberOrSymbol == @symbol(SM_MOUSEWHEELPRESENT))) {
+        arg = SM_MOUSEWHEELPRESENT;
+    } else if ((aNumberOrSymbol == @symbol(SM_XVIRTUALSCREEN))) {
+        arg = SM_XVIRTUALSCREEN;
+    } else if ((aNumberOrSymbol == @symbol(SM_YVIRTUALSCREEN))) {
+        arg = SM_YVIRTUALSCREEN;
+    } else if ((aNumberOrSymbol == @symbol(SM_CXVIRTUALSCREEN))) {
+        arg = SM_CXVIRTUALSCREEN;
+    } else if ((aNumberOrSymbol == @symbol(SM_CYVIRTUALSCREEN))) {
+        arg = SM_CYVIRTUALSCREEN;
+    } else if ((aNumberOrSymbol == @symbol(SM_CMONITORS))) {
+        arg = SM_CMONITORS;
+    } else if ((aNumberOrSymbol == @symbol(SM_SAMEDISPLAYFORMAT))) {
+        arg = SM_SAMEDISPLAYFORMAT;
+    } else if ((aNumberOrSymbol == @symbol(SM_IMMENABLED))) {
+        arg = SM_IMMENABLED;
+    } else if ((aNumberOrSymbol == @symbol(SM_DEBUG))) {
+        arg = SM_DEBUG;
+#ifdef SM_REMOTESESSION
+    } else if ((aNumberOrSymbol == @symbol(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
+    "
+!
+
+getSystemParametersInfo:aNumberOrSymbol
+    "get a system parameter value; 
+     the argument is a #define-like symbol as described in the windows API;
+     However, to allow for future values to be retrieved, also allow an integer
+     which must be the define-value."
+
+%{ 
+    int info = 0;
+    int isBool = 0;
+    int isString = 0;
+    int arg, param;
+    void *pRslt;
+    char buffer[1024];
+
+    if (__isSmallInteger(aNumberOrSymbol)) {
+        arg = __intVal(aNumberOrSymbol);
+    } else if (aNumberOrSymbol == @symbol(SPI_GETDESKWALLPAPER)) {
+        arg = SPI_GETDESKWALLPAPER;
+        isString = 1;
+#ifdef SPI_GETDROPSHADOW
+    } else if (aNumberOrSymbol == @symbol(SPI_GETDROPSHADOW)) {
+        arg = SPI_GETDROPSHADOW;
+        isBool = 1;
+#endif
+#ifdef SPI_GETFLATMENU
+    } else if (aNumberOrSymbol == @symbol(SPI_GETFLATMENU)) {
+        arg = SPI_GETFLATMENU;
+        isBool = 1;
+#endif
+#ifdef SPI_GETWHEELSCROLLLINES
+    } else if (aNumberOrSymbol == @symbol(SPI_GETWHEELSCROLLLINES)) {
+        arg = SPI_GETWHEELSCROLLLINES;
+#endif
+#ifdef SPI_GETHOTTRACKING
+    } else if (aNumberOrSymbol == @symbol(SPI_GETHOTTRACKING)) {
+        arg = SPI_GETHOTTRACKING;
+        isBool = 1;
+#endif
+#ifdef SPI_GETTOOLTIPANIMATION
+    } else if (aNumberOrSymbol == @symbol(SPI_GETTOOLTIPANIMATION)) {
+        arg = SPI_GETTOOLTIPANIMATION;
+        isBool = 1;
+#endif
+    } else {
+        RETURN (nil);
+    }
+
+    param = 0;
+    pRslt = NULL;
+    if (isString) {
+        param = sizeof(buffer);
+        pRslt = (void *)buffer;
+    }
+    info = SystemParametersInfo(arg, param, pRslt, 0);
+    if (! info) {
+        RETURN (nil);
+    }
+
+    if (isBool) {
+        RETURN (info ? true : false);
+    }
+    if (isString) {
+        RETURN (__MKSTRING(buffer));
+    }
+    RETURN (__MKSMALLINT(info));
+%}
+    "
+     Screen current getSystemParametersInfo:#SPI_GETDESKWALLPAPER
+     Screen current getSystemParametersInfo:#SPI_GETDROPSHADOW
+     Screen current getSystemParametersInfo:#SPI_GETFLATMENU        
+     Screen current getSystemParametersInfo:#SPI_GETWHEELSCROLLLINES  
+     Screen current getSystemParametersInfo:#SPI_GETHOTTRACKING  
+     Screen current getSystemParametersInfo:#SPI_GETTOOLTIPANIMATION  
+    "
 !
 
 ignoreButtonPressOnActivate:aBoolean
@@ -6158,6 +6350,11 @@
     rgb = (((r << 8) | g) << 8) | b;
     RETURN (__MKSMALLINT(rgb));
 %}.
+
+    "
+     Screen current getSystemColor:#COLOR_HOTLIGHT      
+     Screen current getSystemColor:#COLOR_HIGHLIGHT      
+    "
 !
 
 primViewIdFromPoint:aPoint in:windowId
@@ -15061,6 +15258,6 @@
 !WinWorkstation class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/WinWorkstation.st,v 1.224 2002-09-04 21:25:12 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/WinWorkstation.st,v 1.225 2002-09-05 16:24:32 cg Exp $'
 ! !
 WinWorkstation initialize!