# HG changeset patch # User Claus Gittinger # Date 1571046159 -7200 # Node ID e935b92253c9bc6e0dc755ced155dcb354f4c892 # Parent f26ed65a4360d74a59d6912ac2973939730342bc #DOCUMENTATION by exept class: ShowMeHowItWorks class definition changed: #do: #doStream: #findComponent: #select: diff -r f26ed65a4360 -r e935b92253c9 ShowMeHowItWorks.st --- a/ShowMeHowItWorks.st Mon Oct 14 10:48:32 2019 +0200 +++ b/ShowMeHowItWorks.st Mon Oct 14 11:42:39 2019 +0200 @@ -5,8 +5,9 @@ "{ NameSpace: Smalltalk }" Object subclass:#ShowMeHowItWorks - instanceVariableNames:'application opStream lastComponentName lastComponent lastResult - voice translate language verifying closeApplicationWhenFinished' + instanceVariableNames:'application opStream streamStack lastComponentName lastComponent + lastResult voice translate language verifying + closeApplicationWhenFinished defaultComponentWaitTime' classVariableNames:'IntroShownCount DebugMode' poolDictionaries:'' category:'Interface-Help' @@ -433,25 +434,40 @@ - |idx| + |idx component| verifying ifTrue:[^ self]. - (lastComponent isKindOf:ComboView) ifTrue:[ + ((component := lastComponent) isKindOf:ScrollableView) ifTrue:[ + component := component scrolledView. + ]. + + (component isKindOf:ComboView) ifTrue:[ "/ click on the menubutton - self movePointerToComponent:lastComponent menuButton. - self click:1 inComponent:lastComponent menuButton. + self movePointerToComponent:component menuButton. + self click:1 inComponent:component menuButton. Delay waitForSeconds:0.3. - (idx := lastComponent list indexOf:itemsLabel ifAbsent:[nil]) isNil ifTrue:[ + (idx := component list indexOf:itemsLabel ifAbsent:[nil]) isNil ifTrue:[ self error:'no such item in comboList: ',itemsLabel ]. - lastComponent select:idx. + component select:idx. Delay waitForSeconds:0.3. - lastComponent shownMenu notNil ifTrue:[ - lastComponent shownMenu hide. + component shownMenu notNil ifTrue:[ + component shownMenu hide. ]. ^ self ]. + (component isKindOf:HierarchicalListView) ifTrue:[ + component + selectElementForWhich:[:el | + el label string = itemsLabel + ] + ifAbsent:[ + self error:'no such item in hierarchicalList: ',itemsLabel + ]. + ^ self + ]. + self error:'cannot select this component' "Created: / 19-07-2019 / 12:34:25 / Claus Gittinger" @@ -759,7 +775,7 @@ ^ candidates first ]. ]. - application isNil ifTrue:[ + true "application isNil" ifTrue:[ "/ search through all current applications WindowGroup scheduledWindowGroups do:[:eachWG | |eachApp| @@ -1212,6 +1228,7 @@ application := WindowGroup activeMainApplication. ]. closeApplicationWhenFinished := false. + defaultComponentWaitTime isNil ifTrue:[ defaultComponentWaitTime := 1 ]. "/ run in verifying mode verifying := true. @@ -1320,7 +1337,10 @@ |previousStream resources| resources := self class classResources. - + + streamStack isNil ifTrue:[ streamStack := OrderedCollection new ]. + streamStack add:opStream. + previousStream := opStream. [ opStream := specStream. @@ -1340,6 +1360,7 @@ ]. ]. ] ensure:[ + streamStack removeLast. opStream := previousStream ].