On Sat, May 30, 2015 at 4:16 PM, Matthieu Lacaton <[email protected]> wrote: >> I think it would be better to name these for their function rather >> than the package: >> Nautilus openInExternalWindowOnPackage: nil. >> GTPlayground external openInExternalWindow. >> ThreadSafeTranscript external openInExternalWindow. >> >> I don't know if its a workable idea, but maybe something like >> Nautilus external openInOSWindowOnPackage: nil. >> GTPlayground external openInOSWindow. >> ThreadSafeTranscript external openInOSWindow. > > > 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. > > BTW, I've recorded a short video to show you what it is possible to do with > the new SDL version (it should also illustrate what I told Nicolai earlier) > : > > https://www.dropbox.com/s/m27aa0flanocnlr/OSWindowMorph.mkv?dl=0 > > 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.
Sure one option is to have a native window for every Morph. The other is to have only a WorldMorph as a native window holding other Morphs. I'm not sure which one I'd prefer, but I'd sure like the option of the latter. An example use-case... Torsten's recent video of Pharo on Raspberry Pie... not sure if the hardware is up to it, but it would be great to have a Pharo application displaying on a low resolution embedded LCD screen, with a normal development environment on a standard sized screen running off the same Pie. cheers -ben > > >> 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 > > 2015-05-30 8:16 GMT+02:00 stepharo <[email protected]>: >> >> >> - If possible I'd like not to have to modify any Bloc code. If it is not >> possible then as little as possible. >> >>> What is the aversion here? Bloc is still developing and since its >>> semantics are based on old-Morphic maybe this use-case is not >>> considered. Adding this use-case may be an opportunity to make the >>> overall system architecture simpler instead of needing workarounds. >>> To what degree would Bloc already support this? >> >> >> What matthieu wants to say is that opening a window in an external sufrace >> should >> not impose to have some hacks into bloc and alain agrees with that and >> will modify the >> bloc architecture to handle separate native windows. >>>> >>>> - These windows should be persistent but maybe not exactly like morphs. >>>> It >>>> could be a button that the user needs to press in the window to toggle >>>> the >>>> persistence on and off (a bit like in the world menu to stick it to the >>>> world if you see what I mean). >> >> >> I'm not sure that you want to have that behavior. Open windows should be >> persisted. >> >>> 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. >>> >>> >> >> >
