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