Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Creation of InputTextArea component #11710

Merged
merged 130 commits into from Jun 21, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
130 commits
Select commit Hold shift + click to select a range
4af4fb7
Add Multiline text input
Valerian-Perez-Wanadev Dec 29, 2021
f643c20
Fix the cut
Valerian-Perez-Wanadev Dec 30, 2021
497ef20
Deadkey managment
Valerian-Perez-Wanadev Dec 30, 2021
1305129
Remove useless code
Valerian-Perez-Wanadev Dec 30, 2021
37b7781
Add margin support
Valerian-Perez-Wanadev Dec 30, 2021
bd6bd5f
Merge branch 'BabylonJS:master' into master
Valerian-Perez-Wanadev Jan 13, 2022
6b429a3
Remove useless code
Valerian-Perez-Wanadev Jan 13, 2022
05b6f8b
Correctly import TextWrapping
Valerian-Perez-Wanadev Jan 13, 2022
9048405
Remove unused attribute
Valerian-Perez-Wanadev Jan 13, 2022
aeb4d89
Move select all in correct place
Valerian-Perez-Wanadev Jan 13, 2022
fd57a87
Missing break
Valerian-Perez-Wanadev Jan 21, 2022
f6e3ed0
Remove unused import
Valerian-Perez-Wanadev Jan 21, 2022
0649efb
Chnage path of import
Valerian-Perez-Wanadev Jan 21, 2022
64d7f93
tslinted
fneitzel Jan 5, 2022
0115e29
Merge remote-tracking branch 'upstream/master'
Valerian-Perez-Wanadev Feb 22, 2022
a725c6c
_breakLines takes care of height
Valerian-Perez-Wanadev Feb 28, 2022
2d49761
Add WordWrapEllipsis mode
Valerian-Perez-Wanadev Feb 28, 2022
eb4883a
Fix bug on _parseLineWordWrapEllipsis
Valerian-Perez-Wanadev Feb 28, 2022
4f76e9c
Correct display of Clip mode
Valerian-Perez-Wanadev Feb 28, 2022
53b7dbb
Correct clip of displayed text
Valerian-Perez-Wanadev Mar 3, 2022
aff6d04
Correct managment of cursor along height of text
Valerian-Perez-Wanadev Mar 3, 2022
eb67951
Use InpuText displaying inheritance
Valerian-Perez-Wanadev Mar 4, 2022
1b18bda
DraxText after caret moving
Valerian-Perez-Wanadev Mar 4, 2022
de86414
Correct text displaying
Valerian-Perez-Wanadev Mar 8, 2022
7dfb5d1
Correct cursor moves in input height
Valerian-Perez-Wanadev Mar 8, 2022
7c06181
Merge remote-tracking branch 'upstream/master'
Valerian-Perez-Wanadev Mar 8, 2022
a65ae28
Merge pull request #6 from Valerian-Perez-Wanadev/3-wrapping-mode
Valerian-Perez-Wanadev Mar 8, 2022
4500844
lint
Valerian-Perez-Wanadev Mar 8, 2022
0420b75
remove unused code
Valerian-Perez-Wanadev Mar 10, 2022
ed979fb
Add new attributes
Valerian-Perez-Wanadev Mar 18, 2022
ccdf497
Move the cursor update in dedicated function
Valerian-Perez-Wanadev Mar 18, 2022
7ff53e8
Call the cursor update after breaking lines
Valerian-Perez-Wanadev Mar 18, 2022
f0eeb53
Move UI calculation in ProcessMeasure
Valerian-Perez-Wanadev Mar 18, 2022
70c3e58
Use correct attribute
Valerian-Perez-Wanadev Mar 18, 2022
4647fec
Rework backspace
Valerian-Perez-Wanadev Mar 18, 2022
cf7a5de
Rework Delete
Valerian-Perez-Wanadev Mar 18, 2022
d84e2cf
Rework Return
Valerian-Perez-Wanadev Mar 18, 2022
0ff55db
Rework End
Valerian-Perez-Wanadev Mar 18, 2022
d24a805
Rework Home
Valerian-Perez-Wanadev Mar 18, 2022
d101263
Rework left
Valerian-Perez-Wanadev Mar 18, 2022
af9a71a
Rework Right
Valerian-Perez-Wanadev Mar 18, 2022
7f920ac
Rework Up
Valerian-Perez-Wanadev Mar 18, 2022
861392e
Rework Down
Valerian-Perez-Wanadev Mar 18, 2022
ea2040e
Rework add key
Valerian-Perez-Wanadev Mar 18, 2022
6af7cde
Update line ending
Valerian-Perez-Wanadev Mar 18, 2022
8a4049d
Remove useless stuff
Valerian-Perez-Wanadev Mar 18, 2022
88e8c90
Left/Right correct cursor update
Valerian-Perez-Wanadev Mar 21, 2022
a791ef4
Avoid redundant code
Valerian-Perez-Wanadev Mar 21, 2022
886a4da
Add new Highlight tracking data structure
Valerian-Perez-Wanadev Mar 25, 2022
5d86ec4
Update cursor position fucntion
Valerian-Perez-Wanadev Mar 25, 2022
b745f73
Dedicated function for caret reset blinking
Valerian-Perez-Wanadev Mar 25, 2022
a48c488
Update Highlighting code
Valerian-Perez-Wanadev Mar 25, 2022
c9f3758
Override _updateValueFromCursorIndex function
Valerian-Perez-Wanadev Mar 25, 2022
1666620
Update Left
Valerian-Perez-Wanadev Mar 25, 2022
867cf05
Update right
Valerian-Perez-Wanadev Mar 25, 2022
252d312
Update up
Valerian-Perez-Wanadev Mar 25, 2022
c87e959
Update Down
Valerian-Perez-Wanadev Mar 25, 2022
55a79b7
Correct attribute & var type
Valerian-Perez-Wanadev Mar 25, 2022
f52a151
Activate highlighting on pointermove
Valerian-Perez-Wanadev Mar 25, 2022
8dc111e
Avoid Chromium-based bug which fire pointerMove right after pointerDown
Valerian-Perez-Wanadev Mar 25, 2022
9406edc
Avoid strange behavior if the first word is too long
Valerian-Perez-Wanadev Mar 25, 2022
4bdd6b9
Update SelectAll
Valerian-Perez-Wanadev Mar 25, 2022
527b8f2
Correction of index during deletion Del/Backspace
Valerian-Perez-Wanadev Mar 25, 2022
93121ff
Call textHasChanged
Valerian-Perez-Wanadev Mar 25, 2022
98dc2a3
Flush highlightes text on each frame
Valerian-Perez-Wanadev Mar 25, 2022
d1c868e
Update Cut shortcut
Valerian-Perez-Wanadev Mar 25, 2022
43fdb0e
Update Paste shorcut
Valerian-Perez-Wanadev Mar 25, 2022
1b60c94
Imporive cursorUpdate function
Valerian-Perez-Wanadev Mar 25, 2022
e49885e
Use correct typing
Valerian-Perez-Wanadev Mar 25, 2022
a52b369
Use correct highlight color
Valerian-Perez-Wanadev Mar 25, 2022
84415e3
Remove useless code
Valerian-Perez-Wanadev Mar 25, 2022
7f3bd87
Fix index bug on deletion
Valerian-Perez-Wanadev Mar 25, 2022
05ca968
Renamed for new architecture
Valerian-Perez-Wanadev Mar 29, 2022
bcc0cf8
Merge remote-tracking branch 'upstream/master'
Valerian-Perez-Wanadev Mar 29, 2022
52600f8
Update to 5.0 architecture
Valerian-Perez-Wanadev Mar 29, 2022
da89e2d
Merge branch 'master' into 10-remork-of-text-managment
Valerian-Perez-Wanadev Mar 29, 2022
232959a
Fix index when down key is pressed on last line
Valerian-Perez-Wanadev Mar 29, 2022
7b10aa5
Update Draw function
Valerian-Perez-Wanadev Apr 5, 2022
5386a96
Correct relativeEndIndex
Valerian-Perez-Wanadev Apr 5, 2022
709938f
Backspace correction on global indexes
Valerian-Perez-Wanadev Apr 5, 2022
c1ec894
Better carret blink managment
Valerian-Perez-Wanadev Apr 5, 2022
a06473c
Add maxHeight attribute
Valerian-Perez-Wanadev Apr 5, 2022
92a6eca
Add autotStretchHeight attribute
Valerian-Perez-Wanadev Apr 5, 2022
57c982b
Remove unused attribute in _breakLines function
Valerian-Perez-Wanadev Apr 5, 2022
8a59568
Better overflowing height managment
Valerian-Perez-Wanadev Apr 5, 2022
c2a02df
Correct use of inherited functions
Valerian-Perez-Wanadev Apr 5, 2022
9f5e698
Remove od code
Valerian-Perez-Wanadev Apr 5, 2022
f399cf8
Delete duplication
Valerian-Perez-Wanadev Apr 5, 2022
b4bb871
Implement autostretchwidth
Valerian-Perez-Wanadev Apr 5, 2022
a5585d8
Implement autostretchHeight
Valerian-Perez-Wanadev Apr 5, 2022
38710b6
preMeasure implementation
Valerian-Perez-Wanadev Apr 5, 2022
b8bdee7
typo
Valerian-Perez-Wanadev Apr 5, 2022
c0a471f
Merge remote-tracking branch 'upstream/master'
Valerian-Perez-Wanadev Apr 28, 2022
c490d29
Remove unused parameter of _draw function
Valerian-Perez-Wanadev Apr 28, 2022
c573656
Call onLinesReadyObservable in correct timing
Valerian-Perez-Wanadev Apr 28, 2022
dd6a493
Fix problems on keyboard selection
Valerian-Perez-Wanadev Apr 28, 2022
36babde
FIx vertical overflow
Valerian-Perez-Wanadev May 2, 2022
65358fb
Click on text is relative to its position
Valerian-Perez-Wanadev May 2, 2022
e5cf1b5
typo
Valerian-Perez-Wanadev May 2, 2022
54a8ad0
Improve selectAll
Valerian-Perez-Wanadev May 2, 2022
8a9c3ac
Add dispose function
Valerian-Perez-Wanadev May 2, 2022
e69e540
Add word selection on double click
Valerian-Perez-Wanadev May 2, 2022
8c92b92
Correct indentation
Valerian-Perez-Wanadev May 2, 2022
66de95f
Avoid vertical shifting in autostretchHeight mode
Valerian-Perez-Wanadev May 2, 2022
8a26c78
switch scope of _processDblClick from private to protected
Valerian-Perez-Wanadev May 3, 2022
d8073ec
missing imports
Valerian-Perez-Wanadev May 3, 2022
6def63a
Update overflow during highlighting
Valerian-Perez-Wanadev May 3, 2022
385024d
Remove unnecessary attribute and privating it
Valerian-Perez-Wanadev May 3, 2022
e889313
linting & doc
Valerian-Perez-Wanadev May 3, 2022
a35df2c
Update What's new
Valerian-Perez-Wanadev May 3, 2022
4eefaee
Merge remote-tracking branch 'upstream/master'
Valerian-Perez-Wanadev May 3, 2022
31eb389
Merge remote-tracking branch 'upstream/master'
Valerian-Perez-Wanadev May 4, 2022
4b6bf03
revert what's new
Valerian-Perez-Wanadev May 4, 2022
26d2d8c
workaround to avoid 'super' call in setter
Valerian-Perez-Wanadev May 4, 2022
c815907
Remove useless comments
Valerian-Perez-Wanadev May 4, 2022
5ba6d27
Formatting
Valerian-Perez-Wanadev May 4, 2022
1412eb2
compute currentLine on preMeasure
Valerian-Perez-Wanadev May 9, 2022
1348acd
Allow 'del' on last text character
Valerian-Perez-Wanadev May 9, 2022
a4245e2
Formatting
Valerian-Perez-Wanadev May 13, 2022
34e800a
Update packages/dev/gui/src/2D/controls/inputTextArea.ts
Valerian-Perez-Wanadev May 24, 2022
3aef0dd
formatting
Valerian-Perez-Wanadev May 24, 2022
0012186
Merge remote-tracking branch 'upstream/master'
Valerian-Perez-Wanadev May 24, 2022
2fc69df
Avoid shifting with the first character in empty input
Valerian-Perez-Wanadev May 30, 2022
4f39e45
prevent default event during typing
Valerian-Perez-Wanadev May 30, 2022
22c64e2
fix weird bug on arrow up
Valerian-Perez-Wanadev May 30, 2022
afa9919
Merge remote-tracking branch 'upstream/master'
Valerian-Perez-Wanadev May 30, 2022
1f64b2f
Remove IE support
Valerian-Perez-Wanadev Jun 14, 2022
44691af
Merge remote-tracking branch 'upstream/master'
Valerian-Perez-Wanadev Jun 14, 2022
34d75c6
Formating
Valerian-Perez-Wanadev Jun 14, 2022
449fbe5
fix build
Valerian-Perez-Wanadev Jun 16, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/dev/gui/src/2D/controls/control.ts
Expand Up @@ -549,7 +549,7 @@ export class Control {
@serialize()
public fixedRatio = 0;

private _fixedRatioMasterIsWidth = true;
protected _fixedRatioMasterIsWidth = true;

/**
* Gets or sets control width
Expand Down
1 change: 1 addition & 0 deletions packages/dev/gui/src/2D/controls/index.ts
Expand Up @@ -9,6 +9,7 @@ export * from "./focusableControl";
export * from "./grid";
export * from "./image";
export * from "./inputText";
export * from "./inputTextArea";
export * from "./inputPassword";
export * from "./line";
export * from "./multiLine";
Expand Down
70 changes: 35 additions & 35 deletions packages/dev/gui/src/2D/controls/inputText.ts
Expand Up @@ -21,39 +21,39 @@ import type { ICanvasRenderingContext } from "core/Engines/ICanvas";
* Class used to create input text control
*/
export class InputText extends Control implements IFocusableControl {
private _textWrapper: TextWrapper;
private _placeholderText = "";
private _background = "#222222";
private _focusedBackground = "#000000";
private _focusedColor = "white";
private _placeholderColor = "gray";
private _thickness = 1;
private _margin = new ValueAndUnit(10, ValueAndUnit.UNITMODE_PIXEL);
private _autoStretchWidth = true;
private _maxWidth = new ValueAndUnit(1, ValueAndUnit.UNITMODE_PERCENTAGE, false);
private _isFocused = false;
protected _textWrapper: TextWrapper;
protected _placeholderText = "";
protected _background = "#222222";
protected _focusedBackground = "#000000";
protected _focusedColor = "white";
protected _placeholderColor = "gray";
protected _thickness = 1;
protected _margin = new ValueAndUnit(10, ValueAndUnit.UNITMODE_PIXEL);
protected _autoStretchWidth = true;
protected _maxWidth = new ValueAndUnit(1, ValueAndUnit.UNITMODE_PERCENTAGE, false);
protected _isFocused = false;
/** the type of device that most recently focused the input: "mouse", "touch" or "pen" */
private _focusedBy: string;
private _blinkTimeout: number;
private _blinkIsEven = false;
protected _focusedBy: string;
protected _blinkTimeout: number;
protected _blinkIsEven = false;
private _cursorOffset = 0;
private _scrollLeft: Nullable<number>;
private _textWidth: number;
private _clickedCoordinate: Nullable<number>;
private _deadKey = false;
private _addKey = true;
private _currentKey = "";
private _isTextHighlightOn = false;
private _textHighlightColor = "#d5e0ff";
private _highligherOpacity = 0.4;
private _highlightedText = "";
protected _scrollLeft: Nullable<number>;
protected _textWidth: number;
protected _clickedCoordinate: Nullable<number>;
protected _deadKey = false;
protected _addKey = true;
protected _currentKey = "";
protected _isTextHighlightOn = false;
protected _textHighlightColor = "#d5e0ff";
protected _highligherOpacity = 0.4;
protected _highlightedText = "";
private _startHighlightIndex = 0;
private _endHighlightIndex = 0;
private _cursorIndex = -1;
private _onFocusSelectAll = false;
private _isPointerDown = false;
private _onClipboardObserver: Nullable<Observer<ClipboardInfo>>;
private _onPointerDblTapObserver: Nullable<Observer<PointerInfo>>;
protected _onFocusSelectAll = false;
protected _isPointerDown = false;
protected _onClipboardObserver: Nullable<Observer<ClipboardInfo>>;
protected _onPointerDblTapObserver: Nullable<Observer<PointerInfo>>;

/** @hidden */
public _connectedVirtualKeyboard: Nullable<VirtualKeyboard>;
Expand Down Expand Up @@ -332,7 +332,7 @@ export class InputText extends Control implements IFocusableControl {
this._textHasChanged();
}

private _textHasChanged(): void {
protected _textHasChanged(): void {
this._markAsDirty();
this.onTextChangedObservable.notifyObservers(this);
}
Expand Down Expand Up @@ -761,7 +761,7 @@ export class InputText extends Control implements IFocusableControl {
* @param offset
* @hidden
*/
private _updateValueFromCursorIndex(offset: number) {
protected _updateValueFromCursorIndex(offset: number) {
//update the cursor
this._blinkIsEven = false;

Expand All @@ -788,7 +788,7 @@ export class InputText extends Control implements IFocusableControl {
* @hidden
*/
// eslint-disable-next-line @typescript-eslint/no-unused-vars
private _processDblClick(evt: PointerInfo) {
protected _processDblClick(evt: PointerInfo) {
//pre-find the start and end index of the word under cursor, speeds up the rendering
this._startHighlightIndex = this._textWrapper.length - this._cursorOffset;
this._endHighlightIndex = this._startHighlightIndex;
Expand All @@ -808,7 +808,7 @@ export class InputText extends Control implements IFocusableControl {
this._markAsDirty();
}
/** @hidden */
private _selectAllText() {
protected _selectAllText() {
this._blinkIsEven = true;
this._isTextHighlightOn = true;

Expand All @@ -834,7 +834,7 @@ export class InputText extends Control implements IFocusableControl {
* @param ev
* @hidden
*/
private _onCopyText(ev: ClipboardEvent): void {
protected _onCopyText(ev: ClipboardEvent): void {
this._isTextHighlightOn = false;
//when write permission to clipbaord data is denied
try {
Expand All @@ -846,7 +846,7 @@ export class InputText extends Control implements IFocusableControl {
* @param ev
* @hidden
*/
private _onCutText(ev: ClipboardEvent): void {
protected _onCutText(ev: ClipboardEvent): void {
if (!this._highlightedText) {
return;
}
Expand All @@ -866,7 +866,7 @@ export class InputText extends Control implements IFocusableControl {
* @param ev
* @hidden
*/
private _onPasteText(ev: ClipboardEvent): void {
protected _onPasteText(ev: ClipboardEvent): void {
let data: string = "";
if (ev.clipboardData && ev.clipboardData.types.indexOf("text/plain") !== -1) {
data = ev.clipboardData.getData("text/plain");
Expand Down