diff --git a/src/SqueakWhiteboard-Core/WBDynamicTextbox.class.st b/src/SqueakWhiteboard-Core/WBDynamicTextbox.class.st deleted file mode 100644 index e0ce601..0000000 --- a/src/SqueakWhiteboard-Core/WBDynamicTextbox.class.st +++ /dev/null @@ -1,55 +0,0 @@ -Class { - #name : #WBDynamicTextbox, - #superclass : #WBElement, - #category : #'SqueakWhiteboard-Core' -} - -{ - #category : #initialization, - #'squeak_changestamp' : 'is 6/26/2024 23:09' -} -WBDynamicTextbox >> initialize [ - - super initialize. - self setDefaultContentsIfNil -] - -{ - #category : #initialization, - #'squeak_changestamp' : 'is 6/25/2024 15:35' -} -WBDynamicTextbox >> initializeElement [ - - ^ TextMorph new -] - -{ - #category : #initialization, - #'squeak_changestamp' : 'is 6/26/2024 22:49' -} -WBDynamicTextbox >> initializeTextfield [ - "muss das so, wenn supportsText true ist? Muss supportsText überhaupt true sein?" - -] - -{ - #category : #appearance, - #'squeak_changestamp' : 'is 6/25/2024 16:36' -} -WBDynamicTextbox >> setDefaultContentsIfNil [ - | toUse | - - self morph text ifNil: - [toUse := self morph valueOfProperty: #defaultContents. - toUse ifNil: [toUse :='Moin!' asText]. - self morph contents: toUse] -] - -{ - #category : #accessing, - #'squeak_changestamp' : 'is 6/25/2024 16:14' -} -WBDynamicTextbox >> supportsText: aBoolean [ - - supportsText := aBoolean -] diff --git a/src/SqueakWhiteboard-Core/WBElement.class.st b/src/SqueakWhiteboard-Core/WBElement.class.st index f2f0bb7..c10de35 100644 --- a/src/SqueakWhiteboard-Core/WBElement.class.st +++ b/src/SqueakWhiteboard-Core/WBElement.class.st @@ -17,7 +17,8 @@ Class { 'lastMouseClick', 'doubleClickMaxDelta', 'supportsText', - 'morph' + 'morph', + 'resizable' ], #classInstVars : [ 'globalColor' @@ -37,7 +38,7 @@ WBElement class >> defaultSize [ { #category : #'instance creation', - #'squeak_changestamp' : 'si 6/20/2024 23:14' + #'squeak_changestamp' : 'JK 6/30/2024 15:58' } WBElement class >> newWithCanvas: aCanvas [ @@ -107,11 +108,13 @@ WBElement >> addOwnMorphTo: aMorph [ { #category : #resize, - #'squeak_changestamp' : 'is 6/23/2024 01:30' + #'squeak_changestamp' : 'JK 6/30/2024 15:40' } WBElement >> addResizeFrame [ - - self resizeFrame: (WBResizeFrame newWithParent: self) + + self resizable ifTrue: [ + self resizeFrame: (WBResizeFrame newWithParent: self) + ] @@ -774,6 +777,24 @@ WBElement >> resetTextfield [ self textField: nil ] +{ + #category : #accessing, + #'squeak_changestamp' : 'JK 6/30/2024 15:47' +} +WBElement >> resizable [ + + ^ resizable ifNil: [resizable := true] +] + +{ + #category : #accessing, + #'squeak_changestamp' : 'JK 6/30/2024 15:46' +} +WBElement >> resizable: anObject [ + + resizable := anObject +] + { #category : #accessing, #'squeak_changestamp' : 'si 6/3/2024 15:53' diff --git a/src/SqueakWhiteboard-Core/WBPluggableTextMorphPlus.class.st b/src/SqueakWhiteboard-Core/WBPluggableTextMorphPlus.class.st index 202ca0d..889ed30 100644 --- a/src/SqueakWhiteboard-Core/WBPluggableTextMorphPlus.class.st +++ b/src/SqueakWhiteboard-Core/WBPluggableTextMorphPlus.class.st @@ -6,7 +6,8 @@ Class { #superclass : #PluggableTextMorphPlus, #instVars : [ 'enabled', - 'element' + 'element', + 'onChanged' ], #category : #'SqueakWhiteboard-Core', #'squeak_changestamp' : 'is 6/1/2024 17:19' @@ -53,6 +54,17 @@ WBPluggableTextMorphPlus >> enabled: aBoolean [ self owner currentHand releaseKeyboardFocus] ] +{ + #category : #'event handling', + #'squeak_changestamp' : 'JK 6/30/2024 15:34' +} +WBPluggableTextMorphPlus >> handleKeystroke: anEvent [ + + super handleKeystroke: anEvent. + self onChanged value + +] + { #category : #'event handling', #'squeak_changestamp' : 'is 6/23/2024 01:48' @@ -93,7 +105,7 @@ WBPluggableTextMorphPlus >> hasUnacceptedEdits: aBoolean [ { #category : #initialization, - #'squeak_changestamp' : 'is 6/23/2024 01:48' + #'squeak_changestamp' : 'JK 6/30/2024 15:34' } WBPluggableTextMorphPlus >> initialize [ @@ -105,6 +117,24 @@ WBPluggableTextMorphPlus >> initialize [ wrapFlag: true ] +{ + #category : #accessing, + #'squeak_changestamp' : 'JK 6/30/2024 15:59' +} +WBPluggableTextMorphPlus >> onChanged [ + + ^ onChanged +] + +{ + #category : #accessing, + #'squeak_changestamp' : 'JK 6/30/2024 15:59' +} +WBPluggableTextMorphPlus >> onChanged: anObject [ + + onChanged := anObject +] + { #category : #private, #'squeak_changestamp' : 'is 6/2/2024 18:30' diff --git a/src/SqueakWhiteboard-Core/WBTextbox.class.st b/src/SqueakWhiteboard-Core/WBTextbox.class.st new file mode 100644 index 0000000..f3fd311 --- /dev/null +++ b/src/SqueakWhiteboard-Core/WBTextbox.class.st @@ -0,0 +1,30 @@ +Class { + #name : #WBTextbox, + #superclass : #WBRectangularElement, + #category : #'SqueakWhiteboard-Core' +} + +{ + #category : #'as yet unclassified', + #'squeak_changestamp' : 'JK 6/30/2024 15:52' +} +WBTextbox >> initialize [ + + self resizable: false. + super initialize. + self color: Color transparent. + self textField wrapFlag: false; + hResizing: #shrinkWrap; + vResizing: #shrinkWrap; + onChanged: [self resize]; + position: self position. +] + +{ + #category : #'as yet unclassified', + #'squeak_changestamp' : 'JK 6/30/2024 15:12' +} +WBTextbox >> resize [ + + self morph bounds: self textField bounds +] diff --git a/src/SqueakWhiteboard-Core/WBToolbar.class.st b/src/SqueakWhiteboard-Core/WBToolbar.class.st index 4826fb7..415aad2 100644 --- a/src/SqueakWhiteboard-Core/WBToolbar.class.st +++ b/src/SqueakWhiteboard-Core/WBToolbar.class.st @@ -181,11 +181,11 @@ WBToolbar >> buttonFunctionalityForShapeChoosing [ { #category : #'button functionalities', - #'squeak_changestamp' : 'is 6/25/2024 15:34' + #'squeak_changestamp' : 'JK 6/30/2024 14:56' } WBToolbar >> buttonFunctionalityForTextbox [ - ^ [:aButton | self canvas spawnAnElement: (WBDynamicTextbox newWithCanvas: self canvas) At: aButton currentEvent] + ^ [:aButton | self canvas spawnAnElement: (WBTextbox newWithCanvas: self canvas) At: aButton currentEvent] ] {