Grafoscopio/src/Grafoscopio/SpMorphicGrafoscopioTextAda...

40 lines
1.1 KiB
Smalltalk

Class {
#name : #SpMorphicGrafoscopioTextAdapter,
#superclass : #SpMorphicTextAdapter,
#category : #'Grafoscopio-Rub'
}
{ #category : #factory }
SpMorphicGrafoscopioTextAdapter >> buildWidget [
| newWidget |
newWidget := (self widgetClass on: self)
getTextSelector: #getText;
setTextSelector: #accept:notifying:;
getSelectionSelector: #readSelection;
menuProvider: self selector: #codePaneMenu:shifted:;
setSelectionSelector: #setSelection:;
ghostText: self placeholder;
beWrapped;
enabled: self enabled;
askBeforeDiscardingEdits: self askBeforeDiscardingEdits;
autoAccept: self autoAccept;
vResizing: #spaceFill;
hResizing: #spaceFill;
setBalloonText: self help;
dragEnabled: self dragEnabled;
dropEnabled: self dropEnabled;
registerScrollChanges: #scrollValueChanged:;
yourself.
self setEditingModeFor: newWidget.
self presenter
whenTextChangedDo: [ :text | self setText: text to: newWidget ].
self presenter
whenPlaceholderChangedDo: [ :text | self setGhostText: text to: newWidget ].
^ newWidget
]
{ #category : #factory }
SpMorphicGrafoscopioTextAdapter >> widgetClass [
^ GrafoscopioScrolledTextMorph
]