aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2011-02-28 02:30:41 +0200
committerEugene Sandulenko2011-03-17 17:31:05 +0200
commit901b5e209743dc5fdee136758956809e7eaf7eda (patch)
treeb0754a1ea2b6b948a9539cf175d77f0822139571
parentc8133914550a7ac8bab3761406882bcdfc8347a5 (diff)
downloadscummvm-rg350-901b5e209743dc5fdee136758956809e7eaf7eda.tar.gz
scummvm-rg350-901b5e209743dc5fdee136758956809e7eaf7eda.tar.bz2
scummvm-rg350-901b5e209743dc5fdee136758956809e7eaf7eda.zip
HUGO: Initial work on user input dialog
-rw-r--r--engines/hugo/dialogs.cpp20
-rw-r--r--engines/hugo/dialogs.h22
2 files changed, 41 insertions, 1 deletions
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