Christoph Thiede uploaded a new version of ToolBuilder-Kernel to project The Inbox:
http://source.squeak.org/inbox/ToolBuilder-Kernel-ct.138.mcz ==================== Summary ==================== Name: ToolBuilder-Kernel-ct.138 Author: ct Time: 5 February 2020, 11:10:09.014675 am UUID: e66248df-c727-5440-b18d-c7b7ae9f038f Ancestors: ToolBuilder-Kernel-mt.134 Proposal: Add convenient method String >> #informUserDuring: We could already say 'Squeak is great!' displayProgressFrom: 9 to: 17 during: [:bar | bar value: 9. 1 second wait. bar value: 16. 1 seconds wait. bar value: 17]. Now we can also say 'Squeak is great!' informUserDuring: [2 seconds wait]. =============== Diff against ToolBuilder-Kernel-mt.134 =============== Item was changed: + ----- Method: String>>displayProgressAt:from:to:during: (in category '*ToolBuilder-Kernel') ----- - ----- Method: String>>displayProgressAt:from:to:during: (in category '*toolbuilder-kernel') ----- displayProgressAt: aPoint from: minVal to: maxVal during: workBlock "Display this string as a caption over a progress bar while workBlock is evaluated. EXAMPLE (Select next 6 lines and Do It) 'Now here''s some Real Progress' displayProgressAt: Sensor cursorPoint from: 0 to: 10 during: [:bar | 1 to: 10 do: [:x | bar value: x. (Delay forMilliseconds: 500) wait]]. HOW IT WORKS (Try this in any other language :-) Since your code (the last 2 lines in the above example) is in a block, this method gets control to display its heading before, and clean up the screen after, its execution. The key, though, is that the block is supplied with an argument, named 'bar' in the example, which will update the bar image every it is sent the message value: x, where x is in the from:to: range. " ^ProgressInitiationException display: self at: aPoint from: minVal to: maxVal during: workBlock! Item was changed: + ----- Method: String>>displayProgressFrom:to:during: (in category '*ToolBuilder-Kernel') ----- - ----- Method: String>>displayProgressFrom:to:during: (in category '*toolbuilder-kernel') ----- displayProgressFrom: minVal to: maxVal during: workBlock "Display this string as a caption over a progress bar while workBlock is evaluated. + EXAMPLE (Select next 5 lines and Do It): - EXAMPLE (Select next 6 lines and Do It) 'Now here''s some Real Progress' displayProgressFrom: 0 to: 10 during: [:bar | 1 to: 10 do: [:x | bar value: x. (Delay forMilliseconds: 500) wait]]." ^ self displayProgressAt: nil from: minVal to: maxVal during: workBlock! Item was changed: + ----- Method: String>>displaySequentialProgress: (in category '*ToolBuilder-Kernel') ----- - ----- Method: String>>displaySequentialProgress: (in category '*toolbuilder-kernel') ----- displaySequentialProgress: aBlock " 'This takes some time...' displaySequentialProgress: [ (Delay forMilliseconds: 500) wait. ProgressNotification signal: 0.1 extra: 'just starting'. (Delay forMilliseconds: 500) wait. ProgressNotification signal: 0.5. (Delay forMilliseconds: 500) wait. ProgressNotification signal: '1.0' extra: 'done'. (Delay forMilliseconds: 500) wait. ] " ProgressInitiationException display: self from: 0 to: 1 during: [:bar | aBlock on: ProgressNotification do: [:e | bar value: e messageText asNumber. e extraParam: self, (e extraParam ifNil: ['']). e pass]]. ! Item was changed: + ----- Method: String>>edit (in category '*ToolBuilder-Kernel') ----- - ----- Method: String>>edit (in category '*toolbuilder-kernel') ----- edit UIManager default edit: self.! Item was changed: + ----- Method: String>>editWithLabel: (in category '*ToolBuilder-Kernel') ----- - ----- Method: String>>editWithLabel: (in category '*toolbuilder-kernel') ----- editWithLabel: label UIManager default edit: self label: label! Item was added: + ----- Method: String>>informUserDuring: (in category '*ToolBuilder-Kernel') ----- + informUserDuring: aBlock + + ^ Project uiManager + informUser: self + during: aBlock! |
Free forum by Nabble | Edit this page |