Mercurial Hosting > editor
comparison src/luan_editor/menu.luan @ 40:38bc1cdf77c8
add align windows
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 15 May 2025 19:12:46 -0600 |
parents | 8c90e0077cfe |
children | f7e8c1f532c8 |
comparison
equal
deleted
inserted
replaced
39:2a3092ca528e | 40:38bc1cdf77c8 |
---|---|
1 local Luan = require "luan:Luan.luan" | 1 local Luan = require "luan:Luan.luan" |
2 local error = Luan.error | 2 local error = Luan.error |
3 local ipairs = Luan.ipairs or error() | |
3 local String = require "luan:String.luan" | 4 local String = require "luan:String.luan" |
4 local to_number = String.to_number or error() | 5 local to_number = String.to_number or error() |
5 local new_menu_item = require("luan:swing/Menu_item.luan").new or error() | 6 local new_menu_item = require("luan:swing/Menu_item.luan").new or error() |
6 local new_check_box_menu_item = require("luan:swing/Check_box_menu_item.luan").new or error() | 7 local new_check_box_menu_item = require("luan:swing/Check_box_menu_item.luan").new or error() |
7 local new_menu_bar = require("luan:swing/Menu_bar.luan").new or error() | 8 local new_menu_bar = require("luan:swing/Menu_bar.luan").new or error() |
9 local new_menu = Menu.new or error() | 10 local new_menu = Menu.new or error() |
10 local separator = Menu.separator or error() | 11 local separator = Menu.separator or error() |
11 local Option_pane = require "luan:swing/Option_pane.luan" | 12 local Option_pane = require "luan:swing/Option_pane.luan" |
12 local show_message_dialog = Option_pane.show_message_dialog or error() | 13 local show_message_dialog = Option_pane.show_message_dialog or error() |
13 local show_input_dialog = Option_pane.show_input_dialog or error() | 14 local show_input_dialog = Option_pane.show_input_dialog or error() |
15 local Frame = require "luan:swing/Frame.luan" | |
16 local get_all_frames = Frame.get_all_frames or error() | |
14 local Spell_checker = require "classpath:luan_editor/Spell_checker.luan" | 17 local Spell_checker = require "classpath:luan_editor/Spell_checker.luan" |
15 local spell_check = Spell_checker.spell_check or error() | 18 local spell_check = Spell_checker.spell_check or error() |
16 | 19 |
17 | 20 |
18 local function action_listener(fn) | 21 local function action_listener(fn) |
228 menu_items = { | 231 menu_items = { |
229 new_menu_item{ | 232 new_menu_item{ |
230 text = "Duplicate Window" | 233 text = "Duplicate Window" |
231 action_listener = action_listener(window.duplicate) | 234 action_listener = action_listener(window.duplicate) |
232 } | 235 } |
236 new_menu_item{ | |
237 text = "Align Windows" | |
238 action_listener = function(_) | |
239 local this_frame = window.frame | |
240 local location = this_frame.location | |
241 local size = this_frame.size | |
242 for _, frame in ipairs(get_all_frames()) do | |
243 frame.location = location | |
244 frame.size = size | |
245 end | |
246 end | |
247 } | |
233 } | 248 } |
234 } | 249 } |
235 } | 250 } |
236 } | 251 } |
237 window.frame.set_menu_bar(menu_bar) | 252 window.frame.set_menu_bar(menu_bar) |