package com.pixelutilitys.arcade.emulators.AEPgb;
/**
* this source file released under the GNU Public Licence.
* see the accompanying copyright.txt for more information.
* Copyright (C) 2000-2001 Ben Mazur
*/
import java.awt.CheckboxMenuItem;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.MenuShortcut;
import java.awt.event.ActionListener;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
public class PgbMenuBar extends MenuBar {
public Menu filemenu, cpumenu, optionsmenu;
public Menu dblevelmenu;
public Menu frameskipmenu,
prioritymenu,
videomenu,
soundmenu,
serialmenu,
systemmenu;
public Menu vidoutmenu;
public MenuItem file_load, file_exit, file_about;
public MenuItem cpu_reset, cpu_runto;
public MenuItem options_setkeys, options_setsavepath;
public CheckboxMenuItem cpu_paused;
public CheckboxMenuItem debug_0,
debug_1,
debug_2,
debug_3,
debug_4,
debug_5;
public CheckboxMenuItem auto_wait, fs_0, fs_1, fs_2, fs_3, fs_4, fs_5;
// by retroK
public CheckboxMenuItem soundChannel1Enable,
soundChannel2Enable,
soundChannel3Enable,
soundChannel4Enable;
public CheckboxMenuItem soundFreq11, soundFreq22, soundFreq44;
public CheckboxMenuItem soundBuffer200, soundBuffer300, soundBuffer400;
// end by retroK
public CheckboxMenuItem priority_low,
priority_normal,
priority_high,
priority_max;
public CheckboxMenuItem size_1,
size_2,
size_3,
size_4,
color_mute,
sgb_border;
public CheckboxMenuItem sys_gb, sys_gbp, sys_sgb, sys_gbc, sound;
public MenuItem serial_connect;
public CheckboxMenuItem vidout_default,
vidout_directx,
vidout_indexed,
vidout_direct;
public PgbMenuBar(ActionListener al, ItemListener il) {
super();
filemenu = new Menu("File");
filemenu.addActionListener(al);
file_load = new MenuItem("Open...", new MenuShortcut(KeyEvent.VK_O));
file_load.setActionCommand("file_load");
file_exit = new MenuItem("Exit", new MenuShortcut(KeyEvent.VK_X));
file_exit.setActionCommand("file_exit");
file_about = new MenuItem("About");
file_about.setActionCommand("file_about");
cpumenu = new Menu("CPU");
cpumenu.addActionListener(al);
cpu_reset = new MenuItem("Reset");
cpu_reset.setActionCommand("cpu_reset");
cpu_paused = new CheckboxMenuItem("Pause", true);
cpu_paused.setShortcut(new MenuShortcut(KeyEvent.VK_P));
cpu_paused.setActionCommand("cpu_paused");
cpu_paused.addItemListener(il);
cpu_runto = new MenuItem("Run To...");
cpu_runto.setActionCommand("cpu_runto");
cpu_runto.setEnabled(false);
dblevelmenu = new Menu("Debug Level");
dblevelmenu.addActionListener(al);
debug_0 = new CheckboxMenuItem("0 - Basic messages only", false);
debug_0.addItemListener(il);
debug_1 = new CheckboxMenuItem("1 - Count, Error messages", false);
debug_1.addItemListener(il);
debug_1.setEnabled(false);
debug_2 = new CheckboxMenuItem("2 - Uncommon status messages", false);
debug_2.addItemListener(il);
debug_2.setEnabled(false);
debug_3 = new CheckboxMenuItem("3 - Common status messages", false);
debug_3.addItemListener(il);
debug_3.setEnabled(false);
debug_4 = new CheckboxMenuItem("4 - Interrupts", false);
debug_4.addItemListener(il);
debug_4.setEnabled(false);
debug_5 = new CheckboxMenuItem("5 - Opcode display", false);
debug_5.addItemListener(il);
optionsmenu = new Menu("Options");
optionsmenu.addActionListener(al);
frameskipmenu = new Menu("Frameskip");
frameskipmenu.addActionListener(al);
auto_wait = new CheckboxMenuItem("Auto Wait", false);
auto_wait.addItemListener(il);
fs_0 = new CheckboxMenuItem("0", false);
fs_0.addItemListener(il);
fs_1 = new CheckboxMenuItem("1", false);
fs_1.addItemListener(il);
fs_2 = new CheckboxMenuItem("2", false);
fs_2.addItemListener(il);
fs_3 = new CheckboxMenuItem("3", false);
fs_3.addItemListener(il);
fs_4 = new CheckboxMenuItem("4", false);
fs_4.addItemListener(il);
fs_5 = new CheckboxMenuItem("5", false);
fs_5.addItemListener(il);
prioritymenu = new Menu("Priority");
prioritymenu.addActionListener(al);
priority_low =
new CheckboxMenuItem("Low (" + Thread.MIN_PRIORITY + ")", false);
priority_low.addItemListener(il);
priority_normal =
new CheckboxMenuItem(
"Normal (" + Thread.NORM_PRIORITY + ")",
false);
priority_normal.addItemListener(il);
priority_high =
new CheckboxMenuItem(
"High ("
+ ((Thread.NORM_PRIORITY + Thread.MAX_PRIORITY) / 2)
+ ")",
false);
priority_high.addItemListener(il);
priority_max =
new CheckboxMenuItem("Max (" + Thread.MAX_PRIORITY + ")", false);
priority_max.addItemListener(il);
videomenu = new Menu("Video");
videomenu.addActionListener(al);
vidoutmenu = new Menu("Output");
vidoutmenu.addActionListener(al);
vidout_default = new CheckboxMenuItem("Default", false);
vidout_default.addItemListener(il);
vidout_directx =
new CheckboxMenuItem("DirectX (fast & accurate)", false);
vidout_directx.addItemListener(il);
vidout_directx.setEnabled(PgbSettings.usedirectx);
vidout_indexed = new CheckboxMenuItem("Indexed Color (fast)", false);
vidout_indexed.addItemListener(il);
vidout_direct = new CheckboxMenuItem("Direct Color (accurate)", false);
vidout_direct.addItemListener(il);
size_1 = new CheckboxMenuItem("1x window", false);
size_1.addItemListener(il);
size_2 = new CheckboxMenuItem("2x", false);
size_2.addItemListener(il);
size_3 = new CheckboxMenuItem("3x", false);
size_3.addItemListener(il);
size_4 = new CheckboxMenuItem("4x", false);
size_4.addItemListener(il);
color_mute = new CheckboxMenuItem("Mute Colors", false);
color_mute.addItemListener(il);
sgb_border = new CheckboxMenuItem("SGB Border (slow)", false);
sgb_border.addItemListener(il);
soundmenu = new Menu("Sound");
soundmenu.addActionListener(al);
sound = new CheckboxMenuItem("Enabled", true);
sound.addItemListener(il);
soundChannel1Enable =
new CheckboxMenuItem("Channel 1 (Square Wave)", true);
soundChannel1Enable.addItemListener(il);
soundChannel2Enable =
new CheckboxMenuItem("Channel 2 (Square Wave)", true);
soundChannel2Enable.addItemListener(il);
soundChannel3Enable =
new CheckboxMenuItem("Channel 3 (Voluntary Wave)", true);
soundChannel3Enable.addItemListener(il);
soundChannel4Enable = new CheckboxMenuItem("Channel 4 (Noise)", true);
soundChannel4Enable.addItemListener(il);
soundBuffer200 = new CheckboxMenuItem("Buffer length: 200ms", true);
soundBuffer200.addItemListener(il);
soundBuffer300 = new CheckboxMenuItem("Buffer length: 300ms");
soundBuffer300.addItemListener(il);
soundBuffer400 = new CheckboxMenuItem("Buffer length: 400ms");
soundBuffer400.addItemListener(il);
soundFreq11 = new CheckboxMenuItem("Sample rate: 11khz");
soundFreq11.addItemListener(il);
soundFreq22 = new CheckboxMenuItem("Sample rate: 22khz");
soundFreq22.addItemListener(il);
soundFreq44 = new CheckboxMenuItem("Sample rate: 44khz", true);
soundFreq44.addItemListener(il);
serialmenu = new Menu("Serial");
serialmenu.addActionListener(al);
serial_connect = new MenuItem("Connect...");
serial_connect.setActionCommand("serial_connect");
//serial_connect.setEnabled(false);
systemmenu = new Menu("System");
systemmenu.addActionListener(al);
sys_gb = new CheckboxMenuItem("Gameboy", false);
sys_gb.addItemListener(il);
sys_gbp = new CheckboxMenuItem("Gameboy Pocket", false);
sys_gbp.addItemListener(il);
sys_sgb = new CheckboxMenuItem("Super Gameboy", false);
sys_sgb.addItemListener(il);
sys_gbc = new CheckboxMenuItem("Gameboy Color", false);
sys_gbc.addItemListener(il);
options_setkeys = new MenuItem("Set Keys...");
options_setkeys.setActionCommand("options_setkeys");
options_setsavepath = new MenuItem("Directories...");
options_setsavepath.setActionCommand("options_setsavepath");
options_setsavepath.setEnabled(false);
// arrange things on it
add(filemenu);
filemenu.add(file_load);
filemenu.addSeparator();
filemenu.add(file_exit);
filemenu.add(file_about);
add(cpumenu);
cpumenu.add(cpu_reset);
cpumenu.add(cpu_paused);
cpumenu.addSeparator();
cpumenu.add(cpu_runto);
cpumenu.addSeparator();
cpumenu.add(dblevelmenu);
dblevelmenu.add(debug_0);
dblevelmenu.add(debug_1);
dblevelmenu.add(debug_2);
dblevelmenu.add(debug_3);
dblevelmenu.add(debug_4);
dblevelmenu.add(debug_5);
add(optionsmenu);
optionsmenu.add(frameskipmenu);
frameskipmenu.add(auto_wait);
frameskipmenu.addSeparator();
frameskipmenu.add(fs_0);
frameskipmenu.add(fs_1);
frameskipmenu.add(fs_2);
frameskipmenu.add(fs_3);
frameskipmenu.add(fs_4);
frameskipmenu.add(fs_5);
optionsmenu.add(prioritymenu);
prioritymenu.add(priority_low);
prioritymenu.add(priority_normal);
prioritymenu.add(priority_high);
prioritymenu.addSeparator();
prioritymenu.add(priority_max);
optionsmenu.addSeparator();
optionsmenu.add(videomenu);
videomenu.add(vidoutmenu);
vidoutmenu.add(vidout_default);
vidoutmenu.addSeparator();
vidoutmenu.add(vidout_directx);
vidoutmenu.add(vidout_indexed);
vidoutmenu.add(vidout_direct);
videomenu.addSeparator();
videomenu.add(size_1);
videomenu.add(size_2);
videomenu.add(size_3);
videomenu.add(size_4);
videomenu.addSeparator();
videomenu.add(color_mute);
videomenu.add(sgb_border);
optionsmenu.add(soundmenu);
soundmenu.add(sound);
soundmenu.addSeparator();
soundmenu.add(soundChannel1Enable);
soundmenu.add(soundChannel2Enable);
soundmenu.add(soundChannel3Enable);
soundmenu.add(soundChannel4Enable);
soundmenu.addSeparator();
soundmenu.add(soundFreq11);
soundmenu.add(soundFreq22);
soundmenu.add(soundFreq44);
soundmenu.addSeparator();
soundmenu.add(soundBuffer200);
soundmenu.add(soundBuffer300);
soundmenu.add(soundBuffer400);
optionsmenu.add(serialmenu);
serialmenu.add(serial_connect);
optionsmenu.addSeparator();
optionsmenu.add(systemmenu);
systemmenu.add(sys_gb);
systemmenu.add(sys_gbp);
systemmenu.add(sys_sgb);
systemmenu.add(sys_gbc);
optionsmenu.addSeparator();
optionsmenu.add(options_setkeys);
optionsmenu.add(options_setsavepath);
}
}