Tools__TagsBrowser.st
changeset 13632 970c41229951
parent 13630 b913e73d593c
child 13657 fdc78070d46d
child 13664 c11682792269
--- a/Tools__TagsBrowser.st	Sun Oct 13 19:56:27 2013 +0200
+++ b/Tools__TagsBrowser.st	Sun Oct 13 19:56:37 2013 +0200
@@ -15,7 +15,7 @@
 
 ApplicationModel subclass:#TagsBrowser
 	instanceVariableNames:'editedFileHolder commonAspects tagView tagList action tagsMenu
-		menus tagsValid'
+		menus tagsValid tagListGenerator'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Interface-Tools-File-Tags'
@@ -2222,6 +2222,17 @@
     ^ tagList tagForFunction:functionName
 ! !
 
+!TagsBrowser methodsFor:'hooks for embedding'!
+
+tagListGenerator:aBlockOrValueHolder
+    "to use a tagsBrowser as a component in another application,
+     this hook allows for the tag list to be provided by that application.
+     If non-nil, it will be evaluated to generate the tagList instead of
+     reading the tags from the editedFile"
+
+    tagListGenerator := aBlockOrValueHolder.
+! !
+
 !TagsBrowser methodsFor:'menu actions'!
 
 keepingSelectionDo:aBlock
@@ -2322,6 +2333,13 @@
 
     |file target oldSelection|
 
+    tagListGenerator notNil ifTrue:[
+        tagList setRawList:(tagListGenerator value).
+        "/ tagView list:(tagListGenerator value).
+        tagsValid := true.
+        ^ self.
+    ].
+
     tagsValid := false.
     (true "(self tagsVisibilityHolder value == true)"
         and:[(file := self editedFile) notNil
@@ -2543,10 +2561,11 @@
 
 generateTagsFor:aFile onTarget:aTarget finally:aBlock
     "generate tags for a file (optionally on a remote target)
-    "
+     return true, if a background job for generation has been started"
+
     |tagFile|
 
-    "/ ugly hack
+    "/ ugly hack to suppress generation if the taglist is externally provided
     (list isKindOf:Tools::TagList) ifFalse:[^ false].
 
     Tag autoload.
@@ -2661,14 +2680,14 @@
 !TagsBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__TagsBrowser.st,v 1.41 2013-10-12 13:47:01 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__TagsBrowser.st,v 1.42 2013-10-13 17:56:37 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__TagsBrowser.st,v 1.41 2013-10-12 13:47:01 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__TagsBrowser.st,v 1.42 2013-10-13 17:56:37 cg Exp $'
 !
 
 version_SVN
-    ^ '$Id: Tools__TagsBrowser.st,v 1.41 2013-10-12 13:47:01 cg Exp $'
+    ^ '$Id: Tools__TagsBrowser.st,v 1.42 2013-10-13 17:56:37 cg Exp $'
 ! !