Add `SmallSense::DialogBox` - a drop-in replacement for standard dialogs
authorJan Vrany <jan.vrany@labware.com>
Fri, 02 Sep 2022 11:34:33 +0100
changeset 1143 66b5c959cee1
parent 1142 cb1477d8404d
child 1144 93164087c56a
Add `SmallSense::DialogBox` - a drop-in replacement for standard dialogs
Make.spec
SmallSense__DialogBox.st
abbrev.stc
bc.mak
extensions.st
libInit.cc
stx_goodies_smallsense.st
--- a/Make.spec	Tue Aug 16 15:23:21 2022 +0100
+++ b/Make.spec	Fri Sep 02 11:34:33 2022 +0100
@@ -61,6 +61,7 @@
 	SmallSense::CompletionResult \
 	SmallSense::CompletionView \
 	SmallSense::CriticsWindow \
+	SmallSense::DialogBox \
 	SmallSense::EditService \
 	SmallSense::EditSupport \
 	SmallSense::Info \
@@ -146,6 +147,7 @@
     $(OUTDIR)SmallSense__CompletionResult.$(O) \
     $(OUTDIR)SmallSense__CompletionView.$(O) \
     $(OUTDIR)SmallSense__CriticsWindow.$(O) \
+    $(OUTDIR)SmallSense__DialogBox.$(O) \
     $(OUTDIR)SmallSense__EditService.$(O) \
     $(OUTDIR)SmallSense__EditSupport.$(O) \
     $(OUTDIR)SmallSense__Info.$(O) \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SmallSense__DialogBox.st	Fri Sep 02 11:34:33 2022 +0100
@@ -0,0 +1,125 @@
+"
+COPYRIGHT (c) 2022 LabWare
+
+stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+"
+"{ Package: 'stx:goodies/smallsense' }"
+
+"{ NameSpace: SmallSense }"
+
+Smalltalk::DialogBox subclass:#DialogBox
+	instanceVariableNames:''
+	classVariableNames:'PreviousDialog'
+	poolDictionaries:''
+	category:'SmallSense-Core-Interface'
+!
+
+!DialogBox class methodsFor:'documentation'!
+
+copyright
+"
+COPYRIGHT (c) 2022 LabWare
+
+stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+"
+!
+
+documentation
+"
+    This is a drop-in replacement for stock DialogBox replacing old
+    'smalltalk' dialogs with Smallsense ones.
+
+    [author:]
+        Jan Vrany <jan.vrany@labware.com>
+
+    [instance variables:]
+
+    [class variables:]
+
+    [see also:]
+        DialogBox class, protocol 'smalltalk dialogs'
+
+"
+! !
+
+!DialogBox class methodsFor:'installing'!
+
+install
+    | currentDialog |
+
+    currentDialog := Smalltalk at: #Dialog.
+    (currentDialog isNil or: [ currentDialog ~~ self ]) ifTrue: [ 
+        PreviousDialog := currentDialog.
+        Smalltalk at: #Dialog put: self.
+    ].
+
+    "Created: / 02-09-2022 / 20:10:15 / Jan Vrany <jan.vrany@labware.com>"
+!
+
+uninstall
+    | currentDialog |
+
+    currentDialog := Smalltalk at: #Dialog.
+    currentDialog == self ifTrue: [ 
+        Smalltalk at: #Dialog put: PreviousDialog.
+    ].
+
+    "Created: / 02-09-2022 / 20:10:59 / Jan Vrany <jan.vrany@labware.com>"
+! !
+
+!DialogBox class methodsFor:'smalltalk dialogs'!
+
+requestProject:title from:listOfProjects initialAnswer:initialTextOrNil suggestions:suggestions
+    "Ask for a project (package-id)"
+    | dialog |
+
+    UserPreferences current smallSenseNewDialogsEnabled ifFalse:[ 
+        ^ super requestProject:title from:listOfProjects initialAnswer:initialTextOrNil suggestions:suggestions.
+    ].
+    dialog := SmallSense::PackageSelectDialog new.
+    dialog title: title.
+    dialog filter: [ :pkg | listOfProjects includes: pkg ].
+    (initialTextOrNil notNil and:[initialTextOrNil ~~ PackageId noProjectID]) ifTrue:[
+        initialTextOrNil isEmpty ifTrue:[
+            suggestions size == 1 ifTrue:[
+                dialog pattern:   suggestions anElement. 
+                dialog selection: suggestions anElement. 
+            ].
+        ] ifFalse:[ 
+            dialog pattern: initialTextOrNil.
+            dialog selection: initialTextOrNil.
+        ]
+    ].
+    ^ dialog open.
+
+    "Created: / 24-08-2022 / 14:40:04 / Jan Vrany <jan.vrany@labware.com>"
+! !
+
--- a/abbrev.stc	Tue Aug 16 15:23:21 2022 +0100
+++ b/abbrev.stc	Fri Sep 02 11:34:33 2022 +0100
@@ -11,6 +11,7 @@
 SmallSense::CompletionResult SmallSense__CompletionResult stx:goodies/smallsense 'SmallSense-Core' 0
 SmallSense::CompletionView SmallSense__CompletionView stx:goodies/smallsense 'SmallSense-Core-Interface' 2
 SmallSense::CriticsWindow SmallSense__CriticsWindow stx:goodies/smallsense 'SmallSense-Core-Interface' 3
+SmallSense::DialogBox SmallSense__DialogBox stx:goodies/smallsense 'SmallSense-Core-Interface' 2
 SmallSense::EditService SmallSense__EditService stx:goodies/smallsense 'SmallSense-Core-Services' 0
 SmallSense::EditSupport SmallSense__EditSupport stx:goodies/smallsense 'SmallSense-Core-Services' 0
 SmallSense::Info SmallSense__Info stx:goodies/smallsense 'SmallSense-Smalltalk-Types-Info' 0
--- a/bc.mak	Tue Aug 16 15:23:21 2022 +0100
+++ b/bc.mak	Fri Sep 02 11:34:33 2022 +0100
@@ -35,7 +35,7 @@
 
 
 
-LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\changes -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\helpers -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser -I$(INCLUDE_TOP)\stx\goodies\regex -I$(INCLUDE_TOP)\stx\goodies\smallsense\refactoring_custom -I$(INCLUDE_TOP)\stx\goodies\sunit -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\libbasic3 -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\libhtml -I$(INCLUDE_TOP)\stx\libjava -I$(INCLUDE_TOP)\stx\libjava\tools -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libwidg -I$(INCLUDE_TOP)\stx\libwidg2
+LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\changes -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\helpers -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser -I$(INCLUDE_TOP)\stx\goodies\regex -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\libbasic3 -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\libhtml -I$(INCLUDE_TOP)\stx\libjava -I$(INCLUDE_TOP)\stx\libjava\tools -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libwidg -I$(INCLUDE_TOP)\stx\libwidg2
 LOCALDEFINES=
 
 STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES)  -varPrefix=$(LIBNAME)
@@ -92,6 +92,7 @@
 $(OUTDIR)SmallSense__CompletionResult.$(O) SmallSense__CompletionResult.$(C) SmallSense__CompletionResult.$(H): SmallSense__CompletionResult.st $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\OrderedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\SortedCollection.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__CompletionView.$(O) SmallSense__CompletionView.$(C) SmallSense__CompletionView.$(H): SmallSense__CompletionView.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\TopView.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__CriticsWindow.$(O) SmallSense__CriticsWindow.$(C) SmallSense__CriticsWindow.$(H): SmallSense__CriticsWindow.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libview2\SimpleDialog.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__DialogBox.$(O) SmallSense__DialogBox.$(C) SmallSense__DialogBox.$(H): SmallSense__DialogBox.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\ModalBox.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\StandardSystemView.$(H) $(INCLUDE_TOP)\stx\libview\TopView.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libwidg\DialogBox.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__EditService.$(O) SmallSense__EditService.$(C) SmallSense__EditService.$(H): SmallSense__EditService.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeViewService.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__EditSupport.$(O) SmallSense__EditSupport.$(C) SmallSense__EditSupport.$(H): SmallSense__EditSupport.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__Info.$(O) SmallSense__Info.$(C) SmallSense__Info.$(H): SmallSense__Info.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
@@ -162,7 +163,7 @@
 $(OUTDIR)SmallSense__CategorySelectDialog.$(O) SmallSense__CategorySelectDialog.$(C) SmallSense__CategorySelectDialog.$(H): SmallSense__CategorySelectDialog.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractListDialog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractSelectDialog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__CetegoryOrProtocolSelectDialog.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libview2\SimpleDialog.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__GroovyCompletionEngineSimple.$(O) SmallSense__GroovyCompletionEngineSimple.$(C) SmallSense__GroovyCompletionEngineSimple.$(H): SmallSense__GroovyCompletionEngineSimple.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractJavaCompletionEngineSimple.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__JavaCompletionEngineSimple.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__ProtocolSelectDialog.$(O) SmallSense__ProtocolSelectDialog.$(C) SmallSense__ProtocolSelectDialog.$(H): SmallSense__ProtocolSelectDialog.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractListDialog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractSelectDialog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__CetegoryOrProtocolSelectDialog.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libview2\SimpleDialog.$(H) $(STCHDR)
-$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\helpers\RBMethod.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBBasicLintRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBBlockLintRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBContainsSmalltalkXEOLCommentRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBLintRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBTransformationRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBBlockNode.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBMethodNode.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBProgramNode.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBStatementNode.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBValueNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\CompiledCode.$(H) $(INCLUDE_TOP)\stx\libbasic\ConfigurableFeatures.$(H) $(INCLUDE_TOP)\stx\libbasic\Dictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\ExecutableFunction.$(H) $(INCLUDE_TOP)\stx\libbasic\IdentityDictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Method.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\Set.$(H) $(INCLUDE_TOP)\stx\libbasic\UserPreferences.$(H) $(INCLUDE_TOP)\stx\libcomp\AssignmentNode.$(H) $(INCLUDE_TOP)\stx\libcomp\BlockNode.$(H) $(INCLUDE_TOP)\stx\libcomp\MessageNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseErrorNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseNode.$(H) $(INCLUDE_TOP)\stx\libcomp\Parser.$(H) $(INCLUDE_TOP)\stx\libcomp\PrimaryNode.$(H) $(INCLUDE_TOP)\stx\libcomp\PrimitiveNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ReturnNode.$(H) $(INCLUDE_TOP)\stx\libcomp\Scanner.$(H) $(INCLUDE_TOP)\stx\libcomp\StatementNode.$(H) $(INCLUDE_TOP)\stx\libcomp\VariableNode.$(H) $(INCLUDE_TOP)\stx\libhtml\HTMLDocumentFrame.$(H) $(INCLUDE_TOP)\stx\libhtml\HTMLDocumentView.$(H) $(INCLUDE_TOP)\stx\libtool\DebugView.$(H) $(INCLUDE_TOP)\stx\libtool\InspectorView.$(H) $(INCLUDE_TOP)\stx\libtool\MultiViewToolApplication.$(H) $(INCLUDE_TOP)\stx\libtool\SystemBrowser.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__BackgroundSourceProcessingService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeCompletionService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeHighlightingService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeNavigationService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeViewService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__Inspector2.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__LintService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__NavigationState.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__NewSystemBrowser.$(H) $(INCLUDE_TOP)\stx\libtool\WorkspaceApplication.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\ModalBox.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\StandardSystemView.$(H) $(INCLUDE_TOP)\stx\libview\TopView.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libview2\ToolApplicationModel.$(H) $(INCLUDE_TOP)\stx\libwidg\DialogBox.$(H) $(INCLUDE_TOP)\stx\libwidg\EditTextView.$(H) $(INCLUDE_TOP)\stx\libwidg\EditTextViewCompletionSupport.$(H) $(INCLUDE_TOP)\stx\libwidg\ListView.$(H) $(INCLUDE_TOP)\stx\libwidg\TextView.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\helpers\RBMethod.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBBasicLintRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBBlockLintRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBContainsSmalltalkXEOLCommentRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBLintRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBTransformationRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBBlockNode.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBMethodNode.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBProgramNode.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBStatementNode.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBValueNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\CompiledCode.$(H) $(INCLUDE_TOP)\stx\libbasic\ConfigurableFeatures.$(H) $(INCLUDE_TOP)\stx\libbasic\Dictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\ExecutableFunction.$(H) $(INCLUDE_TOP)\stx\libbasic\IdentityDictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Method.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\Set.$(H) $(INCLUDE_TOP)\stx\libbasic\UserPreferences.$(H) $(INCLUDE_TOP)\stx\libcomp\AssignmentNode.$(H) $(INCLUDE_TOP)\stx\libcomp\BlockNode.$(H) $(INCLUDE_TOP)\stx\libcomp\MessageNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseErrorNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseNode.$(H) $(INCLUDE_TOP)\stx\libcomp\Parser.$(H) $(INCLUDE_TOP)\stx\libcomp\PrimaryNode.$(H) $(INCLUDE_TOP)\stx\libcomp\PrimitiveNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ReturnNode.$(H) $(INCLUDE_TOP)\stx\libcomp\Scanner.$(H) $(INCLUDE_TOP)\stx\libcomp\StatementNode.$(H) $(INCLUDE_TOP)\stx\libcomp\VariableNode.$(H) $(INCLUDE_TOP)\stx\libhtml\HTMLDocumentFrame.$(H) $(INCLUDE_TOP)\stx\libhtml\HTMLDocumentView.$(H) $(INCLUDE_TOP)\stx\libtool\DebugView.$(H) $(INCLUDE_TOP)\stx\libtool\InspectorView.$(H) $(INCLUDE_TOP)\stx\libtool\MultiViewToolApplication.$(H) $(INCLUDE_TOP)\stx\libtool\SystemBrowser.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__BackgroundSourceProcessingService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeCompletionService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeHighlightingService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeNavigationService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeViewService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__Inspector2.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__LintService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__NavigationState.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__NewSystemBrowser.$(H) $(INCLUDE_TOP)\stx\libtool\WorkspaceApplication.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\StandardSystemView.$(H) $(INCLUDE_TOP)\stx\libview\TopView.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libview2\ToolApplicationModel.$(H) $(INCLUDE_TOP)\stx\libwidg\EditTextView.$(H) $(INCLUDE_TOP)\stx\libwidg\EditTextViewCompletionSupport.$(H) $(INCLUDE_TOP)\stx\libwidg\ListView.$(H) $(INCLUDE_TOP)\stx\libwidg\TextView.$(H) $(STCHDR)
 
 # ENDMAKEDEPEND --- do not remove this line
 
--- a/extensions.st	Tue Aug 16 15:23:21 2022 +0100
+++ b/extensions.st	Fri Sep 02 11:34:33 2022 +0100
@@ -75,42 +75,6 @@
     "Modified: / 11-02-2015 / 21:34:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-!DialogBox class methodsFor:'smalltalk dialogs-SmallSense'!
-
-stx_goodies_smallsense_requestProject:title from:listOfProjects initialAnswer:initialTextOrNil suggestions:suggestions
-    "Ask for a project (package-id)"
-
-    <swizzle: #requestProject:from:initialAnswer:suggestions:>
-    "
-    stx_goodies_smallsense swizzle: (DialogBox class >> #stx_goodies_smallsense_requestProject:from:initialAnswer:suggestions:)
-    "
-
-    | dialog |
-
-    UserPreferences current smallSenseNewDialogsEnabled ifFalse:[ 
-        ^ self stx_libwidg_requestProject:title from:listOfProjects initialAnswer:initialTextOrNil suggestions:suggestions
-    ].
-    dialog := SmallSense::PackageSelectDialog new.
-    dialog title: title.
-    dialog filter: [ :pkg | listOfProjects includes: pkg ].
-    (initialTextOrNil notNil and:[initialTextOrNil ~~ PackageId noProjectID]) ifTrue:[
-        initialTextOrNil isEmpty ifTrue:[
-            suggestions size == 1 ifTrue:[
-                dialog pattern:   suggestions anElement. 
-                dialog selection: suggestions anElement. 
-            ].
-        ] ifFalse:[ 
-            dialog pattern: initialTextOrNil.
-            dialog selection: initialTextOrNil.
-        ]
-    ].
-    ^ dialog open.
-
-    "Created: / 25-11-2014 / 13:20:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 21-02-2015 / 08:59:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified (comment): / 21-02-2015 / 17:53:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
 !EditTextView methodsFor:'accessing-behavior'!
 
 autoIndent
@@ -1239,9 +1203,23 @@
 
 smallSenseNewDialogsEnabled: aBoolean
 
-    ^self at:#smallSenseNewDialogsEnabled put: aBoolean
+    self at:#smallSenseNewDialogsEnabled put: aBoolean.
+    UserPreferences current == self ifTrue: [ 
+        aBoolean ifTrue: [
+            SmallSense::DialogBox install
+        ] ifFalse: [ 
+            SmallSense::DialogBox uninstall
+        ].
+    ].
+
+    "
+    UserPreferences current smallSenseNewDialogsEnabled: true.
+    UserPreferences current smallSenseNewDialogsEnabled: false.
+    Dialog
+    "
 
     "Created: / 10-05-2014 / 00:04:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (comment): / 02-09-2022 / 20:14:28 / Jan Vrany <jan.vrany@labware.com>"
 ! !
 
 !UserPreferences methodsFor:'accessing-SmallSense-Smalltalk'!
--- a/libInit.cc	Tue Aug 16 15:23:21 2022 +0100
+++ b/libInit.cc	Fri Sep 02 11:34:33 2022 +0100
@@ -26,6 +26,7 @@
 extern void _SmallSense__CompletionResult_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _SmallSense__CompletionView_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _SmallSense__CriticsWindow_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
+extern void _SmallSense__DialogBox_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _SmallSense__EditService_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _SmallSense__EditSupport_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
 extern void _SmallSense__Info_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
@@ -120,6 +121,7 @@
     _SmallSense__CompletionResult_Init(pass,__pRT__,snd);
     _SmallSense__CompletionView_Init(pass,__pRT__,snd);
     _SmallSense__CriticsWindow_Init(pass,__pRT__,snd);
+    _SmallSense__DialogBox_Init(pass,__pRT__,snd);
     _SmallSense__EditService_Init(pass,__pRT__,snd);
     _SmallSense__EditSupport_Init(pass,__pRT__,snd);
     _SmallSense__Info_Init(pass,__pRT__,snd);
--- a/stx_goodies_smallsense.st	Tue Aug 16 15:23:21 2022 +0100
+++ b/stx_goodies_smallsense.st	Fri Sep 02 11:34:33 2022 +0100
@@ -1,7 +1,7 @@
 "
 stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
 Copyright (C) 2013-2015 Jan Vrany
-Copyright (C) 2021 LabWare
+Copyright (C) 2021-2022 LabWare
 
 This library is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
@@ -34,7 +34,7 @@
 "
 stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
 Copyright (C) 2013-2015 Jan Vrany
-Copyright (C) 2021 LabWare
+Copyright (C) 2021-2022 LabWare
 
 This library is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
@@ -108,7 +108,7 @@
         #'stx:libtool'    "AbstractSettingsApplication - superclass of SmallSense::SettingsAppl"
         #'stx:libview'    "DisplaySurface - extended"
         #'stx:libview2'    "ApplicationModel - extended"
-        #'stx:libwidg'    "DialogBox - extended"
+        #'stx:libwidg'    "DialogBox - superclass of SmallSense::DialogBox"
         #'stx:libwidg2'    "AbstractHierarchicalItem - superclass of SmallSense::ClassPO"
     )
 !
@@ -126,11 +126,9 @@
 
     ^ #(
         #'stx:goodies/refactoryBrowser/changes'    "CompositeRefactoryChange - referenced by Tools::NewSystemBrowser>>stx_goodies_smallsense_categoryMenuRename"
-        #'stx:goodies/smallsense/refactoring_custom'    "SmallSense::CustomMock - referenced by SmallSense::SmalltalkSyntaxHighlighterTests>>setUp"
-        #'stx:goodies/sunit'    "TestAsserter - superclass of SmallSense::AbstractJavaCompletionEngineTests"
         #'stx:libbasic2'    "BackgroundJob - referenced by SmallSense::AbstractListDialog>>initialize"
         #'stx:libbasic3'    "ChangeSet - referenced by RBContainsSmalltalkXEOLCommentRule>>fixes:"
-        #'stx:libjava'    "GroovyLanguage - referenced by SmallSense::GroovyCompletionEngineSimpleTests>>completionLanguage"
+        #'stx:libjava'    "Java - referenced by SmallSense::JavaCompletionEngine>>complete"
         #'stx:libjava/tools'    "GroovyScanner - referenced by SmallSense::GroovyCompletionEngineSimple>>scannerClass"
     )
 !
@@ -165,6 +163,7 @@
         #'SmallSense::CompletionResult'
         #'SmallSense::CompletionView'
         #'SmallSense::CriticsWindow'
+        #'SmallSense::DialogBox'
         #'SmallSense::EditService'
         #'SmallSense::EditSupport'
         #'SmallSense::Info'
@@ -322,7 +321,6 @@
         RBProgramNode endPosition
         RBProgramNode startPosition
         RBContainsSmalltalkXEOLCommentRule fixes:
-        'DialogBox class' #'stx_goodies_smallsense_requestProject:from:initialAnswer:suggestions:'
         'Tools::CodeCompletionService class' new
         #'Tools::LintService' buttonPress:x:y:in:
         #'Tools::LintService' showInfoWindowForLine: