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