Mercurial Hosting > editor
comparison src/luan_editor/window.luan @ 43:48c35fdccb31
list window work
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 18 May 2025 18:47:32 -0600 |
parents | b76918e3e77c |
children | 779ea6d9d8fb |
comparison
equal
deleted
inserted
replaced
42:b76918e3e77c | 43:48c35fdccb31 |
---|---|
70 view = list_view | 70 view = list_view |
71 } | 71 } |
72 local list_window = new_dialog{ | 72 local list_window = new_dialog{ |
73 preferred_size = { width=200, height=400 } | 73 preferred_size = { width=200, height=400 } |
74 content_pane = list_scroll_pane | 74 content_pane = list_scroll_pane |
75 focusable_window_state = false | |
75 } | 76 } |
76 local list_group = new_button_group() | 77 local list_group = new_button_group() |
77 | 78 |
78 local function new_list_window_item(text) | 79 local function new_list_window_item(text) |
79 local rb = new_radio_button{ | 80 local rb = new_radio_button{ |
166 if n_windows == 0 then | 167 if n_windows == 0 then |
167 Luan.exit() | 168 Luan.exit() |
168 end | 169 end |
169 remove_list_window_item(window.list_window_item) | 170 remove_list_window_item(window.list_window_item) |
170 end) | 171 end) |
172 frame.add_window_focus_listener(function() | |
173 window.list_window_item.is_selected = true | |
174 end) | |
171 frame.add_resize_stopped_listener( 200, function() | 175 frame.add_resize_stopped_listener( 200, function() |
172 --logger.info(stringify(frame.size)) | 176 --logger.info(stringify(frame.size)) |
173 config.size = frame.size | 177 config.size = frame.size |
174 save_config() | 178 save_config() |
175 end) | 179 end) |
184 s = s.." *" | 188 s = s.." *" |
185 end | 189 end |
186 frame.title = s | 190 frame.title = s |
187 end | 191 end |
188 set_title() | 192 set_title() |
189 window.list_window_item = new_list_window_item(title) | 193 local list_window_item = new_list_window_item(title) |
194 list_window_item.add_action_listener(function(_) | |
195 text_area.request_focus() | |
196 end) | |
197 window.list_window_item = list_window_item | |
190 window.set_title = set_title -- dont gc | 198 window.set_title = set_title -- dont gc |
191 text_area.document.add_undo_listener(set_title) | 199 text_area.document.add_undo_listener(set_title) |
192 window.new = new_window | 200 window.new = new_window |
193 function window.open() | 201 function window.open() |
194 local new_file = choose_file{ | 202 local new_file = choose_file{ |