Mercurial > cgi-bin > hgweb.cgi > ClipMan
diff src/name/blackcap/clipman/Menus.kt @ 47:19d9da731c43
Recoded; cleaned up root namespace, removed race conditions.
author | David Barts <n5jrn@me.com> |
---|---|
date | Sun, 12 Apr 2020 14:31:06 -0700 |
parents | 33fbe3a78d84 |
children | bb80148e2cb3 |
line wrap: on
line diff
--- a/src/name/blackcap/clipman/Menus.kt Mon Feb 10 16:40:09 2020 -0700 +++ b/src/name/blackcap/clipman/Menus.kt Sun Apr 12 14:31:06 2020 -0700 @@ -18,20 +18,20 @@ override fun actionPerformed(e: ActionEvent) { when (e.actionCommand) { "File.Quit" -> System.exit(0) - "File.Preferences" -> settingsDialog.setVisible(true) + "File.Preferences" -> Application.settingsDialog.setVisible(true) "Edit.Clone" -> onlyIfSelected { PasteboardItem.write(it.contents) } - "Edit.Coerce" -> onlyIfSelected { coerceDialog.setVisible(true) } - "Edit.Find" -> searchDialog.setVisible(true) - "Edit.FindAgain" -> searchDialog.find() + "Edit.Coerce" -> onlyIfSelected { Application.coerceDialog.setVisible(true) } + "Edit.Find" -> Application.searchDialog.setVisible(true) + "Edit.FindAgain" -> Application.searchDialog.find() "Help.About" -> showAboutDialog() else -> throw RuntimeException("unexpected actionCommand!") } } private fun onlyIfSelected(block: (QueueItem) -> Unit) { - val selected = queue.v.getSelected() + val selected = Application.queue.getSelected() if (selected == null) { - JOptionPane.showMessageDialog(frame.v, + JOptionPane.showMessageDialog(Application.frame, "No item selected.", "Error", JOptionPane.ERROR_MESSAGE) @@ -41,8 +41,6 @@ } } -val menuItemListener = MenuItemListener() - /** * Track menu items that require something to be selected in order * to work, and allow them to be enabled and disabled en masse. @@ -66,9 +64,6 @@ fun disable() = setEnabled(false) } -val anyRequired = SelectionRequired() -val styledRequired = SelectionRequired() - /** * Our menu bar. What we display depends somewhat on the system type, as * the Mac gives us a gratuitous menu bar entry for handling some stuff. @@ -79,37 +74,37 @@ add(JMenu("File").apply { add(JMenuItem("Quit").apply { actionCommand = "File.Quit" - addActionListener(menuItemListener) + addActionListener(Application.menuItemListener) makeShortcut(KeyEvent.VK_Q) }) add(JMenuItem("Preferences…").apply { actionCommand = "File.Preferences" - addActionListener(menuItemListener) + addActionListener(Application.menuItemListener) makeShortcut(KeyEvent.VK_COMMA) }) }) } add(JMenu("Edit").apply { - add(anyRequired.add(JMenuItem("Clone").apply { + add(Application.anyRequired.add(JMenuItem("Clone").apply { setEnabled(false) actionCommand = "Edit.Clone" - addActionListener(menuItemListener) + addActionListener(Application.menuItemListener) makeShortcut(KeyEvent.VK_C) })) - add(styledRequired.add(JMenuItem("Coerce…").apply { + add(Application.styledRequired.add(JMenuItem("Coerce…").apply { setEnabled(false) actionCommand = "Edit.Coerce" - addActionListener(menuItemListener) + addActionListener(Application.menuItemListener) makeShortcut(KeyEvent.VK_K) })) add(JMenuItem("Find…").apply { actionCommand = "Edit.Find" - addActionListener(menuItemListener) + addActionListener(Application.menuItemListener) makeShortcut(KeyEvent.VK_F) }) add(JMenuItem("Find Again").apply { actionCommand = "Edit.FindAgain" - addActionListener(menuItemListener) + addActionListener(Application.menuItemListener) makeShortcut(KeyEvent.VK_G) }) }) @@ -117,7 +112,7 @@ add(JMenu("Help").apply { add(JMenuItem("About ClipMan…").apply { actionCommand = "Help.About" - addActionListener(menuItemListener) + addActionListener(Application.menuItemListener) }) }) } @@ -134,32 +129,28 @@ } } -val menuBar = MyMenuBar() - /** * The popup menu we display when the user requests so atop a clipboard * item. */ class MyPopupMenu: JPopupMenu() { init { - add(anyRequired.add(JMenuItem("Clone").apply { + add(Application.anyRequired.add(JMenuItem("Clone").apply { actionCommand = "Edit.Clone" - addActionListener(menuItemListener) + addActionListener(Application.menuItemListener) })) - add(styledRequired.add(JMenuItem("Coerce…").apply { + add(Application.styledRequired.add(JMenuItem("Coerce…").apply { actionCommand = "Edit.Coerce" - addActionListener(menuItemListener) + addActionListener(Application.menuItemListener) })) } } -val popupMenu = MyPopupMenu() - /** * Show an About dialog. */ fun showAboutDialog() { - JOptionPane.showMessageDialog(frame.v, + JOptionPane.showMessageDialog(Application.frame, "ClipMan, a clipboard manager.\n" + "© MMXX, David W. Barts", "About ClipMan",