2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								/**************************************************************************/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/*  test_text_edit.h                                                      */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/**************************************************************************/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/*                         This file is part of:                          */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/*                             GODOT ENGINE                               */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/*                        https://godotengine.org                         */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/**************************************************************************/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur.                  */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/*                                                                        */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* Permission is hereby granted, free of charge, to any person obtaining  */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* a copy of this software and associated documentation files (the        */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* "Software"), to deal in the Software without restriction, including    */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* without limitation the rights to use, copy, modify, merge, publish,    */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* distribute, sublicense, and/or sell copies of the Software, and to     */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* permit persons to whom the Software is furnished to do so, subject to  */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* the following conditions:                                              */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/*                                                                        */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* The above copyright notice and this permission notice shall be         */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* included in all copies or substantial portions of the Software.        */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/*                                                                        */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,        */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF     */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY   */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,   */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE      */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/**************************************************************************/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# ifndef TEST_TEXT_EDIT_H 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define TEST_TEXT_EDIT_H 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# include  "scene/gui/text_edit.h" 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# include  "tests/test_macros.h" 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								namespace  TestTextEdit  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								static  inline  Array  build_array ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									return  Array ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								template  < typename . . .  Targs > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								static  inline  Array  build_array ( Variant  item ,  Targs . . .  Fargs )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									Array  a  =  build_array ( Fargs . . . ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									a . push_front ( item ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									return  a ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								static  inline  Array  reverse_nested ( Array  array )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									Array  reversed_array  =  array . duplicate ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									reversed_array . reverse ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									for  ( int  i  =  0 ;  i  <  reversed_array . size ( ) ;  i + + )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										( ( Array ) reversed_array [ i ] ) . reverse ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									return  reversed_array ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								TEST_CASE ( " [SceneTree][TextEdit] text entry " )  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-29 00:29:44 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SceneTree : : get_singleton ( ) - > get_root ( ) - > set_physics_object_picking ( false ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									TextEdit  * text_edit  =  memnew ( TextEdit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SceneTree : : get_singleton ( ) - > get_root ( ) - > add_child ( text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > grab_focus ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									Array  empty_signal_args ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									empty_signal_args . push_back ( Array ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SUBCASE ( " [TextEdit] text entry " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_WATCH ( text_edit ,  " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_WATCH ( text_edit ,  " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_WATCH ( text_edit ,  " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_WATCH ( text_edit ,  " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										Array  lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] clear and set text " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// "text_changed" should not be emitted on clear / set.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > clear ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_line_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_set " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " test text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_line_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_set " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > clear ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_set " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Can undo / redo words when editable.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " test text " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Cannot undo when not-editable but should still clear.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " test text " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Can clear even if not editable.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											Array  lines_edited_clear_args  =  build_array ( build_array ( 1 ,  0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > clear ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_set " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_clear_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Can still undo set_text.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " test text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_set " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Any selections are removed.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select_all ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " test text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_set " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_set " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select_all ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > clear ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_set " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] insert text " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// insert_text is 0 indexed.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											ERR_PRINT_OFF ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > insert_text ( " test " ,  1 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											ERR_PRINT_ON ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Insert text when there is no text.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > insert_text ( " tes " ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " tes " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Insert multiple lines.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > insert_text ( " t \n inserting text " ,  0 ,  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " test \n inserting text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  14 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Can insert even if not editable.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > insert_text ( " mid " ,  1 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " test \n inmidserting text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  17 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Undo insert.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " test \n inserting text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  14 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Redo insert.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " test \n inmidserting text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  17 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Insert offsets carets after the edit.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 1 ,  4 ,  1 ,  6 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > insert_text ( " \n   " ,  1 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " test \n in \n  midserting text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  16 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 2 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 2 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 2 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 2 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Insert text outside of selections.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  1 ,  0 ,  4 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  4 ,  0 ,  8 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > insert_text ( " a " ,  0 ,  4 ,  true ,  false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " testa text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 1 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Insert text to beginning of selections.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  1 ,  0 ,  4 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  4 ,  0 ,  8 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > insert_text ( " a " ,  0 ,  4 ,  false ,  false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " testa text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Insert text to end of selections.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  1 ,  0 ,  4 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  4 ,  0 ,  8 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > insert_text ( " a " ,  0 ,  4 ,  true ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " testa text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 1 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Insert text inside of selections.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  1 ,  0 ,  4 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  4 ,  0 ,  8 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > insert_text ( " a " ,  0 ,  4 ,  false ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " testa text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] remove text " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 0 ,  2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test \n removeing text \n third line " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_set " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// remove_text is 0 indexed.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											ERR_PRINT_OFF ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_text ( 3 ,  0 ,  3 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											ERR_PRINT_ON ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " test \n removeing text \n third line " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Remove multiple lines.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 2 ,  1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_text ( 1 ,  9 ,  2 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " test \n removeingird line " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  17 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Can remove even if not editable.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_text ( 1 ,  5 ,  1 ,  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " test \n removingird line " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  16 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Undo remove.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " test \n removeingird line " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  17 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Redo remove.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " test \n removingird line " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  16 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Remove collapses carets and offsets carets after the edit.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 1 ,  10 ,  1 ,  13 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  14 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_text ( 1 ,  8 ,  1 ,  11 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " test \n removing line " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Caret 0 was merged into the selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  11 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 2 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 2 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] set and get line " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Set / Get line is 0 indexed.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_line ( 1 ,  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_line ( 0 ,  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_line ( 0 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_line ( 1 )  = =  " " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_line_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Setting to a longer line, caret and selections should be preserved.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select_all ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_line ( 0 ,  " test text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_line ( 0 )  = =  " test text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " test " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Setting to a shorter line, selection and caret should be adjusted. Also works if not editable.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_line ( 0 ,  " te " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_line ( 0 )  = =  " te " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " te " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Undo / redo should work.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_line ( 0 )  = =  " test text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_line ( 0 )  = =  " te " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Out of range.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											ERR_PRINT_OFF ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_line ( - 1 ,  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_line ( 0 )  = =  " te " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_line ( 1 ,  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_line ( 0 )  = =  " te " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											ERR_PRINT_ON ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Both ends of selection are adjusted and deselects.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  8 ,  0 ,  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_line ( 0 ,  " test " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_line ( 0 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Multiple carets adjust to keep visual position.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  6 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_line ( 0 ,  " \t set line " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_line ( 0 )  = =  " \t set line " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// In the default font, these are the same positions.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// The previous caret at index 2 was merged.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 2 )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Insert multiple lines.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test text \n second line " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 0 ,  1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_line ( 0 ,  " multiple \n lines " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " multiple \n lines \n second line " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  3 ) ;  // In the default font, this is the same position.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] swap lines " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 0 ,  1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " testing \n swap " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " testing \n swap " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_set " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( text_edit - > get_line ( 0 ) . length ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Emitted twice for each line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 0 ,  0 ) ,  build_array ( 1 ,  1 ) ,  build_array ( 1 ,  1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Order does not matter. Works when not editable.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > swap_lines ( 1 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " swap \n testing " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Single undo/redo action.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " testing \n swap " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  reverse_nested ( lines_edited_args ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " swap \n testing " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Out of range.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											ERR_PRINT_OFF ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > swap_lines ( - 1 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " swap \n testing " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > swap_lines ( 0 ,  - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " swap \n testing " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > swap_lines ( 2 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " swap \n testing " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > swap_lines ( 0 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " swap \n testing " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											ERR_PRINT_ON ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Carets are also swapped.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  0 ,  0 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  1 ) ,  build_array ( 1 ,  1 ) ,  build_array ( 0 ,  0 ) ,  build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > swap_lines ( 0 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " testing \n swap " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Swap non adjacent lines.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > insert_line_at ( 1 ,  " new line " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " testing \n new line \n swap " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 2 ,  2 ) ,  build_array ( 2 ,  2 ) ,  build_array ( 0 ,  0 ) ,  build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > swap_lines ( 0 ,  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " swap \n new line \n testing " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] insert line at " )  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 0 ,  1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " testing \n swap " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " testing \n swap " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_set " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select_all ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Insert line at inserts a line before and moves caret and selection. Works when not editable.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > insert_line_at ( 0 ,  " new " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " new \n testing \n swap " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  text_edit - > get_line ( 2 ) . size ( )  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-08-07 12:59:23 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Can undo/redo as single action.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " testing \n swap " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  reverse_nested ( lines_edited_args ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " new \n testing \n swap " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Adding inside selection extends selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select_all ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 2 ,  3 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > insert_line_at ( 2 ,  " after " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " new \n testing \n after \n swap " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  text_edit - > get_line ( 3 ) . size ( )  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Out of range.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											ERR_PRINT_OFF ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > insert_line_at ( - 1 ,  " after " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " new \n testing \n after \n swap " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > insert_line_at ( 4 ,  " after " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " new \n testing \n after \n swap " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											ERR_PRINT_ON ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Can insert multiple lines.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  1 ,  2 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 2 ,  4 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > insert_line_at ( 2 ,  " multiple \n lines " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " new \n testing \n multiple \n lines \n after \n swap " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] remove line at " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 0 ,  5 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " testing \n remove line at \n \t remove \n lines \n \n test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " testing \n remove line at \n \t remove \n lines \n \n test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_set " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Remove line handles multiple carets.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 2 ,  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 2 ,  1 ,  2 ,  7 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 3 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 4 ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 3 ,  2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_line_at ( 2 ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " testing \n remove line at \n lines \n \n test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ;  // Same line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ;  // Same line, clamped.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 1 )  = =  3 ) ;  // In the default font, this is the same position.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 2 ) ) ;  // Moved up.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 2 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 2 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 3 ) ) ;  // Moved up.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 3 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 3 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 4 ) ) ;  // Didn't move.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 4 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 4 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Remove first line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 4 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_line_at ( 0 ,  false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " remove line at \n lines \n \n test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Remove empty line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 3 ,  2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_line_at ( 2 ,  false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " remove line at \n lines \n test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Remove last line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 2 ,  1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_line_at ( 2 ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " remove line at \n lines " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Out of bounds.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											ERR_PRINT_OFF 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_line_at ( 2 ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											ERR_PRINT_ON 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " remove line at \n lines " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Remove regular line with move caret up and not editable.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_line_at ( 1 ,  false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " remove line at " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  1 ) ;  // In the default font, this is the same position.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Undo.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " remove line at \n lines " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  reverse_nested ( lines_edited_args ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Redo.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " remove line at " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Remove only line removes line content.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_line_at ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_line_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] insert text at caret " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Insert text at caret can insert multiple lines.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > insert_text_at_caret ( " testing \n swap " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " testing \n swap " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  text_edit - > get_line ( 1 ) . size ( )  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Text is inserted at caret.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ,  false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > insert_text_at_caret ( " mid " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " temidsting \n swap " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Selections are deleted then text is inserted. It also works even if not editable.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  0 ,  0 ,  text_edit - > get_line ( 0 ) . length ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > insert_text_at_caret ( " new line " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " new line \n swap " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  text_edit - > get_line ( 0 ) . size ( )  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Undo restores text and selection.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " temidsting \n swap " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  text_edit - > get_line ( 0 ) . length ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " new line \n swap " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_UNWATCH ( text_edit ,  " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_UNWATCH ( text_edit ,  " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_UNWATCH ( text_edit ,  " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_UNWATCH ( text_edit ,  " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SUBCASE ( " [TextEdit] indent level " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_indent_level ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_first_non_whitespace_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line ( 0 ,  " a " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_indent_level ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_first_non_whitespace_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line ( 0 ,  " \t " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_indent_level ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_first_non_whitespace_column ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_tab_size ( 8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_indent_level ( 0 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line ( 0 ,  " \t  a " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_first_non_whitespace_column ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_indent_level ( 0 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SUBCASE ( " [TextEdit] selection " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_WATCH ( text_edit ,  " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_WATCH ( text_edit ,  " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_WATCH ( text_edit ,  " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_WATCH ( text_edit ,  " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										Array  lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] select all " )  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Select when there is no text does not select.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select_all ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Select all selects all text.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test \n selection " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_select_all " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " test \n selection " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SelectionMode : : SELECTION_MODE_SHIFT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  9 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Cannot select when disabled.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_selecting_enabled ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select_all ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] select word under caret " )  { 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-11 20:32:06 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " \n test   test \n test   test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-11 20:32:06 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 2 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 2 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Select word under caret with multiple carets.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select_word_under_caret ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-11 20:32:06 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 1 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Select word under caret disables selection if there is already a selection.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select_word_under_caret ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_select_word_under_caret " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-11 20:32:06 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 1 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " test \n test " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Cannot select when disabled.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_selecting_enabled ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select_word_under_caret ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-11 20:32:06 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_selecting_enabled ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Select word under caret when there is no word does not select.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ,  false ,  true ,  - 1 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-11 20:32:06 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 5 ,  false ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 2 ,  false ,  true ,  - 1 ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-11 20:32:06 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 5 ,  false ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select_word_under_caret ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select_word_under_caret ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-11 20:32:06 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  5 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-10-19 19:35:14 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] add selection for next occurrence " )  { 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-28 15:27:52 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " \n test   other_test \n random   test \n word test word nonrandom " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-19 19:35:14 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// First selection made by the implicit select_word_under_caret call.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-28 15:27:52 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > add_selection_for_next_occurrence ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-19 19:35:14 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " test " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-28 15:27:52 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-19 19:35:14 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_selection_for_next_occurrence ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 1 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( 1 )  = =  13 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( 1 )  = =  17 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  17 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_selection_for_next_occurrence ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 2 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( 2 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( 2 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( 2 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( 2 )  = =  13 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 2 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 2 )  = =  13 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_selection_for_next_occurrence ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 3 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( 3 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( 3 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( 3 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( 3 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 3 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 3 )  = =  9 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-28 15:27:52 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// A different word with a new manually added caret.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-28 15:27:52 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 2 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 2 ,  0 ,  2 ,  4 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 4 )  = =  " rand " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_selection_for_next_occurrence ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 5 )  = =  " rand " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( 5 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( 5 )  = =  18 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( 5 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( 5 )  = =  22 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 5 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 5 )  = =  22 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Make sure the previous selections are still active.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-28 15:27:52 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 1 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 2 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 3 )  = =  " test " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-19 19:35:14 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-02-02 23:10:55 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] skip selection for next occurrence " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " \n test   other_test \n random   test \n word test word nonrandom " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Without selection on the current caret, the caret as 'jumped' to the next occurrence of the word under the caret.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > skip_selection_for_next_occurrence ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  13 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Repeating previous action.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// This time caret is in 'other_test' (other_|test)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// so the searched term will be 'other_test' or not just 'test'
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// => no occurrence, as a side effect, the caret will move to start of the term.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > skip_selection_for_next_occurrence ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Repeating action again should do nothing now
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > skip_selection_for_next_occurrence ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Moving back to the first 'test' occurrence.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// But this time, create a selection of it.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_selection_for_next_occurrence ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Then, skipping it, but this time, selection has been made on the next occurrence.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > skip_selection_for_next_occurrence ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( 0 )  = =  13 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( 0 )  = =  17 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  17 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > skip_selection_for_next_occurrence ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( 0 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( 0 )  = =  13 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  13 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > skip_selection_for_next_occurrence ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( 0 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( 0 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( 0 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( 0 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Last skip, we are back to the first occurrence.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > skip_selection_for_next_occurrence ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Adding first occurrence to selections/carets list
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// and select occurrence on 'other_test'.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_selection_for_next_occurrence ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 1 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( 1 )  = =  13 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( 1 )  = =  17 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  17 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// We don't want this occurrence.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Let's skip it.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > skip_selection_for_next_occurrence ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 1 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( 1 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( 1 )  = =  13 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  13 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > skip_selection_for_next_occurrence ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 1 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( 1 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( 1 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( 1 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( 1 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// We are back the first occurrence.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > skip_selection_for_next_occurrence ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] deselect on focus loss " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_deselect_on_focus_loss_enabled ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_deselect_on_focus_loss_enabled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > grab_focus ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select_all ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_focus ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > release_focus ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_focus ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_deselect_on_focus_loss_enabled ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > is_deselect_on_focus_loss_enabled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > grab_focus ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select_all ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_focus ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > release_focus ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_focus ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_deselect_on_focus_loss_enabled ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] key select " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > grab_focus ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : RIGHT  |  KeyModifierMask : : SHIFT ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " t " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-20 09:28:22 +03:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# ifdef MACOS_ENABLED 
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : RIGHT  |  KeyModifierMask : : SHIFT  |  KeyModifierMask : : ALT ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								# else 
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : RIGHT  |  KeyModifierMask : : SHIFT  |  KeyModifierMask : : CMD_OR_CTRL ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								# endif 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " test " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : LEFT  |  KeyModifierMask : : SHIFT ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " tes " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-20 09:28:22 +03:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# ifdef MACOS_ENABLED 
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : LEFT  |  KeyModifierMask : : SHIFT  |  KeyModifierMask : : ALT ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								# else 
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : LEFT  |  KeyModifierMask : : SHIFT  |  KeyModifierMask : : CMD_OR_CTRL ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								# endif 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : RIGHT  |  KeyModifierMask : : SHIFT ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " t " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : RIGHT ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : LEFT  |  KeyModifierMask : : SHIFT ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " t " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > is_caret_after_selection_origin ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : LEFT ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Cannot select when disabled.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_selecting_enabled ( false ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : RIGHT  |  KeyModifierMask : : SHIFT ) 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_selecting_enabled ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] mouse drag select " )  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Set size for mouse input.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_size ( Size2 ( 200 ,  200 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is some text \n for selection " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > grab_focus ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Click and drag to make a selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  0 ) . get_center ( ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Add (2,0) to bring it past the center point of the grapheme and account for integer division flooring.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  5 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " for s " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_POINTER ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_dragging_cursor ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Releasing finishes.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  5 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " for s " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  9 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : NONE ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " for s " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  5 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Clicking clears selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  7 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  7 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Cannot select when disabled, but caret still moves.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_selecting_enabled ( false ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  0 ) . get_center ( ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  5 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_selecting_enabled ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Only last caret is moved when adding a selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  11 ,  0 ,  15 ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  5 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE  |  KeyModifierMask : : ALT ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  0 ) . get_center ( ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_POINTER ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 1 )  = =  11 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 2 )  = =  " for s " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 2 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 2 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 2 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 2 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > is_caret_after_selection_origin ( 2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Overlapping carets and selections merges them.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  3 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " s is some text \n for s " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_POINTER ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > is_caret_after_selection_origin ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Entering text stops selecting.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > insert_text_at_caret ( " a " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " thiaelection " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  10 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : NONE ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-05-15 00:29:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Wrapped lines.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_line_wrapping_mode ( TextEdit : : LineWrappingMode : : LINE_WRAPPING_BOUNDARY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is some text \n for selection " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_size ( Size2 ( 110 ,  100 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Line 0 wraps: 'this is ', 'some text'.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Line 1 wraps: 'for ', 'selection'.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_line_wrapped ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Select to the first character of a wrapped line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  11 ) . get_center ( ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  8 ) . get_center ( ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " so " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_POINTER ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_dragging_cursor ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] mouse word select " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Set size for mouse input.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_size ( Size2 ( 200 ,  200 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is some text \n for selection \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Double click to select word.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_DOUBLE_CLICK ( text_edit - > get_rect_at_line_column ( 1 ,  2 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " for " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_WORD ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Moving mouse selects entire words at a time.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  6 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " for selection " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_WORD ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( )  = =  13 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  13 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_dragging_cursor ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Moving to a word before the initial selected word reverses selection direction and keeps the initial word selected.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  10 ) . get_center ( ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " some text \n for " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_WORD ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > is_caret_after_selection_origin ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Releasing finishes.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  10 ) . get_center ( ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " some text \n for " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  2 ) . get_center ( ) ,  MouseButtonMask : : NONE ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " some text \n for " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Can start word select mode on an empty line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_DOUBLE_CLICK ( text_edit - > get_rect_at_line_column ( 2 ,  0 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_WORD ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  9 ) . get_center ( ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " selection \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_WORD ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Clicking clears selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  0 ) . get_center ( ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Can start word select mode when not on a word.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_DOUBLE_CLICK ( text_edit - > get_rect_at_line_column ( 0 ,  12 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_WORD ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  12 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  9 ) . get_center ( ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_WORD ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  "  text \n for selection " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  13 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  12 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  10 ) . get_center ( ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_WORD ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " some " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  12 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  15 ) . get_center ( ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Add a new selection without affecting the old one.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  5 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE  |  KeyModifierMask : : ALT ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  8 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE  |  KeyModifierMask : : ALT ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_POINTER ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " some " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  12 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 1 )  = =  " ele " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 1 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Shift + double click to extend selection and start word select mode.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  8 ) . get_center ( ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_DOUBLE_CLICK ( text_edit - > get_rect_at_line_column ( 1 ,  7 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  Key : : NONE  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_WORD ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  "  text \n for selection " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  13 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  12 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Cannot select when disabled, but caret still moves to end of word.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_selecting_enabled ( false ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_DOUBLE_CLICK ( text_edit - > get_rect_at_line_column ( 1 ,  1 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_selecting_enabled ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] mouse line select " )  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Set size for mouse input.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_size ( Size2 ( 200 ,  200 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is some text \n for selection \n with 3 lines " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Triple click to select line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_DOUBLE_CLICK ( text_edit - > get_rect_at_line_column ( 1 ,  2 ) . get_center ( ) ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  2 ) . get_center ( ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " for selection \n " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_LINE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Moving mouse selects entire lines at a time. Selecting above reverses the selection direction.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  10 ) . get_center ( ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " this is some text \n for selection " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_LINE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( )  = =  13 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > is_caret_after_selection_origin ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_dragging_cursor ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Selecting to the last line puts the caret at end of the line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 2 ,  10 ) . get_center ( ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " for selection \n with 3 lines " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_LINE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( )  = =  12 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  12 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Releasing finishes.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT ( text_edit - > get_rect_at_line_column ( 2 ,  10 ) . get_center ( ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " for selection \n with 3 lines " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  2 ) . get_center ( ) ,  MouseButtonMask : : NONE ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " for selection \n with 3 lines " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Clicking clears selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  0 ) . get_center ( ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  0 ) . get_center ( ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Can start line select mode on an empty line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is some text \n \n for selection \n with 4 lines " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_DOUBLE_CLICK ( text_edit - > get_rect_at_line_column ( 1 ,  0 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  0 ) . get_center ( ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_LINE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 2 ,  9 ) . get_center ( ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " \n for selection \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_LINE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Add a new selection without affecting the old one.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  3 ) . get_center ( ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE  |  KeyModifierMask : : ALT ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  4 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE  |  KeyModifierMask : : ALT ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_POINTER ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " \n for selection \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 1 )  = =  " is " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Selecting the last line puts caret at the end.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_DOUBLE_CLICK ( text_edit - > get_rect_at_line_column ( 3 ,  3 ) . get_center ( ) ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 3 ,  3 ) . get_center ( ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_LINE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " with 4 lines " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  12 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Selecting above reverses direction.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 2 ,  10 ) . get_center ( ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_LINE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " for selection \n with 4 lines " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  12 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT ( text_edit - > get_rect_at_line_column ( 2 ,  10 ) . get_center ( ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Shift + triple click to extend selection and restart line select mode.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_DOUBLE_CLICK ( text_edit - > get_rect_at_line_column ( 0 ,  9 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  Key : : NONE  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  9 ) . get_center ( ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_LINE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " this is some text \n \n for selection \n with 4 lines " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  12 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Cannot select when disabled, but caret still moves to the start of the next line.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_selecting_enabled ( false ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_DOUBLE_CLICK ( text_edit - > get_rect_at_line_column ( 0 ,  2 ) . get_center ( ) ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  2 ) . get_center ( ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_selecting_enabled ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] mouse shift click select " )  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Set size for mouse input.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_size ( Size2 ( 200 ,  200 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is some text \n for selection " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Shift click to make a selection from the previous caret position.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  1 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  5 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " or s " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_POINTER ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  5 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Shift click above to switch selection direction. Uses original selection position.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  6 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " s some text \n f " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_mode ( )  = =  TextEdit : : SELECTION_MODE_POINTER ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > is_caret_after_selection_origin ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Clicking clears selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  7 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  7 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Cannot select when disabled, but caret still moves.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_selecting_enabled ( false ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  0 ) . get_center ( ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  5 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_selecting_enabled ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] select and deselect " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is some text \n for selection " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Select clamps input to full text.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( - 1 ,  - 1 ,  500 ,  500 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " this is some text \n for selection " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  13 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( 0 )  = =  text_edit - > get_selection_origin_line ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( 0 )  = =  text_edit - > get_selection_origin_column ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( 0 )  = =  text_edit - > get_caret_line ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( 0 )  = =  text_edit - > get_caret_column ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Select works in the other direction.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 500 ,  500 ,  - 1 ,  - 1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " this is some text \n for selection " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > is_caret_after_selection_origin ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  13 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( 0 )  = =  text_edit - > get_caret_line ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( 0 )  = =  text_edit - > get_caret_column ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( 0 )  = =  text_edit - > get_selection_origin_line ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( 0 )  = =  text_edit - > get_selection_origin_column ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Select part of a line.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  4 ,  0 ,  8 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  "  is  " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( 0 )  = =  text_edit - > get_selection_origin_line ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( 0 )  = =  text_edit - > get_selection_origin_column ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( 0 )  = =  text_edit - > get_caret_line ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( 0 )  = =  text_edit - > get_caret_column ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Select part of a line in the other direction.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  8 ,  0 ,  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  "  is  " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > is_caret_after_selection_origin ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( 0 )  = =  text_edit - > get_caret_line ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( 0 )  = =  text_edit - > get_caret_column ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( 0 )  = =  text_edit - > get_selection_origin_line ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( 0 )  = =  text_edit - > get_selection_origin_column ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Cannot select when disabled.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_selecting_enabled ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  8 ,  0 ,  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_selecting_enabled ( true ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] delete selection " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is some text \n for selection " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Delete selection does nothing if there is no selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 8 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > delete_selection ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is some text \n for selection " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  8 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Backspace removes selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  4 ,  0 ,  8 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " thissome text \n for selection " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Undo restores previous selection.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is some text \n for selection " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  8 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Redo restores caret.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " thissome text \n for selection " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is some text \n for selection " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  4 ,  0 ,  8 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Delete selection removes text, deselects, and moves caret.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > delete_selection ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " thissome text \n for selection " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Undo delete works.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is some text \n for selection " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  8 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Redo delete works.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " thissome text \n for selection " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is some text \n for selection " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Can still delete if not editable.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > delete_selection ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " thissome text \n for selection " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Cannot undo since it was not editable.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " thissome text \n for selection " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Delete multiple adjacent selections on the same line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  0 ,  0 ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  5 ,  0 ,  8 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > delete_selection ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  text \n for selection " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Delete mulitline selection. Ignore non selections.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 1 ,  3 ,  0 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > delete_selection ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  t selection " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] text drag " )  { 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_size ( Size2 ( 200 ,  200 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " drag test \n drop here '' " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > grab_click_focus ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Drag and drop selected text to mouse position.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  0 ,  0 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  2 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_mouse_over_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  7 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_get_drag_data ( )  = =  " drag " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  11 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  11 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : NONE ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  test \n drop here 'drag' " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  11 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Undo.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " drag test \n drop here '' " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Redo.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  test \n drop here 'drag' " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  11 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Hold control when dropping to not delete selected text.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 1 ,  10 ,  1 ,  16 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  12 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_mouse_over_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  7 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_get_drag_data ( )  = =  " 'drag' " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  0 ) . get_center ( ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : CMD_OR_CTRL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  0 ) . get_center ( ) ,  MouseButton : : LEFT ,  MouseButtonMask : : NONE ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_UP_EVENT ( Key : : CMD_OR_CTRL ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " 'drag' test \n drop here 'drag' " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Multiple caret drags entire selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  11 ,  0 ,  7 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 1 ,  2 ,  1 ,  4 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  12 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  3 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_mouse_over_selection ( true ,  1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  12 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_get_drag_data ( )  = =  " test \n op " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Carets aren't removed from dragging, only dropping.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  11 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 2 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 2 )  = =  12 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  9 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  9 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : NONE ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " 'drag'  \n dr heretest \n op 'drag' " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Drop onto same selection should do effectively nothing.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 1 ,  3 ,  1 ,  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  6 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_mouse_over_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  1 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_get_drag_data ( )  = =  " here " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  7 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : NONE ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " 'drag'  \n dr heretest \n op 'drag' " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Cannot drag when drag and drop selection is disabled. It becomes regular drag to select.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_drag_and_drop_selection_enabled ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  1 ,  0 ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  2 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > is_mouse_over_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  7 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  7 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : NONE ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " 'drag'  \n dr heretest \n op 'drag' " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_drag_and_drop_selection_enabled ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Cancel drag and drop from Escape key.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  1 ,  0 ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  3 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_mouse_over_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  1 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_get_drag_data ( )  = =  " drag " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : ESCAPE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " 'drag'  \n dr heretest \n op 'drag' " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Cancel drag and drop from caret move key input.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  1 ,  0 ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  3 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_mouse_over_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  1 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_get_drag_data ( )  = =  " drag " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : RIGHT ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " 'drag'  \n dr heretest \n op 'drag' " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Cancel drag and drop from text key input.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  1 ,  0 ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  3 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_mouse_over_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  1 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_get_drag_data ( )  = =  " drag " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : A ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " 'A'  \n dr heretest \n op 'drag' " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] text drag to another text edit " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											TextEdit  * target_text_edit  =  memnew ( TextEdit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SceneTree : : get_singleton ( ) - > get_root ( ) - > add_child ( target_text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											target_text_edit - > set_size ( Size2 ( 200 ,  200 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											target_text_edit - > set_position ( Point2 ( 400 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_size ( Size2 ( 200 ,  200 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > is_mouse_over_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " drag me " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select_all ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > grab_click_focus ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Drag text between text edits.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  0 ) . get_center ( ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_mouse_over_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  7 ) . get_center ( ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_get_drag_data ( )  = =  " drag me " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											Point2i  target_line0  =  target_text_edit - > get_position ( )  +  Point2i ( 1 ,  target_text_edit - > get_line_height ( )  /  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( target_line0 ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT ( target_line0 ,  MouseButton : : LEFT ,  MouseButtonMask : : NONE ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_text ( )  = =  " drag me " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_caret_column ( )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_selection_origin_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Undo is separate per TextEdit.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " drag me " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_text ( )  = =  " drag me " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_caret_column ( )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_selection_origin_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											target_text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " drag me " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( target_text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Redo is also separate.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( target_text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											target_text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_text ( )  = =  " drag me " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_caret_column ( )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_selection_origin_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Hold control to not remove selected text.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " drag test \n drop test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											target_text_edit - > select ( 0 ,  0 ,  0 ,  3 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											target_text_edit - > add_caret ( 0 ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  5 ,  0 ,  7 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  1 ,  0 ,  0 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  5 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_mouse_over_selection ( true ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  6 ) . get_center ( ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_get_drag_data ( )  = =  " d \n te " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : CMD_OR_CTRL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( target_text_edit - > get_position ( )  +  target_text_edit - > get_rect_at_line_column ( 0 ,  6 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT ( target_text_edit - > get_position ( )  +  target_text_edit - > get_rect_at_line_column ( 0 ,  6 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : NONE ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_UP_EVENT ( Key : : CMD_OR_CTRL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " drag test \n drop test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_text ( )  = =  " drag md \n tee " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_caret_column ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_selection_origin_column ( )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Drop onto selected text deletes the selected text first.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_deselect_on_focus_loss_enabled ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											target_text_edit - > set_deselect_on_focus_loss_enabled ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  5 ,  0 ,  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											target_text_edit - > select ( 0 ,  6 ,  0 ,  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  6 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_mouse_over_selection ( true ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  7 ) . get_center ( ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_get_drag_data ( )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( target_text_edit - > get_position ( )  +  target_text_edit - > get_rect_at_line_column ( 0 ,  7 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT ( target_text_edit - > get_position ( )  +  target_text_edit - > get_rect_at_line_column ( 0 ,  7 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : NONE ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " drag  \n drop test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_text ( )  = =  " drag mdtest \n tee " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_caret_column ( )  = =  11 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_selection_origin_column ( )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_deselect_on_focus_loss_enabled ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											target_text_edit - > set_deselect_on_focus_loss_enabled ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Can drop even when drag and drop selection is disabled.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											target_text_edit - > set_drag_and_drop_selection_enabled ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  4 ,  0 ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											target_text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  4 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_mouse_over_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  7 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_get_drag_data ( )  = =  "   " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( target_text_edit - > get_position ( )  +  target_text_edit - > get_rect_at_line_column ( 0 ,  2 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT ( target_text_edit - > get_position ( )  +  target_text_edit - > get_rect_at_line_column ( 0 ,  7 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : NONE ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " drag \n drop test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_text ( )  = =  " drag md test \n tee " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_caret_column ( )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_selection_origin_column ( )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											target_text_edit - > set_drag_and_drop_selection_enabled ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Cannot drop when not editable.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											target_text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  1 ,  0 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											target_text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  2 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_mouse_over_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  7 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_get_drag_data ( )  = =  " rag " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( target_text_edit - > get_position ( )  +  target_text_edit - > get_rect_at_line_column ( 0 ,  2 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT ( target_text_edit - > get_position ( )  +  target_text_edit - > get_rect_at_line_column ( 0 ,  2 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : NONE ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " drag \n drop test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_text ( )  = =  " drag md test \n tee " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( target_text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											target_text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Can drag when not editable, but text will not be removed.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  0 ,  0 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  2 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_mouse_over_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  7 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > gui_get_drag_data ( )  = =  " drag " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( target_text_edit - > get_position ( )  +  target_text_edit - > get_rect_at_line_column ( 0 ,  4 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT ( target_text_edit - > get_position ( )  +  target_text_edit - > get_rect_at_line_column ( 0 ,  4 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : NONE ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > get_viewport ( ) - > gui_is_dragging ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " drag \n drop test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_text ( )  = =  " dragdrag md test \n tee " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_caret_column ( )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( target_text_edit - > get_selection_origin_column ( )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											memdelete ( target_text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_UNWATCH ( text_edit ,  " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_UNWATCH ( text_edit ,  " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_UNWATCH ( text_edit ,  " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_UNWATCH ( text_edit ,  " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SUBCASE ( " [TextEdit] overridable actions " )  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										DisplayServerMock  * DS  =  ( DisplayServerMock  * ) ( DisplayServer : : get_singleton ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_WATCH ( text_edit ,  " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_WATCH ( text_edit ,  " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_WATCH ( text_edit ,  " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_WATCH ( text_edit ,  " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										Array  lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] backspace " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Cannot backspace at start of text.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > backspace ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Backspace at start of line removes the line.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 2 ,  1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > backspace ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is \n some " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Backspace removes a character.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > backspace ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is \n som " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  3 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Backspace when text is selected removes the selection.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > end_complex_operation ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 1 ,  0 ,  1 ,  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > backspace ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Cannot backspace if not editable.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > backspace ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Undo restores text to the previous end of complex operation.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is \n som " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  3 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Redo.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// See ui_text_backspace for more backspace tests.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] cut " )  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Cut without a selection removes the entire line.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > cut ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " this is \n " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " some \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  3 ) ;  // In the default font, this is the same position.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Undo restores the cut text.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " this is \n " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is \n some \n " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  6 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  reverse_nested ( lines_edited_args ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Redo.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " this is \n " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " some \n " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  3 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Cut with a selection removes just the selection.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  5 ,  0 ,  7 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_cut " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " is " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this  \n some \n " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > get_caret_line ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  5 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Cut does not change the text if not editable. Text is still added to clipboard.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > cut ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " this is \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is \n some \n " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Cut line with multiple carets.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 2 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  0 ) ,  build_array ( 1 ,  0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > cut ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " this is \n \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " some " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  2 ) ;  // In the default font, this is the same position.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// The previous caret at index 1 was merged.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  3 ) ;  // In the default font, this is the same position.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 2 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 2 )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Cut on the only line removes the contents.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > cut ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " some \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_line_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Cut empty line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > cut ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// These signals are emitted even if there is no change.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Cut multiple lines, in order.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n text to \n be \n \n cut " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 3 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  0 ) ,  build_array ( 3 ,  2 ) ,  build_array ( 2 ,  1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > cut ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " this is \n text to \n be \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " some \n \n cut " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Cut multiple selections, in order. Ignores regular carets.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n text to \n be \n \n cut " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 3 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 2 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 1 ,  0 ,  1 ,  2 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 3 ,  0 ,  4 ,  0 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  5 ,  0 ,  3 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  1 ) ,  build_array ( 4 ,  3 ) ,  build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > cut ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " s  \n so \n be \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " thiis \n me \n text to \n \n cut " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 2 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 2 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 3 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 3 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] copy " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n test \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Copy selected text.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  0 ,  1 ,  2 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											DS - > clipboard_set_primary ( " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > copy ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " this is \n so " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get_primary ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is \n some \n test \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Copy with GUI action.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  0 ,  0 ,  2 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_copy " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " th " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Can copy even if not editable.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 2 ,  4 ,  1 ,  2 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > copy ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " me \n test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Copy full line when there is no selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > copy ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " this is \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Copy empty line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > copy ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Copy full line with multiple carets on that line only copies once.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > copy ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " some \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Copy selected text from all selections with `\n` in between, in order. Ignore regular carets.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 4 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 1 ,  3 ,  2 ,  4 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 4 ,  4 ,  4 ,  0 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  5 ,  0 ,  4 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > copy ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  "   \n e \n test \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Copy multiple lines with multiple carets, in order.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 4 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > copy ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " this is \n \n text \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] paste " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Paste text from clipboard at caret.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											DS - > clipboard_set ( " paste " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > paste ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " paste " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is \n sopasteme \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Undo.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " paste " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is \n some \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Redo.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " paste " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is \n sopasteme \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Paste on empty line. Use GUI action.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 2 ,  2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											DS - > clipboard_set ( " paste2 " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_paste " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " paste2 " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is \n some \n paste2 \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Paste removes selection before pasting.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  5 ,  1 ,  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  0 ) ,  build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											DS - > clipboard_set ( " paste " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > paste ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " paste " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this pastee \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Paste multiple lines.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  3 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											DS - > clipboard_set ( " multi \n \n line \n paste " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > paste ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " multi \n \n line \n paste " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " tmulti \n \n line \n pastehis is \n some \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Paste full line after copying it.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											DS - > clipboard_set ( " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > copy ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " some \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > paste ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " some \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is \n some \n some \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Do not paste as line since it wasn't copied.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											DS - > clipboard_set ( " paste \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > paste ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " paste \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " thispaste \n  is \n some \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Paste text at each caret.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 3 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  1 ) ,  build_array ( 2 ,  3 ) ,  build_array ( 5 ,  6 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											DS - > clipboard_set ( " paste \n test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > paste ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " paste \n test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " thispaste \n test is \n sopaste \n testme \n \n textpaste \n test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 2 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 2 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Paste line per caret when the amount of lines is equal to the number of carets.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 3 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 1 ,  1 ) ,  build_array ( 3 ,  3 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											DS - > clipboard_set ( " paste \n test \n 1 " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > paste ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " paste \n test \n 1 " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " thispaste is \n sotestme \n \n text1 " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 2 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 2 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Cannot paste when not editable.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											DS - > clipboard_set ( " no paste " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > paste ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " no paste " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is \n some \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] paste primary " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Set size for mouse input.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_size ( Size2 ( 200 ,  200 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > grab_focus ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											DS - > clipboard_set ( " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											DS - > clipboard_set_primary ( " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get_primary ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Select text with mouse to put into primary clipboard.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  2 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  3 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_RELEASED_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  3 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : LEFT ,  MouseButtonMask : : LEFT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get_primary ( )  = =  " is is \n som " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is \n some \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " is is \n som " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Middle click to paste at mouse.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 3 ,  4 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_BUTTON_EVENT ( text_edit - > get_rect_at_line_column ( 3 ,  2 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButton : : MIDDLE ,  MouseButtonMask : : MIDDLE ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get_primary ( )  = =  " is is \n som " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is \n some \n \n teis is \n somxt " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Paste at mouse position if there is only one caret.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  1 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : NONE ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											DS - > clipboard_set_primary ( " paste " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > paste_primary_clipboard ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get_primary ( )  = =  " paste " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " tpastehis is \n some \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Paste at all carets if there are multiple carets.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 2 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 0 ,  1 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : NONE ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											DS - > clipboard_set_primary ( " paste " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  1 ) ,  build_array ( 2 ,  2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > paste_primary_clipboard ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get_primary ( )  = =  " paste " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is \n pastesome \n paste \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Cannot paste if not editable.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_MOUSE_MOTION_EVENT ( text_edit - > get_rect_at_line_column ( 1 ,  3 ) . get_center ( )  +  Point2i ( 2 ,  0 ) ,  MouseButtonMask : : NONE ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											DS - > clipboard_set ( " no paste " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > paste_primary_clipboard ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " no paste " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is \n some \n \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-04-16 17:34:01 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] cut when empty selection clipboard disabled " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_empty_selection_clipboard_enabled ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											DS - > clipboard_set ( " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > cut ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is \n some \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] copy when empty selection clipboard disabled " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_empty_selection_clipboard_enabled ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											DS - > clipboard_set ( " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is \n some \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > copy ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( DS - > clipboard_get ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is \n some \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										SIGNAL_UNWATCH ( text_edit ,  " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_UNWATCH ( text_edit ,  " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_UNWATCH ( text_edit ,  " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_UNWATCH ( text_edit ,  " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SUBCASE ( " [TextEdit] input " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_WATCH ( text_edit ,  " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_WATCH ( text_edit ,  " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_WATCH ( text_edit ,  " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_WATCH ( text_edit ,  " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										Array  lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] ui_text_newline_above " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is some test text. \n this is some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Insert new line above.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  0 ,  0 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  1 ) ,  build_array ( 2 ,  3 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_newline_above " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " \n this is some test text. \n \n this is some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Undo.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is some test text. \n this is some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  reverse_nested ( lines_edited_args ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Redo.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " \n this is some test text. \n \n this is some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Does not work if not editable.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 3 ,  false ,  true ,  - 1 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 4 ,  false ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_newline_above " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " \n this is some test text. \n \n this is some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Works on first line, empty lines, and only happens at caret for selections.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 1 ,  10 ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  1 ) ,  build_array ( 4 ,  5 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_newline_above " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " \n \n this is some test text. \n \n \n this is some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Insert multiple new lines above from one line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  1 ) ,  build_array ( 1 ,  2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_newline_above " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " \n \n test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] ui_text_newline_blank " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is some test text. \n this is some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Insert new line below.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  0 ,  0 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  1 ) ,  build_array ( 2 ,  3 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_newline_blank " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is some test text. \n \n this is some test text. \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Undo.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is some test text. \n this is some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  reverse_nested ( lines_edited_args ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Redo.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is some test text. \n \n this is some test text. \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Does not work if not editable.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_newline_blank " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is some test text. \n \n this is some test text. \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Insert multiple new lines below from one line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  1 ) ,  build_array ( 0 ,  1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_newline_blank " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " test \n \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] ui_text_newline " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is some test text. \n this is some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Insert new line at caret.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  0 ,  0 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Lines edited: deletion, insert line, insert line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 0 ,  1 ) ,  build_array ( 2 ,  3 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_newline " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " \n  is some test text. \n this \n  is some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Undo.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is some test text. \n this is some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  reverse_nested ( lines_edited_args ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Redo.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " \n  is some test text. \n this \n  is some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Does not work if not editable.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_newline " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " \n  is some test text. \n this \n  is some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] ui_text_backspace_all_to_left " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											Ref < InputEvent >  tmpevent  =  InputEventKey : : create_reference ( Key : : BACKSPACE  |  KeyModifierMask : : ALT  |  KeyModifierMask : : CMD_OR_CTRL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											InputMap : : get_singleton ( ) - > action_add_event ( " ui_text_backspace_all_to_left " ,  tmpevent ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " \n this is some test text. \n \n this is some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Remove all text to the left.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace_all_to_left " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " \n some test text. \n \n this is some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Undo.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " \n this is some test text. \n \n this is some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 2 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 2 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Redo.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " \n some test text. \n \n this is some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Acts as a normal backspace with selections.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 1 ,  5 ,  1 ,  9 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 3 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 3 ,  7 ,  3 ,  4 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 3 ,  3 ) ,  build_array ( 1 ,  1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace_all_to_left " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " \n some  text. \n \n this some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Acts as a normal backspace when at the start of a line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ,  false ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 3 ,  2 ) ,  build_array ( 1 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace_all_to_left " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " some  text. \n this some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Does not work if not editable.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( text_edit - > get_line ( 0 ) . length ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( text_edit - > get_line ( 1 ) . length ( ) ,  false ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace_all_to_left " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " some  text. \n this some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  text_edit - > get_line ( 0 ) . length ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  text_edit - > get_line ( 1 ) . length ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Remove entire line content when at the end of the line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  1 ) ,  build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace_all_to_left " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Removing newline effectively happens after removing text.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test \n lines " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace_all_to_left " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " tests " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Removing newline effectively happens after removing text, reverse caret order.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test \n lines " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace_all_to_left " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " tests " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											InputMap : : get_singleton ( ) - > action_erase_event ( " ui_text_backspace_all_to_left " ,  tmpevent ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] ui_text_backspace_word " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " \n this is some test text. \n \n this is some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Acts as a normal backspace with selections.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 1 ,  8 ,  1 ,  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 3 ,  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 3 ,  10 ,  3 ,  6 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 3 ,  3 ) ,  build_array ( 1 ,  1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace_word " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " \n this is st text. \n \n this ime test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > end_complex_operation ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 3 ,  2 ) ,  build_array ( 1 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Start of line should also be a normal backspace.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ,  false ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace_word " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is st text. \n this ime test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Does not work if not editable.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace_word " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is st text. \n this ime test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// FIXME: Remove after GH-77101 is fixed.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > start_action ( TextEdit : : ACTION_NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Remove text to the start of the word to the left of the caret.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( text_edit - > get_line ( 0 ) . length ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 12 ,  false ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  1 ) ,  build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace_word " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is st  \n this ime t text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  11 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Undo.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is st text. \n this ime test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  16 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  12 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  reverse_nested ( lines_edited_args ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Redo.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is st  \n this ime t text. " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  11 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Removing newline effectively happens after removing text.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test \n lines " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace_word " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " tests " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Removing newline effectively happens after removing text, reverse caret order.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test \n lines " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace_word " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " tests " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-08-24 12:28:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Remove when there are no words, only symbols.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " #{} " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace_word " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] ui_text_backspace_word same line " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test longwordtest test " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Multiple carets on the same line is handled.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  11 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace_word " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  st test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " test longwordtest test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  11 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 2 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 2 )  = =  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 3 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 3 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 3 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  reverse_nested ( lines_edited_args ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  st test " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] ui_text_backspace " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " \n this is some test text. \n \n this is some test text. " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Remove selected text when there are selections.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 1 ,  0 ,  1 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 3 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 3 ,  5 ,  3 ,  2 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 3 ,  3 ) ,  build_array ( 1 ,  1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " \n  is some test text. \n \n this some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Undo remove selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " \n this is some test text. \n \n this is some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  3 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 1 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 1 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  reverse_nested ( lines_edited_args ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Redo remove selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " \n  is some test text. \n \n this some test text. " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Remove the newline when at start of line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ,  false ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 3 ,  2 ) ,  build_array ( 1 ,  0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  is some test text. \n this some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Undo remove newline.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " \n  is some test text. \n \n this some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  reverse_nested ( lines_edited_args ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Redo remove newline.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  is some test text. \n this some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Does not work if not editable.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( text_edit - > get_line ( 0 ) . length ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 15 ,  false ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  is some test text. \n this some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  text_edit - > get_line ( 0 ) . length ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  15 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// FIXME: Remove after GH-77101 is fixed.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > start_action ( TextEdit : : ACTION_NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Backspace removes character to the left.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  1 ) ,  build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  is some test text \n this some testtext. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  18 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  14 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Backspace another character without changing caret.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  is some test tex \n this some testext. " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  17 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  13 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Undo both backspaces.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  1 ) ,  build_array ( 0 ,  0 ) ,  build_array ( 1 ,  1 ) ,  build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  is some test text. \n this some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  19 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  reverse_nested ( lines_edited_args ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Redo both backspaces.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  is some test tex \n this some testext. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  17 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  13 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Backspace with multiple carets that will overlap.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 0 ,  0 ) ,  build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  is sotest tex \n this some testext. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Select each line of text, from right to left. Remove selection to column 0.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  text_edit - > get_line ( 0 ) . length ( ) ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 1 ,  text_edit - > get_line ( 1 ) . length ( ) ,  1 ,  0 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  1 ) ,  build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Backspace at start of first line does nothing.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_backspace " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] ui_text_delete_all_to_right " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											Ref < InputEvent >  tmpevent  =  InputEventKey : : create_reference ( Key : : BACKSPACE  |  KeyModifierMask : : ALT  |  KeyModifierMask : : CMD_OR_CTRL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											InputMap : : get_singleton ( ) - > action_add_event ( " ui_text_delete_all_to_right " ,  tmpevent ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is some test text. \n this is some test text. \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Remove all text to right of caret.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 18 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  16 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  20 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_delete_all_to_right " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is some tes \n this is some test text. \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  16 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-19 11:47:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Undo.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-19 11:47:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-19 11:47:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is some test text. \n this is some test text. \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-19 11:47:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  18 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-19 11:47:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  16 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 2 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-19 11:47:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 2 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 2 )  = =  20 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-19 11:47:47 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Redo.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is some tes \n this is some test text. \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  16 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Acts as a normal delete with selections.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  0 ,  0 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 1 ,  8 ,  1 ,  4 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 1 ,  1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_delete_all_to_right " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  is some tes \n thissome test text. \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Does nothing when caret is at end of line.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( text_edit - > get_line ( 0 ) . length ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( text_edit - > get_line ( 1 ) . length ( ) ,  false ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_delete_all_to_right " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  is some tes \n thissome test text. \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  text_edit - > get_line ( 0 ) . length ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  text_edit - > get_line ( 1 ) . length ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Does not work if not editable.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ,  false ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_delete_all_to_right " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  is some tes \n thissome test text. \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Delete entire line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_delete_all_to_right " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " \n \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											InputMap : : get_singleton ( ) - > action_erase_event ( " ui_text_delete_all_to_right " ,  tmpevent ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] ui_text_delete_word " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_mid_grapheme_enabled ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_mid_grapheme_enabled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is some test text. \n \n this is some test text. \n " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Acts as a normal delete with selections.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  8 ,  0 ,  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 2 ,  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 2 ,  10 ,  2 ,  6 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 2 ,  2 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_delete_word " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is st text. \n \n this ime test text. \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  8 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  6 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Removes newlines when at end of line.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( text_edit - > get_line ( 0 ) . length ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( text_edit - > get_line ( 2 ) . length ( ) ,  false ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  0 ) ,  build_array ( 2 ,  1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_delete_word " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is st text. \n this ime test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  text_edit - > get_line ( 0 ) . length ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  text_edit - > get_line ( 1 ) . length ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Does not work if not editable.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 10 ,  false ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_delete_word " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is st text. \n this ime test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// FIXME: Remove after GH-77101 is fixed.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > start_action ( TextEdit : : ACTION_NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Delete to the end of the word right of the caret.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 1 ,  1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_delete_word " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  is st text. \n this ime t text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Undo.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is st text. \n this ime test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  10 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  reverse_nested ( lines_edited_args ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Redo.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  is st text. \n this ime t text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  10 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Delete one word with multiple carets.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " onelongword test " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_delete_word " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " one test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  3 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Removing newline effectively happens after removing text.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test \n lines " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_delete_word " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " telines " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Removing newline effectively happens after removing text, reverse caret order.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test \n lines " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_delete_word " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " telines " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-08-24 12:28:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Remove when there are no words, only symbols.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " #{} " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_delete_word " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] ui_text_delete_word same line " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " test longwordtest test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Multiple carets on the same line is handled.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  11 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_delete_word " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  long test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " test longwordtest test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  11 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 2 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 2 )  = =  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 3 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 3 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 3 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  reverse_nested ( lines_edited_args ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  long test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] ui_text_delete " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_mid_grapheme_enabled ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_mid_grapheme_enabled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is some test text. \n \n this is some test text. \n " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Remove selected text when there are selections.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  0 ,  0 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 2 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 2 ,  5 ,  2 ,  2 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 2 ,  2 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_delete " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  is some test text. \n \n this some test text. \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Undo remove selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is some test text. \n \n this is some test text. \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 1 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  reverse_nested ( lines_edited_args ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Redo remove selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  is some test text. \n \n this some test text. \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Remove newline when at end of line.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( text_edit - > get_line ( 0 ) . length ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( text_edit - > get_line ( 2 ) . length ( ) ,  false ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 1 ,  0 ) ,  build_array ( 2 ,  1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_delete " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  is some test text. \n this some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  19 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  20 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Undo remove newline.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  is some test text. \n \n this some test text. \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  19 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  20 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  reverse_nested ( lines_edited_args ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Redo remove newline.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  is some test text. \n this some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  19 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  20 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Does not work if not editable.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 15 ,  false ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_delete " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  is some test text. \n this some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  15 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// FIXME: Remove after GH-77101 is fixed.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > start_action ( TextEdit : : EditAction : : ACTION_NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Delete removes character to the right.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 1 ,  1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_delete " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " is some test text. \n this some test ext. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Delete another character without changing caret.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_delete " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " s some test text. \n this some test xt. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Undo both deletes.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 1 ,  1 ) ,  build_array ( 0 ,  0 ) ,  build_array ( 1 ,  1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  "  is some test text. \n this some test text. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  reverse_nested ( lines_edited_args ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Redo both deletes.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " s some test text. \n this some test xt. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Delete at end of last line does nothing.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 18 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_delete " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " s some test text. \n this some test xt. " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  18 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] ui_text_caret_word_left " )  { 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " \n this is some test text. \n this is some test text. " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 2 ,  10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 1 ,  10 ,  1 ,  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 2 ,  15 ,  2 ,  10 ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Deselect to start of previous word when selection is right to left.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Select to start of next word when selection is left to right.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-20 09:28:22 +03:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# ifdef MACOS_ENABLED 
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : LEFT  |  KeyModifierMask : : ALT  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								# else 
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : LEFT  |  KeyModifierMask : : CMD_OR_CTRL  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								# endif 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " me  " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  13 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 1 )  = =  " some te " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 1 )  = =  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > is_caret_after_selection_origin ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Select to start of word with shift.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 16 ,  false ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# ifdef MACOS_ENABLED 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : LEFT  |  KeyModifierMask : : ALT  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# else 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : LEFT  |  KeyModifierMask : : CMD_OR_CTRL  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# endif 
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " is " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > is_caret_after_selection_origin ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 1 )  = =  " tes " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  13 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 1 )  = =  16 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > is_caret_after_selection_origin ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Deselect and move caret to start of next word without shift.
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_word_left " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Moves to end of previous line when at start of line. Does nothing at start of text.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ,  false ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_word_left " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  23 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-08-24 12:28:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Move when there are no words, only symbols.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " #{} " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_word_left " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] ui_text_caret_left " )  { 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " \n this is some test text. \n this is some test text. " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 7 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > select ( 1 ,  3 ,  1 ,  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 2 ,  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 2 ,  7 ,  2 ,  3 ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Remove one character from selection when selection is left to right.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Add one character to selection when selection is right to left.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : LEFT  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " s i " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 1 )  = =  " is is " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 1 )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > is_caret_after_selection_origin ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Deselect and put caret at selection start without shift.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_left " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Move caret one character to the left.
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_left " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Select one character to the left with shift and no existing selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : LEFT  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " h " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > is_caret_after_selection_origin ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 1 )  = =  " t " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > is_caret_after_selection_origin ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Moves to end of previous line when at start of line. Does nothing at start of text.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ,  false ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_left " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  23 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Selects to end of previous line when at start of line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 1 ,  1 ,  1 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : LEFT  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " \n t " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > is_caret_after_selection_origin ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Merge selections when they overlap.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 1 ,  6 ,  1 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 1 ,  8 ,  1 ,  6 ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : LEFT  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " s is  " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > is_caret_after_selection_origin ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] ui_text_caret_word_right " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is some test text \n \n this is some test text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 2 ,  10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  10 ,  0 ,  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 2 ,  15 ,  2 ,  10 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Select to end of next word when selection is right to left.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Deselect to end of previous word when selection is left to right.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-20 09:28:22 +03:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# ifdef MACOS_ENABLED 
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : RIGHT  |  KeyModifierMask : : ALT  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								# else 
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : RIGHT  |  KeyModifierMask : : CMD_OR_CTRL  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								# endif 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " me test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  17 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 1 )  = =  "  te " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  12 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 1 )  = =  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > is_caret_after_selection_origin ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Select to end of word with shift.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 13 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 15 ,  false ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# ifdef MACOS_ENABLED 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : RIGHT  |  KeyModifierMask : : ALT  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# else 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : RIGHT  |  KeyModifierMask : : CMD_OR_CTRL  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# endif 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  17 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  13 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 1 )  = =  " st " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  17 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 1 )  = =  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Deselect and move caret to end of next word without shift.
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_word_right " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  22 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  22 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Moves to start of next line when at end of line. Does nothing at end of text.
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_word_right " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  22 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-08-24 12:28:18 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Move when there are no words, only symbols.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " #{} " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_word_right " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  3 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] ui_text_caret_right " )  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is some test text \n \n this is some test text " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 19 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  15 ,  0 ,  19 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 2 ,  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 2 ,  19 ,  2 ,  15 ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Remove one character from selection when selection is right to left.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Add one character to selection when selection is left to right.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : RIGHT  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " st te " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  20 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 1 )  = =  " t t " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  16 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 1 )  = =  19 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > is_caret_after_selection_origin ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Deselect and put caret at selection end without shift.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_right " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  20 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  19 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Move caret one character to the right.
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_right " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  21 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  20 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Select one character to the right with shift and no existing selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : RIGHT  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " t " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  22 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  21 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 1 )  = =  " x " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  21 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 1 )  = =  20 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Moves to start of next line when at end of line. Does nothing at end of text.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 22 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 22 ,  false ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_right " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  22 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Selects to start of next line when at end of line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 22 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  21 ,  0 ,  22 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : RIGHT  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " t \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  21 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Merge selections when they overlap.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  4 ,  0 ,  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 0 ,  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  6 ,  0 ,  8 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : RIGHT  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  "  is s " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 0 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_caret_after_selection_origin ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] ui_text_caret_up " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_line_wrapping_mode ( TextEdit : : LineWrappingMode : : LINE_WRAPPING_BOUNDARY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_size ( Size2 ( 110 ,  100 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is some \n other test \n lines \n go here \n this is some \n other test \n lines \n go here " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 3 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 7 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 7 ,  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-05-15 00:29:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Lines 0 and 4 are wrapped into 2 parts: 'this is ' and 'some'.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_line_wrapped ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Select + up should select everything to the left on that line.
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : UP  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  5 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " \n go here " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 1 )  = =  " \n go here " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Should deselect and move up.
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_up " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  8 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Normal up over wrapped line.
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_up " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  12 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  12 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Normal up over wrapped line to line 0.
 
							 
						 
					
						
							
								
									
										
										
										
											2024-05-15 00:29:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 12 ,  false ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_up " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  7 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-05-15 00:29:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Normal up from column 0 to a wrapped line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_up " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Normal up to column 0 of a wrapped line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_up " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] ui_text_caret_down " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_line_wrapping_mode ( TextEdit : : LineWrappingMode : : LINE_WRAPPING_BOUNDARY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_size ( Size2 ( 110 ,  100 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " go here \n lines \n other test \n this is some \n go here \n lines \n other test \n this is some " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 7 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 4 ,  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-05-15 00:29:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Lines 3 and 7 are wrapped into 2 parts: 'this is ' and 'some'.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_line_wrapped ( 3 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Select + down should select everything to the right on that line.
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : DOWN  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  5 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " \n lines " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 1 )  = =  " \n lines " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Should deselect and move down.
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_down " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  8 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Normal down over wrapped line.
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_down " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  7 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Normal down over wrapped line to last wrapped line.
 
							 
						 
					
						
							
								
									
										
										
										
											2024-05-15 00:29:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 7 ,  false ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_down " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  12 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  12 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-05-15 00:29:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Normal down to column 0 of a wrapped line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_down " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Normal down out of visual column 0 of a wrapped line moves to start of next line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_down " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] ui_text_caret_document_start " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_line_wrapping_mode ( TextEdit : : LineWrappingMode : : LINE_WRAPPING_BOUNDARY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_size ( Size2 ( 110 ,  100 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " this is some \n other test \n lines \n go here " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 7 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 3 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_line_wrapped ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-20 09:28:22 +03:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# ifdef MACOS_ENABLED 
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : UP  |  KeyModifierMask : : CMD_OR_CTRL  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								# else 
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : HOME  |  KeyModifierMask : : CMD_OR_CTRL  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								# endif 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is some \n other test \n lines \n go here " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " this is some \n other test \n lines \n go here " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_document_start " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " this is some \n other test \n lines \n go here " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] ui_text_caret_document_end " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_line_wrapping_mode ( TextEdit : : LineWrappingMode : : LINE_WRAPPING_BOUNDARY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_size ( Size2 ( 110 ,  100 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " go here \n lines \n other test \n this is some " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_line_wrapped ( 3 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-20 09:28:22 +03:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# ifdef MACOS_ENABLED 
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : DOWN  |  KeyModifierMask : : CMD_OR_CTRL  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								# else 
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : END  |  KeyModifierMask : : CMD_OR_CTRL  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								# endif 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " go here \n lines \n other test \n this is some " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  12 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( )  = =  " go here \n lines \n other test \n this is some " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_document_end " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " go here \n lines \n other test \n this is some " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  12 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] ui_text_caret_line_start " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_line_wrapping_mode ( TextEdit : : LineWrappingMode : : LINE_WRAPPING_BOUNDARY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_size ( Size2 ( 110 ,  100 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( "   this is some \n   this is some " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( text_edit - > get_line ( 0 ) . length ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  text_edit - > get_line ( 1 ) . length ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_line_wrapped ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-20 09:28:22 +03:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# ifdef MACOS_ENABLED 
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : LEFT  |  KeyModifierMask : : CMD_OR_CTRL  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								# else 
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : HOME  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								# endif 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  10 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  " some " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 1 )  = =  " some " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_line_start " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_line_start " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_line_start " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] ui_text_caret_line_end " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_line_wrapping_mode ( TextEdit : : LineWrappingMode : : LINE_WRAPPING_BOUNDARY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_size ( Size2 ( 110 ,  100 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( "   this is some \n   this is some " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_line_wrapped ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-20 09:28:22 +03:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# ifdef MACOS_ENABLED 
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : RIGHT  |  KeyModifierMask : : CMD_OR_CTRL  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								# else 
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : END  |  KeyModifierMask : : SHIFT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								# endif 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  9 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 0 )  = =  "   this is " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selected_text ( 1 )  = =  "   this is " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_caret_line_end " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  text_edit - > get_line ( 0 ) . length ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  text_edit - > get_line ( 1 ) . length ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SUBCASE ( " [TextEdit] unicode " )  { 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > set_text ( " \n " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > add_caret ( 1 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > insert_text_at_caret ( " a " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 1 ,  1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : A ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " aA \n aA " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											// Undo reverts both carets.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " a \n a " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  reverse_nested ( lines_edited_args ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Redo.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " aA \n aA " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											// Does not work if not editable.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( false ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : A ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ;  // Should this be handled?
 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " aA \n aA " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_editable ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 0 ,  0 ) ,  build_array ( 1 ,  1 ) ,  build_array ( 1 ,  1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  0 ,  0 ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > select ( 1 ,  0 ,  1 ,  1 ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : B ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " BA \n BA " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_ACTION ( " ui_text_toggle_insert_mode " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > is_overtype_mode_enabled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : B ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " BB \n BB " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( 0 ,  0 ,  0 ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											text_edit - > select ( 1 ,  0 ,  1 ,  1 ,  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : A ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " AB \n AB " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > set_overtype_mode_enabled ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK_FALSE ( text_edit - > is_overtype_mode_enabled ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-09 17:46:40 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											lines_edited_args  =  build_array ( build_array ( 0 ,  0 ) ,  build_array ( 1 ,  1 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-09 17:46:40 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											SEND_GUI_KEY_EVENT ( Key : : TAB ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-09 17:46:40 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_text ( )  = =  " A \t B \n A \t B " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_caret_column ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " text_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											SIGNAL_CHECK ( " lines_edited_from " ,  lines_edited_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_UNWATCH ( text_edit ,  " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_UNWATCH ( text_edit ,  " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_UNWATCH ( text_edit ,  " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_UNWATCH ( text_edit ,  " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									memdelete ( text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								TEST_CASE ( " [SceneTree][TextEdit] context menu " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									TextEdit  * text_edit  =  memnew ( TextEdit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SceneTree : : get_singleton ( ) - > get_root ( ) - > add_child ( text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_size ( Size2 ( 800 ,  200 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-01 10:49:05 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									text_edit - > set_line ( 0 ,  " Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vasius mattis leo, sed porta ex lacinia bibendum. Nunc bibendum pellentesque. " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_context_menu_enabled ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK_FALSE ( text_edit - > is_context_menu_enabled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK_FALSE ( text_edit - > is_menu_visible ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_MOUSE_BUTTON_EVENT ( Point2i ( 600 ,  10 ) ,  MouseButton : : RIGHT ,  MouseButtonMask : : RIGHT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK_FALSE ( text_edit - > is_menu_visible ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_context_menu_enabled ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > is_context_menu_enabled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK_FALSE ( text_edit - > is_menu_visible ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_MOUSE_BUTTON_EVENT ( Point2i ( 700 ,  10 ) ,  MouseButton : : RIGHT ,  MouseButtonMask : : RIGHT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > is_menu_visible ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									memdelete ( text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								TEST_CASE ( " [SceneTree][TextEdit] versioning " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									TextEdit  * text_edit  =  memnew ( TextEdit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SceneTree : : get_singleton ( ) - > get_root ( ) - > add_child ( text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Action undo / redo states are tested in the action test e.g selection_delete.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK_FALSE ( text_edit - > has_undo ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK_FALSE ( text_edit - > has_redo ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_version ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_saved_version ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > begin_complex_operation ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > begin_complex_operation ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > begin_complex_operation ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > insert_text_at_caret ( " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_version ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_saved_version ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > has_undo ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK_FALSE ( text_edit - > has_redo ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > end_complex_operation ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Can undo and redo mid op.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > insert_text_at_caret ( "  nested " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_version ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_saved_version ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > has_undo ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK_FALSE ( text_edit - > has_redo ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > has_redo ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > end_complex_operation ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > insert_text_at_caret ( "  ops " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_version ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_saved_version ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > has_undo ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK_FALSE ( text_edit - > has_redo ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > end_complex_operation ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > tag_saved_version ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_saved_version ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line ( 0 )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_version ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_saved_version ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK_FALSE ( text_edit - > has_undo ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > has_redo ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line ( 0 )  = =  " test ops nested " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_version ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_saved_version ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > has_undo ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK_FALSE ( text_edit - > has_redo ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > clear_undo_history ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK_FALSE ( text_edit - > has_undo ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK_FALSE ( text_edit - > has_redo ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_version ( )  = =  3 ) ;  // Should this be cleared?
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_saved_version ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-12-13 13:38:20 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SUBCASE ( " [TextEdit] versioning selection " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_text ( " Godot Engine \n Waiting for Godot \n Test Text for multi carat \n Line 4 Text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_multiple_carets_enabled ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										Array  caret_index ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										caret_index . push_back ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										for  ( int  i  =  1 ;  i  <  4 ;  i + + )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											caret_index . push_back ( text_edit - > add_caret ( i ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( ( int ) caret_index . back ( )  > =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										for  ( int  i  =  0 ;  i  <  4 ;  i + + )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											text_edit - > select ( i ,  0 ,  i ,  5 ,  caret_index [ i ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										for  ( int  i  =  0 ;  i  <  4 ;  i + + )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( caret_index [ i ] ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( caret_index [ i ] )  = =  i ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( caret_index [ i ] )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( caret_index [ i ] )  = =  i ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( caret_index [ i ] )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > begin_complex_operation ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_text ( " New Line Text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 0 ,  0 ,  0 ,  7 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > end_complex_operation ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selected_text ( 0 )  = =  " New Lin " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										for  ( int  i  =  0 ;  i  <  4 ;  i + + )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > has_selection ( caret_index [ i ] ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_line ( caret_index [ i ] )  = =  i ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_from_column ( caret_index [ i ] )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_line ( caret_index [ i ] )  = =  i ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											CHECK ( text_edit - > get_selection_to_column ( caret_index [ i ] )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									memdelete ( text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								TEST_CASE ( " [SceneTree][TextEdit] search " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									TextEdit  * text_edit  =  memnew ( TextEdit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SceneTree : : get_singleton ( ) - > get_root ( ) - > add_child ( text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-10-02 13:30:23 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									text_edit - > set_text ( " hay needle, hay \n HAY NEEDLE, HAY \n wordword.word.word " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									int  length  =  text_edit - > get_line ( 1 ) . length ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " test " ,  0 ,  0 ,  0 )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " test " ,  TextEdit : : SEARCH_MATCH_CASE ,  0 ,  0 )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " test " ,  TextEdit : : SEARCH_WHOLE_WORDS ,  0 ,  0 )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " test " ,  TextEdit : : SEARCH_BACKWARDS ,  0 ,  0 )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " test " ,  0 ,  1 ,  length )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " test " ,  TextEdit : : SEARCH_MATCH_CASE ,  1 ,  length )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " test " ,  TextEdit : : SEARCH_WHOLE_WORDS ,  1 ,  length )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " test " ,  TextEdit : : SEARCH_BACKWARDS ,  1 ,  length )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " needle " ,  0 ,  0 ,  0 )  = =  Point2i ( 4 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " needle " ,  0 ,  1 ,  length )  = =  Point2i ( 4 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " needle " ,  0 ,  0 ,  5 )  = =  Point2i ( 4 ,  1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " needle " ,  TextEdit : : SEARCH_BACKWARDS ,  0 ,  0 )  = =  Point2i ( 4 ,  1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " needle " ,  TextEdit : : SEARCH_BACKWARDS ,  1 ,  5 )  = =  Point2i ( 4 ,  1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " needle " ,  TextEdit : : SEARCH_BACKWARDS ,  1 ,  3 )  = =  Point2i ( 4 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " needle " ,  TextEdit : : SEARCH_MATCH_CASE ,  0 ,  0 )  = =  Point2i ( 4 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " needle " ,  TextEdit : : SEARCH_MATCH_CASE  |  TextEdit : : SEARCH_BACKWARDS ,  0 ,  0 )  = =  Point2i ( 4 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " needle " ,  TextEdit : : SEARCH_WHOLE_WORDS  |  TextEdit : : SEARCH_MATCH_CASE ,  0 ,  0 )  = =  Point2i ( 4 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " needle " ,  TextEdit : : SEARCH_WHOLE_WORDS  |  TextEdit : : SEARCH_MATCH_CASE  |  TextEdit : : SEARCH_BACKWARDS ,  0 ,  0 )  = =  Point2i ( 4 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " need " ,  TextEdit : : SEARCH_MATCH_CASE ,  0 ,  0 )  = =  Point2i ( 4 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " need " ,  TextEdit : : SEARCH_MATCH_CASE  |  TextEdit : : SEARCH_BACKWARDS ,  0 ,  0 )  = =  Point2i ( 4 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " need " ,  TextEdit : : SEARCH_WHOLE_WORDS  |  TextEdit : : SEARCH_MATCH_CASE ,  0 ,  0 )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " need " ,  TextEdit : : SEARCH_WHOLE_WORDS  |  TextEdit : : SEARCH_MATCH_CASE  |  TextEdit : : SEARCH_BACKWARDS ,  0 ,  0 )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-10-02 13:30:23 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " word " ,  TextEdit : : SEARCH_WHOLE_WORDS ,  2 ,  0 )  = =  Point2i ( 9 ,  2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " word " ,  TextEdit : : SEARCH_WHOLE_WORDS ,  2 ,  10 )  = =  Point2i ( 14 ,  2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " .word " ,  TextEdit : : SEARCH_WHOLE_WORDS ,  2 ,  0 )  = =  Point2i ( 8 ,  2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " word. " ,  TextEdit : : SEARCH_WHOLE_WORDS ,  2 ,  0 )  = =  Point2i ( 9 ,  2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									ERR_PRINT_OFF ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " " ,  0 ,  0 ,  0 )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " needle " ,  0 ,  - 1 ,  0 )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " needle " ,  0 ,  0 ,  - 1 )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " needle " ,  0 ,  100 ,  0 )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > search ( " needle " ,  0 ,  0 ,  100 )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									ERR_PRINT_ON ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									memdelete ( text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								TEST_CASE ( " [SceneTree][TextEdit] mouse " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									TextEdit  * text_edit  =  memnew ( TextEdit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SceneTree : : get_singleton ( ) - > get_root ( ) - > add_child ( text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_size ( Size2 ( 800 ,  200 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-11 12:32:36 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_rect_at_line_column ( 0 ,  0 ) . get_position ( )  = =  Point2i ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line ( 0 ,  " A " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_rect_at_line_column ( 0 ,  1 ) . get_position ( ) . x  >  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > clear ( ) ;  // Necessary, otherwise the following test cases fail.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-01 10:49:05 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									text_edit - > set_line ( 0 ,  " Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vasius mattis leo, sed porta ex lacinia bibendum. Nunc bibendum pellentesque. " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_word_at_pos ( text_edit - > get_pos_at_line_column ( 0 ,  1 ) )  = =  " Lorem " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_word_at_pos ( text_edit - > get_pos_at_line_column ( 0 ,  9 ) )  = =  " ipsum " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									ERR_PRINT_OFF ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_pos_at_line_column ( 0 ,  - 1 )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_pos_at_line_column ( - 1 ,  0 )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_pos_at_line_column ( - 1 ,  - 1 )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_pos_at_line_column ( 0 ,  500 )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_pos_at_line_column ( 2 ,  0 )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_pos_at_line_column ( 2 ,  500 )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Out of view.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_pos_at_line_column ( 0 ,  text_edit - > get_line ( 0 ) . length ( )  -  1 )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									ERR_PRINT_ON ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Add method to get drawn column count?
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									Point2i  start_pos  =  text_edit - > get_pos_at_line_column ( 0 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									Point2i  end_pos  =  text_edit - > get_pos_at_line_column ( 0 ,  105 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_column_at_pos ( Point2i ( start_pos . x ,  start_pos . y ) )  = =  Point2i ( 0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_column_at_pos ( Point2i ( end_pos . x ,  end_pos . y ) )  = =  Point2i ( 104 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Should this return Point2i(-1, -1) if its also < 0 not just > vis_lines.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_column_at_pos ( Point2i ( end_pos . x  -  100 ,  end_pos . y ) ,  false )  = =  Point2i ( 90 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_column_at_pos ( Point2i ( end_pos . x ,  end_pos . y  +  100 ) ,  false )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_column_at_pos ( Point2i ( end_pos . x  -  100 ,  end_pos . y  +  100 ) ,  false )  = =  Point2i ( - 1 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_column_at_pos ( Point2i ( end_pos . x ,  end_pos . y  -  100 ) ,  false )  = =  Point2i ( 104 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_column_at_pos ( Point2i ( end_pos . x  -  100 ,  end_pos . y  -  100 ) ,  false )  = =  Point2i ( 90 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_column_at_pos ( Point2i ( end_pos . x  -  100 ,  end_pos . y ) )  = =  Point2i ( 90 ,  0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-23 08:44:50 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_column_at_pos ( Point2i ( end_pos . x ,  end_pos . y  +  100 ) )  = =  Point2i ( 140 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_column_at_pos ( Point2i ( end_pos . x  -  100 ,  end_pos . y  +  100 ) )  = =  Point2i ( 140 ,  0 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_column_at_pos ( Point2i ( end_pos . x ,  end_pos . y  -  100 ) )  = =  Point2i ( 104 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_column_at_pos ( Point2i ( end_pos . x  -  100 ,  end_pos . y  -  100 ) )  = =  Point2i ( 90 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									memdelete ( text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								TEST_CASE ( " [SceneTree][TextEdit] caret " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									TextEdit  * text_edit  =  memnew ( TextEdit ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-01-23 21:44:03 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									text_edit - > set_context_menu_enabled ( false ) ;  // Prohibit sending InputEvents to the context menu.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									SceneTree : : get_singleton ( ) - > get_root ( ) - > add_child ( text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_size ( Size2 ( 800 ,  200 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > grab_focus ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line ( 0 ,  " ffi " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_mid_grapheme_enabled ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > is_caret_mid_grapheme_enabled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_ACTION ( " ui_text_caret_right " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_column ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_ACTION ( " ui_text_caret_right " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_column ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_ACTION ( " ui_text_caret_right " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_column ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_ACTION ( " ui_text_caret_left " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_column ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-01 10:49:05 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									text_edit - > set_line ( 0 ,  " Lorem  ipsum dolor sit amet, consectetur adipiscing elit. Donec vasius mattis leo, sed porta ex lacinia bibendum. Nunc bibendum pellentesque. " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									for  ( int  i  =  0 ;  i  <  3 ;  i + + )  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-01 10:49:05 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										text_edit - > insert_line_at ( 0 ,  " Lorem  ipsum dolor sit amet, consectetur adipiscing elit. Donec vasius mattis leo, sed porta ex lacinia bibendum. Nunc bibendum pellentesque. " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_blink_enabled ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK_FALSE ( text_edit - > is_caret_blink_enabled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_blink_enabled ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > is_caret_blink_enabled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-08-13 14:52:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_blink_interval ( 10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_blink_interval ( )  = =  10 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									ERR_PRINT_OFF ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-08-13 14:52:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_blink_interval ( - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_blink_interval ( )  = =  10 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-08-13 14:52:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_blink_interval ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_blink_interval ( )  = =  10 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									ERR_PRINT_ON ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_type ( TextEdit : : CaretType : : CARET_TYPE_LINE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_type ( )  = =  TextEdit : : CaretType : : CARET_TYPE_LINE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_type ( TextEdit : : CaretType : : CARET_TYPE_BLOCK ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_type ( )  = =  TextEdit : : CaretType : : CARET_TYPE_BLOCK ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_type ( TextEdit : : CaretType : : CARET_TYPE_LINE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_type ( )  = =  TextEdit : : CaretType : : CARET_TYPE_LINE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									int  caret_col  =  text_edit - > get_caret_column ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_move_caret_on_right_click_enabled ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK_FALSE ( text_edit - > is_move_caret_on_right_click_enabled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_MOUSE_BUTTON_EVENT ( Point2i ( 100 ,  1 ) ,  MouseButton : : RIGHT ,  MouseButtonMask : : RIGHT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_column ( )  = =  caret_col ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_move_caret_on_right_click_enabled ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > is_move_caret_on_right_click_enabled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_MOUSE_BUTTON_EVENT ( Point2i ( 100 ,  1 ) ,  MouseButton : : RIGHT ,  MouseButtonMask : : RIGHT ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_column ( )  ! =  caret_col ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_move_caret_on_right_click_enabled ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK_FALSE ( text_edit - > is_move_caret_on_right_click_enabled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_word_under_caret ( )  = =  " Lorem " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_column ( 4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_word_under_caret ( )  = =  " Lorem " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_column ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > add_caret ( 0 ,  15 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_word_under_caret ( )  = =  " Lorem \n dolor " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									// Should this work?
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_column ( 5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_word_under_caret ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_column ( 6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_word_under_caret ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_line ( - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_line ( 100 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_line ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_column ( - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_column ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_column ( 10000000 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_column ( )  = =  141 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									memdelete ( text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-10-09 17:07:42 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								TEST_CASE ( " [SceneTree][TextEdit] multicaret " )  { 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									TextEdit  * text_edit  =  memnew ( TextEdit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SceneTree : : get_singleton ( ) - > get_root ( ) - > add_child ( text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_multiple_carets_enabled ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									Array  empty_signal_args ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									empty_signal_args . push_back ( Array ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SIGNAL_WATCH ( text_edit ,  " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_text ( " this is \n some test \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SIGNAL_DISCARD ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SUBCASE ( " [TextEdit] add remove caret " )  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										// Overlapping.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > add_caret ( 0 ,  0 )  = =  - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										// Select.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 2 ,  4 ,  0 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Cannot add in selection.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > add_caret ( 0 ,  0 )  = =  - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > add_caret ( 2 ,  4 )  = =  - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > add_caret ( 1 ,  2 )  = =  - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										// Cannot add when out of bounds.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > add_caret ( - 1 ,  0 )  = =  - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > add_caret ( 5 ,  0 )  = =  - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > add_caret ( 0 ,  100 )  = =  - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > add_caret ( 0 ,  1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_CHECK ( " caret_changed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										ERR_PRINT_OFF ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_caret ( - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_caret ( 5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										ERR_PRINT_ON ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_caret ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-08 20:39:24 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										ERR_PRINT_OFF ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_caret ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										ERR_PRINT_ON ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SUBCASE ( " [TextEdit] sort carets " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										Vector < int >  sorted_carets  =  {  0 ,  1 ,  2  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										// Ascending order.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 0 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 1 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_sorted_carets ( )  = =  sorted_carets ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										// Descending order.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										sorted_carets  =  {  2 ,  1 ,  0  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 0 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 0 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_sorted_carets ( )  = =  sorted_carets ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Mixed order.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										sorted_carets  =  {  0 ,  2 ,  1 ,  3  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 1 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 0 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 1 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_sorted_carets ( )  = =  sorted_carets ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Overlapping carets.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										sorted_carets  =  {  0 ,  1 ,  3 ,  2  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 0 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 1 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 0 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_column ( 1 ,  false ,  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_sorted_carets ( )  = =  sorted_carets ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Sorted by selection start.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										sorted_carets  =  {  1 ,  0  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 1 ,  3 ,  1 ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 2 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 1 ,  0 ,  2 ,  0 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_sorted_carets ( )  = =  sorted_carets ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SUBCASE ( " [TextEdit] merge carets " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_text ( " this is some text \n for selection " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Don't merge carets that are not overlapping.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_column ( 4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 0 ,  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 1 ,  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > merge_overlapping_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 2 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 2 )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Don't merge when in a multicaret edit.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > begin_multicaret_edit ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_column ( 4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 0 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > merge_overlapping_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > is_in_mulitcaret_edit ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Merge overlapping carets. Merge at the end of the multicaret edit.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > end_multicaret_edit ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > is_in_mulitcaret_edit ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Don't merge selections that are not overlapping.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_column ( 4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 0 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 1 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 0 ,  4 ,  1 ,  2 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 0 ,  2 ,  0 ,  3 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 1 ,  4 ,  1 ,  8 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > merge_overlapping_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Don't merge selections that are only touching.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_column ( 4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 1 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 0 ,  4 ,  1 ,  2 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 1 ,  2 ,  1 ,  5 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > merge_overlapping_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Merge carets into selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_column ( 3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 0 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 1 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 1 ,  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 1 ,  10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 0 ,  2 ,  1 ,  8 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > merge_overlapping_carets ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_from_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_from_column ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_to_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_to_column ( 0 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > is_caret_after_selection_origin ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Merge partially overlapping selections.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_column ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 0 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 0 ,  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 0 ,  2 ,  0 ,  6 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 0 ,  4 ,  1 ,  3 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 1 ,  0 ,  1 ,  5 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > merge_overlapping_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_from_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_from_column ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_to_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_to_column ( 0 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > is_caret_after_selection_origin ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Merge smaller overlapping selection into a bigger one.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_column ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 0 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 0 ,  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 0 ,  2 ,  0 ,  6 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 0 ,  8 ,  1 ,  3 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 0 ,  2 ,  1 ,  5 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > merge_overlapping_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_from_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_from_column ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_to_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_to_column ( 0 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > is_caret_after_selection_origin ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Merge equal overlapping selections.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_column ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 0 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 0 ,  2 ,  1 ,  6 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 0 ,  2 ,  1 ,  6 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > merge_overlapping_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_from_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_from_column ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_to_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_to_column ( 0 )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > is_caret_after_selection_origin ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SUBCASE ( " [TextEdit] collapse carets " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_text ( " this is some text \n for selection " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Collapse carets in range, dont affect other carets.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 0 ,  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 1 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 1 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 1 ,  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > begin_multicaret_edit ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > collapse_carets ( 0 ,  8 ,  1 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 2 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 2 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 3 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 3 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 4 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 4 )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > multicaret_edit_ignore_caret ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > multicaret_edit_ignore_caret ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > multicaret_edit_ignore_caret ( 2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > multicaret_edit_ignore_caret ( 3 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > multicaret_edit_ignore_caret ( 4 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Collapsed carets get merged at the end of the edit.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > end_multicaret_edit ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 2 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 2 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 3 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 3 )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Collapse inclusive.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_column ( 3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 1 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > collapse_carets ( 0 ,  3 ,  1 ,  2 ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Deselect if selection was encompassed.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 0 ,  5 ,  0 ,  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > collapse_carets ( 0 ,  3 ,  1 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Clamp only caret end of selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 0 ,  1 ,  0 ,  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > collapse_carets ( 0 ,  3 ,  1 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_column ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										// Clamp only selection origin end of selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 0 ,  7 ,  0 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > collapse_carets ( 0 ,  3 ,  1 ,  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_column ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-10-09 17:07:42 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SUBCASE ( " [TextEdit] add caret at carets " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_column ( 9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										// Add caret below. Column will clamp.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-09 17:07:42 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  9 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-09 17:07:42 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										// Cannot add below when at last line.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-09 17:07:42 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-09 17:07:42 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										// Add caret above. Column will clamp.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-09 17:07:42 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 2 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 2 )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Cannot add above when at first line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-09 17:07:42 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 2 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 2 )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										// Cannot add below when at the last line for selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 2 ,  1 ,  2 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Cannot add above when at the first line for selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 0 ,  1 ,  0 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Add selection below.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 0 ,  0 ,  0 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  3 ) ;  // In the default font, this is the same position.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Add selection below again.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_line ( 2 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_column ( 2 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 2 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 2 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_text ( " \t this is \n some \n \t test text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Last fit x is preserved when adding below.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_column ( 6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 2 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 2 )  = =  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Last fit x is preserved when adding above.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_line ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_column ( 9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 2 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 2 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Last fit x is preserved when selection adding below.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 0 ,  8 ,  0 ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_line ( 2 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_column ( 2 )  = =  7 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 2 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 2 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Last fit x is preserved when selection adding above.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 2 ,  9 ,  2 ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  9 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_line ( 2 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_column ( 2 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 2 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 2 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Selections are merged when they overlap.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 0 ,  1 ,  0 ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret ( 1 ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 1 ,  1 ,  1 ,  3 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_column ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_line ( 2 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_column ( 2 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 2 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 2 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Multiline selection.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_column ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > select ( 0 ,  3 ,  1 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_column ( 0 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > has_selection ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_selection_origin_column ( 1 )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_wrapping_mode ( TextEdit : : LineWrappingMode : : LINE_WRAPPING_BOUNDARY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_size ( Size2 ( 50 ,  100 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Line wraps: `\t,this, is\nso,me\n\t,test, ,text`.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > is_line_wrapped ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Add caret below on next line wrap.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-09 17:07:42 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-09 17:07:42 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_column ( 4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( true ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Add caret below from end of line wrap.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 2 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 2 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Add caret below from last line and not last line wrap.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_line ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_column ( 5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-09 17:07:42 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-05-15 00:29:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  6 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-09 17:07:42 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										// Cannot add caret below from last line last line wrap.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-09 17:07:42 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( true ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-05-15 00:29:35 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  6 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Add caret above from not first line wrap.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_line ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_column ( 4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Add caret above from first line wrap.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-09 17:07:42 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 2 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 2 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Add caret above from first line and not first line wrap.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 1 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 2 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 2 )  = =  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 3 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 3 )  = =  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Cannot add caret above from first line first line wrap.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_secondary_carets ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > deselect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > has_selection ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_line ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_column ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-05-02 09:16:32 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Does nothing if multiple carets are disabled.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_multiple_carets_enabled ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_caret_at_carets ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_caret_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-09 17:07:42 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-03 17:47:37 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									memdelete ( text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								TEST_CASE ( " [SceneTree][TextEdit] line wrapping " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									TextEdit  * text_edit  =  memnew ( TextEdit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SceneTree : : get_singleton ( ) - > get_root ( ) - > add_child ( text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > grab_focus ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-05-23 21:32:19 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									// Set size for boundary.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_size ( Size2 ( 800 ,  200 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-01 10:49:05 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									text_edit - > set_line ( 0 ,  " Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vasius mattis leo, sed porta ex lacinia bibendum. Nunc bibendum pellentesque. " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK_FALSE ( text_edit - > is_line_wrapped ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_wrap_count ( 0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_wrap_index_at_column ( 0 ,  130 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_wrapped_text ( 0 ) . size ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SIGNAL_WATCH ( text_edit ,  " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SIGNAL_WATCH ( text_edit ,  " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SIGNAL_WATCH ( text_edit ,  " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SIGNAL_WATCH ( text_edit ,  " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_wrapping_mode ( TextEdit : : LineWrappingMode : : LINE_WRAPPING_BOUNDARY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SIGNAL_CHECK_FALSE ( " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SIGNAL_CHECK_FALSE ( " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SIGNAL_CHECK_FALSE ( " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SIGNAL_CHECK_FALSE ( " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > is_line_wrapped ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_wrap_count ( 0 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_wrap_index_at_column ( 0 ,  130 )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_wrapped_text ( 0 ) . size ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SIGNAL_UNWATCH ( text_edit ,  " text_set " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SIGNAL_UNWATCH ( text_edit ,  " text_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SIGNAL_UNWATCH ( text_edit ,  " lines_edited_from " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SIGNAL_UNWATCH ( text_edit ,  " caret_changed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									ERR_PRINT_OFF ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK_FALSE ( text_edit - > is_line_wrapped ( - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK_FALSE ( text_edit - > is_line_wrapped ( 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_wrap_count ( - 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_wrap_count ( 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_wrap_index_at_column ( - 1 ,  0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_wrap_index_at_column ( 0 ,  - 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_wrap_index_at_column ( 1 ,  0 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_wrap_index_at_column ( 0 ,  10000 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_wrapped_text ( - 1 ) . size ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_line_wrapped_text ( 1 ) . size ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									ERR_PRINT_ON ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									memdelete ( text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								TEST_CASE ( " [SceneTree][TextEdit] viewport " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									TextEdit  * text_edit  =  memnew ( TextEdit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SceneTree : : get_singleton ( ) - > get_root ( ) - > add_child ( text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// No subcases here for performance.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_size ( Size2 ( 800 ,  600 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									for  ( int  i  =  0 ;  i  <  50 ;  i + + )  { 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-01 10:49:05 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										text_edit - > insert_line_at ( 0 ,  " Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vasius mattis leo, sed porta ex lacinia bibendum. Nunc bibendum pellentesque. " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									const  int  visible_lines  =  text_edit - > get_visible_line_count ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									const  int  total_visible_lines  =  text_edit - > get_total_visible_line_count ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( total_visible_lines  = =  51 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// First visible line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  visible_lines  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_first_visible ( visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  ( visible_lines  *  2 )  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									ERR_PRINT_OFF ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_first_visible ( - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_first_visible ( 500 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_first_visible ( 0 ,  - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_first_visible ( 0 ,  500 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									ERR_PRINT_ON ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Wrap.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_wrapping_mode ( TextEdit : : LineWrappingMode : : LINE_WRAPPING_BOUNDARY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_total_visible_line_count ( )  >  total_visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_first_visible ( 5 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  11 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  visible_lines  -  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Reset.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_wrapping_mode ( TextEdit : : LineWrappingMode : : LINE_WRAPPING_NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_total_visible_line_count ( )  = =  total_visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_first_visible ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  visible_lines  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Last visible line.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_last_visible ( visible_lines  *  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  ( visible_lines  *  2 )  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									ERR_PRINT_OFF ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_last_visible ( - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_last_visible ( 500 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_last_visible ( 0 ,  - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_last_visible ( 0 ,  500 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  ( visible_lines  *  2 )  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									ERR_PRINT_ON ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Wrap.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_wrapping_mode ( TextEdit : : LineWrappingMode : : LINE_WRAPPING_BOUNDARY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_total_visible_line_count ( )  >  total_visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_last_visible ( visible_lines  +  5 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  16 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  32.0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  visible_lines  +  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Reset.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_wrapping_mode ( TextEdit : : LineWrappingMode : : LINE_WRAPPING_NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_total_visible_line_count ( )  = =  total_visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_first_visible ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  visible_lines  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Center.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_center_visible ( visible_lines  +  ( visible_lines  /  2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  ( visible_lines  *  2 )  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									ERR_PRINT_OFF ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_last_visible ( - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_last_visible ( 500 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_last_visible ( 0 ,  - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_last_visible ( 0 ,  500 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  ( visible_lines  *  2 )  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									ERR_PRINT_ON ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Wrap.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_wrapping_mode ( TextEdit : : LineWrappingMode : : LINE_WRAPPING_BOUNDARY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_total_visible_line_count ( )  >  total_visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_center_visible ( visible_lines  +  ( visible_lines  /  2 )  +  5 ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  visible_lines  +  ( visible_lines  /  2 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  ( visible_lines  *  3 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  ( visible_lines  *  2 )  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Scroll past eof.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									int  line_count  =  text_edit - > get_line_count ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_scroll_past_end_of_file_enabled ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_center_visible ( line_count  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  ( visible_lines  *  2 )  +  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  ( visible_lines  *  4 )  +  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  ( visible_lines  *  2 )  +  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_scroll_past_end_of_file_enabled ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  ( visible_lines  *  2 )  +  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  ( visible_lines  *  4 )  -  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  ( visible_lines  *  2 )  +  8 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Reset.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_wrapping_mode ( TextEdit : : LineWrappingMode : : LINE_WRAPPING_NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_total_visible_line_count ( )  = =  total_visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_first_visible ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  visible_lines  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Auto adjust - todo: horizontal scroll.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Below.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK_FALSE ( text_edit - > is_caret_visible ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_line ( visible_lines  +  5 ,  false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK_FALSE ( text_edit - > is_caret_visible ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > adjust_viewport_to_caret ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > is_caret_visible ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  ( visible_lines  -  1 )  +  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > center_viewport_to_caret ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  visible_lines  -  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  visible_lines  -  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  ( visible_lines  *  2 )  -  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Caret visible, do nothing.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > adjust_viewport_to_caret ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  visible_lines  -  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  visible_lines  -  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  ( visible_lines  *  2 )  -  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Above.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_line ( 1 ,  false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > adjust_viewport_to_caret ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > is_caret_visible ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_first_visible ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  visible_lines  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > adjust_viewport_to_caret ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  visible_lines  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									// Wrap.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_wrapping_mode ( TextEdit : : LineWrappingMode : : LINE_WRAPPING_BOUNDARY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_total_visible_line_count ( )  >  total_visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_line ( visible_lines  +  5 ,  false ,  true ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > adjust_viewport_to_caret ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-12 13:21:00 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  ( visible_lines  /  2 )  +  6 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  ( visible_lines  +  ( visible_lines  /  2 ) )  +  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  ( visible_lines )  +  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_wrap_index ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > center_viewport_to_caret ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  ( visible_lines  *  2 )  +  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  ( visible_lines  *  2 )  -  11 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Caret visible, do nothing.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > adjust_viewport_to_caret ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  ( visible_lines  *  2 )  +  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  ( visible_lines  *  2 )  -  11 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Above.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_line ( 1 ,  false ,  true ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > adjust_viewport_to_caret ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > is_caret_visible ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  ( visible_lines  /  2 )  +  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_wrap_index ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_first_visible ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > is_caret_visible ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  visible_lines  -  11 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > adjust_viewport_to_caret ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  visible_lines  -  11 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Reset.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_wrapping_mode ( TextEdit : : LineWrappingMode : : LINE_WRAPPING_NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_total_visible_line_count ( )  = =  total_visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_first_visible ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  visible_lines  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Smooth scroll.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_v_scroll_speed ( 10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll_speed ( )  = =  10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									ERR_PRINT_OFF ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_v_scroll_speed ( - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll_speed ( )  = =  10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_v_scroll_speed ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll_speed ( )  = =  10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_v_scroll_speed ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll_speed ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									ERR_PRINT_ON ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Scroll.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									int  v_scroll  =  text_edit - > get_v_scroll ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_MOUSE_BUTTON_EVENT ( Point2i ( 10 ,  10 ) ,  MouseButton : : WHEEL_DOWN ,  0 ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  >  v_scroll ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_MOUSE_BUTTON_EVENT ( Point2i ( 10 ,  10 ) ,  MouseButton : : WHEEL_UP ,  0 ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  v_scroll ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// smooth scroll speed.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_smooth_scroll_enabled ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									v_scroll  =  text_edit - > get_v_scroll ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_MOUSE_BUTTON_EVENT ( Point2i ( 10 ,  10 ) ,  MouseButton : : WHEEL_DOWN ,  0 ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > notification ( TextEdit : : NOTIFICATION_INTERNAL_PHYSICS_PROCESS ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-16 17:42:04 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  > =  v_scroll ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_MOUSE_BUTTON_EVENT ( Point2i ( 10 ,  10 ) ,  MouseButton : : WHEEL_UP ,  0 ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > notification ( TextEdit : : NOTIFICATION_INTERNAL_PHYSICS_PROCESS ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  v_scroll ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									v_scroll  =  text_edit - > get_v_scroll ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_v_scroll_speed ( 10000 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_MOUSE_BUTTON_EVENT ( Point2i ( 10 ,  10 ) ,  MouseButton : : WHEEL_DOWN ,  0 ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > notification ( TextEdit : : NOTIFICATION_INTERNAL_PHYSICS_PROCESS ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-16 17:42:04 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  > =  v_scroll ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_MOUSE_BUTTON_EVENT ( Point2i ( 10 ,  10 ) ,  MouseButton : : WHEEL_UP ,  0 ,  Key : : NONE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > notification ( TextEdit : : NOTIFICATION_INTERNAL_PHYSICS_PROCESS ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  v_scroll ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									ERR_PRINT_OFF ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_scroll_pos_for_line ( - 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_scroll_pos_for_line ( 1000 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_scroll_pos_for_line ( 1 ,  - 1 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_scroll_pos_for_line ( 1 ,  100 )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									ERR_PRINT_ON ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_h_scroll ( - 100 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_h_scroll ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_h_scroll ( 10000000 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-10-13 12:22:50 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_h_scroll ( )  = =  306 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_h_scroll_bar ( ) - > get_combined_minimum_size ( ) . x  = =  8 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_h_scroll ( - 100 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_h_scroll ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_smooth_scroll_enabled ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  visible_lines  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > grab_focus ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_ACTION ( " ui_text_scroll_down " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_ACTION ( " ui_text_scroll_up " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  visible_lines  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Page down, similar to VSCode, to end of page then scroll.
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_ACTION ( " ui_text_caret_page_down " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_line ( )  = =  21 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  visible_lines  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_ACTION ( " ui_text_caret_page_down " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_line ( )  = =  41 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  20 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  20 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  ( visible_lines  -  1 )  *  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_ACTION ( " ui_text_caret_page_up " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_line ( )  = =  21 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  20 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  20 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  ( visible_lines  -  1 )  *  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_ACTION ( " ui_text_caret_page_up " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_wrapping_mode ( TextEdit : : LineWrappingMode : : LINE_WRAPPING_NONE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > grab_focus ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_ACTION ( " ui_text_scroll_down " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_line ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  visible_lines  +  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_ACTION ( " ui_text_scroll_up " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_line ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// Page down, similar to VSCode, to end of page then scroll.
 
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_ACTION ( " ui_text_caret_page_down " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_line ( )  = =  22 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  visible_lines ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_ACTION ( " ui_text_caret_page_down " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_line ( )  = =  42 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  21 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  21 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  ( visible_lines  *  2 )  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_ACTION ( " ui_text_caret_page_up " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_line ( )  = =  22 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  21 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  21 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  ( visible_lines  *  2 )  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_ACTION ( " ui_text_caret_page_up " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_viewport ( ) - > is_input_handled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_line ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_v_scroll ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line ( )  = =  visible_lines  +  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_last_full_visible_line_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_caret_wrap_index ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-22 18:27:19 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									// Typing and undo / redo should adjust viewport.
 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-16 15:06:13 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_line ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_caret_column ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_first_visible ( 5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-02-09 00:17:52 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SEND_GUI_KEY_EVENT ( Key : : A ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-10-16 15:06:13 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_first_visible ( 5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > undo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > set_line_as_first_visible ( 5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									text_edit - > redo ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MessageQueue : : get_singleton ( ) - > flush ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CHECK ( text_edit - > get_first_visible_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
									memdelete ( text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								TEST_CASE ( " [SceneTree][TextEdit] setter getters " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									TextEdit  * text_edit  =  memnew ( TextEdit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SceneTree : : get_singleton ( ) - > get_root ( ) - > add_child ( text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SUBCASE ( " [TextEdit] set and get placeholder " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_placeholder ( " test \n placeholder " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_placeholder ( )  = =  " test \n placeholder " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_text ( )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_line_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_last_full_visible_line ( )  = =  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SUBCASE ( " [TextEdit] highlight current line " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_highlight_current_line ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > is_highlight_current_line_enabled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_highlight_current_line ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > is_highlight_current_line_enabled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SUBCASE ( " [TextEdit] highlight all occurrences " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_highlight_all_occurrences ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > is_highlight_all_occurrences_enabled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_highlight_all_occurrences ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > is_highlight_all_occurrences_enabled ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SUBCASE ( " [TextEdit] draw control chars " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_draw_control_chars ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_draw_control_chars ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_draw_control_chars ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > get_draw_control_chars ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SUBCASE ( " [TextEdit] draw tabs " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_draw_tabs ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > is_drawing_tabs ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_draw_tabs ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > is_drawing_tabs ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SUBCASE ( " [TextEdit] draw spaces " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_draw_spaces ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > is_drawing_spaces ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_draw_spaces ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > is_drawing_spaces ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-11-16 19:36:23 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SUBCASE ( " [TextEdit] draw minimap " )  { 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_draw_minimap ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > is_drawing_minimap ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_draw_minimap ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK_FALSE ( text_edit - > is_drawing_minimap ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SUBCASE ( " [TextEdit] minimap width " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_minimap_width ( - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_minimap_width ( )  = =  - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_minimap_width ( 1000 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_minimap_width ( )  = =  1000 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SUBCASE ( " [TextEdit] line color background " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										ERR_PRINT_OFF ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_background_color ( - 1 ,  Color ( " #ff0000 " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_background_color ( 0 ,  Color ( " #00ff00 " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_background_color ( 1 ,  Color ( " #0000ff " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_line_background_color ( - 1 )  = =  Color ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_line_background_color ( 0 )  = =  Color ( " #00ff00 " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_line_background_color ( 1 )  = =  Color ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										ERR_PRINT_ON ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_background_color ( 0 ,  Color ( " #ffff00 " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_line_background_color ( 0 )  = =  Color ( " #ffff00 " ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									memdelete ( text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								TEST_CASE ( " [SceneTree][TextEdit] gutters " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									TextEdit  * text_edit  =  memnew ( TextEdit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SceneTree : : get_singleton ( ) - > get_root ( ) - > add_child ( text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									Array  empty_signal_args ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									empty_signal_args . push_back ( Array ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SIGNAL_WATCH ( text_edit ,  " gutter_clicked " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SIGNAL_WATCH ( text_edit ,  " gutter_added " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SIGNAL_WATCH ( text_edit ,  " gutter_removed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SUBCASE ( " [TextEdit] gutter add and remove " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_gutter ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-08-26 19:00:14 +09:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_width ( 0 )  = =  24 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_total_gutter_width ( )  = =  24  +  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										SIGNAL_CHECK ( " gutter_added " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_gutter_name ( 0 ,  " test_gutter " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_name ( 0 )  = =  " test_gutter " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_gutter_width ( 0 ,  10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_width ( 0 )  = =  10 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-08-26 19:00:14 +09:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_total_gutter_width ( )  = =  10  +  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_gutter ( - 100 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_gutter_width ( 1 ,  10 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-08-26 19:00:14 +09:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_width ( 1 )  = =  10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_total_gutter_width ( )  = =  20  +  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_name ( 0 )  = =  " test_gutter " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										SIGNAL_CHECK ( " gutter_added " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_gutter_draw ( 1 ,  false ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-08-26 19:00:14 +09:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_total_gutter_width ( )  = =  10  +  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_gutter ( 100 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-08-26 19:00:14 +09:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_width ( 2 )  = =  24 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_total_gutter_width ( )  = =  34  +  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_name ( 0 )  = =  " test_gutter " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										SIGNAL_CHECK ( " gutter_added " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_gutter ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_count ( )  = =  4 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-08-26 19:00:14 +09:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_width ( 0 )  = =  24 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_total_gutter_width ( )  = =  58  +  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_name ( 1 )  = =  " test_gutter " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										SIGNAL_CHECK ( " gutter_added " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_gutter ( 2 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_name ( 1 )  = =  " test_gutter " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_count ( )  = =  3 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-08-26 19:00:14 +09:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_total_gutter_width ( )  = =  58  +  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										SIGNAL_CHECK ( " gutter_removed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_gutter ( 0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_name ( 0 )  = =  " test_gutter " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_count ( )  = =  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-08-26 19:00:14 +09:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_total_gutter_width ( )  = =  34  +  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										SIGNAL_CHECK ( " gutter_removed " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										ERR_PRINT_OFF ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_gutter ( - 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_CHECK_FALSE ( " gutter_removed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > remove_gutter ( 100 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										SIGNAL_CHECK_FALSE ( " gutter_removed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_name ( - 1 )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_name ( 100 )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										ERR_PRINT_ON ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SUBCASE ( " [TextEdit] gutter data " )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > add_gutter ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_count ( )  = =  1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-05-08 18:46:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										SIGNAL_CHECK ( " gutter_added " ,  empty_signal_args ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-04-22 17:53:58 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_gutter_name ( 0 ,  " test_gutter " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_name ( 0 )  = =  " test_gutter " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_gutter_width ( 0 ,  10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_width ( 0 )  = =  10 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_gutter_clickable ( 0 ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > is_gutter_clickable ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_gutter_overwritable ( 0 ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > is_gutter_overwritable ( 0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_gutter_type ( 0 ,  TextEdit : : GutterType : : GUTTER_TYPE_CUSTOM ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_gutter_type ( 0 )  = =  TextEdit : : GutterType : : GUTTER_TYPE_CUSTOM ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_text ( " test \n text " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										ERR_PRINT_OFF ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_gutter_metadata ( 1 ,  0 ,  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_gutter_metadata ( 0 ,  - 1 ,  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_gutter_metadata ( 0 ,  2 ,  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_gutter_metadata ( 2 ,  0 ,  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_gutter_metadata ( - 1 ,  0 ,  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_line_gutter_metadata ( 1 ,  0 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_line_gutter_metadata ( 0 ,  - 1 )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_line_gutter_metadata ( 0 ,  2 )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_line_gutter_metadata ( 2 ,  0 )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_line_gutter_metadata ( - 1 ,  0 )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_gutter_text ( 1 ,  0 ,  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_gutter_text ( 0 ,  - 1 ,  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_gutter_text ( 0 ,  2 ,  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_gutter_text ( 2 ,  0 ,  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_gutter_text ( - 1 ,  0 ,  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_line_gutter_text ( 1 ,  0 )  = =  " test " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_line_gutter_text ( 0 ,  - 1 )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_line_gutter_text ( 0 ,  2 )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_line_gutter_text ( 2 ,  0 )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_line_gutter_text ( - 1 ,  0 )  = =  " " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_gutter_item_color ( 1 ,  0 ,  Color ( 1 ,  0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_gutter_item_color ( 0 ,  - 1 ,  Color ( 1 ,  0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_gutter_item_color ( 0 ,  2 ,  Color ( 1 ,  0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_gutter_item_color ( 2 ,  0 ,  Color ( 1 ,  0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_gutter_item_color ( - 1 ,  0 ,  Color ( 1 ,  0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_line_gutter_item_color ( 1 ,  0 )  = =  Color ( 1 ,  0 ,  0 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_line_gutter_item_color ( 0 ,  - 1 )  = =  Color ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_line_gutter_item_color ( 0 ,  2 )  = =  Color ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_line_gutter_item_color ( 2 ,  0 )  = =  Color ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > get_line_gutter_item_color ( - 1 ,  0 )  = =  Color ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_gutter_clickable ( 1 ,  0 ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_gutter_clickable ( 0 ,  - 1 ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_gutter_clickable ( 0 ,  2 ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_gutter_clickable ( 2 ,  0 ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										text_edit - > set_line_gutter_clickable ( - 1 ,  0 ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > is_line_gutter_clickable ( 1 ,  0 )  = =  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > is_line_gutter_clickable ( 0 ,  - 1 )  = =  false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > is_line_gutter_clickable ( 0 ,  2 )  = =  false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > is_line_gutter_clickable ( 2 ,  0 )  = =  false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										CHECK ( text_edit - > is_line_gutter_clickable ( - 1 ,  0 )  = =  false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										ERR_PRINT_ON ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// Merging tested via CodeEdit gutters.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SIGNAL_UNWATCH ( text_edit ,  " gutter_clicked " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SIGNAL_UNWATCH ( text_edit ,  " gutter_added " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SIGNAL_UNWATCH ( text_edit ,  " gutter_removed " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									memdelete ( text_edit ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								}  // namespace TestTextEdit
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# endif  // TEST_TEXT_EDIT_H