WinWorkstation.st
changeset 4811 9b04f5e8a01b
parent 4810 b4be19d40fa8
child 4816 114cf20ad4ed
--- a/WinWorkstation.st	Tue Oct 30 16:52:03 2007 +0100
+++ b/WinWorkstation.st	Tue Oct 30 16:54:44 2007 +0100
@@ -675,12 +675,14 @@
 static HPEN __bgPen = 0;
 static int __bgPenColor = 0;
 
-#define WM_THREAD_CREATEWINDOW   WM_USER + 0x101
-#define WM_THREAD_DESTROYWINDOW  WM_USER + 0x102
-#define WM_THREAD_SETFOCUS       WM_USER + 0x103
-#define WM_THREAD_SETCAPTURE     WM_USER + 0x104
-#define WM_THREAD_SETCURSOR      WM_USER + 0x105
-#define WM_THREAD_BEEP           WM_USER + 0x106
+#define WM_THREAD_CREATEWINDOW   (WM_USER + 0x101)
+#define WM_THREAD_DESTROYWINDOW  (WM_USER + 0x102)
+#define WM_THREAD_SETFOCUS       (WM_USER + 0x103)
+#define WM_THREAD_SETCAPTURE     (WM_USER + 0x104)
+#define WM_THREAD_SETCURSOR      (WM_USER + 0x105)
+#define WM_THREAD_BEEP           (WM_USER + 0x106)
+
+#define WM_TRAY_MESSAGE          (WM_USER + 0x200)
 
 #define hasEventQueued() (eventQueueHead != NULL)
 #define EVENT_THREAD_STACKSIZE  (4096*10)
@@ -7992,7 +7994,7 @@
 	  icon:wicon iconMask:wiconMask
 	  moreArgs:moreArgs
 
-%{
+%{  /* STACK: 16000 */
 
     WNDCLASS wc;
     long bg, bd, bw;
@@ -8700,12 +8702,12 @@
 
     currentSequenceNumber := self getClipboardSequenceNumber.
     lastClipboardSequenceNumber ~= currentSequenceNumber ifTrue:[
-        "copyBuffer is invalid, fill it from the windows clipboard.
-         Even if we could not decode the windows clipboard,
-         we intentionally set the copyBuffer to nil to get a consistent
-         behavior."
-        copyBuffer := self getClipboardData.
-        lastClipboardSequenceNumber := currentSequenceNumber.
+	"copyBuffer is invalid, fill it from the windows clipboard.
+	 Even if we could not decode the windows clipboard,
+	 we intentionally set the copyBuffer to nil to get a consistent
+	 behavior."
+	copyBuffer := self getClipboardData.
+	lastClipboardSequenceNumber := currentSequenceNumber.
     ].
     ^ self copyBufferAsString
 
@@ -8785,41 +8787,41 @@
     int fmt;
 
     if (format == @symbol(CF_TIFF)) {
-        fmt = CF_TIFF;
+	fmt = CF_TIFF;
     } else if (format == @symbol(CF_BITMAP)) {
-        fmt = CF_BITMAP;
+	fmt = CF_BITMAP;
     } else if (format == @symbol(CF_DIB)) {
-        fmt = CF_DIB;
-    } else 
-        goto badFormat;
+	fmt = CF_DIB;
+    } else
+	goto badFormat;
 
     if (IsClipboardFormatAvailable(fmt)) {
-        int len;
-
-        hClip = OpenClipboard(NULL);
-        if (hClip) {
-            hData = GetClipboardData(fmt);
-            if (hData) {
-                len = GlobalSize(hData);
-                src = GlobalLock(hData);
-                if (src) {
-                    bytes = __MKBYTEARRAY(src, len);
-                }
-                GlobalUnlock(hData);
-                CloseClipboard();
-                DDPRINTF((stderr, "WinWorkstation [info]: clipBoard data size is <%d>\n", len));
-                RETURN(bytes);
-            }
-        }
+	int len;
+
+	hClip = OpenClipboard(NULL);
+	if (hClip) {
+	    hData = GetClipboardData(fmt);
+	    if (hData) {
+		len = GlobalSize(hData);
+		src = GlobalLock(hData);
+		if (src) {
+		    bytes = __MKBYTEARRAY(src, len);
+		}
+		GlobalUnlock(hData);
+		CloseClipboard();
+		DDPRINTF((stderr, "WinWorkstation [info]: clipBoard data size is <%d>\n", len));
+		RETURN(bytes);
+	    }
+	}
     }
 badFormat: ;
 %}.
     ^ nil
 
     "
-     Screen current getClipboardDataBytes:#CF_TIFF   
-     Screen current getClipboardDataBytes:#CF_BITMAP   
-     Screen current getClipboardDataBytes:#CF_DIB   
+     Screen current getClipboardDataBytes:#CF_TIFF
+     Screen current getClipboardDataBytes:#CF_BITMAP
+     Screen current getClipboardDataBytes:#CF_DIB
     "
 
     "Created: / 09-10-2007 / 13:11:12 / cg"
@@ -8864,12 +8866,12 @@
     |data|
 
     (data := self getClipboardDataBytes:#CF_TIFF) notNil ifTrue:[
-        "/ tiff image in data...
-        ^ "TIFFReader fromBytes:data" nil
+	"/ tiff image in data...
+	^ "TIFFReader fromBytes:data" nil
     ].
     (data := self getClipboardDataBytes:#CF_DIB) notNil ifTrue:[
-        "/ device independent bitmap image in data...
-        ^ "TIFFReader fromBytes:data" nil
+	"/ device independent bitmap image in data...
+	^ "TIFFReader fromBytes:data" nil
     ].
     ^ nil
 
@@ -8890,45 +8892,45 @@
 
     /* check for format CF_TEXT */
     if (IsClipboardFormatAvailable(CF_TEXT)) {
-        int nRemain, len, realLen;
-
-        hClip = OpenClipboard(NULL);
-        if (hClip) {
-            hData = GetClipboardData(CF_TEXT);
-            src = GlobalLock(hData);
-            len = src ? strlen(src) : 0;
-
-            /* see how much we really need (when CRLF is replaced by LF) */
-            for (realLen=nRemain=len, p=src; nRemain; ) {
-                unsigned char ch;
-
-                ch = *p++; nRemain--;
-                if (ch == 0x0D) {
-                    if (nRemain && (*p == 0x0A)) {
-                        p++; nRemain--;realLen--;
-                    }
-                }
-            }
-            s = __MKEMPTYSTRING(realLen);
-            if (s != nil) {
-                for (p=__stringVal(s); len; ) {
-                    unsigned char ch;
-
-                    *p = ch = *src++;
-                    len--;
-                    if (len && (ch == 0x0D) && (*src == 0x0A)) {
-                        *p = 0x0A;
-                        src++;
-                        len--;
-                    }
-                    p++;
-                }
-            }
-            GlobalUnlock(hData);
-            CloseClipboard();
-            DDPRINTF((stderr, "WinWorkstation [info]: clipBoard data is <%s>\n", (char *)hData));
-            RETURN(s);
-        }
+	int nRemain, len, realLen;
+
+	hClip = OpenClipboard(NULL);
+	if (hClip) {
+	    hData = GetClipboardData(CF_TEXT);
+	    src = GlobalLock(hData);
+	    len = src ? strlen(src) : 0;
+
+	    /* see how much we really need (when CRLF is replaced by LF) */
+	    for (realLen=nRemain=len, p=src; nRemain; ) {
+		unsigned char ch;
+
+		ch = *p++; nRemain--;
+		if (ch == 0x0D) {
+		    if (nRemain && (*p == 0x0A)) {
+			p++; nRemain--;realLen--;
+		    }
+		}
+	    }
+	    s = __MKEMPTYSTRING(realLen);
+	    if (s != nil) {
+		for (p=__stringVal(s); len; ) {
+		    unsigned char ch;
+
+		    *p = ch = *src++;
+		    len--;
+		    if (len && (ch == 0x0D) && (*src == 0x0A)) {
+			*p = 0x0A;
+			src++;
+			len--;
+		    }
+		    p++;
+		}
+	    }
+	    GlobalUnlock(hData);
+	    CloseClipboard();
+	    DDPRINTF((stderr, "WinWorkstation [info]: clipBoard data is <%s>\n", (char *)hData));
+	    RETURN(s);
+	}
     }
 %}.
     ^ nil
@@ -8950,70 +8952,70 @@
 
     /* Unicode */
     if (IsClipboardFormatAvailable(CF_UNICODETEXT)) {
-        int nRemain, len, realLen;
-
-        hClip = OpenClipboard(NULL);
-        if (hClip) {
-            int needUnicode = 0;
-
-            hData = GetClipboardData(CF_UNICODETEXT);
-            w_src = GlobalLock(hData);
-            len = w_src ? wcslen(w_src) : 0;
-            /*
-             * see how much we really need (when CRLF is replaced by LF)
-             * and if result is really Unicode ...
-             */
-            for (realLen=nRemain=len, w_p=w_src; nRemain; ) {
-                WIDECHAR w_ch;
-
-                w_ch = *w_p++; nRemain--;
-                if ((unsigned) w_ch > 0xFF) {
-                    needUnicode = 1;
-                }
-                if (w_ch == 0x0D) {
-                    if (nRemain && (*w_p == 0x0A)) {
-                        w_p++; nRemain--;realLen--;
-                    }
-                }
-            }
-            if (! needUnicode) {
-                s = __MKEMPTYSTRING(realLen);
-                if (s != nil) {
-                    for (p = __stringVal(s); len; ) {
-                        unsigned char ch;
-
-                        *p = ch = *w_src++;
-                        len--;
-                        if (len && (ch == 0x0D) && (*w_src == 0x0A)) {
-                            *p = 0x0A;
-                            w_src++;
-                            len--;
-                        }
-                        p++;
-                    }
-                }
-            } else {
-                s = __BYTEARRAY_NEW_INT(realLen * 2);
-                if (s != nil) {
-                    __qClass(s) = @global(UnicodeString);
-                    for (w_p = (WIDECHAR *)__stringVal(s); len; ) {
-                        WIDECHAR w_ch;
-
-                        *w_p = w_ch = *w_src++;
-                        len--;
-                        if (len && (w_ch == 0x0D) && (*w_src == 0x0A)) {
-                            *w_p = 0x0A;
-                            w_src++;
-                            len--;
-                        }
-                        w_p++;
-                    }
-                }
-            }
-            GlobalUnlock(hData);
-            CloseClipboard();
-            RETURN(s);
-        }
+	int nRemain, len, realLen;
+
+	hClip = OpenClipboard(NULL);
+	if (hClip) {
+	    int needUnicode = 0;
+
+	    hData = GetClipboardData(CF_UNICODETEXT);
+	    w_src = GlobalLock(hData);
+	    len = w_src ? wcslen(w_src) : 0;
+	    /*
+	     * see how much we really need (when CRLF is replaced by LF)
+	     * and if result is really Unicode ...
+	     */
+	    for (realLen=nRemain=len, w_p=w_src; nRemain; ) {
+		WIDECHAR w_ch;
+
+		w_ch = *w_p++; nRemain--;
+		if ((unsigned) w_ch > 0xFF) {
+		    needUnicode = 1;
+		}
+		if (w_ch == 0x0D) {
+		    if (nRemain && (*w_p == 0x0A)) {
+			w_p++; nRemain--;realLen--;
+		    }
+		}
+	    }
+	    if (! needUnicode) {
+		s = __MKEMPTYSTRING(realLen);
+		if (s != nil) {
+		    for (p = __stringVal(s); len; ) {
+			unsigned char ch;
+
+			*p = ch = *w_src++;
+			len--;
+			if (len && (ch == 0x0D) && (*w_src == 0x0A)) {
+			    *p = 0x0A;
+			    w_src++;
+			    len--;
+			}
+			p++;
+		    }
+		}
+	    } else {
+		s = __BYTEARRAY_NEW_INT(realLen * 2);
+		if (s != nil) {
+		    __qClass(s) = @global(UnicodeString);
+		    for (w_p = (WIDECHAR *)__stringVal(s); len; ) {
+			WIDECHAR w_ch;
+
+			*w_p = w_ch = *w_src++;
+			len--;
+			if (len && (w_ch == 0x0D) && (*w_src == 0x0A)) {
+			    *w_p = 0x0A;
+			    w_src++;
+			    len--;
+			}
+			w_p++;
+		    }
+		}
+	    }
+	    GlobalUnlock(hData);
+	    CloseClipboard();
+	    RETURN(s);
+	}
     }
 %}.
     ^ nil
@@ -17384,7 +17386,7 @@
 !WinWorkstation class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/WinWorkstation.st,v 1.347 2007-10-30 15:52:03 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/WinWorkstation.st,v 1.348 2007-10-30 15:54:44 cg Exp $'
 ! !
 
 WinWorkstation initialize!