--- 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!