Mercurial Hosting > editor
comparison editor.luan @ 19:ba59fdcf41f3
work
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 07 Apr 2025 22:34:55 -0600 |
parents | fd6d0162e924 |
children | 1bfd4a2d6d4e |
comparison
equal
deleted
inserted
replaced
18:fd6d0162e924 | 19:ba59fdcf41f3 |
---|---|
45 local menu_bar = new_menu_bar() | 45 local menu_bar = new_menu_bar() |
46 do | 46 do |
47 local file_menu = new_menu() | 47 local file_menu = new_menu() |
48 file_menu.text = "File" | 48 file_menu.text = "File" |
49 do | 49 do |
50 local new_file = new_menu_item() | 50 local new_file = new_menu_item{ |
51 new_file.text = "New File" | 51 text = "New File" |
52 new_file.accelerator = "meta N" | 52 accelerator = "meta N" |
53 new_file.add_action_listener(new_window) | 53 action_listener = new_window |
54 } | |
54 file_menu.add(new_file) | 55 file_menu.add(new_file) |
55 end | 56 end |
56 do | 57 do |
57 local open = new_menu_item() | 58 local open = new_menu_item{ |
58 open.text = "Open..." | 59 text = "Open..." |
59 open.accelerator = "meta O" | 60 accelerator = "meta O" |
60 open.add_action_listener(window.open) | 61 action_listener = window.open |
62 } | |
61 file_menu.add(open) | 63 file_menu.add(open) |
62 end | 64 end |
63 local revert | 65 local revert |
64 do | 66 do |
65 local save = new_menu_item() | 67 local save = new_menu_item{ |
66 save.text = "Save" | 68 text = "Save" |
67 save.accelerator = "meta S" | 69 accelerator = "meta S" |
68 save.add_action_listener(function() | 70 action_listener = function() |
69 if window.save() then | 71 if window.save() then |
70 revert.set_enabled(true) | 72 revert.set_enabled(true) |
73 end | |
71 end | 74 end |
72 end) | 75 } |
73 file_menu.add(save) | 76 file_menu.add(save) |
74 end | 77 end |
75 do | 78 do |
76 revert = new_menu_item() | 79 revert = new_menu_item{ |
77 revert.text = "Revert" | 80 text = "Revert" |
78 revert.set_enabled(window.has_file) | 81 enabled = window.has_file |
79 revert.add_action_listener(window.revert) | 82 action_listener = window.revert |
83 } | |
80 file_menu.add(revert) | 84 file_menu.add(revert) |
81 end | 85 end |
82 menu_bar.add(file_menu) | 86 menu_bar.add(file_menu) |
83 end | 87 end |
84 do | 88 do |
85 local edit_menu = new_menu() | 89 local edit_menu = new_menu() |
86 edit_menu.text = "Edit" | 90 edit_menu.text = "Edit" |
87 local document = window.text_area.document | 91 local document = window.text_area.document |
88 local undo, redo | 92 local undo, redo |
89 do | 93 do |
90 undo = new_menu_item() | 94 undo = new_menu_item{ |
91 undo.text = "Undo" | 95 text = "Undo" |
92 undo.accelerator = "meta Z" | 96 accelerator = "meta Z" |
93 undo.add_action_listener(document.undo) | 97 action_listener = document.undo |
98 } | |
94 edit_menu.add(undo) | 99 edit_menu.add(undo) |
95 end | 100 end |
96 do | 101 do |
97 redo = new_menu_item() | 102 redo = new_menu_item{ |
98 redo.text = "Redo" | 103 text = "Redo" |
99 redo.accelerator = "meta shift Z" | 104 accelerator = "meta shift Z" |
100 redo.add_action_listener(document.redo) | 105 action_listener = document.redo |
106 } | |
101 edit_menu.add(redo) | 107 edit_menu.add(redo) |
102 end | 108 end |
103 local function update_undo_redo() | 109 local function update_undo_redo() |
104 undo.set_enabled(document.can_undo()) | 110 undo.set_enabled(document.can_undo()) |
105 redo.set_enabled(document.can_redo()) | 111 redo.set_enabled(document.can_redo()) |
107 edit_menu.dont_gc(update_undo_redo) | 113 edit_menu.dont_gc(update_undo_redo) |
108 update_undo_redo() | 114 update_undo_redo() |
109 document.add_undo_listener(update_undo_redo) | 115 document.add_undo_listener(update_undo_redo) |
110 edit_menu.add_separator() | 116 edit_menu.add_separator() |
111 do | 117 do |
112 local cut = new_menu_item() | 118 local cut = new_menu_item{ |
113 cut.text = "Cut" | 119 text = "Cut" |
114 cut.accelerator = "meta X" | 120 accelerator = "meta X" |
115 cut.add_action_listener(window.text_area.cut) | 121 action_listener = window.text_area.cut |
122 } | |
116 edit_menu.add(cut) | 123 edit_menu.add(cut) |
117 end | 124 end |
118 do | 125 do |
119 local copy = new_menu_item() | 126 local copy = new_menu_item{ |
120 copy.text = "Copy" | 127 text = "Copy" |
121 copy.accelerator = "meta C" | 128 accelerator = "meta C" |
122 copy.add_action_listener(window.text_area.copy) | 129 action_listener = window.text_area.copy |
130 } | |
123 edit_menu.add(copy) | 131 edit_menu.add(copy) |
124 end | 132 end |
125 do | 133 do |
126 local paste = new_menu_item() | 134 local paste = new_menu_item{ |
127 paste.text = "Paste" | 135 text = "Paste" |
128 paste.accelerator = "meta V" | 136 accelerator = "meta V" |
129 paste.add_action_listener(window.text_area.paste) | 137 action_listener = window.text_area.paste |
138 } | |
130 edit_menu.add(paste) | 139 edit_menu.add(paste) |
131 end | 140 end |
132 edit_menu.add_separator() | 141 edit_menu.add_separator() |
133 do | 142 do |
134 local indent = new_menu_item() | 143 local indent = new_menu_item() |