*** empty log message ***
authorClaus Gittinger <cg@exept.de>
Wed, 06 Sep 2000 17:30:25 +0200
changeset 2759 2afab235070a
parent 2758 57afd37bf499
child 2760 907ed0277b42
*** empty log message ***
AbstractLauncherApplication.st
--- a/AbstractLauncherApplication.st	Wed Sep 06 15:49:00 2000 +0200
+++ b/AbstractLauncherApplication.st	Wed Sep 06 17:30:25 2000 +0200
@@ -1175,6 +1175,17 @@
 
 !
 
+findAndMigrateWindow
+    "find a window (by name) and migrate it to some other display"
+
+    |v|
+
+    v := self findWindow:'Select view to migrate:'.
+    v notNil ifTrue:[
+        self migrateWindow:v topView
+    ]
+!
+
 findAndRaiseWindow
     "find a window (by name) and raise it"
 
@@ -1214,6 +1225,23 @@
 
 !
 
+migrateWindow:aWindow
+    "migrate a view to some other display"
+
+    |host anotherDisplay|
+
+    host := Dialog request:'display:' initialAnswer:'dawn:0'.
+    host isNil ifTrue:[^ self].
+
+    anotherDisplay := XWorkstation newDispatchingFor:host.
+    anotherDisplay isNil ifTrue:[
+        self warn:'Could not connect to remote display'.
+        ^ self
+    ].
+
+    aWindow windowGroup migrateTo:anotherDisplay
+!
+
 screenHardcopy
     "after a second (to allow redraw of views under menu ...),
      let user specify a rectangular area on the screen
@@ -1320,6 +1348,28 @@
 	v inspect
     ]
 
+!
+
+viewMigrate
+    "let user pick a view and migrate it to some other display"
+
+    |v|
+
+    (v := self pickAView) notNil ifTrue:[
+        self migrateWindow:v topView
+    ]
+!
+
+windowsFindAndMigrateBack
+    "find a window (by name) and migrate it back to this display"
+
+    |v|
+
+    v := self findWindow:'Select view to migrate back:'.
+self halt.
+    v notNil ifTrue:[
+        v windowGroup migrateTo:(Screen current)
+    ]
 ! !
 
 !AbstractLauncherApplication::LauncherDialogs class methodsFor:'dialogs'!
@@ -1332,6 +1382,10 @@
      rDoitsEnabled rDoitLogging rDoitErrorLogging rDoitErrorDebugging 
      org_rDoitsEnabled org_rDoitLogging org_rDoitErrorLogging org_rDoitErrorDebugging 
 
+     hasWindowMigrationServer 
+     windowMigrationEnabled  
+     org_windowMigrationEnabled  
+
      hasHTTPServer httpServerRunning httpServerFileRoot httpServerHomeURL
      httpServerPort httpServerLogFile hasSwiki swikiEnabled swikiRoot
      allowEmbedded
@@ -1350,6 +1404,18 @@
     resources := requestor class classResources.
 
     "/ 
+    "/ extract relevant windowMigration settings ...
+    "/
+    windowMigrationEnabled := false.
+    (hasWindowMigrationServer := WindowMigrationServer notNil) ifTrue:[
+        WindowMigrationServer isLoaded ifTrue:[
+            windowMigrationEnabled := WindowMigrationServer serverRunning.
+        ]
+    ].
+    org_windowMigrationEnabled := windowMigrationEnabled.
+    windowMigrationEnabled := windowMigrationEnabled asValue.
+
+    "/ 
     "/ extract relevant rdoit settings ...
     "/
     rDoitsEnabled := rDoitLogging := rDoitErrorLogging := false.
@@ -1371,6 +1437,9 @@
     rDoitErrorLogging := rDoitErrorLogging asValue.
     rDoitErrorDebugging := rDoitErrorDebugging asValue.
 
+    "/
+    "/ extract http-server settings
+    "/
     hasHTTPServer := httpServerRunning := false.
     (hasHTTPServer := HTTPServer notNil) ifTrue:[
         HTTPServer isLoaded ifTrue:[
@@ -1456,6 +1525,14 @@
     box := DialogBox new.
     box label:(resources string:'Communications settings').
 
+    box addTextLabel:'Window migration'.
+
+    check := box addCheckBox:(resources string:'Window migration enabled') on:windowMigrationEnabled.
+    hasWindowMigrationServer ifFalse:[
+        check disable
+    ].
+    box addHorizontalLine.
+
     box addTextLabel:'RDoIt Server'.
 
     check := box addCheckBox:(resources string:'Remote doits enabled') on:rDoitsEnabled.
@@ -1614,6 +1691,25 @@
     box accepted ifTrue:[
         acceptChannel value:false; value:true.
 
+        hasWindowMigrationServer ifTrue:[
+            windowMigrationEnabled := windowMigrationEnabled value.
+            windowMigrationEnabled ~~ org_windowMigrationEnabled ifTrue:[
+                windowMigrationEnabled ~~ WindowMigrationServer serverRunning ifTrue:[
+                    windowMigrationEnabled ifFalse:[
+                        WindowMigrationServer stop
+                    ] ifTrue:[
+                        WindowMigrationServer start.
+                        "/ must wait a bit; give it a chance to
+                        "/ really start (before checking)
+                        Delay waitForSeconds:0.5.
+                        WindowMigrationServer serverRunning ifFalse:[
+                            self warn:'WindowMigrationServer startup failed (see stderr).'
+                        ]
+                    ]
+                ].
+            ]
+        ].
+
         hasRDoitServer ifTrue:[
             (rDoitLogging value ~~ org_rDoitLogging
             or:[rDoitErrorDebugging value ~~ org_rDoitErrorDebugging
@@ -1626,12 +1722,12 @@
                 rDoitsEnabled := rDoitsEnabled value.
                 rDoitsEnabled ~~ RDoItServer serverRunning ifTrue:[
                     rDoitsEnabled ifFalse:[
-                        RDoItServer killAll
+                        RDoItServer stop
                     ] ifTrue:[
                         RDoItServer start.
                         "/ must wait a bit; give it a chance to
                         "/ really start (before checking)
-                        Delay waitForSeconds:0.2.
+                        Delay waitForSeconds:0.5.
                         RDoItServer serverRunning ifFalse:[
                             self warn:'RDoit startup failed (see stderr).'
                         ]
@@ -5520,5 +5616,5 @@
 !AbstractLauncherApplication class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/AbstractLauncherApplication.st,v 1.113 2000-09-04 15:37:33 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/AbstractLauncherApplication.st,v 1.114 2000-09-06 15:30:25 cg Exp $'
 ! !