private JPanel toolbar() {
		JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEADING, 0, 0));
		alt = new JRadioButton("Alt");
		alt.setMnemonic(KeyEvent.VK_A);
		ctlrShiftU = new JRadioButton("Ctrl-Shift-U");
		ctlrShiftU.setMnemonic(KeyEvent.VK_C);
		ButtonGroup group = new ButtonGroup();
		group.add(alt);
		group.add(ctlrShiftU);
		
		
		switch(unicodeTypingPrefix) {
			case alt: 
				alt.setSelected(true);
				break;
			case ctlrShiftU: 
				ctlrShiftU.setSelected(true);
				break;
			default:
				throw new IllegalArgumentException(String.valueOf(unicodeTypingPrefix));
		}
		
		//TODO disable unicode input for unsupported platform
		
		delay = new JSpinner(new SpinnerNumberModel(typingDelay, 0, MAX_TYPING_DELAY, 1));
		delay.setEnabled(false);
		help = new JButton("?");
		Font font = help.getFont();
		Map<TextAttribute, Integer> fontAttributes = Collections.singletonMap(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON);
		help.setFont(font.deriveFont(fontAttributes));
		help.setMnemonic(KeyEvent.VK_SLASH);
		
		
		
		File helpFile;
		try {
			helpFile = resourceDiscoverer.getHelpFile();
		} catch (IOException e1) {
			helpFile = null;
		}
		
		if (helpFile != null && !helpFile.exists()) {
			resourceDiscoverer.extractHelp();
		}
			
		
		if (helpFile != null && helpFile.exists()) {
			help.setEnabled(true);
			final URI helpFileUri = helpFile.toURI();
			help.addActionListener(new ActionListener() {
				@Override
				public void actionPerformed(ActionEvent e) {
					try {
						Desktop.getDesktop().browse(helpFileUri);
					} catch (IOException e1) {
						UIUtil.showErrorMessage("Help file is unavailable");
					}
				}
			});
		} else {
			help.setEnabled(false);
		}
		
		JComponent field = ((JSpinner.DefaultEditor) delay.getEditor());
		Dimension prefSize = field.getPreferredSize();
		int width = field.getFontMetrics(field.getFont()).stringWidth("" + MAX_TYPING_DELAY);
		field.setPreferredSize(new Dimension(width, prefSize.height));
		
		panel.add(delay);
		panel.add(alt);
		panel.add(ctlrShiftU);
		panel.add(help);
		
		alt.requestFocus();
		
		return panel;
	}