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) |
