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.
>
>

Reply via email to