2012-10-04 9 views
5

Ho un'applicazione che ha la sua intera interfaccia grafica in un Morph. Pharo e Squeak hanno una finestra nel sistema operativo host.Come distribuire una bella applicazione a una finestra con Pharo o Squeak?

Ora voglio legare questo Morph alla finestra Pharo/Squeak in modo che riempia l'intera finestra Pharo/Squeak, ridimensiona (e aggiorna il layout di Morph), quando la finestra Pharo/Squeak viene ridimensionata e in un modo che non vi è alcuna possibilità (accidentale) per l'utente di accedere a qualsiasi cosa oltre a Morph (si tratta solo di usabilità, non di sicurezza, però!).

Come posso ottenere questo?

risposta

6

Regolare limiti del morph nel suo metodo step:

step 
    (self position = (0 @ 0) and: [self extent = owner extent]) ifFalse: [ 
     self position: 0 @ 0. 
     self extent: owner extent]. 

si consiglia di fare questa condizione su una bandiera "distribuzione", che si attiva solo quando si salva l'immagine dell'utente. Questo è ad esempio il modo in cui Scratch (http://info.scratch.mit.edu/Scratch_1.4_Download) lo fa.

+1

non sarebbe meglio usare i layout? morph hResizing: #spaceFill; vResizing: #spaceFill. ? È anche possibile eseguire il hook-in direttamente in #checkForNewScreenSize. Vedi mittenti/implementatori di esso. –

+0

Un layout cercherebbe di operare su tutti i bambini del mondo. Probabilmente non una buona idea. checkForNewScreenSize si verifica comunque in ogni ciclo di visualizzazione, quindi è simile a un metodo step, ma non è necessario codificarlo. –

Problemi correlati