changeset 24:da93a58e24aa

work
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 09 Apr 2025 11:43:31 -0600
parents e4af9e024d63
children ce3d1dc406a8
files editor.luan
diffstat 1 files changed, 29 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
diff -r e4af9e024d63 -r da93a58e24aa editor.luan
--- a/editor.luan	Wed Apr 09 08:58:42 2025 -0600
+++ b/editor.luan	Wed Apr 09 11:43:31 2025 -0600
@@ -228,17 +228,17 @@
 function new_window(file)
 	local window = {}
 	window.has_file = file~=nil and file.is_file()
-	local frame = new_frame()
-	window.frame = frame
+	local text_area = new_text_area{
+		rows = 10
+		columns = 20
+		wrap_style_word = true
+		line_wrap = true
+		tab_size = 4
+		font = { family="Monospaced", size=13 }
+		border = create_empty_border(0,4,0,4)
+	}
+	window.text_area = text_area
 	local title = file and file.canonical().to_string() or "new"
-	frame.add_close_listener(function()
-		n_windows = n_windows - 1
-		if n_windows == 0 then
-			Luan.exit()
-		end
-	end)
-	local text_area = new_text_area{}
-	window.text_area = text_area
 	if file ~= nil then
 		local document = documents[title]
 		if document == nil then
@@ -251,6 +251,24 @@
 			text_area.document.clear_unedited()
 		end
 	end
+	text_area.set_selection(0)
+	local frame = new_frame{
+		content_pane = new_scroll_pane{
+			view = text_area
+			row_header_view = new_text_area_line_numbers{
+				text_area = text_area
+				foreground_color = int_to_color(0x888888)
+				border = create_empty_border(0,8,0,8)
+			}
+		}
+	}
+	window.frame = frame
+	frame.add_close_listener(function()
+		n_windows = n_windows - 1
+		if n_windows == 0 then
+			Luan.exit()
+		end
+	end)
 	local function set_title()
 		local s = title
 		if not text_area.document.is_unedited() then
@@ -259,26 +277,8 @@
 		frame.title = s
 	end
 	set_title()
-	text_area.dont_gc(set_title)
+	window.set_title = set_title  -- dont gc
 	text_area.document.add_undo_listener(set_title)
-	text_area.rows = 10
-	text_area.columns = 20
-	text_area.wrap_style_word = true
-	text_area.line_wrap = true
-	text_area.tab_size = 4
-	text_area.set_font{ family="Monospaced", size=13 }
-	text_area.set_selection(0)
-	--print(text_area.line_count)
-	local scroll_pane = new_scroll_pane{
-		view = text_area
-	}
-	local line_numbers = new_text_area_line_numbers{
-		text_area = text_area
-	}
-	line_numbers.foreground_color = int_to_color(0x888888)
-	line_numbers.border = create_empty_border(0,8,0,8)
-	scroll_pane.set_row_header_view(line_numbers)
-	frame.add(scroll_pane)
 	function window.open()
 		local file_chooser = frame.file_chooser_load()
 		if file ~= nil then