*** empty log message ***
authorClaus Gittinger <cg@exept.de>
Thu, 27 Aug 1998 13:56:09 +0200
changeset 2286 111e4f4993be
parent 2285 667adc797288
child 2287 513c7ef7db79
*** empty log message ***
XWorkstat.st
XWorkstation.st
--- a/XWorkstat.st	Thu Aug 27 13:08:05 1998 +0200
+++ b/XWorkstat.st	Thu Aug 27 13:56:09 1998 +0200
@@ -7329,6 +7329,11 @@
 
     |dpyName index arguments|
 
+    displayId notNil ifTrue:[
+	"/ already connected - you bad guy try to trick me manually ?
+	^ self
+    ].
+
     dpyName := aDisplayName.
     dpyName isNil ifTrue:[
 	"look for a '-display xxx' argument"
@@ -7339,58 +7344,18 @@
 	    ]
 	]
     ].
-%{
-    int scr;
-    Display *dpy;
-    Visual *visual;
-    XVisualInfo viproto;
-    XVisualInfo *vip;                   /* retured info */
-    int maxRGBDepth;
-    int rgbRedMask, rgbGreenMask, rgbBlueMask;
-    int rgbVisualID;
-    int nvi, i;
-    char *type, *nm;
-    int dummy;
-    OBJ dpyID;
-
-    if (__INST(displayId) != nil) {
-	/*
-	 * already connected - you bad guy try to
-	 * trick me manually ?
-	 */
-	RETURN ( self );
-    }
-
-    BEGIN_INTERRUPTSBLOCKED
-
-    if (__isString(dpyName))
-	nm = (char *) __stringVal(dpyName);
-    else {
-	dpyName = __MKSTRING((char *)getenv("DISPLAY"));
-	nm = NULL;
-    }
-    dpy = XOpenDisplay(nm);
-
-    if (dpy) {
-	static int firstCall = 1;
-
-	__INST(displayId) = dpyID = __MKEXTERNALADDRESS(dpy); __STORE(self, dpyID);
-
-#ifdef SUPERDEBUG
-	XSynchronize(dpy, 1);
-#endif
-
-	if (firstCall) {
-	    firstCall = 0;
-	    XSetErrorHandler(__XErrorHandler__);
-	    XSetIOErrorHandler(__XIOErrorHandler__);
-	}
-    }
-
-    END_INTERRUPTSBLOCKED
-%}.
+
+    self openConnectionTo:dpyName.
+
     displayId isNil ifTrue:[
-	'XWorkstation [warning]: cannot connect to Display.' errorPrintCR.
+	"/ could not connect.
+
+	((OperatingSystem platformName == #win32)
+	and:[WinWorkstation notNil]) ifTrue:[
+	    'XWorkstation [info]: using local windows display.' infoPrintCR.
+	] ifFalse:[
+	    'XWorkstation [warning]: cannot connect to Display.' errorPrintCR.
+	].
 	^ nil
     ].
 
@@ -7740,6 +7705,50 @@
     ].
 !
 
+openConnectionTo:dpyName
+    "open a connection to some display;
+     set my displayId if ok; leaves it as nil of not ok"
+
+%{
+    Display *dpy;
+    int i;
+    char *nm;
+
+    if (__INST(displayId) != nil) {
+	/*
+	 * already connected - you bad guy try to
+	 * trick me manually ?
+	 */
+	RETURN ( self );
+    }
+
+    BEGIN_INTERRUPTSBLOCKED
+
+    if (__isString(dpyName))
+	nm = (char *) __stringVal(dpyName);
+    else {
+	dpyName = __MKSTRING((char *)getenv("DISPLAY"));
+	nm = NULL;
+    }
+    dpy = XOpenDisplay(nm);
+
+    if (dpy) {
+	static int firstCall = 1;
+	OBJ dpyID;
+
+	__INST(displayId) = dpyID = __MKEXTERNALADDRESS(dpy); __STORE(self, dpyID);
+
+	if (firstCall) {
+	    firstCall = 0;
+	    XSetErrorHandler(__XErrorHandler__);
+	    XSetIOErrorHandler(__XIOErrorHandler__);
+	}
+    }
+
+    END_INTERRUPTSBLOCKED
+%}
+!
+
 reinitialize
     virtualRootId := rootId := nil.
     super reinitialize.
@@ -9956,6 +9965,6 @@
 !XWorkstation class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/Attic/XWorkstat.st,v 1.289 1998-08-24 13:23:11 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/Attic/XWorkstat.st,v 1.290 1998-08-27 11:56:09 cg Exp $'
 ! !
 XWorkstation initialize!
--- a/XWorkstation.st	Thu Aug 27 13:08:05 1998 +0200
+++ b/XWorkstation.st	Thu Aug 27 13:56:09 1998 +0200
@@ -7329,6 +7329,11 @@
 
     |dpyName index arguments|
 
+    displayId notNil ifTrue:[
+	"/ already connected - you bad guy try to trick me manually ?
+	^ self
+    ].
+
     dpyName := aDisplayName.
     dpyName isNil ifTrue:[
 	"look for a '-display xxx' argument"
@@ -7339,58 +7344,18 @@
 	    ]
 	]
     ].
-%{
-    int scr;
-    Display *dpy;
-    Visual *visual;
-    XVisualInfo viproto;
-    XVisualInfo *vip;                   /* retured info */
-    int maxRGBDepth;
-    int rgbRedMask, rgbGreenMask, rgbBlueMask;
-    int rgbVisualID;
-    int nvi, i;
-    char *type, *nm;
-    int dummy;
-    OBJ dpyID;
-
-    if (__INST(displayId) != nil) {
-	/*
-	 * already connected - you bad guy try to
-	 * trick me manually ?
-	 */
-	RETURN ( self );
-    }
-
-    BEGIN_INTERRUPTSBLOCKED
-
-    if (__isString(dpyName))
-	nm = (char *) __stringVal(dpyName);
-    else {
-	dpyName = __MKSTRING((char *)getenv("DISPLAY"));
-	nm = NULL;
-    }
-    dpy = XOpenDisplay(nm);
-
-    if (dpy) {
-	static int firstCall = 1;
-
-	__INST(displayId) = dpyID = __MKEXTERNALADDRESS(dpy); __STORE(self, dpyID);
-
-#ifdef SUPERDEBUG
-	XSynchronize(dpy, 1);
-#endif
-
-	if (firstCall) {
-	    firstCall = 0;
-	    XSetErrorHandler(__XErrorHandler__);
-	    XSetIOErrorHandler(__XIOErrorHandler__);
-	}
-    }
-
-    END_INTERRUPTSBLOCKED
-%}.
+
+    self openConnectionTo:dpyName.
+
     displayId isNil ifTrue:[
-	'XWorkstation [warning]: cannot connect to Display.' errorPrintCR.
+	"/ could not connect.
+
+	((OperatingSystem platformName == #win32)
+	and:[WinWorkstation notNil]) ifTrue:[
+	    'XWorkstation [info]: using local windows display.' infoPrintCR.
+	] ifFalse:[
+	    'XWorkstation [warning]: cannot connect to Display.' errorPrintCR.
+	].
 	^ nil
     ].
 
@@ -7740,6 +7705,50 @@
     ].
 !
 
+openConnectionTo:dpyName
+    "open a connection to some display;
+     set my displayId if ok; leaves it as nil of not ok"
+
+%{
+    Display *dpy;
+    int i;
+    char *nm;
+
+    if (__INST(displayId) != nil) {
+	/*
+	 * already connected - you bad guy try to
+	 * trick me manually ?
+	 */
+	RETURN ( self );
+    }
+
+    BEGIN_INTERRUPTSBLOCKED
+
+    if (__isString(dpyName))
+	nm = (char *) __stringVal(dpyName);
+    else {
+	dpyName = __MKSTRING((char *)getenv("DISPLAY"));
+	nm = NULL;
+    }
+    dpy = XOpenDisplay(nm);
+
+    if (dpy) {
+	static int firstCall = 1;
+	OBJ dpyID;
+
+	__INST(displayId) = dpyID = __MKEXTERNALADDRESS(dpy); __STORE(self, dpyID);
+
+	if (firstCall) {
+	    firstCall = 0;
+	    XSetErrorHandler(__XErrorHandler__);
+	    XSetIOErrorHandler(__XIOErrorHandler__);
+	}
+    }
+
+    END_INTERRUPTSBLOCKED
+%}
+!
+
 reinitialize
     virtualRootId := rootId := nil.
     super reinitialize.
@@ -9956,6 +9965,6 @@
 !XWorkstation class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/XWorkstation.st,v 1.289 1998-08-24 13:23:11 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/XWorkstation.st,v 1.290 1998-08-27 11:56:09 cg Exp $'
 ! !
 XWorkstation initialize!