mirror of https://github.com/stella-emu/stella.git
Added basic infrastructure for what will become the rewind dialog.
This commit is contained in:
parent
d28fb580b8
commit
bf6d28e181
|
@ -47,6 +47,7 @@
|
|||
#include "Menu.hxx"
|
||||
#include "CommandMenu.hxx"
|
||||
#include "Launcher.hxx"
|
||||
#include "Rewinder.hxx"
|
||||
#include "PNGLibrary.hxx"
|
||||
#include "Widget.hxx"
|
||||
#include "Console.hxx"
|
||||
|
@ -140,6 +141,7 @@ bool OSystem::create()
|
|||
myMenu = make_unique<Menu>(*this);
|
||||
myCommandMenu = make_unique<CommandMenu>(*this);
|
||||
myLauncher = make_unique<Launcher>(*this);
|
||||
myRewinder = make_unique<Rewinder>(*this);
|
||||
myStateManager = make_unique<StateManager>(*this);
|
||||
|
||||
// Create the sound object; the sound subsystem isn't actually
|
||||
|
|
|
@ -26,6 +26,7 @@ class Console;
|
|||
class Debugger;
|
||||
class Launcher;
|
||||
class Menu;
|
||||
class Rewinder;
|
||||
class FrameBuffer;
|
||||
class PNGLibrary;
|
||||
class Properties;
|
||||
|
@ -152,6 +153,13 @@ class OSystem
|
|||
*/
|
||||
Launcher& launcher() const { return *myLauncher; }
|
||||
|
||||
/**
|
||||
Get the state rewinder of the system.
|
||||
|
||||
@return The rewinder object
|
||||
*/
|
||||
Rewinder& rewinder() const { return *myRewinder; }
|
||||
|
||||
/**
|
||||
Get the state manager of the system.
|
||||
|
||||
|
@ -461,6 +469,9 @@ class OSystem
|
|||
unique_ptr<Launcher> myLauncher;
|
||||
bool myLauncherUsed;
|
||||
|
||||
// Pointer to the Rewinder object
|
||||
unique_ptr<Rewinder> myRewinder;
|
||||
|
||||
#ifdef DEBUGGER_SUPPORT
|
||||
// Pointer to the Debugger object
|
||||
unique_ptr<Debugger> myDebugger;
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
//============================================================================
|
||||
//
|
||||
// SSSS tt lll lll
|
||||
// SS SS tt ll ll
|
||||
// SS tttttt eeee ll ll aaaa
|
||||
// SSSS tt ee ee ll ll aa
|
||||
// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
|
||||
// SS SS tt ee ll ll aa aa
|
||||
// SSSS ttt eeeee llll llll aaaaa
|
||||
//
|
||||
// Copyright (c) 1995-2017 by Bradford W. Mott, Stephen Anthony
|
||||
// and the Stella Team
|
||||
//
|
||||
// See the file "License.txt" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//============================================================================
|
||||
|
||||
#include "Dialog.hxx"
|
||||
#include "Font.hxx"
|
||||
#include "EventHandler.hxx"
|
||||
#include "FrameBuffer.hxx"
|
||||
#include "OSystem.hxx"
|
||||
#include "Widget.hxx"
|
||||
#include "RewindDialog.hxx"
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
RewindDialog::RewindDialog(OSystem& osystem, DialogContainer& parent,
|
||||
int max_w, int max_h)
|
||||
: Dialog(osystem, parent)
|
||||
{
|
||||
const GUI::Font& font = instance().frameBuffer().font();
|
||||
const int buttonWidth = font.getStringWidth("Right Diff B") + 20,
|
||||
buttonHeight = font.getLineHeight() + 6,
|
||||
rowHeight = font.getLineHeight() + 10;
|
||||
|
||||
// Set real dimensions
|
||||
_w = 3 * (buttonWidth + 5) + 20;
|
||||
_h = 6 * rowHeight + 15;
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
//============================================================================
|
||||
//
|
||||
// SSSS tt lll lll
|
||||
// SS SS tt ll ll
|
||||
// SS tttttt eeee ll ll aaaa
|
||||
// SSSS tt ee ee ll ll aa
|
||||
// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
|
||||
// SS SS tt ee ll ll aa aa
|
||||
// SSSS ttt eeeee llll llll aaaaa
|
||||
//
|
||||
// Copyright (c) 1995-2017 by Bradford W. Mott, Stephen Anthony
|
||||
// and the Stella Team
|
||||
//
|
||||
// See the file "License.txt" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//============================================================================
|
||||
|
||||
#ifndef REWIND_DIALOG_HXX
|
||||
#define REWIND_DIALOG_HXX
|
||||
|
||||
class CommandSender;
|
||||
class DialogContainer;
|
||||
class OSystem;
|
||||
|
||||
#include "Dialog.hxx"
|
||||
|
||||
class RewindDialog : public Dialog
|
||||
{
|
||||
public:
|
||||
RewindDialog(OSystem& osystem, DialogContainer& parent, int max_w, int max_h);
|
||||
virtual ~RewindDialog() = default;
|
||||
|
||||
private:
|
||||
// Following constructors and assignment operators not supported
|
||||
RewindDialog() = delete;
|
||||
RewindDialog(const RewindDialog&) = delete;
|
||||
RewindDialog(RewindDialog&&) = delete;
|
||||
RewindDialog& operator=(const RewindDialog&) = delete;
|
||||
RewindDialog& operator=(RewindDialog&&) = delete;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -0,0 +1,29 @@
|
|||
//============================================================================
|
||||
//
|
||||
// SSSS tt lll lll
|
||||
// SS SS tt ll ll
|
||||
// SS tttttt eeee ll ll aaaa
|
||||
// SSSS tt ee ee ll ll aa
|
||||
// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
|
||||
// SS SS tt ee ll ll aa aa
|
||||
// SSSS ttt eeeee llll llll aaaaa
|
||||
//
|
||||
// Copyright (c) 1995-2017 by Bradford W. Mott, Stephen Anthony
|
||||
// and the Stella Team
|
||||
//
|
||||
// See the file "License.txt" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//============================================================================
|
||||
|
||||
#include "Dialog.hxx"
|
||||
#include "FrameBuffer.hxx"
|
||||
#include "RewindDialog.hxx"
|
||||
#include "Rewinder.hxx"
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Rewinder::Rewinder(OSystem& osystem)
|
||||
: DialogContainer(osystem)
|
||||
{
|
||||
myBaseDialog = new RewindDialog(myOSystem, *this,
|
||||
FrameBuffer::kFBMinW, FrameBuffer::kFBMinH);
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
//============================================================================
|
||||
//
|
||||
// SSSS tt lll lll
|
||||
// SS SS tt ll ll
|
||||
// SS tttttt eeee ll ll aaaa
|
||||
// SSSS tt ee ee ll ll aa
|
||||
// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
|
||||
// SS SS tt ee ll ll aa aa
|
||||
// SSSS ttt eeeee llll llll aaaaa
|
||||
//
|
||||
// Copyright (c) 1995-2017 by Bradford W. Mott, Stephen Anthony
|
||||
// and the Stella Team
|
||||
//
|
||||
// See the file "License.txt" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//============================================================================
|
||||
|
||||
#ifndef REWINDER_HXX
|
||||
#define REWINDER_HXX
|
||||
|
||||
class OSystem;
|
||||
|
||||
#include "DialogContainer.hxx"
|
||||
|
||||
/**
|
||||
The base dialog for all rewind-related UI items in Stella.
|
||||
|
||||
@author Stephen Anthony
|
||||
*/
|
||||
class Rewinder : public DialogContainer
|
||||
{
|
||||
public:
|
||||
Rewinder(OSystem& osystem);
|
||||
virtual ~Rewinder() = default;
|
||||
|
||||
private:
|
||||
// Following constructors and assignment operators not supported
|
||||
Rewinder() = delete;
|
||||
Rewinder(const Rewinder&) = delete;
|
||||
Rewinder(Rewinder&&) = delete;
|
||||
Rewinder& operator=(const Rewinder&) = delete;
|
||||
Rewinder& operator=(Rewinder&&) = delete;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -37,6 +37,8 @@ MODULE_OBJS := \
|
|||
src/gui/PopUpWidget.o \
|
||||
src/gui/ProgressDialog.o \
|
||||
src/gui/RadioButtonWidget.o \
|
||||
src/gui/Rewinder.o \
|
||||
src/gui/RewindDialog.o \
|
||||
src/gui/RomAuditDialog.o \
|
||||
src/gui/RomInfoWidget.o \
|
||||
src/gui/ScrollBarWidget.o \
|
||||
|
|
Loading…
Reference in New Issue