On Wed, Mar 21, 2012 at 2:08 PM, Igor Stasenko <siguctua@gmail.com> wrote:
On 21 March 2012 15:25, Guillermo Polito <guillermopolito@gmail.com> 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 <camillobruni@gmail.com>
> 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 <guillermopolito@gmail.com>
>> > 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.