From 901b5e209743dc5fdee136758956809e7eaf7eda Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Mon, 28 Feb 2011 02:30:41 +0200 Subject: HUGO: Initial work on user input dialog --- engines/hugo/dialogs.cpp | 20 ++++++++++++++++++++ engines/hugo/dialogs.h | 22 +++++++++++++++++++++- 2 files changed, 41 insertions(+), 1 deletion(-) (limited to 'engines') diff --git a/engines/hugo/dialogs.cpp b/engines/hugo/dialogs.cpp index 7bcdea5cb1..5907012fb6 100644 --- a/engines/hugo/dialogs.cpp +++ b/engines/hugo/dialogs.cpp @@ -230,4 +230,24 @@ void TopMenu::handleMouseUp(int x, int y, int button, int clickCount) { Dialog::handleMouseUp(x, y, button, clickCount); } +EntryDialog::EntryDialog(const Common::String &title, const Common::String &buttonLabel, const Common::String &defaultValue) : GUI::Dialog(20, 20, 100, 50) { + new GUI::StaticTextWidget(this, 0, 0, 10, 10, title, Graphics::kTextAlignCenter); + + _text = new GUI::EditTextWidget(this, 0, 0, 50, 10, ""); + _text->setEditString(defaultValue); + + new GUI::ButtonWidget(this, 20, 20, 30, 10, buttonLabel, 0, kCmdButton); +} + +void EntryDialog::handleCommand(GUI::CommandSender *sender, uint32 command, uint32 data) { + switch (command) { + case kCmdButton: + close(); + break; + default: + Dialog::handleCommand(sender, command, data); + } +} + + } // End of namespace Hugo diff --git a/engines/hugo/dialogs.h b/engines/hugo/dialogs.h index 6e2a9063bc..0b7560a92a 100644 --- a/engines/hugo/dialogs.h +++ b/engines/hugo/dialogs.h @@ -27,6 +27,7 @@ #define HUGO_TOPMENU_H #include "gui/dialog.h" +#include "gui/widgets/edittext.h" namespace Hugo { @@ -54,6 +55,7 @@ enum { }; enum { + // TopMenu commands kCmdWhat = 'WHAT', kCmdMusic = 'MUZK', kCmdSoundFX = 'SOUN', @@ -62,7 +64,10 @@ enum { kCmdRecall = 'RECL', kCmdTurbo = 'TURB', kCmdLook = 'LOOK', - kCmdInvent = 'INVT' + kCmdInvent = 'INVT', + + // EntryDialog commands + kCmdButton = 'BTNP' }; class TopMenu : public GUI::Dialog { @@ -95,6 +100,21 @@ protected: uint16 arraySize; }; +class EntryDialog : public GUI::Dialog { + EntryDialog(const Common::String &title, const Common::String &buttonLabel, const Common::String &defaultValue); + ~EntryDialog(); + + void reflowLayout(); + void handleCommand(GUI::CommandSender *sender, uint32 command, uint32 data); + + const Common::String &getEditString() const { return _text->getEditString(); } + +protected: + void init(); + + GUI::EditTextWidget *_text; +}; + } #endif // HUGO_TOPMENU_H -- cgit v1.2.3