Files
2026-01-29 11:29:56 +08:00

135 lines
4.2 KiB
Java

/* Copyright 2011 Martin Koegler <mkoegler@auto.tuwien.ac.at>
* Copyright 2011 Pierre Ossman <ossman@cendio.se> for Cendio AB
* Copyright 2012-2017 Brian P. Hinz
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this software; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
package com.tigervnc.vncviewer;
import java.awt.event.KeyEvent;
import com.tigervnc.rfb.*;
import static java.awt.event.KeyEvent.*;
import static com.tigervnc.rfb.Keysymdef.*;
public class MenuKey
{
static class MenuKeySymbol {
public MenuKeySymbol(String name_, int javacode_,
int keycode_, int keysym_) {
name = name_;
javacode = javacode_;
keycode = keycode_;
keysym = keysym_;
}
String name;
int javacode;
int keycode;
int keysym;
}
private static final MenuKeySymbol[] menuSymbols = {
new MenuKeySymbol("F1", VK_F1, 0x3b, XK_F1),
new MenuKeySymbol("F2", VK_F2, 0x3c, XK_F2),
new MenuKeySymbol("F3", VK_F3, 0x3d, XK_F3),
new MenuKeySymbol("F4", VK_F4, 0x3e, XK_F4),
new MenuKeySymbol("F5", VK_F5, 0x3f, XK_F5),
new MenuKeySymbol("F6", VK_F6, 0x40, XK_F6),
new MenuKeySymbol("F7", VK_F7, 0x41, XK_F7),
new MenuKeySymbol("F8", VK_F8, 0x42, XK_F8),
new MenuKeySymbol("F9", VK_F9, 0x43, XK_F9),
new MenuKeySymbol("F10", VK_F10, 0x44, XK_F10),
new MenuKeySymbol("F11", VK_F11, 0x57, XK_F11),
new MenuKeySymbol("F12", VK_F12, 0x58, XK_F12),
new MenuKeySymbol("Pause", VK_PAUSE, 0xc6, XK_Pause),
new MenuKeySymbol("Scroll_Lock", VK_SCROLL_LOCK,
0x46, XK_Scroll_Lock),
new MenuKeySymbol("Escape", VK_ESCAPE, 0x01, XK_Escape),
new MenuKeySymbol("Insert", VK_INSERT, 0xd2, XK_Insert),
new MenuKeySymbol("Delete", VK_DELETE, 0xd3, XK_Delete),
new MenuKeySymbol("Home", VK_HOME, 0xc7, XK_Home),
new MenuKeySymbol("Page_Up", VK_PAGE_UP, 0xc9, XK_Page_Up),
new MenuKeySymbol("Page_Down", VK_PAGE_DOWN, 0xd1, XK_Page_Down)
};
static int getMenuKeySymbolCount() {
return menuSymbols.length;
}
public static MenuKeySymbol[] getMenuKeySymbols() {
return menuSymbols;
}
public static String getKeyText(MenuKeySymbol sym) {
if (VncViewer.os.startsWith("mac os x"))
return sym.name.replace("_", " ");
else
return KeyEvent.getKeyText(sym.javacode);
}
public static String getMenuKeyValueStr() {
String s = "";
for (int i = 0; i < getMenuKeySymbolCount(); i++) {
s += menuSymbols[i].name;
if (i < getMenuKeySymbolCount() - 1)
s += ", ";
}
return s;
}
static int getMenuKeyJavaCode() {
int menuKeyCode = VK_F8;
@SuppressWarnings({"static"})
String menuKeyStr =
Configuration.global().getParam("menuKey").getValueStr();
for(int i = 0; i < getMenuKeySymbolCount(); i++)
if (menuSymbols[i].name.equals(menuKeyStr))
menuKeyCode = menuSymbols[i].javacode;
return menuKeyCode;
}
static int getMenuKeyCode() {
int menuKeyCode = 0x42;
@SuppressWarnings({"static"})
String menuKeyStr =
Configuration.global().getParam("menuKey").getValueStr();
for(int i = 0; i < getMenuKeySymbolCount(); i++)
if (menuSymbols[i].name.equals(menuKeyStr))
menuKeyCode = menuSymbols[i].keycode;
return menuKeyCode;
}
static int getMenuKeySym() {
int menuKeySym = XK_F8;
@SuppressWarnings({"static"})
String menuKeyStr =
Configuration.global().getParam("menuKey").getValueStr();
for(int i = 0; i < getMenuKeySymbolCount(); i++)
if (menuSymbols[i].name.equals(menuKeyStr))
menuKeySym = menuSymbols[i].keysym;
return menuKeySym;
}
}