summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/setup.cpp80
-rw-r--r--src/gui/setup.h21
2 files changed, 47 insertions, 54 deletions
diff --git a/src/gui/setup.cpp b/src/gui/setup.cpp
index 07ade6d3..8e6e23d6 100644
--- a/src/gui/setup.cpp
+++ b/src/gui/setup.cpp
@@ -7,69 +7,67 @@
#include "setup.h"
-extern bool show_setup;
-
-/*
- * Setup action listener
- */
-void SetupActionListener::action(const std::string& eventId) {
- if(eventId == "apply") {
- puts("apply");
- show_setup = false;
- } else if (eventId == "cancel") {
- puts("calncel");
- show_setup = false;
- }
-}
-
/*
* Display setup dialog
*/
-Setup::Setup() {
- visible = false;
- setupDialog = new gcn::Container();
+Setup::Setup(gcn::Container *parent)
+ : Window(parent, "Setup")
+{
displayLabel = new gcn::Label("Display");
applyButton = new gcn::Button("Apply");
cancelButton = new gcn::Button("Cancel");
- /* Set dialog elements */
- setupDialog->setDimension(gcn::Rectangle(300,300,200,200));
- displayLabel->setPosition(4,14);
- applyButton->setPosition(30,162);
- cancelButton->setPosition(146,162);
+ /* Set dimension */
+ displayLabel->setDimension(gcn::Rectangle(0,0,128, 16));
+ applyButton->setDimension(gcn::Rectangle(0,0,128, 16));
+ cancelButton->setDimension(gcn::Rectangle(0,0,128, 16));
/* Set events */
applyButton->setEventId("apply");
cancelButton->setEventId("cancel");
+ /* Set position */
+ displayLabel->setPosition(10,10);
+ applyButton->setPosition(10,100);
+ cancelButton->setPosition(100,100);
+
/* Listen for actions */
- SetupActionListener *setupActionListener = new SetupActionListener();
- applyButton->addActionListener(setupActionListener);
- cancelButton->addActionListener(setupActionListener);
+ applyButton->addActionListener(this);
+ cancelButton->addActionListener(this);
/* Assemble dialog */
- setupDialog->add(displayLabel);
- setupDialog->add(applyButton);
- setupDialog->add(cancelButton);
-
- setupDialog->setVisible(visible);
- guiTop->add(setupDialog);
+ add(displayLabel);
+ add(applyButton);
+ add(cancelButton);
+
+ setSize(240,216);
+ setLocationRelativeTo(getParent());
}
Setup::~Setup() {
- delete setupDialog;
delete displayLabel;
delete applyButton;
delete cancelButton;
}
-void Setup::toggleVisible(bool toggle) {
- if (!visible && toggle) {
- visible = true;
- }
- else if (visible && !toggle) {
- visible = false;
- }
+void Setup::action(const std::string& eventId)
+{
+
+ if(eventId == "apply") {
+ puts("apply");
+ }
+ else if(eventId == "cancel") {
+ puts("cancel");
+ }
+}
+
+void create_setup() {
+ Setup *setup;
+ setup = new Setup(guiTop);
+
+ while(!key[KEY_ESC] && !key[KEY_ENTER]) {
+ gui_update(NULL);
+ }
- setupDialog->setVisible(visible);
+ delete setup;
}
diff --git a/src/gui/setup.h b/src/gui/setup.h
index bb211997..d94069a9 100644
--- a/src/gui/setup.h
+++ b/src/gui/setup.h
@@ -13,26 +13,21 @@
#include <winalleg.h>
#endif
-class Setup {
- public:
- Setup();
- ~Setup();
- void toggleVisible(bool toggle);
-
+class Setup : public Window, public gcn::ActionListener {
private:
- bool visible;
/* Dialog parts */
- gcn::Container *setupDialog;
gcn::Label *displayLabel;
gcn::Button *applyButton;
gcn::Button *cancelButton;
-};
-
-/* The action listener for setup dialog */
-class SetupActionListener : public gcn::ActionListener
-{
+
public:
+ Setup(gcn::Container *parent);
+ ~Setup();
+
void action(const std::string& eventId);
+
};
+void create_setup();
+
#endif