def _create_dialog(self, config): table, self.dialog = create_table_dialog(self.parent, "Floppy images", 4, 2) factory = FselAndEjectFactory() row = 0 self.floppy = [] path = config.get_floppydir() for drive in ("A", "B"): label = "Disk %c:" % drive fname = config.get_floppy(row) fsel, box = factory.get(label, path, fname, gtk.FILE_CHOOSER_ACTION_OPEN) table_add_widget_row(table, row, label, box) self.floppy.append(fsel) row += 1 protect = gtk.combo_box_new_text() for text in config.get_protection_types(): protect.append_text(text) protect.set_active(config.get_floppy_protection()) protect.set_tooltip_text("Write protect floppy image contents") table_add_widget_row(table, row, "Write protection:", protect) row += 1 slowfdc = gtk.CheckButton("Slow floppy access") slowfdc.set_active(config.get_slowfdc()) slowfdc.set_tooltip_text("May be required by some rare game/demo") table_add_widget_row(table, row, None, slowfdc) table.show_all() self.protect = protect self.slowfdc = slowfdc
def _create_dialog(self, config): table, self.dialog = create_table_dialog(self.parent, "Hard disks", 4, 4, "Set and reboot") factory = FselAndEjectFactory() row = 0 label = "ASCI HD image:" path = config.get_acsi_image() fsel, box = factory.get(label, None, path, gtk.FILE_CHOOSER_ACTION_OPEN) table_add_widget_row(table, row, label, box, True) self.acsi = fsel row += 1 label = "IDE HD master image:" path = config.get_idemaster_image() fsel, box = factory.get(label, None, path, gtk.FILE_CHOOSER_ACTION_OPEN) table_add_widget_row(table, row, label, box, True) self.idemaster = fsel row += 1 label = "IDE HD slave image:" path = config.get_ideslave_image() fsel, box = factory.get(label, None, path, gtk.FILE_CHOOSER_ACTION_OPEN) table_add_widget_row(table, row, label, box, True) self.ideslave = fsel row += 1 table_add_widget_row(table, row, " ", gtk.HSeparator(), True) row += 1 label = "GEMDOS drive directory:" path = config.get_hd_dir() fsel, box = factory.get(label, None, path, gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER) table_add_widget_row(table, row, label, box, True) self.hddir = fsel row += 1 hddrive = gtk.combo_box_new_text() for text in config.get_hd_drives(): hddrive.append_text(text) hddrive.set_tooltip_text("Whether GEMDOS HD emulation uses fixed drive letter, or first free drive letter after ASCI & IDE drives (detection unreliable)") table_add_widget_row(table, row, "GEMDOS HD drive:", hddrive) self.hddrive = hddrive row += 1 protect = gtk.combo_box_new_text() for text in config.get_protection_types(): protect.append_text(text) protect.set_tooltip_text("Whether/how to write protect (GEMDOS HD) emulation files, 'auto' means using host files' own properties") table_add_widget_row(table, row, "Write protection:", protect) self.protect = protect row += 1 lower = gtk.combo_box_new_text() for text in config.get_hd_cases(): lower.append_text(text) lower.set_tooltip_text("What to do with names of files created by Atari programs through GEMDOS HD emulation") table_add_widget_row(table, row, "File names:", lower) self.lower = lower table.show_all()
def _create_dialog(self, config): table, self.dialog = create_table_dialog(self.parent, "Floppy images", 4, 2) factory = FselAndEjectFactory() row = 0 self.floppy = [] path = config.get_floppydir() for drive in ("A", "B"): label = "Disk %c:" % drive fname = config.get_floppy(row) fsel, box = factory.get(label, path, fname, gtk.FILE_CHOOSER_ACTION_OPEN) table_add_widget_row(table, row, label, box) self.floppy.append(fsel) row += 1 protect = gtk.combo_box_new_text() for text in config.get_protection_types(): protect.append_text(text) protect.set_active(config.get_floppy_protection()) protect.set_tooltip_text("Write protect floppy image contents") table_add_widget_row(table, row, "Write protection:", protect) row += 1 fastfdc = gtk.CheckButton("Fast floppy access") fastfdc.set_active(config.get_fastfdc()) fastfdc.set_tooltip_text("Can cause incompatibilities with some games/demos") table_add_widget_row(table, row, None, fastfdc) table.show_all() self.protect = protect self.fastfdc = fastfdc
def _create_dialog(self, config): table, self.dialog = create_table_dialog(self.parent, "Machine configuration", 6, 4, "Set and reboot") row = 0 self.machines = table_add_radio_rows(table, row, "Machine:", config.get_machine_types(), self._machine_cb) row += 1 self.dsps = table_add_radio_rows(table, row, "DSP type:", config.get_dsp_types()) row += 1 # start next table column row = 0 table_set_col_offset(table, 2) self.monitors = table_add_radio_rows(table, row, "Monitor:", config.get_monitor_types()) row += 1 self.clocks = table_add_radio_rows(table, row, "CPU clock:", config.get_cpuclock_types()) row += 1 # fullspan at bottom fullspan = True combo = gtk.combo_box_new_text() for text in config.get_cpulevel_types(): combo.append_text(text) self.cpulevel = table_add_widget_row(table, row, "CPU type:", combo, fullspan) row += 1 combo = gtk.combo_box_new_text() for text in config.get_memory_names(): combo.append_text(text) self.memory = table_add_widget_row(table, row, "Memory:", combo, fullspan) row += 1 label = "TOS image:" fsel = self._fsel(label, gtk.FILE_CHOOSER_ACTION_OPEN) self.tos = table_add_widget_row(table, row, label, fsel, fullspan) row += 1 vbox = gtk.VBox() self.compatible = gtk.CheckButton("Compatible CPU") self.rtc = gtk.CheckButton("Real-time clock") self.timerd = gtk.CheckButton("Patch Timer-D") vbox.add(self.compatible) vbox.add(self.timerd) vbox.add(self.rtc) table_add_widget_row(table, row, "Misc.:", vbox, fullspan) row += 1 table.show_all()
def __init__(self, parent): chooser = gtk.FileChooserButton('Select a File') chooser.set_local_only(True) # Hatari cannot access URIs chooser.set_width_chars(12) table, self.dialog = create_table_dialog(parent, "Load to memory", 2, 2) self.file = table_add_widget_row(table, 0, "File name:", chooser) self.address = table_add_entry_row(table, 1, "Load address:", 6) self.address.connect("activate", dialog_apply_cb, self.dialog)
def __init__(self, parent): table, self.dialog = create_table_dialog(parent, "Save from memory", 3, 2) self.file = FselEntry(self.dialog) table_add_widget_row(table, 0, "File name:", self.file.get_container()) self.address = table_add_entry_row(table, 1, "Save address:", 6) self.address.connect("activate", dialog_apply_cb, self.dialog) self.length = table_add_entry_row(table, 2, "Number of bytes:", 6) self.length.connect("activate", dialog_apply_cb, self.dialog)
def _create_dialog(self, config): table, self.dialog = create_table_dialog(self.parent, "Machine configuration", 6, 4, "Set and reboot") row = 0 self.machines = table_add_radio_rows(table, row, "Machine:", config.get_machine_types(), self._machine_cb) row += 1 self.dsps = table_add_radio_rows(table, row, "DSP type:", config.get_dsp_types()) row += 1 # start next table column row = 0 table_set_col_offset(table, 2) self.monitors = table_add_radio_rows(table, row, "Monitor:", config.get_monitor_types()) row += 1 self.clocks = table_add_radio_rows(table, row, "CPU clock:", config.get_cpuclock_types()) row += 1 # fullspan at bottom fullspan = True combo = gtk.combo_box_new_text() for text in config.get_cpulevel_types(): combo.append_text(text) self.cpulevel = table_add_widget_row(table, row, "CPU type:", combo, fullspan) row += 1 combo = gtk.combo_box_new_text() for text in config.get_memory_names(): combo.append_text(text) self.memory = table_add_widget_row(table, row, "Memory:", combo, fullspan) row += 1 label = "TOS image:" fsel = self._fsel(label, gtk.FILE_CHOOSER_ACTION_OPEN) self.tos = table_add_widget_row(table, row, label, fsel, fullspan) row += 1 vbox = gtk.VBox() self.compatible = gtk.CheckButton("Compatible CPU") self.rtc = gtk.CheckButton("Real-time clock") self.timerd = gtk.CheckButton("Patch Timer-D") self.compatible.set_tooltip_text("Needed for overscan and other timing sensitive things to work correctly") self.rtc.set_tooltip_text("Some rare games and demos don't work with this") self.timerd.set_tooltip_text("Improves ST/STE emulation performance, but some rare demos/games don't work with this") vbox.add(self.compatible) vbox.add(self.timerd) vbox.add(self.rtc) table_add_widget_row(table, row, "Misc.:", vbox, fullspan) row += 1 table.show_all()
def _create_dialog(self, config): table, self.dialog = create_table_dialog(self.parent, "Floppy images", 4, 2) factory = FselAndEjectFactory() row = 0 self.floppy = [] path = config.get_floppydir() for drive in ("A", "B"): label = "Disk %c image:" % drive fname = config.get_floppy(row) fsel, box = factory.get(label, path, fname, Gtk.FileChooserAction.OPEN) table_add_widget_row(table, row, 0, label, box) self.floppy.append(fsel) row += 1 protect = table_add_combo_row(table, row, 0, "Write protection:", config.get_protection_types()) protect.set_tooltip_text("Write protect floppy image contents") protect.set_active(config.get_floppy_protection()) row += 1 vbox = Gtk.VBox() ds = Gtk.CheckButton("Double sided drives") ds.set_tooltip_text( "Whether drives are double or single sided. Can affect behavior of some games" ) ds.set_active(config.get_doublesided()) vbox.add(ds) driveb = Gtk.CheckButton("Drive B connected") driveb.set_tooltip_text( "Whether drive B is connected. Can affect behavior of some demos & games" ) driveb.set_active(config.get_floppy_drives()[1]) vbox.add(driveb) fastfdc = Gtk.CheckButton("Fast floppy access") fastfdc.set_tooltip_text( "Can cause incompatibilities with some games/demos") fastfdc.set_active(config.get_fastfdc()) vbox.add(fastfdc) table_add_widget_row(table, row, 0, None, vbox) row += 1 table.show_all() self.protect = protect self.fastfdc = fastfdc self.driveb = driveb self.ds = ds
def _create_dialog(self, config): table, self.dialog = create_table_dialog(self.parent, "Floppy images", 4, 2) factory = FselAndEjectFactory() row = 0 self.floppy = [] path = config.get_floppydir() for drive in ("A", "B"): label = "Disk %c image:" % drive fname = config.get_floppy(row) fsel, box = factory.get(label, path, fname, gtk.FILE_CHOOSER_ACTION_OPEN) table_add_widget_row(table, row, label, box) self.floppy.append(fsel) row += 1 protect = gtk.combo_box_new_text() for text in config.get_protection_types(): protect.append_text(text) protect.set_active(config.get_floppy_protection()) protect.set_tooltip_text("Write protect floppy image contents") table_add_widget_row(table, row, "Write protection:", protect) row += 1 ds = gtk.CheckButton("Double sided drives") ds.set_active(config.get_doublesided()) ds.set_tooltip_text( "Whether drives are double or single sided. Can affect behavior of some games" ) table_add_widget_row(table, row, None, ds) row += 1 driveb = gtk.CheckButton("Drive B connected") driveb.set_active(config.get_floppy_drives()[1]) driveb.set_tooltip_text( "Wheter drive B is connected. Can affect behavior of some demos & games" ) table_add_widget_row(table, row, None, driveb) row += 1 fastfdc = gtk.CheckButton("Fast floppy access") fastfdc.set_active(config.get_fastfdc()) fastfdc.set_tooltip_text( "Can cause incompatibilities with some games/demos") table_add_widget_row(table, row, None, fastfdc) table.show_all() self.protect = protect self.fastfdc = fastfdc self.driveb = driveb self.ds = ds
def _create_dialog(self, config): paths = config.get_paths() table, self.dialog = create_table_dialog(self.parent, "File path settings", len(paths), 2) paths.sort() row = 0 self.paths = [] for (key, path, label) in paths: fsel = FselEntry(self.dialog, self._validate_fname, key) fsel.set_filename(path) self.paths.append((key, fsel)) table_add_widget_row(table, row, label, fsel.get_container()) row += 1 table.show_all()
def _create_dialog(self, config): table, self.dialog = create_table_dialog(self.parent, "Sound settings", 6, 2, "Apply") row = 0 col = 1 fullspan = True self.enabled = table_add_widget_row(table, row, col, None, Gtk.CheckButton("Sound enabled"), fullspan) row += 1 col = 0 self.hz = table_add_combo_row(table, row, col, "Sound frequency:", config.get_sound_values()) row += 1 self.ymmixer = table_add_combo_row(table, row, col, "YM mixing method:", config.get_ymmixer_types()) self.ymmixer.set_tooltip_text("Which method is used to mix YM voices") row += 1 bufsize = Gtk.Scale.new_with_range(Gtk.Orientation.HORIZONTAL, 0, 100, 10) for pos in ((0, "auto"), (10, "min"), (100, "max")): bufsize.add_mark(pos[0], Gtk.PositionType.BOTTOM, pos[1]) bufsize.set_tooltip_text( "SDL sound buffer size in ms. 0 = use default value. In some situations, SDL default may cause large (~0.5s) sound delay at lower frequency. If you have this problem, try with e.g. 20 ms, otherwise keep at 0." ) bufsize.set_digits(0) self.bufsize = table_add_widget_row(table, row, col, "Sound buffer size:", bufsize) row += 1 vbox = Gtk.VBox() self.sync = Gtk.CheckButton("Emulation speed synched to sound output") self.sync.set_tooltip_text( "Constantly adjust emulation screen update rate to match sound output. Can help if you suffer from sound buffer under/overflow." ) vbox.add(self.sync) self.mic = Gtk.CheckButton("Enable (Falcon) microphone") vbox.add(self.mic) col = 1 table_add_widget_row(table, row, col, None, vbox, fullspan) row += 1 table.show_all()
def _create_dialog(self, config): table, self.dialog = create_table_dialog(self.parent, "Joystick settings", 9, 2) joy = 0 self.joy = [] joytypes = config.get_joystick_types() for label in config.get_joystick_names(): combo = table_add_combo_row(table, joy, 0, "%s:" % label, joytypes) combo.set_active(config.get_joystick(joy)) self.joy.append(combo) joy += 1 table.show_all()
def _create_dialog(self, config): table, self.dialog = create_table_dialog(self.parent, "Joystick settings", 9, 2) joy = 0 self.joy = [] joytypes = config.get_joystick_types() for label in config.get_joystick_names(): combo = gtk.combo_box_new_text() for text in joytypes: combo.append_text(text) combo.set_active(config.get_joystick(joy)) widget = table_add_widget_row(table, joy, "%s:" % label, combo) self.joy.append(widget) joy += 1 table.show_all()
def _create_dialog(self, config): table, self.dialog = create_table_dialog(self.parent, "Floppy images", 4, 2) row = 0 self.floppy = [] path = config.get_floppydir() for drive in ("A", "B"): label = "Disk %c:" % drive fsel = gtk.FileChooserButton(label) # Hatari cannot access URIs fsel.set_local_only(True) fsel.set_width_chars(12) filename = config.get_floppy(row) if filename: fsel.set_filename(filename) elif path: fsel.set_current_folder(path) self.floppy.append(fsel) eject = create_button("Eject", self._eject, fsel) box = gtk.HBox() box.pack_start(fsel) box.pack_start(eject, False, False) table_add_widget_row(table, row, label, box) row += 1 tips = gtk.Tooltips() protect = gtk.combo_box_new_text() for text in config.get_protection_types(): protect.append_text(text) protect.set_active(config.get_floppy_protection()) tips.set_tip(protect, "Write protect floppy image contents") table_add_widget_row(table, row, "Write protection:", protect) row += 1 slowfdc = gtk.CheckButton("Slow floppy access") slowfdc.set_active(config.get_slowfdc()) tips.set_tip(slowfdc, "May be required by some rare game/demo") table_add_widget_row(table, row, None, slowfdc) table.show_all() self.protect = protect self.slowfdc = slowfdc
def _create_dialog(self, config): table, self.dialog = create_table_dialog(self.parent, "Floppy images", 4, 2) factory = FselAndEjectFactory() row = 0 self.floppy = [] path = config.get_floppydir() for drive in ("A", "B"): label = "Disk %c image:" % drive fname = config.get_floppy(row) fsel, box = factory.get(label, path, fname, gtk.FILE_CHOOSER_ACTION_OPEN) table_add_widget_row(table, row, label, box) self.floppy.append(fsel) row += 1 protect = gtk.combo_box_new_text() for text in config.get_protection_types(): protect.append_text(text) protect.set_active(config.get_floppy_protection()) protect.set_tooltip_text("Write protect floppy image contents") table_add_widget_row(table, row, "Write protection:", protect) row += 1 ds = gtk.CheckButton("Double sided drives") ds.set_active(config.get_doublesided()) ds.set_tooltip_text("Whether drives are double or single sided. Can affect behavior of some games") table_add_widget_row(table, row, None, ds) row += 1 driveb = gtk.CheckButton("Drive B connected") driveb.set_active(config.get_floppy_drives()[1]) driveb.set_tooltip_text("Wheter drive B is connected. Can affect behavior of some demos & games") table_add_widget_row(table, row, None, driveb) row += 1 fastfdc = gtk.CheckButton("Fast floppy access") fastfdc.set_active(config.get_fastfdc()) fastfdc.set_tooltip_text("Can cause incompatibilities with some games/demos") table_add_widget_row(table, row, None, fastfdc) table.show_all() self.protect = protect self.fastfdc = fastfdc self.driveb = driveb self.ds = ds
def _create_dialog(self, config): table, self.dialog = create_table_dialog(self.parent, "Hard disks", 4, 4, "Set and reboot") factory = FselAndEjectFactory() row = 0 label = "ASCI HD image:" path = config.get_acsi_image() fsel, box = factory.get(label, None, path, gtk.FILE_CHOOSER_ACTION_OPEN) table_add_widget_row(table, row, label, box, True) self.acsi = fsel row += 1 label = "IDE HD master image:" path = config.get_idemaster_image() fsel, box = factory.get(label, None, path, gtk.FILE_CHOOSER_ACTION_OPEN) table_add_widget_row(table, row, label, box, True) self.idemaster = fsel row += 1 label = "IDE HD slave image:" path = config.get_ideslave_image() fsel, box = factory.get(label, None, path, gtk.FILE_CHOOSER_ACTION_OPEN) table_add_widget_row(table, row, label, box, True) self.ideslave = fsel row += 1 label = "GEMDOS drive directory:" path = config.get_gemdos_dir() fsel, box = factory.get(label, None, path, gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER) table_add_widget_row(table, row, label, box, True) self.gemdos = fsel row += 1 protect = gtk.combo_box_new_text() for text in config.get_protection_types(): protect.append_text(text) protect.set_tooltip_text("Write protect GEMDOS drive contents") table_add_widget_row(table, row, "Write protection:", protect) self.protect = protect table.show_all()
def _create_dialog(self, config): table, self.dialog = create_table_dialog(self.parent, "Display settings", 9, 2) row = 0 col = 0 self.skip = table_add_combo_row(table, row, col, "Frameskip:", config.get_frameskip_names()) self.skip.set_tooltip_text( "Set how many frames are skipped to speed up emulation") row += 1 self.slow = table_add_combo_row(table, row, col, "Slowdown:", config.get_slowdown_names()) self.slow.set_tooltip_text( "VBL wait multiplier to slow down emulation. Breaks sound and large enough slowdown causes mouse clicks not to work." ) row += 1 topw, toph = config.get_desktop_size() maxw = Gtk.Scale.new_with_range(Gtk.Orientation.HORIZONTAL, 320, topw, 8) maxh = Gtk.Scale.new_with_range(Gtk.Orientation.HORIZONTAL, 200, toph, 8) maxw.set_tooltip_text("Preferred/maximum zoomed width") maxh.set_tooltip_text("Preferred/maximum zoomed height") maxw.set_digits(0) maxh.set_digits(0) self.maxw = table_add_widget_row(table, row, col, "Max zoom width:", maxw) row += 1 self.maxh = table_add_widget_row(table, row, col, "Max zoom height:", maxh) row += 1 vbox = Gtk.VBox() force_max = Gtk.CheckButton("Force max resolution (Falcon)") force_max.set_tooltip_text( "Force maximum resolution to help recording videos of demos which do resolution changes" ) self.force_max = force_max vbox.add(force_max) desktop = Gtk.CheckButton("Keep desktop resolution (scales)") desktop.set_tooltip_text( "Keep screen resolution in fullscreen. Avoids potential monitor res switch delay & resulting sound skips" ) self.desktop = desktop vbox.add(desktop) borders = Gtk.CheckButton("Atari screen borders") borders.set_tooltip_text( "Show overscan borders in ST/STE low/mid-rez and in Falcon color resolutions. Visible border area is affected by max zoom size" ) self.borders = borders vbox.add(borders) led = Gtk.CheckButton("Show overlay led") led.set_tooltip_text( "Show overlay drive led when statusbar is not visible") self.led = led vbox.add(led) statusbar = Gtk.CheckButton("Show statusbar") statusbar.set_tooltip_text( "Show statusbar with TOS and machine info, disk leds etc") self.statusbar = statusbar vbox.add(statusbar) crop = Gtk.CheckButton("Remove statusbar from screen capture") crop.set_tooltip_text( "Crop statusbar from screenshots and video recordings") self.crop = crop vbox.add(crop) table_add_widget_row(table, row, col, None, vbox) table.show_all()
def _create_dialog(self, config): table, self.dialog = create_table_dialog(self.parent, "Machine configuration", 6, 2, "Set and reboot") # option for non-combos fullspan = True col = 0 row = 0 types = config.get_machine_types() self.machine = table_add_combo_row(table, row, col, "Machine:", types, self._machine_cb, types) row += 1 vbox1 = Gtk.VBox() self.blitter = Gtk.CheckButton("Blitter (ST only)") self.blitter.set_tooltip_text( "Whether to emulate add-on Blitter chip for ST") self.timerd = Gtk.CheckButton("Patch Timer-D") self.timerd.set_tooltip_text( "Improves ST/STE emulation performance, but some rare demos/games do not work with this" ) vbox1.add(self.blitter) vbox1.add(self.timerd) table_add_widget_row(table, row, col, "Misc:", vbox1, fullspan) row += 1 self.cpulevel = table_add_combo_row(table, row, col, "CPU type:", config.get_cpulevel_types()) row += 1 vbox2 = Gtk.VBox() self.compatible = Gtk.CheckButton("Prefetch emulation") self.compatible.set_tooltip_text( "Needed for overscan and other timing sensitive things to work correctly. Uses more host CPU" ) self.exact = Gtk.CheckButton("Cycle exact with cache emulation") self.exact.set_tooltip_text( "Cycle exactness increases emulation accuracy and 680x0 cache emulation increases emulated code performance, but requires significantly more host CPU" ) self.mmu = Gtk.CheckButton("MMU emulation") vbox2.add(self.compatible) vbox2.add(self.exact) vbox2.add(self.mmu) table_add_widget_row(table, row, col, None, vbox2, fullspan) row += 1 self.clocks = table_add_combo_row(table, row, col, "CPU clock:", config.get_cpuclock_types()) row += 1 self.fpu = table_add_combo_row(table, row, col, "FPU type:", config.get_fpu_types()) row += 1 self.softfp = Gtk.CheckButton("Accurate FPU emulation") self.softfp.set_tooltip_text( "Emulate FPU in software instead of using host FPU. Uses more host CPU" ) table_add_widget_row(table, row, col, None, self.softfp, fullspan) row += 1 self.dsp = table_add_combo_row(table, row, col, "DSP type:", config.get_dsp_types()) self.dsp.set_tooltip_text( "Disable DSP to improve Hatari performance significantly for Falcon programs that work (also) without it. Some programs using DSP unconditionally, may work with dummy mode (and just lack e.g. sound)." ) row += 1 self.monitors = table_add_combo_row(table, row, col, "Monitor:", config.get_monitor_types()) row += 1 self.memory = table_add_combo_row(table, row, col, "Memory:", config.get_memory_names()) row += 1 # use next table column col = 2 ttram = Gtk.Scale.new_with_range(Gtk.Orientation.HORIZONTAL, 0, 1024, 4) ttram.set_digits(0) ttram.set_tooltip_text( "TT-RAM needs Falcon/TT and requires 32-bit addressing. 0 = disabled, 24-bit addressing." ) self.ttram = table_add_widget_row(table, row, col, "TT-RAM:", ttram, fullspan) row += 1 label = "TOS image:" fsel = self._fsel(label, Gtk.FileChooserAction.OPEN) self.tos = table_add_widget_row(table, row, col, label, fsel, fullspan) row += 1 table.show_all()
def _create_dialog(self, config): table, self.dialog = create_table_dialog(self.parent, "Machine configuration", 6, 4, "Set and reboot") col = 0 row = 0 self.machines = table_add_radio_rows(table, row, col, "Machine:", config.get_machine_types(), self._machine_cb) row += 1 self.dsps = table_add_radio_rows(table, row, col, "DSP type:", config.get_dsp_types()) row += 1 # start next table column col = 2 row = 0 self.monitors = table_add_radio_rows(table, row, col, "Monitor:", config.get_monitor_types()) row += 1 self.clocks = table_add_radio_rows(table, row, col, "CPU clock:", config.get_cpuclock_types()) row += 1 # fullspan at bottom fullspan = True combo = Gtk.ComboBoxText() for text in config.get_cpulevel_types(): combo.append_text(text) self.cpulevel = table_add_widget_row(table, row, col, "CPU type:", combo, fullspan) row += 1 combo = Gtk.ComboBoxText() for text in config.get_memory_names(): combo.append_text(text) self.memory = table_add_widget_row(table, row, col, "Memory:", combo, fullspan) row += 1 ttram = Gtk.Scale.new_with_range(Gtk.Orientation.HORIZONTAL, 0, 512, 4) ttram.set_digits(0) ttram.set_tooltip_text( "TT-RAM needs Falcon/TT with WinUAE CPU core and implies 32-bit addressing. 0 = disabled, 24-bit addressing." ) self.ttram = table_add_widget_row(table, row, col, "TT-RAM", ttram, fullspan) row += 1 label = "TOS image:" fsel = self._fsel(label, Gtk.FileChooserAction.OPEN) self.tos = table_add_widget_row(table, row, col, label, fsel, fullspan) row += 1 vbox = Gtk.VBox() self.compatible = Gtk.CheckButton("Compatible CPU") self.timerd = Gtk.CheckButton("Patch Timer-D") self.compatible.set_tooltip_text( "Needed for overscan and other timing sensitive things to work correctly" ) self.timerd.set_tooltip_text( "Improves ST/STE emulation performance, but some rare demos/games don't work with this" ) vbox.add(self.compatible) vbox.add(self.timerd) table_add_widget_row(table, row, col, "Misc.:", vbox, fullspan) row += 1 table.show_all()