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.

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