--- a/EditTextView.st Mon Sep 23 14:20:54 2013 +0100
+++ b/EditTextView.st Fri Sep 27 23:01:16 2013 +0100
@@ -22,7 +22,7 @@
st80Mode disableIfInvisible cursorMovementWhenUpdating learnMode
learnedMacro cursorLineHolder cursorColHolder tabRequiresControl
undoSupport lastStringFromReplaceForNextSearch
- lastReplacementInfo completionService'
+ lastReplacementInfo completionSupport'
classVariableNames:'DefaultCursorForegroundColor DefaultCursorBackgroundColor
DefaultCursorType DefaultCursorNoFocusForegroundColor
DefaultCursorTypeNoFocus LastColumnNumberForSort Macros'
@@ -467,8 +467,10 @@
!EditTextView class methodsFor:'defaults'!
-codeCompletionServiceClass
- ^ nil "/ redefinable by subclass which know what kind of text they deal with
+defaultCompletionSupportClass
+ ^ nil
+
+ "Created: / 26-09-2013 / 17:59:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
st80Mode
@@ -827,6 +829,20 @@
!EditTextView methodsFor:'accessing'!
+completionSupport
+ ^ completionSupport
+!
+
+completionSupport:anEditTextViewCompletionSupport
+ completionSupport := anEditTextViewCompletionSupport.
+!
+
+completionSupportClass
+ ^ self class defaultCompletionSupportClass
+
+ "Created: / 26-09-2013 / 17:54:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
editedClass
|cm|
@@ -1137,6 +1153,13 @@
"Created: 14.2.1997 / 17:35:39 / cg"
!
+reallyModifiedChannel
+ "return the valueHolder holding true if text was really modified.
+ For compatibility with views which use the modified flag for syntax highlighting."
+
+ ^ self modifiedChannel
+!
+
st80Mode:aBoolean
"set/clear the st80Mode flag.
If on, the cursor wraps at the line end (like in vi or st80);
@@ -2927,7 +2950,7 @@
].
"/ delete right rest of 1st line
- self deleteCharsAtLine:startLine fromCol:startCol.
+ self deleteCharsAtLine:startLine fromCol:(startCol max:1).
"/ delete the inner lines ...
endLine > (startLine + 1) ifTrue:[
@@ -4505,9 +4528,9 @@
hasKeyboardFocus := true.
dragIsActive := false.
- completionService notNil ifTrue:[
+ completionSupport notNil ifTrue:[
"/ also give that guy a chance to close its popup view
- completionService buttonPress:button x:x y:y
+ completionSupport buttonPress:button x:x y:y
].
cursorShown ifTrue: [
@@ -4790,14 +4813,16 @@
(immediateCompletion
or:[UserPreferences current codeCompletionOnControlKey
or:[UserPreferences current codeCompletionOnTabKey]]) ifTrue:[
- completionService isNil ifTrue:[
- self initializeCodeCompletionService.
+ completionSupport isNil ifTrue:[
+ self initializeCompletionSupport.
].
- ] ifFalse:[
- completionService := nil
- ].
- completionService notNil ifTrue:[
- (completionService handleKeyPress:key x:x y:y) ifTrue:["eaten" ^ self].
+ ].
+ "/ JV: why setting it to nil here?
+"/ ifFalse:[
+"/ completionService := nil
+"/ ].
+ completionSupport notNil ifTrue:[
+ (completionSupport handleKeyPress:key x:x y:y) ifTrue:["eaten" ^ self].
].
(key == #LearnKeyboardMacro) ifTrue:[
@@ -4856,7 +4881,7 @@
"/ ].
].
true "immediateCompletion" ifTrue:[
- completionService notNil ifTrue:[ completionService postKeyPress:key].
+ completionSupport notNil ifTrue:[ completionSupport postKeyPress:key].
].
^ self
].
@@ -5161,7 +5186,7 @@
"Modified: / 06-02-1998 / 11:59:59 / stefan"
"Modified: / 14-07-2011 / 12:08:28 / cg"
- "Modified: / 26-08-2013 / 17:50:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 26-09-2013 / 17:52:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
executeKeyboardMacro:cmdMacro
@@ -5348,7 +5373,7 @@
self selectFromLine:selectionStartLine col:selectionStartCol toLine:cursorLine col:cursorCol-1.
].
].
- completionService notNil ifTrue:[ completionService postKeyPress:keyArg ].
+ completionSupport notNil ifTrue:[ completionSupport postKeyPress:keyArg ].
"Modified (comment): / 25-01-2012 / 00:30:11 / cg"
"Modified: / 30-08-2013 / 20:10:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -5422,8 +5447,8 @@
].
hasKeyboardFocus ifFalse:[
- completionService notNil ifTrue:[
- completionService editViewLostFocus.
+ completionSupport notNil ifTrue:[
+ completionSupport editViewLostFocus.
].
].
@@ -5597,10 +5622,6 @@
!EditTextView methodsFor:'initialization'!
-codeCompletionServiceClass
- ^ self class codeCompletionServiceClass
-!
-
fetchDeviceResources
"fetch device colors, to avoid reallocation at redraw time"
@@ -5686,19 +5707,21 @@
undoSupport := UndoSupport for:self.
!
-initializeCodeCompletionService
- |serviceClass|
-
- completionService isNil ifTrue:[
- (serviceClass := self codeCompletionServiceClass) notNil ifTrue:[
- completionService := serviceClass for:self.
+initializeCompletionSupport
+ |supportClass|
+
+ completionSupport isNil ifTrue:[
+ (supportClass := self completionSupportClass) notNil ifTrue:[
+ completionSupport := supportClass for:self.
].
].
+
+ "Created: / 26-09-2013 / 17:51:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
release
- completionService notNil ifTrue:[
- completionService release
+ completionSupport notNil ifTrue:[
+ completionSupport release
].
super release
! !
@@ -8475,11 +8498,11 @@
!EditTextView class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libwidg/EditTextView.st,v 1.584 2013-09-20 15:28:35 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg/EditTextView.st,v 1.587 2013-09-26 17:35:11 vrany Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libwidg/EditTextView.st,v 1.584 2013-09-20 15:28:35 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg/EditTextView.st,v 1.587 2013-09-26 17:35:11 vrany Exp $'
!
version_HG
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/EditTextViewCompletionSupport.st Fri Sep 27 23:01:16 2013 +0100
@@ -0,0 +1,291 @@
+"{ Package: 'stx:libwidg' }"
+
+Object subclass:#EditTextViewCompletionSupport
+ instanceVariableNames:'completionView completionProcess editView autoSelect'
+ classVariableNames:'LastCompletions'
+ poolDictionaries:''
+ category:'Views-Text'
+!
+
+!EditTextViewCompletionSupport class methodsFor:'documentation'!
+
+documentation
+"
+ An abstract supperclass to support completion in text views.
+ Individual completion engines may create a subclass of
+ EditTextCompletionSupport and customize it.
+
+ Basucally, they have to implement #computeCompletions
+
+ [author:]
+ Claus Gittinger
+
+ [instance variables:]
+
+ [class variables:]
+
+ [see also:]
+
+"
+! !
+
+!EditTextViewCompletionSupport class methodsFor:'instance creation'!
+
+for:anEditView
+ ^ self new editView:anEditView
+! !
+
+!EditTextViewCompletionSupport class methodsFor:'queries'!
+
+isAbstract
+ ^true
+
+ "Created: / 26-09-2013 / 16:22:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!EditTextViewCompletionSupport methodsFor:'accessing'!
+
+editView:anEditTextView
+ editView := anEditTextView.
+! !
+
+!EditTextViewCompletionSupport methodsFor:'events'!
+
+buttonPress:button x:x y:y
+ self closeCompletionView.
+!
+
+editViewLostFocus
+ completionView notNil ifTrue:[
+ self closeCompletionView
+ ]
+!
+
+handleKeyPress:key x:x y:y
+ "return true, if I have eaten this keypress"
+
+ |ch completeImmediate eatCursorLeftOrRight|
+
+ completeImmediate := UserPreferences current immediateCodeCompletion.
+
+ "/ open on CTRL- or TAB-key?
+ (completionView isNil or:[completionView realized not]) ifTrue:[
+ editView hasSelection ifFalse:[
+ ((ch := editView characterBeforeCursor) notNil "/ i.e. not at begin of line
+ and:[ ch isSeparator not ]) ifTrue:[
+ (key == #Control_L or:[ key == #Ctrl or:[ key == #Control_R or:[ key == #Control]]]) ifTrue:[
+ UserPreferences current codeCompletionOnControlKey ifTrue:[
+ autoSelect := true.
+ self updateCompletionList
+ ]
+ ].
+ (key == #Tab) ifTrue:[
+ UserPreferences current codeCompletionOnTabKey ifTrue:[
+ autoSelect := true.
+ self updateCompletionList.
+ ^ true
+ ].
+ ]
+ ].
+ ].
+ ^ false.
+ ].
+
+ "/ key for completion view ? (careful: do not forward too many, it would disturb user's typing)
+ key isCharacter ifFalse:[
+ "/ forward to menu
+ (completionView notNil) ifTrue:[
+ eatCursorLeftOrRight := false.
+"/ completeImmediate not
+"/ or:[ editView sensor shiftDown
+"/ or:[ editView sensor ctrlDown ]].
+ (key == #CursorDown
+ or:[ (key == #CursorUp)
+ or:[ ((key == #CursorLeft) and:[eatCursorLeftOrRight])
+ or:[ ((key == #CursorRight) and:[eatCursorLeftOrRight])
+ or:[ ((key == #Return) and:[ completionView hasSelection ])
+ ]]]]) ifTrue:[
+ "/ only with shift - normal user typing should not interfere with completion
+ true "editView sensor shiftDown" ifTrue:[
+ "/ forward to completion view
+ completionView sensor pushUserEvent:#value for:[ completionView keyPress:key x:0 y:0 ].
+ ^ true.
+ ].
+ ].
+
+ (key == #Control_L or:[ key == #Control_R or:[ key == #Control or:[ key == #Ctrl ]]]) ifTrue:[
+ "/ CTRL is a toggle
+ self closeCompletionView.
+ ^ true.
+ "/ ^ false
+ ].
+ (key == #Escape) ifTrue:[
+ self closeCompletionView.
+ ^ true "/ EAT
+ ].
+ "/ shift does not close
+ (key == #Shift_L or:[ key == #Shift_R or:[ key == #Shift]]) ifTrue:[
+ ^ false "/ don' eat
+ ].
+
+ self closeCompletionView.
+ ^ false "/ don' eat
+ ].
+ ].
+ ^ false.
+!
+
+postKeyPress:key
+ UserPreferences current immediateCodeCompletion ifFalse:[
+ "/ only update, if already open
+ completionView isNil ifTrue:[^ self].
+ ].
+
+ (key == #BackSpace or:[key == #BasicBackspace]) ifTrue:[
+ autoSelect := false.
+ self updateCompletionList.
+ ^ self
+ ].
+
+ key isCharacter ifTrue:[
+ key isSeparator ifTrue:[
+ self closeCompletionView
+ ] ifFalse:[
+ autoSelect := false.
+ self updateCompletionList.
+ ].
+ ^ self
+ ].
+! !
+
+!EditTextViewCompletionSupport methodsFor:'private'!
+
+release
+ self stopCompletionProcess.
+ self closeCompletionView.
+ super release
+!
+
+startCompletionProcess
+ "start the code completion process in the background"
+
+ |initialList cursorX cursorY|
+
+ "/ terminate any previous process
+ self stopCompletionProcess.
+
+ (editView sensor hasKeyPressEventFor:nil) ifTrue:[
+ self closeCompletionView.
+ ^ self
+ ].
+ ((cursorX := editView xOfCursor) isNil
+ or:[ (cursorY := editView yOfCursor) isNil ]) ifTrue:[
+ "/ no cursor - user is selecting, or cursor has been scrolled out of sight.
+ self closeCompletionView.
+ ^ self
+ ].
+
+ initialList := #( 'busy...' ).
+
+ self openCompletionView.
+
+ completionProcess :=
+ [
+ self computeCompletions.
+ ] forkAt:(Processor activePriority - 1).
+
+ "Modified: / 26-09-2013 / 17:36:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+stopCompletionProcess
+ "kill any background completion process"
+
+ |p|
+
+ (p := completionProcess) notNil ifTrue:[
+ completionProcess := nil.
+ p terminate.
+ ].
+!
+
+updateCompletionList
+ "called for keypress events"
+
+ self startCompletionProcess.
+! !
+
+!EditTextViewCompletionSupport methodsFor:'private-API'!
+
+closeCompletionView
+ |v|
+
+ (v := completionView) notNil ifTrue:[
+ completionView := nil.
+ "/ let it close itself - avoids synchronization problems
+ v sensor
+ pushUserEvent:#value
+ for:[ v topView destroy ]
+ ].
+!
+
+computeCompletions
+ "Actually compute the completions and update the completion view."
+
+ self subclassResponsibility
+
+ "Created: / 26-09-2013 / 17:35:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+openCompletionView
+ "Opens the completion view with an initial list. Called as soon as
+ completion is initiated but completion options are not yet computed."
+
+ self openCompletionView: (Array with: 'Busy...')
+
+ "Created: / 26-09-2013 / 17:06:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+openCompletionView: list
+ "Makes sure the completion view is opened and with given `list`."
+
+ | movePos topView |
+ "/ move the window
+ movePos := editView device translatePoint:(editView xOfCursor @ editView yOfCursor) fromView:editView toView:nil.
+ movePos := movePos - (editView viewOrigin x @ 0).
+ "/ currently, we have to stay away a bit, to avoid getting the focus
+ movePos := movePos + (60 @ (editView font height)).
+
+ completionView isNil ifTrue:[
+ completionView := CodeCompletionHelpMenuView new.
+ completionView name:'completion'.
+ completionView level:0.
+ completionView list:list.
+ completionView enable:false.
+ completionView extent:completionView preferredExtentForContents.
+ completionView font: editView font.
+ topView := CodeCompletionHelpView with:completionView.
+ topView origin:movePos.
+ topView resizeToFit.
+ "/ topView open.
+ ] ifFalse:[
+ completionView list:list.
+ topView := completionView topView.
+ topView ~~ completionView ifTrue:[
+ topView origin:movePos.
+ topView resizeToFit.
+ ]
+ ].
+
+ "Created: / 26-09-2013 / 17:07:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!EditTextViewCompletionSupport class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /cvs/stx/stx/libwidg/EditTextViewCompletionSupport.st,v 1.1 2013-09-26 17:07:20 vrany Exp $'
+!
+
+version_CVS
+ ^ '$Header: /cvs/stx/stx/libwidg/EditTextViewCompletionSupport.st,v 1.1 2013-09-26 17:07:20 vrany Exp $'
+! !
+
--- a/Make.proto Mon Sep 23 14:20:54 2013 +0100
+++ b/Make.proto Fri Sep 27 23:01:16 2013 +0100
@@ -1,4 +1,4 @@
-# $Header: /cvs/stx/stx/libwidg/Make.proto,v 1.90 2013-02-22 12:36:16 cg Exp $
+# $Header: /cvs/stx/stx/libwidg/Make.proto,v 1.91 2013-09-26 17:32:02 vrany Exp $
#
# DO NOT EDIT
# automagically generated from the projectDefinition: stx_libwidg.
@@ -34,7 +34,7 @@
# add the path(es) here:,
# ********** OPTIONAL: MODIFY the next lines ***
# LOCALINCLUDES=-Ifoo -Ibar
-LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libui -I$(INCLUDE_TOP)/stx/libbasic2 -I$(INCLUDE_TOP)/stx/libview
+LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libview
# if you need any additional defines for embedded C code,
@@ -83,13 +83,18 @@
# add more postMake actions here
postMake:: cleanjunk
-prereq: $(REQUIRED_SUPPORT_DIRS)
+# build all mandatory prerequisite packages (containing superclasses) for this package
+prereq:
cd ../libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
cd ../libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
cd ../libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
cd ../libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
- cd ../libui && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+
+
+# build all packages containing referenced classes for this package
+# they are nor needed to compile the package
+references:
cleanjunk::
@@ -105,6 +110,7 @@
# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
$(OUTDIR)ButtonController.$(O) ButtonController.$(H): ButtonController.st $(INCLUDE_TOP)/stx/libview/Controller.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)DialogBox.$(O) DialogBox.$(H): DialogBox.st $(INCLUDE_TOP)/stx/libview/ModalBox.$(H) $(INCLUDE_TOP)/stx/libview/StandardSystemView.$(H) $(INCLUDE_TOP)/stx/libview/TopView.$(H) $(INCLUDE_TOP)/stx/libview/View.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/DeviceGraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsContext.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)EditTextViewCompletionSupport.$(O) EditTextViewCompletionSupport.$(H): EditTextViewCompletionSupport.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)EnterFieldGroup.$(O) EnterFieldGroup.$(H): EnterFieldGroup.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)FramedBox.$(O) FramedBox.$(H): FramedBox.st $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/DeviceGraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsContext.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)GenericToolbarIconLibrary.$(O) GenericToolbarIconLibrary.$(H): GenericToolbarIconLibrary.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -146,6 +152,7 @@
$(OUTDIR)VariableVerticalPanel.$(O) VariableVerticalPanel.$(H): VariableVerticalPanel.st $(INCLUDE_TOP)/stx/libwidg/VariablePanel.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/DeviceGraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsContext.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)VariableVerticalPanelController.$(O) VariableVerticalPanelController.$(H): VariableVerticalPanelController.st $(INCLUDE_TOP)/stx/libwidg/VariablePanelController.$(H) $(INCLUDE_TOP)/stx/libview/Controller.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)VerticalPanelView.$(O) VerticalPanelView.$(H): VerticalPanelView.st $(INCLUDE_TOP)/stx/libwidg/PanelView.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/DeviceGraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsContext.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)WorkspaceCompletionSupport.$(O) WorkspaceCompletionSupport.$(H): WorkspaceCompletionSupport.st $(INCLUDE_TOP)/stx/libwidg/EditTextViewCompletionSupport.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)XPToolbarIconLibrary.$(O) XPToolbarIconLibrary.$(H): XPToolbarIconLibrary.st $(INCLUDE_TOP)/stx/libwidg/GenericToolbarIconLibrary.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)ArrowButton.$(O) ArrowButton.$(H): ArrowButton.st $(INCLUDE_TOP)/stx/libwidg/Button.$(H) $(INCLUDE_TOP)/stx/libwidg/Label.$(H) $(INCLUDE_TOP)/stx/libview/View.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/DeviceGraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsContext.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)EditTextView.$(O) EditTextView.$(H): EditTextView.st $(INCLUDE_TOP)/stx/libwidg/TextView.$(H) $(INCLUDE_TOP)/stx/libwidg/ListView.$(H) $(INCLUDE_TOP)/stx/libview/View.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/DeviceGraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsContext.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/Query.$(H) $(INCLUDE_TOP)/stx/libbasic/Notification.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(STCHDR)
--- a/Make.spec Mon Sep 23 14:20:54 2013 +0100
+++ b/Make.spec Fri Sep 27 23:01:16 2013 +0100
@@ -1,4 +1,4 @@
-# $Header: /cvs/stx/stx/libwidg/Make.spec,v 1.19 2013-02-22 12:36:14 cg Exp $
+# $Header: /cvs/stx/stx/libwidg/Make.spec,v 1.20 2013-09-26 17:31:44 vrany Exp $
#
# DO NOT EDIT
# automagically generated from the projectDefinition: stx_libwidg.
@@ -50,145 +50,149 @@
STCWARNINGS=-warnNonStandard
COMMON_CLASSES= \
- Label \
- Button \
ButtonController \
- CheckLabel \
- Toggle \
- ListView \
- TextView \
DialogBox \
- EditTextView \
- EditField \
- EnterBox \
- EnterBox2 \
+ EditTextViewCompletionSupport \
EnterFieldGroup \
- ListSelectionBox \
- FileSelectionBox \
- SelectionInListView \
- FontPanel \
FramedBox \
+ GenericToolbarIconLibrary \
+ Label \
+ ListView \
+ MenuEvent \
+ ObjectView \
+ PanelView \
+ PopUpMenu \
+ PullDownMenu \
+ RadioButtonGroup \
+ ScrollBar \
ScrollableView \
Scroller \
- PanelView \
- ScrollBar \
+ SelectionInList \
+ VariablePanel \
+ VariablePanelController \
+ stx_libwidg \
+ Button \
+ CheckLabel \
+ EnterBox \
+ FontPanel \
+ HVScrollableView \
+ HorizontalPanelView \
+ HorizontalScrollBar \
HorizontalScroller \
InfoBox \
- ArrowButton \
- FileSaveBox \
- MenuView \
- ClickMenuView \
MiniScroller \
- SelectionInList \
- ObjectView \
+ MultiColumnPanelView \
+ MultiSelectionInList \
OptionBox \
- HorizontalPanelView \
- PopUpList \
PopUpListController \
- PopUpMenu \
- PullDownMenu \
- RadioButton \
+ SelectionInListView \
+ SequenceView \
+ TextView \
ToggleController \
- RadioButtonGroup \
- HorizontalScrollBar \
- HVScrollableView \
- HorizontalMiniScroller \
- MultiSelectionInList \
- FileSelectionList \
- SequenceView \
- TextCollector \
- Workspace \
- CheckToggle \
- RadioButtonController \
- VariablePanel \
- VariablePanelController \
VariableHorizontalPanel \
VariableHorizontalPanelController \
VariableVerticalPanel \
VariableVerticalPanelController \
VerticalPanelView \
+ WorkspaceCompletionSupport \
+ XPToolbarIconLibrary \
+ ArrowButton \
+ EditTextView \
+ EnterBox2 \
+ FileSelectionList \
+ HorizontalMiniScroller \
+ ListSelectionBox \
+ MenuView \
+ PopUpList \
+ RadioButtonController \
+ Toggle \
+ VistaToolbarIconLibrary \
WarningBox \
- CodeView \
+ CheckToggle \
+ ClickMenuView \
+ EditField \
+ FileSelectionBox \
+ RadioButton \
+ TextCollector \
+ Windows8ToolbarIconLibrary \
YesNoBox \
- stx_libwidg \
- MultiColumnPanelView \
- GenericToolbarIconLibrary \
- XPToolbarIconLibrary \
- VistaToolbarIconLibrary \
- MenuEvent \
- Windows8ToolbarIconLibrary \
+ FileSaveBox \
+ Workspace \
+ CodeView \
COMMON_OBJS= \
- $(OUTDIR_SLASH)Label.$(O) \
- $(OUTDIR_SLASH)Button.$(O) \
$(OUTDIR_SLASH)ButtonController.$(O) \
- $(OUTDIR_SLASH)CheckLabel.$(O) \
- $(OUTDIR_SLASH)Toggle.$(O) \
- $(OUTDIR_SLASH)ListView.$(O) \
- $(OUTDIR_SLASH)TextView.$(O) \
$(OUTDIR_SLASH)DialogBox.$(O) \
- $(OUTDIR_SLASH)EditTextView.$(O) \
- $(OUTDIR_SLASH)EditField.$(O) \
- $(OUTDIR_SLASH)EnterBox.$(O) \
- $(OUTDIR_SLASH)EnterBox2.$(O) \
+ $(OUTDIR_SLASH)EditTextViewCompletionSupport.$(O) \
$(OUTDIR_SLASH)EnterFieldGroup.$(O) \
- $(OUTDIR_SLASH)ListSelectionBox.$(O) \
- $(OUTDIR_SLASH)FileSelectionBox.$(O) \
- $(OUTDIR_SLASH)SelectionInListView.$(O) \
- $(OUTDIR_SLASH)FontPanel.$(O) \
$(OUTDIR_SLASH)FramedBox.$(O) \
+ $(OUTDIR_SLASH)GenericToolbarIconLibrary.$(O) \
+ $(OUTDIR_SLASH)Label.$(O) \
+ $(OUTDIR_SLASH)ListView.$(O) \
+ $(OUTDIR_SLASH)MenuEvent.$(O) \
+ $(OUTDIR_SLASH)ObjectView.$(O) \
+ $(OUTDIR_SLASH)PanelView.$(O) \
+ $(OUTDIR_SLASH)PopUpMenu.$(O) \
+ $(OUTDIR_SLASH)PullDownMenu.$(O) \
+ $(OUTDIR_SLASH)RadioButtonGroup.$(O) \
+ $(OUTDIR_SLASH)ScrollBar.$(O) \
$(OUTDIR_SLASH)ScrollableView.$(O) \
$(OUTDIR_SLASH)Scroller.$(O) \
- $(OUTDIR_SLASH)PanelView.$(O) \
- $(OUTDIR_SLASH)ScrollBar.$(O) \
+ $(OUTDIR_SLASH)SelectionInList.$(O) \
+ $(OUTDIR_SLASH)VariablePanel.$(O) \
+ $(OUTDIR_SLASH)VariablePanelController.$(O) \
+ $(OUTDIR_SLASH)stx_libwidg.$(O) \
+ $(OUTDIR_SLASH)Button.$(O) \
+ $(OUTDIR_SLASH)CheckLabel.$(O) \
+ $(OUTDIR_SLASH)EnterBox.$(O) \
+ $(OUTDIR_SLASH)FontPanel.$(O) \
+ $(OUTDIR_SLASH)HVScrollableView.$(O) \
+ $(OUTDIR_SLASH)HorizontalPanelView.$(O) \
+ $(OUTDIR_SLASH)HorizontalScrollBar.$(O) \
$(OUTDIR_SLASH)HorizontalScroller.$(O) \
$(OUTDIR_SLASH)InfoBox.$(O) \
- $(OUTDIR_SLASH)ArrowButton.$(O) \
- $(OUTDIR_SLASH)FileSaveBox.$(O) \
- $(OUTDIR_SLASH)MenuView.$(O) \
- $(OUTDIR_SLASH)ClickMenuView.$(O) \
$(OUTDIR_SLASH)MiniScroller.$(O) \
- $(OUTDIR_SLASH)SelectionInList.$(O) \
- $(OUTDIR_SLASH)ObjectView.$(O) \
+ $(OUTDIR_SLASH)MultiColumnPanelView.$(O) \
+ $(OUTDIR_SLASH)MultiSelectionInList.$(O) \
$(OUTDIR_SLASH)OptionBox.$(O) \
- $(OUTDIR_SLASH)HorizontalPanelView.$(O) \
- $(OUTDIR_SLASH)PopUpList.$(O) \
$(OUTDIR_SLASH)PopUpListController.$(O) \
- $(OUTDIR_SLASH)PopUpMenu.$(O) \
- $(OUTDIR_SLASH)PullDownMenu.$(O) \
- $(OUTDIR_SLASH)RadioButton.$(O) \
+ $(OUTDIR_SLASH)SelectionInListView.$(O) \
+ $(OUTDIR_SLASH)SequenceView.$(O) \
+ $(OUTDIR_SLASH)TextView.$(O) \
$(OUTDIR_SLASH)ToggleController.$(O) \
- $(OUTDIR_SLASH)RadioButtonGroup.$(O) \
- $(OUTDIR_SLASH)HorizontalScrollBar.$(O) \
- $(OUTDIR_SLASH)HVScrollableView.$(O) \
- $(OUTDIR_SLASH)HorizontalMiniScroller.$(O) \
- $(OUTDIR_SLASH)MultiSelectionInList.$(O) \
- $(OUTDIR_SLASH)FileSelectionList.$(O) \
- $(OUTDIR_SLASH)SequenceView.$(O) \
- $(OUTDIR_SLASH)TextCollector.$(O) \
- $(OUTDIR_SLASH)Workspace.$(O) \
- $(OUTDIR_SLASH)CheckToggle.$(O) \
- $(OUTDIR_SLASH)RadioButtonController.$(O) \
- $(OUTDIR_SLASH)VariablePanel.$(O) \
- $(OUTDIR_SLASH)VariablePanelController.$(O) \
$(OUTDIR_SLASH)VariableHorizontalPanel.$(O) \
$(OUTDIR_SLASH)VariableHorizontalPanelController.$(O) \
$(OUTDIR_SLASH)VariableVerticalPanel.$(O) \
$(OUTDIR_SLASH)VariableVerticalPanelController.$(O) \
$(OUTDIR_SLASH)VerticalPanelView.$(O) \
+ $(OUTDIR_SLASH)WorkspaceCompletionSupport.$(O) \
+ $(OUTDIR_SLASH)XPToolbarIconLibrary.$(O) \
+ $(OUTDIR_SLASH)ArrowButton.$(O) \
+ $(OUTDIR_SLASH)EditTextView.$(O) \
+ $(OUTDIR_SLASH)EnterBox2.$(O) \
+ $(OUTDIR_SLASH)FileSelectionList.$(O) \
+ $(OUTDIR_SLASH)HorizontalMiniScroller.$(O) \
+ $(OUTDIR_SLASH)ListSelectionBox.$(O) \
+ $(OUTDIR_SLASH)MenuView.$(O) \
+ $(OUTDIR_SLASH)PopUpList.$(O) \
+ $(OUTDIR_SLASH)RadioButtonController.$(O) \
+ $(OUTDIR_SLASH)Toggle.$(O) \
+ $(OUTDIR_SLASH)VistaToolbarIconLibrary.$(O) \
$(OUTDIR_SLASH)WarningBox.$(O) \
- $(OUTDIR_SLASH)CodeView.$(O) \
+ $(OUTDIR_SLASH)CheckToggle.$(O) \
+ $(OUTDIR_SLASH)ClickMenuView.$(O) \
+ $(OUTDIR_SLASH)EditField.$(O) \
+ $(OUTDIR_SLASH)FileSelectionBox.$(O) \
+ $(OUTDIR_SLASH)RadioButton.$(O) \
+ $(OUTDIR_SLASH)TextCollector.$(O) \
+ $(OUTDIR_SLASH)Windows8ToolbarIconLibrary.$(O) \
$(OUTDIR_SLASH)YesNoBox.$(O) \
- $(OUTDIR_SLASH)stx_libwidg.$(O) \
- $(OUTDIR_SLASH)MultiColumnPanelView.$(O) \
- $(OUTDIR_SLASH)GenericToolbarIconLibrary.$(O) \
- $(OUTDIR_SLASH)XPToolbarIconLibrary.$(O) \
- $(OUTDIR_SLASH)VistaToolbarIconLibrary.$(O) \
- $(OUTDIR_SLASH)MenuEvent.$(O) \
- $(OUTDIR_SLASH)Windows8ToolbarIconLibrary.$(O) \
+ $(OUTDIR_SLASH)FileSaveBox.$(O) \
+ $(OUTDIR_SLASH)Workspace.$(O) \
+ $(OUTDIR_SLASH)CodeView.$(O) \
--- a/Makefile.init Mon Sep 23 14:20:54 2013 +0100
+++ b/Makefile.init Fri Sep 27 23:01:16 2013 +0100
@@ -1,22 +1,26 @@
#
-# DO NOT EDIT
-# automagically generated from Make.proto (by make mf)
+# DO NOT EDIT
+#
+# make uses this file (Makefile) only, if there is no
+# file named "makefile" (lower-case m) in the same directory.
+# My only task is to generate the real makefile and call make again.
+# Thereafter, I am no longer used and needed.
#
-include ../rules/stdHeader
-include ../configurations/COMMON/defines
-include ../configurations/vendorConf
-include ../configurations/myConf
-include ../rules/stdHeader2
-include Make.spec
+# MACOSX caveat:
+# as filenames are not case sensitive (in a default setup),
+# we cannot use the above trick. Therefore, this file is now named
+# "Makefile.init", and you have to execute "make -f Makefile.init" to
+# get the initial makefile. This is now also done by the toplevel CONFIG
+# script.
+
+.PHONY: run
+
+run: makefile
+ $(MAKE) -f makefile
+
+#only needed for the definition of $(TOP)
include Make.proto
-BASE_CONF=osx_x
-BASE_CONF_VENDOR=mac
-CONF_PACKS=
-CONF_TOOLS=
-
-include ../rules/stdRules
-
makefile: mf
mf:
--- a/TextView.st Mon Sep 23 14:20:54 2013 +0100
+++ b/TextView.st Fri Sep 27 23:01:16 2013 +0100
@@ -2047,9 +2047,9 @@
fontLargerOrSmaller:largerBoolean
|newFont|
- newFont := font size:(largerBoolean
- ifTrue:[font size + 1]
- ifFalse:[(font size-1) max:4]).
+ newFont := font asSize:(largerBoolean
+ ifTrue:[font size + 1]
+ ifFalse:[(font size-1) max:4]).
self font:newFont.
"Modified: / 27-02-1996 / 00:53:51 / cg"
@@ -4317,30 +4317,31 @@
|l t|
selectionStartLine notNil ifTrue:[
- expandingTop == true ifTrue:[
- l := selectionStartLine.
- selectionStartLine := selectionStartLine + 1.
- (selectionStartLine > clickLine
- or:[selectionStartLine == clickLine and:[selectionStartCol > clickCol]])
- ifTrue:[
- t := selectionStartLine.
- selectionStartLine := selectionEndLine.
- selectionEndLine := t.
- t := selectionStartCol.
- selectionStartCol := selectionEndCol.
- selectionEndCol := t.
- expandingTop := false
- ].
- ] ifFalse:[
- l := selectionEndLine.
- selectionEndLine := selectionEndLine + 1.
- ].
+ expandingTop == true ifTrue:[
+ l := selectionStartLine.
+ selectionStartLine := selectionStartLine + 1.
+ (selectionStartLine > clickLine
+ or:[selectionStartLine == clickLine and:[selectionStartCol > clickCol]])
+ ifTrue:[
+ t := selectionStartLine.
+ selectionStartLine := selectionEndLine.
+ selectionEndLine := t.
+ t := selectionStartCol.
+ selectionStartCol := selectionEndCol.
+ selectionEndCol := t.
+ expandingTop := false
+ ].
+ ] ifFalse:[
+ l := selectionEndLine.
+ selectionEndLine := selectionEndLine + 1.
+ ].
"/ self redrawLine:l.
"/ self redrawLine:l+1.
- self validateNewSelection.
- self setPrimarySelection.
- self redrawFromLine:l to:l+1.
- self makeSelectionVisible.
+ self validateNewSelection.
+ self setPrimarySelection.
+ self selectionChanged.
+ self redrawFromLine:l to:l+1.
+ self makeSelectionVisible.
].
"Created: / 01-03-1996 / 23:35:08 / cg"
@@ -4352,33 +4353,34 @@
|c l t c1 c2|
selectionStartLine notNil ifTrue:[
- expandingTop == true ifTrue:[
- selectionStartCol == 0 ifTrue:[^ self].
- l := selectionStartLine.
- selectionStartCol := (selectionStartCol - 1) max:1.
- c := selectionStartCol.
- ] ifFalse:[
- l := selectionEndLine.
- selectionEndCol := (selectionEndCol - 1) max:0.
- c := selectionEndCol.
- selectionEndLine == selectionStartLine ifTrue:[
- selectionEndCol <= selectionStartCol ifTrue:[
- t := selectionStartCol. selectionStartCol := selectionEndCol.
- selectionEndCol := t.
- expandingTop := true.
- c := selectionStartCol.
- ]
- ].
- ].
- c1 := c.
- c2 := c1 + 1.
- c1 == 0 ifTrue:[
- c1 := 1
- ].
- self validateNewSelection.
- self setPrimarySelection.
- self redrawLine:l from:c1 to:c2.
- self makeSelectionVisible.
+ expandingTop == true ifTrue:[
+ selectionStartCol == 0 ifTrue:[^ self].
+ l := selectionStartLine.
+ selectionStartCol := (selectionStartCol - 1) max:1.
+ c := selectionStartCol.
+ ] ifFalse:[
+ l := selectionEndLine.
+ selectionEndCol := (selectionEndCol - 1) max:0.
+ c := selectionEndCol.
+ selectionEndLine == selectionStartLine ifTrue:[
+ selectionEndCol <= selectionStartCol ifTrue:[
+ t := selectionStartCol. selectionStartCol := selectionEndCol.
+ selectionEndCol := t.
+ expandingTop := true.
+ c := selectionStartCol.
+ ]
+ ].
+ ].
+ c1 := c.
+ c2 := c1 + 1.
+ c1 == 0 ifTrue:[
+ c1 := 1
+ ].
+ self validateNewSelection.
+ self setPrimarySelection.
+ self selectionChanged.
+ self redrawLine:l from:c1 to:c2.
+ self makeSelectionVisible.
].
"Modified: / 18-03-1996 / 17:05:46 / cg"
@@ -4389,28 +4391,29 @@
|l c t|
selectionStartLine notNil ifTrue:[
- expandingTop == true ifTrue:[
- l := selectionStartLine.
- c := selectionStartCol.
- selectionStartCol := selectionStartCol + 1.
- l == selectionEndLine ifTrue:[
- c >= selectionEndCol ifTrue:[
- expandingTop := false.
- t := selectionStartCol. selectionStartCol := selectionEndCol.
- selectionEndCol := t.
- c := selectionStartCol.
- ]
- ]
- ] ifFalse:[
- l := selectionEndLine.
- c := selectionEndCol.
- selectionEndCol := selectionEndCol + 1.
- ].
-
- self validateNewSelection.
- self setPrimarySelection.
- self redrawLine:l from:c to:c+1.
- self makeSelectionVisible.
+ expandingTop == true ifTrue:[
+ l := selectionStartLine.
+ c := selectionStartCol.
+ selectionStartCol := selectionStartCol + 1.
+ l == selectionEndLine ifTrue:[
+ c >= selectionEndCol ifTrue:[
+ expandingTop := false.
+ t := selectionStartCol. selectionStartCol := selectionEndCol.
+ selectionEndCol := t.
+ c := selectionStartCol.
+ ]
+ ]
+ ] ifFalse:[
+ l := selectionEndLine.
+ c := selectionEndCol.
+ selectionEndCol := selectionEndCol + 1.
+ ].
+
+ self validateNewSelection.
+ self setPrimarySelection.
+ self selectionChanged.
+ self redrawLine:l from:c to:c+1.
+ self makeSelectionVisible.
].
"Created: / 01-03-1996 / 23:33:17 / cg"
@@ -4422,32 +4425,33 @@
|l t|
selectionStartLine notNil ifTrue:[
- expandingTop == true ifTrue:[
- selectionStartLine := (selectionStartLine - 1) max:1.
- l := selectionStartLine.
- ] ifFalse:[
- selectionEndLine := (selectionEndLine - 1) max:0.
-
- l := selectionEndLine.
- (selectionEndLine < clickLine
- or:[(selectionEndLine == clickLine and:[selectionEndCol < clickCol])])
- ifTrue:[
- t := selectionStartLine.
- selectionStartLine := selectionEndLine.
- selectionEndLine := t.
- t := selectionStartCol.
- selectionStartCol := selectionEndCol.
- selectionEndCol := t.
- l := selectionStartLine.
- expandingTop := true
- ].
- ].
- self validateNewSelection.
- self setPrimarySelection.
- "/ self redrawLine:l.
- "/ self redrawLine:l+1.
- self redrawFromLine:l to:l+1.
- self makeSelectionVisible.
+ expandingTop == true ifTrue:[
+ selectionStartLine := (selectionStartLine - 1) max:1.
+ l := selectionStartLine.
+ ] ifFalse:[
+ selectionEndLine := (selectionEndLine - 1) max:0.
+
+ l := selectionEndLine.
+ (selectionEndLine < clickLine
+ or:[(selectionEndLine == clickLine and:[selectionEndCol < clickCol])])
+ ifTrue:[
+ t := selectionStartLine.
+ selectionStartLine := selectionEndLine.
+ selectionEndLine := t.
+ t := selectionStartCol.
+ selectionStartCol := selectionEndCol.
+ selectionEndCol := t.
+ l := selectionStartLine.
+ expandingTop := true
+ ].
+ ].
+ self validateNewSelection.
+ self setPrimarySelection.
+ self selectionChanged.
+ "/ self redrawLine:l.
+ "/ self redrawLine:l+1.
+ self redrawFromLine:l to:l+1.
+ self makeSelectionVisible.
].
"Modified: / 06-03-1996 / 14:12:06 / cg"
@@ -4587,6 +4591,7 @@
selectionEndCol := endCol.
self validateNewSelection.
self setPrimarySelection.
+ self selectionChanged.
(selectionStartLine == selectionEndLine
and:[oldStartLine == selectionStartLine
@@ -4849,11 +4854,11 @@
!TextView class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libwidg/TextView.st,v 1.364 2013-09-19 13:42:06 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg/TextView.st,v 1.366 2013-09-26 15:10:27 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libwidg/TextView.st,v 1.364 2013-09-19 13:42:06 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg/TextView.st,v 1.366 2013-09-26 15:10:27 cg Exp $'
!
version_HG
--- a/Workspace.st Mon Sep 23 14:20:54 2013 +0100
+++ b/Workspace.st Fri Sep 27 23:01:16 2013 +0100
@@ -25,13 +25,6 @@
category:'Interface-Smalltalk'
!
-Object subclass:#CodeCompletionService
- instanceVariableNames:'completionView completionProcess editView autoSelect'
- classVariableNames:'LastCompletions'
- poolDictionaries:''
- privateIn:Workspace
-!
-
Workspace comment:''
!
@@ -125,8 +118,10 @@
!Workspace class methodsFor:'defaults'!
-codeCompletionServiceClass
- ^ CodeCompletionService
+defaultCompletionSupportClass
+ ^ WorkspaceCompletionSupport
+
+ "Created: / 26-09-2013 / 17:59:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
defaultLabel
@@ -2191,418 +2186,13 @@
"Modified (comment): / 07-03-2012 / 17:52:59 / cg"
! !
-!Workspace::CodeCompletionService class methodsFor:'instance creation'!
-
-for:anEditView
- ^ self new editView:anEditView
-! !
-
-!Workspace::CodeCompletionService methodsFor:'accessing'!
-
-editView:something
- editView := something.
-! !
-
-!Workspace::CodeCompletionService methodsFor:'events'!
-
-buttonPress:button x:x y:y
- self closeCompletionView.
-!
-
-editViewLostFocus
- completionView notNil ifTrue:[
- self closeCompletionView
- ]
-!
-
-handleKeyPress:key x:x y:y
- "return true, if I have eaten this keypress"
-
- |ch completeImmediate eatCursorLeftOrRight|
-
- completeImmediate := UserPreferences current immediateCodeCompletion.
-
- "/ open on CTRL- or TAB-key?
- (completionView isNil or:[completionView realized not]) ifTrue:[
- editView hasSelection ifFalse:[
- ((ch := editView characterBeforeCursor) notNil "/ i.e. not at begin of line
- and:[ ch isSeparator not ]) ifTrue:[
- (key == #Control_L or:[ key == #Ctrl or:[ key == #Control_R or:[ key == #Control]]]) ifTrue:[
- UserPreferences current codeCompletionOnControlKey ifTrue:[
- autoSelect := true.
- self updateCompletionList
- ]
- ].
- (key == #Tab) ifTrue:[
- UserPreferences current codeCompletionOnTabKey ifTrue:[
- autoSelect := true.
- self updateCompletionList.
- ^ true
- ].
- ]
- ].
- ].
- ^ false.
- ].
-
- "/ key for completion view ? (careful: do not forward too many, it would disturb user's typing)
- key isCharacter ifFalse:[
- "/ forward to menu
- (completionView notNil) ifTrue:[
- eatCursorLeftOrRight := false.
-"/ completeImmediate not
-"/ or:[ editView sensor shiftDown
-"/ or:[ editView sensor ctrlDown ]].
- (key == #CursorDown
- or:[ (key == #CursorUp)
- or:[ ((key == #CursorLeft) and:[eatCursorLeftOrRight])
- or:[ ((key == #CursorRight) and:[eatCursorLeftOrRight])
- or:[ ((key == #Return) and:[ completionView hasSelection ])
- ]]]]) ifTrue:[
- "/ only with shift - normal user typing should not interfere with completion
- true "editView sensor shiftDown" ifTrue:[
- "/ forward to completion view
- completionView sensor pushUserEvent:#value for:[ completionView keyPress:key x:0 y:0 ].
- ^ true.
- ].
- ].
-
- (key == #Control_L or:[ key == #Control_R or:[ key == #Control or:[ key == #Ctrl ]]]) ifTrue:[
- "/ CTRL is a toggle
- self closeCompletionView.
- ^ true.
- "/ ^ false
- ].
- (key == #Escape) ifTrue:[
- self closeCompletionView.
- ^ true "/ EAT
- ].
- "/ shift does not close
- (key == #Shift_L or:[ key == #Shift_R or:[ key == #Shift]]) ifTrue:[
- ^ false "/ don' eat
- ].
-
- self closeCompletionView.
- ^ false "/ don' eat
- ].
- ].
- ^ false.
-!
-
-postKeyPress:key
- UserPreferences current immediateCodeCompletion ifFalse:[
- "/ only update, if already open
- completionView isNil ifTrue:[^ self].
- ].
-
- (key == #BackSpace or:[key == #BasicBackspace]) ifTrue:[
- autoSelect := false.
- self updateCompletionList.
- ^ self
- ].
-
- key isCharacter ifTrue:[
- key isSeparator ifTrue:[
- self closeCompletionView
- ] ifFalse:[
- autoSelect := false.
- self updateCompletionList.
- ].
- ^ self
- ].
-! !
-
-!Workspace::CodeCompletionService methodsFor:'private'!
-
-closeCompletionView
- |v|
-
- (v := completionView) notNil ifTrue:[
- completionView := nil.
- "/ let it close itself - avoids synchronization problems
- v sensor
- pushUserEvent:#value
- for:[ v topView destroy ]
- ].
-!
-
-release
- self stopCompletionProcess.
- self closeCompletionView.
- super release
-!
-
-startCompletionProcess
- "start the code completion process in the background"
-
- |movePos topView initialList cursorX cursorY|
-
- "/ terminate any previous process
- self stopCompletionProcess.
-
- (editView sensor hasKeyPressEventFor:nil) ifTrue:[
- self closeCompletionView.
- ^ self
- ].
- ((cursorX := editView xOfCursor) isNil
- or:[ (cursorY := editView yOfCursor) isNil ]) ifTrue:[
- "/ no cursor - user is selecting, or cursor has been scrolled out of sight.
- self closeCompletionView.
- ^ self
- ].
-
- initialList := #( 'busy...' ).
-
- "/ move the window
- movePos := editView device translatePoint:(cursorX @ cursorY) fromView:editView toView:nil.
- movePos := movePos - (editView viewOrigin x @ 0).
- "/ currently, we have to stay away a bit, to avoid getting the focus
- movePos := movePos + (60 @ (editView font height)).
-
- completionView isNil ifTrue:[
- completionView := CodeCompletionHelpMenuView new.
- completionView name:'completion'.
- completionView level:0.
- completionView list:initialList.
- completionView enable:false.
- completionView extent:completionView preferredExtentForContents.
- topView := CodeCompletionHelpView with:completionView.
- topView origin:movePos.
- topView resizeToFit.
- "/ topView open.
- ] ifFalse:[
- completionView list:initialList.
- topView := completionView topView.
- topView ~~ completionView ifTrue:[
- topView origin:movePos.
- topView resizeToFit.
- ]
- ].
-
- completionProcess :=
- [
- |suggestions implementations actions anyFound|
-
- UserInformation ignoreIn:[
- anyFound := false.
- DoWhatIMeanSupport
- codeCompletionForLanguage: editView editedLanguage
- method:editView editedMethod
- orClass:editView editedClass
- context:nil
- codeView:editView
- into:[:listOfSuggestions :listOfActions :titleWhenAsking |
-"/ (listOfSuggestions contains:[:l | l isEmptyOrNil]) ifTrue:[self halt].
- suggestions := listOfSuggestions collect:[:entry | entry isArray ifTrue:[entry first] ifFalse:[entry]].
- implementations := listOfSuggestions collect:[:entry | entry isArray ifTrue:[entry second] ifFalse:[nil]].
- actions := listOfActions.
- anyFound := true.
- nil "/ must return nil to avoid DWIM to do it itself (for now)
- ]
- ].
- "/ anyFound ifFalse:[self halt].
- "/ Transcript show:'suggestions: '; showCR:suggestions.
- "/ Transcript show:'actions: '; showCR:actions.
- editView sensor
- pushUserEvent:#'suggestionsArrived:implementations:actions:autoSelect:'
- for:self
- withArguments:{suggestions . implementations . actions . autoSelect }
- ] forkAt:(Processor activePriority - 1).
-
- "Modified: / 18-09-2013 / 14:17:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-stopCompletionProcess
- "kill any background completion process"
-
- |p|
-
- (p := completionProcess) notNil ifTrue:[
- completionProcess := nil.
- p terminate.
- ].
-!
-
-suggestionsArrived:suggestionsArg implementations:implementationsArg actions:actionsArg autoSelect:autoSelectArg
- "the background process has generated some suggestions"
-
- |v suggestions implementations actions suggestionOffset keyAndSnippet indexOfSnippet|
-
- (editView sensor hasKeyPressEventFor:nil) ifTrue:[
- self closeCompletionView.
- ^ self
- ].
-
- implementations := implementationsArg.
- actions := actionsArg.
-
- suggestions := suggestionsArg ? #().
- suggestions size > 20 ifTrue:[
- suggestions := suggestions copyTo:20.
- implementations := implementations copyTo:20.
- actions isArray ifTrue:[ actions := actions copyTo:20 ].
- ].
-
- "/ append snipplet, if any (can be easily reached via CRSR-up)
- suggestionOffset := 0.
- indexOfSnippet := nil.
- (keyAndSnippet := editView findAbbreviationKeyBeforeCursor) notNil ifTrue:[
- |abbrev sniplet i line|
-
- abbrev := keyAndSnippet first.
- sniplet := keyAndSnippet second.
-
- "/ if the abbreviation is simply at the end of a longer word, ignore the abbrev.
- line := editView lineStringBeforeCursor.
- i := line findLast:[:ch | ch isLetterOrDigit not].
- (i < (line size - abbrev size - 1)) ifFalse:[
- sniplet := sniplet copyWithout:$!!.
-
- "/ true, false and self are often found in both lists
- (suggestions includes:sniplet) ifFalse:[
- suggestions isEmpty ifFalse:[ suggestions := suggestions copyWith: '-' ].
- suggestions := suggestions copyWith: ( '%1 %2'
- bindWith:(sniplet asStringCollection first "contractTo:25")
- with: ( ('("',abbrev,'" snippet)') colorizeAllWith:Color grey)).
- indexOfSnippet := suggestions size.
-
- "/ change below, when reversing the order in above code
- "/ suggestionOffset := 2.
- ]
- ]
- ].
- suggestions isEmptyOrNil ifTrue:[
- self closeCompletionView.
- ^ self
- ].
- (v := completionView) isNil ifTrue: [
- ^ self
- ].
- v topView open.
-
- v sensor
- pushUserEvent:#value
- for:[
- |top idx preselectIdx|
-
- (v == completionView) ifTrue: [
- top := v topView.
-
- LastCompletions notNil ifTrue:[
- "/ one of the last completions in list?
- idx := LastCompletions findFirst:[:compl | suggestions includes:compl].
- idx ~~ 0 ifTrue:[
- preselectIdx := suggestions indexOf:(LastCompletions at:idx).
- ].
- ].
- autoSelectArg ifTrue:[
- (preselectIdx isNil and:[suggestions size == 1]) ifTrue:[
- preselectIdx := 1.
- ].
- ].
- preselectIdx notNil ifTrue:[
- |pref|
-
- pref := suggestions at:preselectIdx.
- "/ for now, do not move to fron (action may need the index)
- suggestions at:preselectIdx put:(pref allBold).
-"/ suggestions removeAtIndex:preselectIdx.
-"/ suggestions addFirst:(pref allBold).
-"/ implementations notNil ifTrue:[
-"/ implementations removeAtIndex:preselectIdx.
-"/ implementations addFirst:implementations.
-"/ ]
- ].
-
- v list:suggestions
- expandTabs:false scanForNonStrings:false
- includesNonStrings:false redraw:true.
-
- implementations notNil ifTrue:[
- implementations keysAndValuesDo:[:idx :impls |
- |implsMenu|
-
- impls notEmptyOrNil ifTrue:[
- implsMenu := Menu new.
- impls do:[:each |
- implsMenu addItem:(MenuItem new label:each name).
- ].
- v subMenuAt:idx put:implsMenu
- ].
- ].
- ].
-
- v enable:true.
- preselectIdx notNil ifTrue:[
- false ifTrue:[
- "/ very disturbing!!
- v selection:preselectIdx.
- ].
- ].
- v extent:completionView preferredExtentForContents.
-
- v action:
- [:selectedListIndex |
- |indexInSuggestions|
-
- self closeCompletionView.
- indexInSuggestions := selectedListIndex - suggestionOffset.
- (selectedListIndex == indexOfSnippet) ifTrue:[
- "/ replace the sniplet
- editView sensor
- pushUserEvent:#value
- for:[
- editView expandAbbreviation
- ]
- ] ifFalse:[
- LastCompletions isNil ifTrue:[
- LastCompletions := OrderedCollection new.
- ].
- LastCompletions add:(suggestions at:indexInSuggestions).
- LastCompletions size > 200 ifTrue:[
- LastCompletions removeLast
- ].
-
- actions notNil ifTrue:[
- actions isBlock ifTrue:[
- actions value:indexInSuggestions
- ] ifFalse:[
- (actions at:indexInSuggestions) value
- ].
- ].
- ].
- "/ no, user has made his choice; so don't show more suggestions
-"/ editView sensor
-"/ pushUserEvent:#value
-"/ for:[
-"/ self updateCompletionList
-"/ ]
- ].
-
- (top ~~ v) ifTrue:[
- top resizeToFit.
- top bottom > v device usableHeight ifTrue:[
- top origin:((top origin x) @ (v device usableHeight - v height)).
- ].
- top raise.
- ]
- ]
- ]
-!
-
-updateCompletionList
- "called for keypress events"
-
- self startCompletionProcess.
-! !
-
!Workspace class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libwidg/Workspace.st,v 1.306 2013-09-18 13:23:11 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg/Workspace.st,v 1.309 2013-09-26 17:34:48 vrany Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libwidg/Workspace.st,v 1.306 2013-09-18 13:23:11 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg/Workspace.st,v 1.309 2013-09-26 17:34:48 vrany Exp $'
! !
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WorkspaceCompletionSupport.st Fri Sep 27 23:01:16 2013 +0100
@@ -0,0 +1,240 @@
+"{ Package: 'stx:libwidg' }"
+
+EditTextViewCompletionSupport subclass:#WorkspaceCompletionSupport
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Interface-Smalltalk'
+!
+
+!WorkspaceCompletionSupport class methodsFor:'documentation'!
+
+documentation
+"
+ A completion support using DWIM to complete code for Smalltalk (and JavaScript)
+
+ [author:]
+ Claus Gittinger
+
+ [instance variables:]
+
+ [class variables:]
+
+ [see also:]
+ DoWhatIMeanSupport
+
+"
+! !
+
+!WorkspaceCompletionSupport methodsFor:'private'!
+
+computeCompletions
+
+ |suggestions implementations actions anyFound contextOrNil|
+
+ "/ a hack
+ (editView topView isKindOf: DebugView) ifTrue:[
+ contextOrNil := editView topView selectedContext.
+ ].
+
+ UserInformation ignoreIn:[
+ anyFound := false.
+ DoWhatIMeanSupport
+ codeCompletionForLanguage: editView editedLanguage
+ method:editView editedMethod
+ orClass:editView editedClass
+ context:contextOrNil
+ codeView:editView
+ into:[:listOfSuggestions :listOfActions :titleWhenAsking |
+"/ (listOfSuggestions contains:[:l | l isEmptyOrNil]) ifTrue:[self halt].
+ suggestions := listOfSuggestions collect:[:entry | entry isArray ifTrue:[entry first] ifFalse:[entry]].
+ implementations := listOfSuggestions collect:[:entry | entry isArray ifTrue:[entry second] ifFalse:[nil]].
+ actions := listOfActions.
+ anyFound := true.
+ nil "/ must return nil to avoid DWIM to do it itself (for now)
+ ]
+ ].
+ "/ anyFound ifFalse:[self halt].
+ "/ Transcript show:'suggestions: '; showCR:suggestions.
+ "/ Transcript show:'actions: '; showCR:actions.
+ editView sensor
+ pushUserEvent:#'suggestionsArrived:implementations:actions:autoSelect:'
+ for:self
+ withArguments:{suggestions . implementations . actions . autoSelect }
+
+ "Created: / 26-09-2013 / 17:44:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+suggestionsArrived:suggestionsArg implementations:implementationsArg actions:actionsArg autoSelect:autoSelectArg
+ "the background process has generated some suggestions"
+
+ |v suggestions implementations actions suggestionOffset keyAndSnippet indexOfSnippet|
+
+ (editView sensor hasKeyPressEventFor:nil) ifTrue:[
+ self closeCompletionView.
+ ^ self
+ ].
+
+ implementations := implementationsArg.
+ actions := actionsArg.
+
+ suggestions := suggestionsArg ? #().
+ suggestions size > 20 ifTrue:[
+ suggestions := suggestions copyTo:20.
+ implementations := implementations copyTo:20.
+ actions isArray ifTrue:[ actions := actions copyTo:20 ].
+ ].
+
+ "/ append snipplet, if any (can be easily reached via CRSR-up)
+ suggestionOffset := 0.
+ indexOfSnippet := nil.
+ (keyAndSnippet := editView findAbbreviationKeyBeforeCursor) notNil ifTrue:[
+ |abbrev sniplet i line|
+
+ abbrev := keyAndSnippet first.
+ sniplet := keyAndSnippet second.
+
+ "/ if the abbreviation is simply at the end of a longer word, ignore the abbrev.
+ line := editView lineStringBeforeCursor.
+ i := line findLast:[:ch | ch isLetterOrDigit not].
+ (i < (line size - abbrev size - 1)) ifFalse:[
+ sniplet := sniplet copyWithout:$!!.
+
+ "/ true, false and self are often found in both lists
+ (suggestions includes:sniplet) ifFalse:[
+ suggestions isEmpty ifFalse:[ suggestions := suggestions copyWith: '-' ].
+ suggestions := suggestions copyWith: ( '%1 %2'
+ bindWith:(sniplet asStringCollection first "contractTo:25")
+ with: ( ('("',abbrev,'" snippet)') colorizeAllWith:Color grey)).
+ indexOfSnippet := suggestions size.
+
+ "/ change below, when reversing the order in above code
+ "/ suggestionOffset := 2.
+ ]
+ ]
+ ].
+ suggestions isEmptyOrNil ifTrue:[
+ self closeCompletionView.
+ ^ self
+ ].
+ (v := completionView) isNil ifTrue: [
+ ^ self
+ ].
+
+ v sensor
+ pushUserEvent:#value
+ for:[
+ |top idx preselectIdx performCompletion|
+
+ (v == completionView) ifTrue: [
+ top := v topView.
+
+ LastCompletions notNil ifTrue:[
+ "/ one of the last completions in list?
+ idx := LastCompletions findFirst:[:compl | suggestions includes:compl].
+ idx ~~ 0 ifTrue:[
+ preselectIdx := suggestions indexOf:(LastCompletions at:idx).
+ ].
+ ].
+ autoSelectArg ifTrue:[
+ (preselectIdx isNil and:[suggestions size == 1]) ifTrue:[
+ preselectIdx := 1.
+ ].
+ ].
+ preselectIdx notNil ifTrue:[
+ |pref|
+
+ pref := suggestions at:preselectIdx.
+ "/ for now, do not move to front (action needs the index)
+ suggestions at:preselectIdx put:(pref allBold).
+"/ suggestions removeAtIndex:preselectIdx.
+"/ suggestions addFirst:(pref allBold).
+"/ implementations notNil ifTrue:[
+"/ implementations removeAtIndex:preselectIdx.
+"/ implementations addFirst:implementations.
+"/ ]
+ ].
+
+ performCompletion :=
+ [:selectedListIndex |
+ |indexInSuggestions|
+
+ self closeCompletionView.
+ indexInSuggestions := selectedListIndex - suggestionOffset.
+ (selectedListIndex == indexOfSnippet) ifTrue:[
+ "/ replace the sniplet
+ editView sensor pushUserEvent:#expandAbbreviation for:editView
+ ] ifFalse:[
+ LastCompletions isNil ifTrue:[
+ LastCompletions := OrderedCollection new.
+ ].
+ LastCompletions add:(suggestions at:indexInSuggestions).
+ LastCompletions size > 200 ifTrue:[
+ LastCompletions removeLast
+ ].
+
+ actions notNil ifTrue:[
+ actions isBlock ifTrue:[
+ actions value:indexInSuggestions
+ ] ifFalse:[
+ (actions at:indexInSuggestions) value
+ ].
+ ].
+ ].
+ "/ disabled - user has made his choice; so don't show more suggestions
+ "/ editView sensor pushUserEvent:#updateCompletionList for:self
+ ].
+
+ ((suggestions size == 1) and:[preselectIdx == 1]) ifTrue:[
+ "/ do it, right here and now
+ performCompletion value:preselectIdx.
+ ] ifFalse:[
+ top open.
+ v list:suggestions
+ expandTabs:false scanForNonStrings:false
+ includesNonStrings:false redraw:true.
+
+ implementations notNil ifTrue:[
+ implementations keysAndValuesDo:[:idx :impls |
+ |implsMenu|
+
+ impls notEmptyOrNil ifTrue:[
+ implsMenu := Menu new.
+ impls do:[:each |
+ implsMenu addItem:(MenuItem new label:each name).
+ ].
+ v subMenuAt:idx put:implsMenu
+ ].
+ ].
+ ].
+
+ v enable:true.
+ preselectIdx notNil ifTrue:[
+ "/ very disturbing!!
+ v selection:preselectIdx.
+ ].
+ v extent:completionView preferredExtentForContents.
+ v action:performCompletion.
+
+ (top ~~ v) ifTrue:[
+ top resizeToFit.
+ top bottom > v device usableHeight ifTrue:[
+ top origin:((top origin x) @ (v device usableHeight - v height)).
+ ].
+ top raise.
+ ]
+ ]
+ ]
+ ]
+! !
+
+!WorkspaceCompletionSupport class methodsFor:'documentation'!
+
+version
+ ^ '$Header: /cvs/stx/stx/libwidg/WorkspaceCompletionSupport.st,v 1.1 2013-09-26 17:07:44 vrany Exp $'
+!
+
+version_CVS
+ ^ '$Header: /cvs/stx/stx/libwidg/WorkspaceCompletionSupport.st,v 1.1 2013-09-26 17:07:44 vrany Exp $'
+! !
+
--- a/abbrev.stc Mon Sep 23 14:20:54 2013 +0100
+++ b/abbrev.stc Fri Sep 27 23:01:16 2013 +0100
@@ -1,37 +1,29 @@
# automagically generated by the project definition
# this file is needed for stc to be able to compile modules independently.
# it provides information about a classes filename, category and especially namespace.
+Label Label stx:libwidg 'Views-Layout' 2
+Button Button stx:libwidg 'Views-Interactors' 2
ArrowButton ArrowButton stx:libwidg 'Views-Interactors' 2
-Button Button stx:libwidg 'Views-Interactors' 2
ButtonController ButtonController stx:libwidg 'Interface-Support-Controllers' 0
CheckLabel CheckLabel stx:libwidg 'Views-Layout' 2
+Toggle Toggle stx:libwidg 'Views-Interactors' 2
+ToggleController ToggleController stx:libwidg 'Interface-Support-Controllers' 0
CheckToggle CheckToggle stx:libwidg 'Views-Interactors' 2
-ClickMenuView ClickMenuView stx:libwidg 'Views-Menus' 2
-CodeView CodeView stx:libwidg 'Views-Text' 2
DialogBox DialogBox stx:libwidg 'Views-DialogBoxes' 2
+ListView ListView stx:libwidg 'Views-Text' 2
+TextView TextView stx:libwidg 'Views-Text' 2
+EditTextView EditTextView stx:libwidg 'Views-Text' 2
EditField EditField stx:libwidg 'Views-Text' 2
-EditTextView EditTextView stx:libwidg 'Views-Text' 2
EnterBox EnterBox stx:libwidg 'Views-DialogBoxes' 2
EnterBox2 EnterBox2 stx:libwidg 'Views-DialogBoxes' 2
EnterFieldGroup EnterFieldGroup stx:libwidg 'Interface-Support' 0
-FileSaveBox FileSaveBox stx:libwidg 'Views-DialogBoxes' 2
-FileSelectionBox FileSelectionBox stx:libwidg 'Views-DialogBoxes' 2
-FileSelectionList FileSelectionList stx:libwidg 'Views-Lists' 2
FontPanel FontPanel stx:libwidg 'Views-DialogBoxes' 2
FramedBox FramedBox stx:libwidg 'Views-Layout' 2
-HVScrollableView HVScrollableView stx:libwidg 'Views-Basic' 2
-HorizontalMiniScroller HorizontalMiniScroller stx:libwidg 'Views-Interactors' 2
-HorizontalPanelView HorizontalPanelView stx:libwidg 'Views-Layout' 2
-HorizontalScrollBar HorizontalScrollBar stx:libwidg 'Views-Interactors' 2
-HorizontalScroller HorizontalScroller stx:libwidg 'Views-Interactors' 2
InfoBox InfoBox stx:libwidg 'Views-DialogBoxes' 2
-Label Label stx:libwidg 'Views-Layout' 2
ListSelectionBox ListSelectionBox stx:libwidg 'Views-DialogBoxes' 2
-ListView ListView stx:libwidg 'Views-Text' 2
+FileSelectionBox FileSelectionBox stx:libwidg 'Views-DialogBoxes' 2
+FileSaveBox FileSaveBox stx:libwidg 'Views-DialogBoxes' 2
ListViewController ListViewController stx:libwidg 'Interface-Support' 0
-MenuView MenuView stx:libwidg 'Views-Menus' 2
-MiniScroller MiniScroller stx:libwidg 'Views-Interactors' 2
-MultiSelectionInList MultiSelectionInList stx:libwidg 'Interface-Support-Models' 0
ObjectView ObjectView stx:libwidg 'Views-Basic' 2
OptionBox OptionBox stx:libwidg 'Views-DialogBoxes' 2
PanelView PanelView stx:libwidg 'Views-Layout' 2
@@ -43,24 +35,32 @@
RadioButtonController RadioButtonController stx:libwidg 'Interface-Support-Controllers' 0
RadioButtonGroup RadioButtonGroup stx:libwidg 'Views-Support' 0
ScrollBar ScrollBar stx:libwidg 'Views-Interactors' 2
+HorizontalScrollBar HorizontalScrollBar stx:libwidg 'Views-Interactors' 2
ScrollableView ScrollableView stx:libwidg 'Views-Basic' 2
+HVScrollableView HVScrollableView stx:libwidg 'Views-Basic' 2
+HorizontalPanelView HorizontalPanelView stx:libwidg 'Views-Layout' 2
Scroller Scroller stx:libwidg 'Views-Interactors' 2
+MiniScroller MiniScroller stx:libwidg 'Views-Interactors' 2
+HorizontalMiniScroller HorizontalMiniScroller stx:libwidg 'Views-Interactors' 2
+HorizontalScroller HorizontalScroller stx:libwidg 'Views-Interactors' 2
SelectionInList SelectionInList stx:libwidg 'Interface-Support-Models' 0
+MultiSelectionInList MultiSelectionInList stx:libwidg 'Interface-Support-Models' 0
SelectionInListView SelectionInListView stx:libwidg 'Views-Lists' 2
+FileSelectionList FileSelectionList stx:libwidg 'Views-Lists' 2
+MenuView MenuView stx:libwidg 'Views-Menus' 2
+ClickMenuView ClickMenuView stx:libwidg 'Views-Menus' 2
SequenceView SequenceView stx:libwidg 'Views-Lists' 2
TextCollector TextCollector stx:libwidg 'Views-Text' 2
-TextView TextView stx:libwidg 'Views-Text' 2
-Toggle Toggle stx:libwidg 'Views-Interactors' 2
-ToggleController ToggleController stx:libwidg 'Interface-Support-Controllers' 0
+VariablePanel VariablePanel stx:libwidg 'Views-Layout' 2
+VariablePanelController VariablePanelController stx:libwidg 'Interface-Support-Controllers' 0
VariableHorizontalPanel VariableHorizontalPanel stx:libwidg 'Views-Layout' 2
VariableHorizontalPanelController VariableHorizontalPanelController stx:libwidg 'Interface-Support-Controllers' 0
-VariablePanel VariablePanel stx:libwidg 'Views-Layout' 2
-VariablePanelController VariablePanelController stx:libwidg 'Interface-Support-Controllers' 0
VariableVerticalPanel VariableVerticalPanel stx:libwidg 'Views-Layout' 2
VariableVerticalPanelController VariableVerticalPanelController stx:libwidg 'Interface-Support-Controllers' 0
VerticalPanelView VerticalPanelView stx:libwidg 'Views-Layout' 2
WarningBox WarningBox stx:libwidg 'Views-DialogBoxes' 2
Workspace Workspace stx:libwidg 'Interface-Smalltalk' 2
+CodeView CodeView stx:libwidg 'Views-Text' 2
YesNoBox YesNoBox stx:libwidg 'Views-DialogBoxes' 2
stx_libwidg stx_libwidg stx:libwidg '* Projects & Packages *' 3
MultiColumnPanelView MultiColumnPanelView stx:libwidg 'Views-Layout' 2
@@ -69,3 +69,5 @@
VistaToolbarIconLibrary VistaToolbarIconLibrary stx:libwidg 'Interface-Smalltalk' 0
MenuEvent MenuEvent stx:libwidg 'Views-Menus' 0
Windows8ToolbarIconLibrary Windows8ToolbarIconLibrary stx:libwidg 'Interface-Smalltalk' 0
+EditTextViewCompletionSupport EditTextViewCompletionSupport stx:libwidg 'Views-Text' 0
+WorkspaceCompletionSupport WorkspaceCompletionSupport stx:libwidg 'Interface-Smalltalk' 0
--- a/bc.mak Mon Sep 23 14:20:54 2013 +0100
+++ b/bc.mak Fri Sep 27 23:01:16 2013 +0100
@@ -1,4 +1,4 @@
-# $Header: /cvs/stx/stx/libwidg/bc.mak,v 1.55 2013-05-28 10:33:15 cg Exp $
+# $Header: /cvs/stx/stx/libwidg/bc.mak,v 1.56 2013-09-26 17:32:55 vrany Exp $
#
# DO NOT EDIT
# automagically generated from the projectDefinition: stx_libwidg.
@@ -37,7 +37,7 @@
-LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libui -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\libview
+LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libview
LOCALDEFINES=
STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) $(COMMONSYMBOLS) -varPrefix=$(LIBNAME)
@@ -51,21 +51,25 @@
!INCLUDE $(TOP)\rules\stdRules_bc
-# build all prerequisite packages for this package
+# build all mandatory prerequisite packages (containing superclasses) for this package
prereq:
pushd ..\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
pushd ..\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
pushd ..\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
pushd ..\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
- pushd ..\libui & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+
+clean::
+ del *.$(CSUFFIX)
+
# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
$(OUTDIR)ButtonController.$(O) ButtonController.$(H): ButtonController.st $(INCLUDE_TOP)\stx\libview\Controller.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)DialogBox.$(O) DialogBox.$(H): DialogBox.st $(INCLUDE_TOP)\stx\libview\ModalBox.$(H) $(INCLUDE_TOP)\stx\libview\StandardSystemView.$(H) $(INCLUDE_TOP)\stx\libview\TopView.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\DeviceGraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsContext.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)EditTextViewCompletionSupport.$(O) EditTextViewCompletionSupport.$(H): EditTextViewCompletionSupport.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)EnterFieldGroup.$(O) EnterFieldGroup.$(H): EnterFieldGroup.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)FramedBox.$(O) FramedBox.$(H): FramedBox.st $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\DeviceGraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsContext.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)GenericToolbarIconLibrary.$(O) GenericToolbarIconLibrary.$(H): GenericToolbarIconLibrary.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
@@ -107,6 +111,7 @@
$(OUTDIR)VariableVerticalPanel.$(O) VariableVerticalPanel.$(H): VariableVerticalPanel.st $(INCLUDE_TOP)\stx\libwidg\VariablePanel.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\DeviceGraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsContext.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)VariableVerticalPanelController.$(O) VariableVerticalPanelController.$(H): VariableVerticalPanelController.st $(INCLUDE_TOP)\stx\libwidg\VariablePanelController.$(H) $(INCLUDE_TOP)\stx\libview\Controller.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)VerticalPanelView.$(O) VerticalPanelView.$(H): VerticalPanelView.st $(INCLUDE_TOP)\stx\libwidg\PanelView.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\DeviceGraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsContext.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)WorkspaceCompletionSupport.$(O) WorkspaceCompletionSupport.$(H): WorkspaceCompletionSupport.st $(INCLUDE_TOP)\stx\libwidg\EditTextViewCompletionSupport.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)XPToolbarIconLibrary.$(O) XPToolbarIconLibrary.$(H): XPToolbarIconLibrary.st $(INCLUDE_TOP)\stx\libwidg\GenericToolbarIconLibrary.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)ArrowButton.$(O) ArrowButton.$(H): ArrowButton.st $(INCLUDE_TOP)\stx\libwidg\Button.$(H) $(INCLUDE_TOP)\stx\libwidg\Label.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\DeviceGraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsContext.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)EditTextView.$(O) EditTextView.$(H): EditTextView.st $(INCLUDE_TOP)\stx\libwidg\TextView.$(H) $(INCLUDE_TOP)\stx\libwidg\ListView.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\DeviceGraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsContext.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\Query.$(H) $(INCLUDE_TOP)\stx\libbasic\Notification.$(H) $(INCLUDE_TOP)\stx\libbasic\GenericException.$(H) $(STCHDR)
--- a/libInit.cc Mon Sep 23 14:20:54 2013 +0100
+++ b/libInit.cc Fri Sep 27 23:01:16 2013 +0100
@@ -1,5 +1,5 @@
/*
- * $Header$
+ * $Header: /cvs/stx/stx/libwidg/libInit.cc,v 1.30 2013-09-26 17:34:39 vrany Exp $
*
* DO NOT EDIT
* automagically generated from the projectDefinition: stx_libwidg.
@@ -29,6 +29,7 @@
__BEGIN_PACKAGE2__("libstx_libwidg", _libstx_libwidg_Init, "stx:libwidg");
_ButtonController_Init(pass,__pRT__,snd);
_DialogBox_Init(pass,__pRT__,snd);
+_EditTextViewCompletionSupport_Init(pass,__pRT__,snd);
_EnterFieldGroup_Init(pass,__pRT__,snd);
_FramedBox_Init(pass,__pRT__,snd);
_GenericToolbarIconLibrary_Init(pass,__pRT__,snd);
@@ -70,6 +71,7 @@
_VariableVerticalPanel_Init(pass,__pRT__,snd);
_VariableVerticalPanelController_Init(pass,__pRT__,snd);
_VerticalPanelView_Init(pass,__pRT__,snd);
+_WorkspaceCompletionSupport_Init(pass,__pRT__,snd);
_XPToolbarIconLibrary_Init(pass,__pRT__,snd);
_ArrowButton_Init(pass,__pRT__,snd);
_EditTextView_Init(pass,__pRT__,snd);
--- a/libwidg.rc Mon Sep 23 14:20:54 2013 +0100
+++ b/libwidg.rc Fri Sep 27 23:01:16 2013 +0100
@@ -3,7 +3,7 @@
// automagically generated from the projectDefinition: stx_libwidg.
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 6,2,32767,32767
+ FILEVERSION 6,2,1,34
PRODUCTVERSION 6,2,3,0
#if (__BORLANDC__)
FILEFLAGSMASK VS_FF_DEBUG | VS_FF_PRERELEASE
@@ -20,12 +20,12 @@
BEGIN
VALUE "CompanyName", "eXept Software AG\0"
VALUE "FileDescription", "Smalltalk/X Elementary Widgets (LIB)\0"
- VALUE "FileVersion", "6.2.32767.32767\0"
+ VALUE "FileVersion", "6.2.1.34\0"
VALUE "InternalName", "stx:libwidg\0"
VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2012\nCopyright eXept Software AG 1998-2012\0"
VALUE "ProductName", "Smalltalk/X\0"
VALUE "ProductVersion", "6.2.3.0\0"
- VALUE "ProductDate", "Fri, 30 Aug 2013 19:19:56 GMT\0"
+ VALUE "ProductDate", "Thu, 26 Sep 2013 17:31:25 GMT\0"
END
END
--- a/stx_libwidg.st Mon Sep 23 14:20:54 2013 +0100
+++ b/stx_libwidg.st Fri Sep 27 23:01:16 2013 +0100
@@ -122,37 +122,29 @@
^ #(
"<className> or (<className> attributes...) in load order"
+ Label
+ Button
ArrowButton
- Button
- ButtonController
+ ButtonController
CheckLabel
+ Toggle
+ ToggleController
CheckToggle
- ClickMenuView
- CodeView
DialogBox
+ ListView
+ TextView
+ EditTextView
EditField
- EditTextView
EnterBox
EnterBox2
EnterFieldGroup
- FileSaveBox
- FileSelectionBox
- FileSelectionList
FontPanel
FramedBox
- HVScrollableView
- HorizontalMiniScroller
- HorizontalPanelView
- HorizontalScrollBar
- HorizontalScroller
InfoBox
- Label
ListSelectionBox
- ListView
+ FileSelectionBox
+ FileSaveBox
(ListViewController autoload)
- MenuView
- MiniScroller
- MultiSelectionInList
ObjectView
OptionBox
PanelView
@@ -164,24 +156,32 @@
RadioButtonController
RadioButtonGroup
ScrollBar
+ HorizontalScrollBar
ScrollableView
+ HVScrollableView
+ HorizontalPanelView
Scroller
+ MiniScroller
+ HorizontalMiniScroller
+ HorizontalScroller
SelectionInList
+ MultiSelectionInList
SelectionInListView
+ FileSelectionList
+ MenuView
+ ClickMenuView
SequenceView
TextCollector
- TextView
- Toggle
- ToggleController
+ VariablePanel
+ VariablePanelController
VariableHorizontalPanel
VariableHorizontalPanelController
- VariablePanel
- VariablePanelController
VariableVerticalPanel
VariableVerticalPanelController
VerticalPanelView
WarningBox
Workspace
+ CodeView
YesNoBox
#'stx_libwidg'
MultiColumnPanelView
@@ -190,8 +190,11 @@
VistaToolbarIconLibrary
MenuEvent
Windows8ToolbarIconLibrary
- DialogConfirmationRequest
+ EditTextViewCompletionSupport
+ WorkspaceCompletionSupport
)
+
+ "Modified: / 26-09-2013 / 18:29:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
extensionMethodNames
@@ -240,10 +243,10 @@
!stx_libwidg class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libwidg/stx_libwidg.st,v 1.34 2013-07-29 07:47:53 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg/stx_libwidg.st,v 1.35 2013-09-26 17:34:51 vrany Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libwidg/stx_libwidg.st,v 1.34 2013-07-29 07:47:53 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg/stx_libwidg.st,v 1.35 2013-09-26 17:34:51 vrany Exp $'
! !