ユーザーがこのコードで画像のダウンロードの進行状況に関する情報を取得できるように、PharoLauncher に進行状況バーを提供しました。
PharoLauncher>>displayProgress:during: (in category 'template action') -----
displayProgress: label during: workBlock
| nextUpdateTime |
nextUpdateTime := 0.
^UIManager default displayProgress: label
from: 0.0 to: 1.0 during:[:bar|
[workBlock value] on: HTTPProgress do:[:ex|
(ex total == nil or: [ex amount == nil]) ifFalse:[
(nextUpdateTime < Time millisecondClockValue
or:[ex total = ex amount]) ifTrue:[
bar current: ex amount asFloat / ex total asFloat.
nextUpdateTime := Time millisecondClockValue + 100.
].
].
ex resume.
]
]
したがって、メッセージは UIManager のデフォルトの displayProgress: from: to: during: です。これで問題なく動作しますが、モーフを中央に配置して、ユーザーが見やすいようにし、大幅にスケーリングして、はるかに簡単に実行できるようにしたいと考えています。 . そのためには、プログレス バーのコンテナーとして機能する Morph を見つけて、全体を拡大する必要があります。
問題は、このメッセージの階層を閲覧しようとすると、行き止まりにぶつかることです。
displayProgress: titleString from: minVal to: maxVal during: workBlock
"SystemProgressMorph show: titleString from: minVal to: during: "
^ workBlock asJob
title: titleString;
min: minVal;
max: maxVal;
run.
問題は、 Job クラスに移動すると、予想どおり、モーフがどこにも見つからないことです。では、モーフを見つける方法と、そのすべてのサブモーフを含むモーフを配置およびスケーリングする方法を教えてください。