Mercurial Hosting > editor
comparison src/luan_editor/window.luan @ 42:b76918e3e77c
minor
| author | Franklin Schmidt <fschmidt@gmail.com> |
|---|---|
| date | Sun, 18 May 2025 14:37:06 -0600 |
| parents | f7e8c1f532c8 |
| children | 48c35fdccb31 |
comparison
equal
deleted
inserted
replaced
| 41:f7e8c1f532c8 | 42:b76918e3e77c |
|---|---|
| 62 config_file.write_text( stringify(config).."\n" ) | 62 config_file.write_text( stringify(config).."\n" ) |
| 63 end | 63 end |
| 64 | 64 |
| 65 local list_view = new_panel{ | 65 local list_view = new_panel{ |
| 66 --layout = new_mig_layout("insets 0,wrap,fill") | 66 --layout = new_mig_layout("insets 0,wrap,fill") |
| 67 layout = new_mig_layout("wrap","[grow]") | 67 layout = new_mig_layout("wrap,debug","[grow]") |
| 68 } | 68 } |
| 69 local list_scroll_pane = new_scroll_pane{ | 69 local list_scroll_pane = new_scroll_pane{ |
| 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 } | 75 } |
| 76 local list_group = new_button_group() | 76 local list_group = new_button_group() |
| 77 | |
| 77 local function new_list_window_item(text) | 78 local function new_list_window_item(text) |
| 78 local rb = new_radio_button{ | 79 local rb = new_radio_button{ |
| 79 constraints = "grow" | 80 constraints = "grow" |
| 80 text = text | 81 text = text |
| 81 horizontal_text_position = "left" | 82 horizontal_text_position = "left" |
| 84 list_view.add(rb) | 85 list_view.add(rb) |
| 85 list_group.add(rb) | 86 list_group.add(rb) |
| 86 list_scroll_pane.scroll_to_right() | 87 list_scroll_pane.scroll_to_right() |
| 87 list_window.pack() | 88 list_window.pack() |
| 88 return rb | 89 return rb |
| 90 end | |
| 91 local function remove_list_window_item(list_window_item) | |
| 92 list_view.remove(list_window_item) | |
| 93 list_group.remove(list_window_item) | |
| 94 list_window.pack() | |
| 95 list_window.repaint() | |
| 89 end | 96 end |
| 90 | 97 |
| 91 local function new_window(file,document) | 98 local function new_window(file,document) |
| 92 local window = {} | 99 local window = {} |
| 93 if file == nil or not file.exists() then | 100 if file == nil or not file.exists() then |
| 157 frame.add_close_listener(function() | 164 frame.add_close_listener(function() |
| 158 n_windows = n_windows - 1 | 165 n_windows = n_windows - 1 |
| 159 if n_windows == 0 then | 166 if n_windows == 0 then |
| 160 Luan.exit() | 167 Luan.exit() |
| 161 end | 168 end |
| 169 remove_list_window_item(window.list_window_item) | |
| 162 end) | 170 end) |
| 163 frame.add_resize_stopped_listener( 200, function() | 171 frame.add_resize_stopped_listener( 200, function() |
| 164 --logger.info(stringify(frame.size)) | 172 --logger.info(stringify(frame.size)) |
| 165 config.size = frame.size | 173 config.size = frame.size |
| 166 save_config() | 174 save_config() |
| 174 local s = title | 182 local s = title |
| 175 if not text_area.document.is_unedited() then | 183 if not text_area.document.is_unedited() then |
| 176 s = s.." *" | 184 s = s.." *" |
| 177 end | 185 end |
| 178 frame.title = s | 186 frame.title = s |
| 179 new_list_window_item(title) | |
| 180 end | 187 end |
| 181 set_title() | 188 set_title() |
| 189 window.list_window_item = new_list_window_item(title) | |
| 182 window.set_title = set_title -- dont gc | 190 window.set_title = set_title -- dont gc |
| 183 text_area.document.add_undo_listener(set_title) | 191 text_area.document.add_undo_listener(set_title) |
| 184 window.new = new_window | 192 window.new = new_window |
| 185 function window.open() | 193 function window.open() |
| 186 local new_file = choose_file{ | 194 local new_file = choose_file{ |
