On Wed, Mar 21, 2012 at 2:08 PM, Igor Stasenko <[email protected]> wrote:
> On 21 March 2012 15:25, Guillermo Polito <[email protected]> > wrote: > > So, If I have an image with no GUI, which UIManager should I install, > how > > and when? Because at image startup I can't use a MorphicUIManager if I > > don't have it loaded into the image :). > > > Commanline ui manager? or just stick with non-interative one. > Hehe, but Commandline ui manager does the same :P. It is meant to be replacing another uiManager :/. > > See the implementation of #default in UIManager class. > It implies that one of its subclasses should answer 'true' on > #isActiveManager. > > actually we could use that, by niling the default manager at snapshot time, > so then once image boots, it will detect a new manager.. or fail (hehe). > > > > > > On Wed, Mar 21, 2012 at 8:00 AM, Camillo Bruni <[email protected]> > > wrote: > >> > >> indeed the non-interactive one keeps the previous version alive in the > >> instvar... > >> > >> I just copied the existing implementation (without much motivation). > >> Bit for simplicity's sake we should simply instantiate every time the > >> proper ui manager, that would simplify these ugly methods quite a bit. > >> > >> cami > >> > >> > >> On 2012-03-21, at 04:12, Igor Stasenko wrote: > >> > >> > the logic there was to set a non-interactive ui manager > >> > for headless sessions only , and then restore back a previous one > >> > (whatever it is), once session is changed back to headfull. > >> > > >> > if its uiManager is nil, it should reset the default manager, > >> > if i remember correctly, then UImanager itself will take care > >> > instantiating default one. > >> > > >> > On 21 March 2012 04:35, Guillermo Polito <[email protected]> > >> > wrote: > >> >> Hi, > >> >> > >> >> I was doing some hacking, and playing with NonInteractiveUIManager. > >> >> And it > >> >> puzzled me that I realized that it has an inst var uiManager that > seems > >> >> to > >> >> refer to an uiManager it's replacing. > >> >> But my UIManager is not replacing anyone, it's my default and unique > >> >> UIManager and this var points to nil :S! > >> >> > >> >> So the code below does not work... > >> >> > >> >> onSnapshot: resuming > >> >> "The resuming argument is true when image boots from disk, > >> >> and false, if user just did an image snapshot." > >> >> > >> >> resuming ifTrue: [ > >> >> Smalltalk isHeadless ifFalse: [ > >> >> "restore old, or nil, so it will be set in #default " > >> >> uiManager beDefault. > >> >> UIManager default onSnapshot: resuming. > >> >> ^ self ]. > >> >> Smalltalk isInteractive ifTrue: [ > >> >> "use a headless but interactive manager" > >> >> ^ self headlessManager onSnapshot: resuming ]]. > >> >> > >> >> > >> >> " this flag set to true only if we are saving a snapshot before > >> >> quitting > >> >> " > >> >> doNotQuitOnRestart ifTrue: [ > >> >> Smalltalk snapshot: false andQuit: true]. > >> >> > >> >> > >> >> I made it work in my image adding within the controversial lines: > >> >> > >> >> uiManager ifNotNil: [ > >> >> uiManager beDefault. > >> >> UIManager default onSnapshot: resuming. > >> >> ] > >> >> > >> >> But it really looks like a hack because that inst var is ment to do > >> >> something else... > >> >> Is it asking me for a refactor? Or am I using this stuff in the > wrong > >> >> way? > >> >> Camillo, Igor? :P > >> >> > >> >> Guille > >> > > >> > > >> > > >> > -- > >> > Best regards, > >> > Igor Stasenko. > >> > > >> > >> > > > > > > -- > Best regards, > Igor Stasenko. > >
