Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ae3ec3fc37 
								
							 
						 
						
							
							
								
								LibGUI: Give GTextEditor a context menu.  
							
							... 
							
							
							
							Now GTextEditor manages its own editing actions (cut/copy/paste/etc) and
will show a context menu containing them when requested.
Apps that want to put a GTextEditor's actions in its menu can get to the
actions via public getters. :^) 
							
						 
						
							2019-04-18 12:28:29 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								32e5c8c689 
								
							 
						 
						
							
							
								
								GTextEditor: Add on_selection_changed callback.  
							
							... 
							
							
							
							This is probably a bit eager and won't coalesce all updates or even
ignore no-op changes to the selection. 
							
						 
						
							2019-04-12 02:52:34 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								c71ece77fa 
								
							 
						 
						
							
							
								
								VisualBuilder: Tweak grid size and add an (empty) toolbox window.  
							
							
							
						 
						
							2019-04-11 04:01:17 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								b8062f69d8 
								
							 
						 
						
							
							
								
								LibCore: Add CEvent and make LibGUI/GEvent inherit from it.  
							
							
							
						 
						
							2019-04-10 16:56:55 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								313ac51832 
								
							 
						 
						
							
							
								
								LibGUI: Turn GTextBox into a wrapper around a single-line GTextEditor.  
							
							
							
						 
						
							2019-04-10 03:08:29 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								151b7149e6 
								
							 
						 
						
							
							
								
								GTextEditor: Add GTextEditor::on_change callback for when content changes.  
							
							
							
						 
						
							2019-04-09 16:20:36 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								dcf6726487 
								
							 
						 
						
							
							
								
								WindowServer: Add support for per-window override cursors.  
							
							... 
							
							
							
							Use this to implement automatic switching to an I-beam cursor when hovering
over a GTextEditor. :^) 
							
						 
						
							2019-03-31 23:52:02 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								838a06096a 
								
							 
						 
						
							
							
								
								GTextEditor: Shift+Delete should delete the current line.  
							
							
							
						 
						
							2019-03-25 13:14:02 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ed2303e2d8 
								
							 
						 
						
							
							
								
								TextEditor: The delete key should work even when there's no selection.  
							
							
							
						 
						
							2019-03-20 23:11:00 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								f0915641c5 
								
							 
						 
						
							
							
								
								TextEditor: Add "delete" action.  
							
							
							
						 
						
							2019-03-20 18:16:04 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a6538feed1 
								
							 
						 
						
							
							
								
								LibGUI: Add GInputBox for getting a string from a modal dialog.  
							
							... 
							
							
							
							Use this to implement some of the toolbar actions in IRCClient. :^) 
							
						 
						
							2019-03-19 01:41:00 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ec8bffb06d 
								
							 
						 
						
							
							
								
								LibGUI: Let GTextEditor deal with its horizontal padding internally.  
							
							... 
							
							
							
							I originally wanted to have the padding concept in GScrollableWidget
but it's really finicky with the ruler and everything. 
							
						 
						
							2019-03-16 23:16:37 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								3854e752cb 
								
							 
						 
						
							
							
								
								LibGUI: Make GTextEditor inherit from GScrollableWidget.  
							
							... 
							
							
							
							This is quite nice, now we can share a ton of logic. :^) 
							
						 
						
							2019-03-16 16:54:51 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								eb610b309e 
								
							 
						 
						
							
							
								
								LibGUI: Make class_name() public so you can always call it.  
							
							... 
							
							
							
							I found myself having to cast to GWidget* all the time when writing some
generic debugging code that just wanted to dump widget info. 
							
						 
						
							2019-03-16 12:57:04 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								7e3673f710 
								
							 
						 
						
							
							
								
								GTextEditor: Disable the ruler in single-line mode.  
							
							... 
							
							
							
							Also make it possible to hide the ruler in multi-line mode, if you should
want to do that. :^) 
							
						 
						
							2019-03-15 17:54:05 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								1fc283ed7d 
								
							 
						 
						
							
							
								
								IRCClient+LibGUI: Add an input box so we can send messages to channels.  
							
							... 
							
							
							
							Implement this using a GTextEditor with a special single-line mode.
This new mode needs some polishing, but it's already very useful. 
							
						 
						
							2019-03-15 17:37:13 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								8017c1e17c 
								
							 
						 
						
							
							
								
								GTextEditor: Let the Tab key insert up to 4 spaces.  
							
							
							
						 
						
							2019-03-10 11:08:36 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								5a28392660 
								
							 
						 
						
							
							
								
								GTextEditor: Use a subwidget for the scrollbar corner and tighten clipping.  
							
							
							
						 
						
							2019-03-08 18:58:40 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								032549d7bf 
								
							 
						 
						
							
							
								
								GTextEditor: Refactor selection into a GTextRange class.  
							
							... 
							
							
							
							This is a bit more expressive than "selection start + current cursor". 
							
						 
						
							2019-03-08 18:28:24 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								f40d11f06d 
								
							 
						 
						
							
							
								
								LibGUI+WindowServer: Implement drag-to-select behavior in GTextEditor.  
							
							... 
							
							
							
							To make this feel right, I needed to start passing keyboard modifiers along
with mouse events. That allows shift-clicking to extend the selection. :^) 
							
						 
						
							2019-03-08 17:53:02 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								c4937f01d8 
								
							 
						 
						
							
							
								
								GTextEditor: Simplify delete_selection().  
							
							
							
						 
						
							2019-03-08 15:55:58 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								48d48679b0 
								
							 
						 
						
							
							
								
								GTextEditor: Work on cut/copy/paste operations.  
							
							
							
						 
						
							2019-03-08 14:08:15 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								6576ac8332 
								
							 
						 
						
							
							
								
								GTextEditor: Add selected_text() function.  
							
							... 
							
							
							
							I don't have a clipboard to actually put the copied selection onto yet,
so just print the selected text to stdout so we can see what it is. 
							
						 
						
							2019-03-08 01:59:59 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								b5521e1b0d 
								
							 
						 
						
							
							
								
								GTextEditor: Add basic selection support.  
							
							
							
						 
						
							2019-03-08 00:49:45 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								9867fe1025 
								
							 
						 
						
							
							
								
								GTextEditor: Add a ruler column that always shows the line numbers.  
							
							
							
						 
						
							2019-03-07 20:05:05 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								187d7cb400 
								
							 
						 
						
							
							
								
								GTextEditor: Add write_to_file(String path) :^)  
							
							
							
						 
						
							2019-03-07 17:06:11 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								43d56b6f3a 
								
							 
						 
						
							
							
								
								GTextEditor: Support splitting lines at the cursor with the Return key.  
							
							
							
						 
						
							2019-03-07 16:49:21 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								38662f884d 
								
							 
						 
						
							
							
								
								GTextEditor: Merge with previous line if backspacing at column 0.  
							
							
							
						 
						
							2019-03-07 16:15:25 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								6094f592a9 
								
							 
						 
						
							
							
								
								GTextEditor: More work on basic line editing. Insert/remove characters.  
							
							
							
						 
						
							2019-03-07 16:04:21 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								8425ea971a 
								
							 
						 
						
							
							
								
								GTextEditor: Start working on editing, starting with inserting newlines.  
							
							
							
						 
						
							2019-03-07 15:52:11 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								b4df33e453 
								
							 
						 
						
							
							
								
								GTextEditor: Only paint lines inside the dirty rect.  
							
							... 
							
							
							
							This dramatically improves performance in large documents. :^) 
							
						 
						
							2019-03-07 15:03:38 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ce35cddb1b 
								
							 
						 
						
							
							
								
								GTextEditor: Let's use a Vector for the line backing store.  
							
							... 
							
							
							
							I'm eventually gonna want to replace this with something more clever,
like a automagically splicing vector or something, but for now, at least
we move away from immutable Strings. 
							
						 
						
							2019-03-07 14:35:32 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a21ecd440a 
								
							 
						 
						
							
							
								
								GTextEditor: Allow moving the cursor by clicking.  
							
							
							
						 
						
							2019-03-07 14:02:10 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								9997992907 
								
							 
						 
						
							
							
								
								GTextEditor: Make the cursor invalidation work with the padding().  
							
							
							
						 
						
							2019-03-07 13:54:02 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								6a6bcc5daf 
								
							 
						 
						
							
							
								
								GTextEditor: Add Home/End and Ctrl+Home/Ctrl+End navigation shortcuts.  
							
							... 
							
							
							
							For start/end of line and start/end of document respectively. 
							
						 
						
							2019-03-07 13:21:51 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								1ac71d1fb1 
								
							 
						 
						
							
							
								
								GTextEditor: Improvements to cursor rendering.  
							
							... 
							
							
							
							The view now scrolls along with you as you move the cursor around. 
							
						 
						
							2019-03-07 13:13:25 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								6db132069f 
								
							 
						 
						
							
							
								
								GTextEditor: Draw the cursor line in a slightly darker shade.  
							
							
							
						 
						
							2019-03-07 02:24:46 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								1f92636c6d 
								
							 
						 
						
							
							
								
								GTextEditor: Make the cursor blink while the editor is focused.  
							
							
							
						 
						
							2019-03-07 01:05:35 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ca65ca2f2d 
								
							 
						 
						
							
							
								
								TextEditor: Show the current cursor position in the statusbar.  
							
							
							
						 
						
							2019-03-07 00:46:29 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								9158de6c41 
								
							 
						 
						
							
							
								
								Begin working on a graphical TextEditor.  
							
							... 
							
							
							
							It's gonna be a wrapper around a new GTextEditor widget so I can easily
reuse the functionality anywhere I need it. :^) 
							
						 
						
							2019-03-07 00:31:06 +01:00