Mercurial Hosting > luan
view src/luan/modules/swing/Menu_item.luan @ 1944:bb12d502b72e default tip
minor
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 20 May 2025 11:18:26 -0600 |
parents | 3990486911d9 |
children |
line wrap: on
line source
local Luan = require "luan:Luan.luan" local error = Luan.error local set_metatable = Luan.set_metatable or error() local Utils = require "luan:swing/Utils.luan" local fail = Utils.fail or error() local make_metatable = Utils.make_metatable or error() local remove = Utils.remove or error() local check_empty = Utils.check_empty or error() local Abstract_button = require "luan:swing/Abstract_button.luan" local super__index = Abstract_button.__index or error() local super__new_index = Abstract_button.__new_index or error() local super_construct = Abstract_button.construct or error() require "java" local JMenuItem = require "java:javax.swing.JMenuItem" local KeyStroke = require "java:javax.swing.KeyStroke" local KeyEvent = require "java:java.awt.event.KeyEvent" local InputEvent = require "java:java.awt.event.InputEvent" local Menu_item = {} function Menu_item.__index(menu_item,key) local rtn = super__index(menu_item,key) if rtn ~= fail then return rtn end if key == "accelerator" then return menu_item.java.getAccelerator().toString() end return fail end function Menu_item.__new_index(menu_item,key,value) local rtn = super__new_index(menu_item,key,value) if rtn ~= fail then return end if key == "accelerator" then menu_item.java.setAccelerator(KeyStroke.getKeyStroke(value)) --menu_item.java.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.META_DOWN_MASK)) return end return fail end local mt = make_metatable(Menu_item) local function construct(menu_item,props) super_construct(menu_item,props) local jmenu_item = menu_item.java local accelerator = remove(props,"accelerator") if accelerator~=nil then jmenu_item.setAccelerator(KeyStroke.getKeyStroke(accelerator)) end return menu_item end Menu_item.construct = construct function Menu_item.new(props) local jmenu_item = JMenuItem.new() local menu_item = { java = jmenu_item } menu_item = construct(menu_item,props) check_empty(props) set_metatable(menu_item,mt) return menu_item end return Menu_item