mirror of https://github.com/stella-emu/stella.git
add missing files
This commit is contained in:
parent
e3f1a0f49f
commit
6c2cbf3fac
|
@ -0,0 +1,87 @@
|
||||||
|
//============================================================================
|
||||||
|
//
|
||||||
|
// 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-2020 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 "Console.hxx"
|
||||||
|
#include "EventHandler.hxx"
|
||||||
|
#include "Font.hxx"
|
||||||
|
#include "MessageBox.hxx"
|
||||||
|
#include "StringParser.hxx"
|
||||||
|
|
||||||
|
#include "MessageDialog.hxx"
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
MessageDialog::MessageDialog(OSystem& osystem, DialogContainer& parent,
|
||||||
|
const GUI::Font& font, int max_w, int max_h)
|
||||||
|
: Dialog(osystem, parent, font)
|
||||||
|
{
|
||||||
|
_w = _h = 10; // must not be 0
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
MessageDialog::~MessageDialog()
|
||||||
|
{
|
||||||
|
delete myMsg; myMsg = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void MessageDialog::loadConfig()
|
||||||
|
{
|
||||||
|
// ugly, but I can't do better
|
||||||
|
if (myMsg != nullptr)
|
||||||
|
delete myMsg;
|
||||||
|
|
||||||
|
myMsg = new GUI::MessageBox(this, _font, myText,
|
||||||
|
FBMinimum::Width, FBMinimum::Height, kOKCmd, kCloseCmd,
|
||||||
|
myYesNo ? "Yes" : "Ok", myYesNo ? "No" : "Cancel",
|
||||||
|
myTitle, true);
|
||||||
|
myMsg->show();
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void MessageDialog::handleCommand(CommandSender* sender, int cmd, int data, int id)
|
||||||
|
{
|
||||||
|
switch (cmd)
|
||||||
|
{
|
||||||
|
case kOKCmd:
|
||||||
|
case kCloseCmd:
|
||||||
|
myConfirmed = cmd == kOKCmd;
|
||||||
|
instance().eventHandler().handleEvent(Event::ExitMode);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
Dialog::handleCommand(sender, cmd, data, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void MessageDialog::setMessage(const string& title, const StringList& text, bool yesNo)
|
||||||
|
{
|
||||||
|
myTitle = title;
|
||||||
|
myText = text;
|
||||||
|
myYesNo = yesNo;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void MessageDialog::setMessage(const string& title, const string& text, bool yesNo)
|
||||||
|
{
|
||||||
|
setMessage(title, StringParser(text).stringList(), yesNo);
|
||||||
|
}
|
||||||
|
|
||||||
|
string MessageDialog::myTitle = "";
|
||||||
|
StringList MessageDialog::myText;
|
||||||
|
bool MessageDialog::myYesNo = false;
|
||||||
|
bool MessageDialog::myConfirmed = false;
|
|
@ -0,0 +1,62 @@
|
||||||
|
//============================================================================
|
||||||
|
//
|
||||||
|
// 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-2020 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 MESSAGE_DIALOG_HXX
|
||||||
|
#define MESSAGE_DIALOG_HXX
|
||||||
|
|
||||||
|
class Properties;
|
||||||
|
class CommandSender;
|
||||||
|
class DialogContainer;
|
||||||
|
class OSystem;
|
||||||
|
|
||||||
|
#include "MessageBox.hxx"
|
||||||
|
|
||||||
|
class MessageDialog : public Dialog
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
MessageDialog(OSystem& osystem, DialogContainer& parent,
|
||||||
|
const GUI::Font& font, int max_w, int max_h);
|
||||||
|
virtual ~MessageDialog();
|
||||||
|
|
||||||
|
// Define the message displayed
|
||||||
|
void setMessage(const string& title, const string& text, bool yesNo = false);
|
||||||
|
void setMessage(const string& title, const StringList& text, bool yesNo = false);
|
||||||
|
bool confirmed() { return myConfirmed; }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void loadConfig() override;
|
||||||
|
void handleCommand(CommandSender* sender, int cmd, int data, int id) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
static string myTitle;
|
||||||
|
static StringList myText;
|
||||||
|
static bool myYesNo;
|
||||||
|
static bool myConfirmed;
|
||||||
|
|
||||||
|
// Show a message
|
||||||
|
GUI::MessageBox* myMsg{nullptr};
|
||||||
|
|
||||||
|
private:
|
||||||
|
// Following constructors and assignment operators not supported
|
||||||
|
MessageDialog() = delete;
|
||||||
|
MessageDialog(const MessageDialog&) = delete;
|
||||||
|
MessageDialog(MessageDialog&&) = delete;
|
||||||
|
MessageDialog& operator=(const MessageDialog&) = delete;
|
||||||
|
MessageDialog& operator=(MessageDialog&&) = delete;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,64 @@
|
||||||
|
//============================================================================
|
||||||
|
//
|
||||||
|
// 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-2020 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 "MessageDialog.hxx"
|
||||||
|
#include "MessageMenu.hxx"
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
MessageMenu::MessageMenu(OSystem& osystem)
|
||||||
|
: DialogContainer(osystem)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
MessageMenu::~MessageMenu()
|
||||||
|
{
|
||||||
|
delete myMessageDialog; myMessageDialog = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
Dialog* MessageMenu::baseDialog()
|
||||||
|
{
|
||||||
|
if (myMessageDialog == nullptr)
|
||||||
|
myMessageDialog = new MessageDialog(myOSystem, *this, myOSystem.frameBuffer().font(),
|
||||||
|
FBMinimum::Width, FBMinimum::Height);
|
||||||
|
|
||||||
|
return myMessageDialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void MessageMenu::setMessage(const string& title, const StringList& text, bool yesNo)
|
||||||
|
{
|
||||||
|
myMessageDialog->setMessage(title, text, yesNo);
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void MessageMenu::setMessage(const string& title, const string& text, bool yesNo)
|
||||||
|
{
|
||||||
|
myMessageDialog->setMessage(title, text, yesNo);
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
bool MessageMenu::confirmed()
|
||||||
|
{
|
||||||
|
if (myMessageDialog != nullptr)
|
||||||
|
return myMessageDialog->confirmed();
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
|
@ -0,0 +1,57 @@
|
||||||
|
//============================================================================
|
||||||
|
//
|
||||||
|
// 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-2020 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 MESSAGE_MENU_HXX
|
||||||
|
#define MESSAGE_MENU_HXX
|
||||||
|
|
||||||
|
class OSystem;
|
||||||
|
class MessageDialog;
|
||||||
|
|
||||||
|
#include "DialogContainer.hxx"
|
||||||
|
|
||||||
|
/**
|
||||||
|
The base dialog for all message menus in Stella.
|
||||||
|
|
||||||
|
@author Thomas Jentzsch
|
||||||
|
*/
|
||||||
|
class MessageMenu : public DialogContainer
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
Create a new menu stack
|
||||||
|
*/
|
||||||
|
explicit MessageMenu(OSystem& osystem);
|
||||||
|
virtual ~MessageMenu();
|
||||||
|
|
||||||
|
void setMessage(const string& title, const string& text, bool yesNo = false);
|
||||||
|
void setMessage(const string& title, const StringList& text, bool yesNo = false);
|
||||||
|
bool confirmed();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Dialog* baseDialog() override;
|
||||||
|
MessageDialog* myMessageDialog{nullptr};
|
||||||
|
|
||||||
|
private:
|
||||||
|
// Following constructors and assignment operators not supported
|
||||||
|
MessageMenu() = delete;
|
||||||
|
MessageMenu(const MessageMenu&) = delete;
|
||||||
|
MessageMenu(MessageMenu&&) = delete;
|
||||||
|
MessageMenu& operator=(const MessageMenu&) = delete;
|
||||||
|
MessageMenu& operator=(MessageMenu&&) = delete;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue