1//============================================================================
2//
3// SSSS tt lll lll
4// SS SS tt ll ll
5// SS tttttt eeee ll ll aaaa
6// SSSS tt ee ee ll ll aa
7// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
8// SS SS tt ee ll ll aa aa
9// SSSS ttt eeeee llll llll aaaaa
10//
11// Copyright (c) 1995-2019 by Bradford W. Mott, Stephen Anthony
12// and the Stella Team
13//
14// See the file "License.txt" for information on usage and redistribution of
15// this file, and for a DISCLAIMER OF ALL WARRANTIES.
16//============================================================================
17
18#ifndef ROM_LIST_SETTINGS_HXX
19#define ROM_LIST_SETTINGS_HXX
20
21class CheckboxWidget;
22class EditTextWidget;
23
24#include "Command.hxx"
25#include "Dialog.hxx"
26
27/**
28 * A dialog which controls the settings for the RomListWidget.
29 * Currently, all Distella disassembler options are located here as well.
30 */
31class RomListSettings : public Dialog, public CommandSender
32{
33 public:
34 RomListSettings(GuiObject* boss, const GUI::Font& font);
35 virtual ~RomListSettings() = default;
36
37 /** Show dialog onscreen at the specified coordinates
38 ('data' will be the currently selected line number in RomListWidget) */
39 void show(uInt32 x, uInt32 y, const Common::Rect& bossRect, int data = -1);
40
41 /** This dialog uses its own positioning, so we override Dialog::center() */
42 void center() override;
43
44 private:
45 uInt32 _xorig, _yorig;
46 int _item; // currently selected line number in the disassembly list
47
48 CheckboxWidget* myShowTentative;
49 CheckboxWidget* myShowAddresses;
50 CheckboxWidget* myShowGFXBinary;
51 CheckboxWidget* myUseRelocation;
52
53 private:
54 void loadConfig() override;
55 void handleMouseDown(int x, int y, MouseButton b, int clickCount) override;
56 void handleCommand(CommandSender* sender, int cmd, int data, int id) override;
57
58 // Following constructors and assignment operators not supported
59 RomListSettings() = delete;
60 RomListSettings(const RomListSettings&) = delete;
61 RomListSettings(RomListSettings&&) = delete;
62 RomListSettings& operator=(const RomListSettings&) = delete;
63 RomListSettings& operator=(RomListSettings&&) = delete;
64};
65
66#endif
67