--- a/SystemBrowser.st Wed Nov 15 13:36:59 2000 +0100
+++ b/SystemBrowser.st Wed Nov 15 13:52:28 2000 +0100
@@ -249,7 +249,8 @@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@B@B@ @@H@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@H@@ @@@@Hb') ; colorMapFromArray:#[0 0 0 0 255 0 127 127 127 170 170 170 255 0 0 255 255 0 255 255 255]; mask:((Depth1Image new) width: 28; height: 28; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
??0@@O?<@@C??@@@??0@@O?<@@C??@@@@ @@@@H@@@@B@?? A0O?8@_??>@G@?? @ O?8@H@@@@B@?? A0O?8@_??>@G@?? @@O?8@@@@@@@@@@@9O\7\IRT
-QDBD%DQ@!!OH''HHRQEABT$QPP99]7\@@a') ; yourself); yourself]!
+QDBD%DQ@!!OH''HHRQEABT$QPP99]7\@@a') ; yourself); yourself]
+!
fileImageIcon
"This resource specification was automatically generated
@@ -267,7 +268,8 @@
^Icon
constantNamed:#'SystemBrowser fileImageIcon'
- ifAbsentPut:[(Depth4Image new) width: 13; height: 11; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@H"H"H"@@@BQBH!!D"@@@$P"HQH"@@H"H"DQH @BH"HQDRH@@"H"DQH"@@L3L3DSL0@CL3L1D3L@@3L3L3L3@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 51 153 153 51 255 255 255 153 0 255 255 0]; mask:((Depth1Image new) width: 13; height: 11; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'?<C?8O?0??#?>O?8??#?>O?8??#?>@@a') ; yourself); yourself]!
+ ifAbsentPut:[(Depth4Image new) width: 13; height: 11; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@H"H"H"@@@BQBH!!D"@@@$P"HQH"@@H"H"DQH @BH"HQDRH@@"H"DQH"@@L3L3DSL0@CL3L1D3L@@3L3L3L3@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 51 153 153 51 255 255 255 153 0 255 255 0]; mask:((Depth1Image new) width: 13; height: 11; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'?<C?8O?0??#?>O?8??#?>O?8??#?>@@a') ; yourself); yourself]
+!
greenLockIcon
"This resource specification was automatically generated
@@ -510,7 +512,8 @@
^Icon
constantNamed:#'SystemBrowser programImageIcon'
- ifAbsentPut:[(Depth4Image new) width: 13; height: 11; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@H"H"H"H @BQBH!!D"H@@$P"HQH"@@H"H"DQH @BH"HQDRH@@"H"DQH"@@L3L3DSL0@CL3L1D3L@@3L3L3L3@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 25 77 77 51 255 255 128 128 0 128 77 0]; mask:((Depth1Image new) width: 13; height: 11; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??#?>O?8??#?>O?8??#?>O?8??#?>@@a') ; yourself); yourself]!
+ ifAbsentPut:[(Depth4Image new) width: 13; height: 11; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@H"H"H"H @BQBH!!D"H@@$P"HQH"@@H"H"DQH @BH"HQDRH@@"H"DQH"@@L3L3DSL0@CL3L1D3L@@3L3L3L3@@@@@@@@@@@b') ; colorMapFromArray:#[0 0 0 25 77 77 51 255 255 128 128 0 128 77 0]; mask:((Depth1Image new) width: 13; height: 11; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'??#?>O?8??#?>O?8??#?>O?8??#?>@@a') ; yourself); yourself]
+!
programMenuIcon
"This resource specification was automatically generated
@@ -667,7 +670,8 @@
^Icon
constantNamed:#'SystemBrowser visualStartableClassIcon'
- ifAbsentPut:[(Depth4Image new) width: 13; height: 11; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@H@@@@@@@@B@@@@@@@@H2@@@L@@@#L2@@@@@@H#H @@@@@BL#H@@O@@@#L2@@@@@@H@@ @@@@@BQDH@@F@@@DQ@@@@@@@@@@@@@\b') ; colorMapFromArray:#[255 0 0 255 255 255 0 0 0 127 127 127 255 255 0]; mask:((Depth1Image new) width: 13; height: 11; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@ @B@@\@C8@O @>@C8@H @>@A0@G@@@a') ; yourself); yourself]! !
+ ifAbsentPut:[(Depth4Image new) width: 13; height: 11; photometric:(#palette); bitsPerSample:(#(4 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@H@@@@@@@@B@@@@@@@@H2@@@L@@@#L2@@@@@@H#H @@@@@BL#H@@O@@@#L2@@@@@@H@@ @@@@@BQDH@@F@@@DQ@@@@@@@@@@@@@\b') ; colorMapFromArray:#[255 0 0 255 255 255 0 0 0 127 127 127 255 255 0]; mask:((Depth1Image new) width: 13; height: 11; photometric:(#blackIs0); bitsPerSample:(#(1 )); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@ @B@@\@C8@O @>@C8@H @>@A0@G@@@a') ; yourself); yourself]
+! !
!SystemBrowser class methodsFor:'interface specs'!
@@ -873,27 +877,31 @@
"return a collection of methods which send aSelector.
Methods from classes in aCollectionOfClasses are searched only."
- |sel searchBlock lcString|
+ |sel searchBlock selMatch lcString quickMatch|
((aSelectorString ~= '*')
and:[(aSelectorString includesMatchCharacters or:[ignoreCase])]) ifTrue:[
"/ a matchString - need string matching procedure
+ ignoreCase ifTrue:[
+ lcString := aSelectorString asLowercase.
+ ] ifFalse:[
+ lcString := aSelectorString.
+ ].
+
+ quickMatch := aSelectorString.
+ (quickMatch startsWith:'*') ifTrue:[
+ quickMatch := quickMatch copyFrom:2
+ ].
+ (quickMatch endsWith:'*') ifTrue:[
+ quickMatch := quickMatch copyWithoutLast:1
+ ].
+ (quickMatch includes:$:) ifTrue:[
+ quickMatch := quickMatch copyTo:(quickMatch indexOf:$:)-1.
+ ].
searchBlock := [:class :method :s |
- |src quickMatch|
-
- ignoreCase ifTrue:[
- lcString := aSelectorString asLowercase.
- ] ifFalse:[
- lcString := aSelectorString.
- ].
- quickMatch := aSelectorString.
- (quickMatch startsWith:'*') ifTrue:[
- quickMatch := quickMatch copyFrom:2
- ].
- (quickMatch endsWith:'*') ifTrue:[
- quickMatch := quickMatch copyWithoutLast:1
- ].
+ |src|
+
(ignoreCase not and:[quickMatch includesMatchCharacters not]) ifTrue:[
"/ do quick search first
method isLazyMethod ifTrue:[
@@ -949,12 +957,16 @@
sel isNil ifTrue:[
^ nil "/ none
].
+ quickMatch := sel.
+ (quickMatch includes:$:) ifTrue:[
+ quickMatch := quickMatch copyTo:(quickMatch indexOf:$:)-1.
+ ].
searchBlock := [:class :method :s |
|src|
method isLazyMethod ifTrue:[
src := method source.
- (src notNil and:[src includesString:sel]) ifTrue:[
+ (src notNil and:[src includesString:quickMatch]) ifTrue:[
method makeRealMethod.
method sends:sel.
] ifFalse:[
@@ -3233,6 +3245,6 @@
!SystemBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/SystemBrowser.st,v 1.123 2000-10-31 15:25:37 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/SystemBrowser.st,v 1.124 2000-11-15 12:52:28 cg Exp $'
! !
SystemBrowser initialize!