It is a workable idea, we just need to agree on a syntax.
Also good would be if an existing Morph could be moved to an external
window.�� From a menu choice would be entirely sufficient, but
super-bonus points for being able to drag it.�� This might also
facilitate a usage like this (but again not sure if thats a desirable
paradigm)...
��
(Nautilus�� external�� openInOnPackage: nil) moveToExternalWindow.
(GTPlayground�� external�� openInOSWindow) moveToExternalWindow.
(ThreadSafeTranscript�� external�� openInOSWindow) moveToExternalWindow.
This should be possible but I see two different ways of doing so :
- First we could keep the same Morph and dynamically change some of its features to match the requirements of an external window ( for example the action done when clicking on the close / expand / reduce boxes are not the same but there are other differences). Then we remove it from the World and open it in an OSWindow.
- Or we could "save the state of the Morph" then delete it and directly open a new one suited for external window. I've quoted "save the state of the Morph" because if this option is chosen it will need to be refined.
As for the "drag it outside part" I am sure it could be done. Currently when you are dragging a Morph, as soon as the HandMorph goes out of the World, when you release the mouse button the Morph goes back at its initial place so we could just change this behavior to make it move to an external window instead. But to be more flexible,maybe we could just keep both behavior and chose between one and the other by pressing a hotkey while dragging the Morph.
As you can see if you put the Morph inside the boundaries of the World, it seems as if it was actually opened in the world (put aside some differences like the fonts etc. but this is only due to the Athens rendering of Morphs and it won't matter in Bloc).
For now it is heavily buggued (you can't opened two windows like that without crashing the VM :/) but SDL 2.0.4 is still in developement so I won't work more on it until it is released.
Where we have for example Meta-O-O to open a browser, it could be
Meta-E-O to open in an external window.
Also, a hotkey could be held down when opening from a menu - similar
paradigm to web browsers between opening a new tab or opening a new
window.
Yeah that's a good idea. For the moment when opening from a menu the left and right clicks have the same behavior so it could even be something like left click => world and right click => external window.
As well a Preference so that this can be set globally.�� A multitude of
open windows could be handled with a menu item in the task bar "Close
all > external windows".
btw, I presume Morphs in these windows would still appear in the task
bar as usual.
I am not sure about that because as OS - Windows they appear in the taskbar of your OS and you can already manage them from here.
How will the existing World paradigm play into this?�� Will external
windows be part of the same World?�� Or maybe the existing World can
have another level below it called like World-Screen?
The existing World paradigm will probably change with Bloc I guess. At first I thought that all these windows could be part of the same Bloc-space and that this Bloc-space would be dedicated to held external windows but I really need to speak with Alain about that.
Many thanks for your feedback and ideas !
Cheers,
Matthieu