diff --git a/ButtonListener.cpp b/ButtonListener.cpp new file mode 100644 index 0000000..4e9ff6c --- /dev/null +++ b/ButtonListener.cpp @@ -0,0 +1,14 @@ +#include "ButtonListener.h" + +ButtonListener::ButtonListener(void) +{ +} + +ButtonListener::~ButtonListener(void) +{ +} + +void ButtonListener::onButton1MouseClick(TextButtonInstance* button) +{ +} + diff --git a/ButtonListener.h b/ButtonListener.h new file mode 100644 index 0000000..c12b8e3 --- /dev/null +++ b/ButtonListener.h @@ -0,0 +1,18 @@ +#pragma once +#include "TextButtonInstance.h" +class TextButtonInstance; +class ButtonListener +{ +public: + ButtonListener(void); + ~ButtonListener(void); + virtual void onButton1MouseClick(TextButtonInstance*); + //virtual void onMouseOver(); //TODO + //virtual void onMouseOut(); //TODO + //virtual void onButton1MouseDown(); //TODO + //virtual void onButton1MouseUp(); //TODO + //virtual void onButton2MouseClick(); //TODO + //virtual void onButton2MouseDown(); //TODO + //virtual void onButton2MouseUp(); //TODO + //What to do now... +}; diff --git a/G3DTest.vcproj b/G3DTest.vcproj index 74b0e2c..2dbac1f 100644 --- a/G3DTest.vcproj +++ b/G3DTest.vcproj @@ -230,6 +230,10 @@ Name="Source Files" Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" > + + @@ -279,6 +283,10 @@ Name="Header Files" Filter="h;hpp;hxx;hm;inl" > + + diff --git a/TextButtonInstance.cpp b/TextButtonInstance.cpp index de70aff..e22b991 100644 --- a/TextButtonInstance.cpp +++ b/TextButtonInstance.cpp @@ -22,6 +22,7 @@ bool floatBottom; bool floatRight; bool floatCenter; bool visible; +ButtonListener* buttonListener; TextButtonInstance::TextButtonInstance(void) { @@ -40,11 +41,24 @@ TextButtonInstance::TextButtonInstance(void) floatCenter = false; visible = true; className = "TextButton"; - } TextButtonInstance::~TextButtonInstance(void) { + delete buttonListener; +} + +void TextButtonInstance::setButtonListener(ButtonListener* listener) +{ + buttonListener = listener; +} + +void TextButtonInstance::onClick() +{ + if(buttonListener != NULL) + { + buttonListener->onButton1MouseClick(this); + } } void TextButtonInstance::drawObj(RenderDevice* rd) diff --git a/TextButtonInstance.h b/TextButtonInstance.h index b574872..8dddb0c 100644 --- a/TextButtonInstance.h +++ b/TextButtonInstance.h @@ -1,6 +1,8 @@ #pragma once #include "instance.h" - +#pragma once +#include "ButtonListener.h" +class ButtonListener; class TextButtonInstance : public Instance { @@ -30,5 +32,6 @@ public: bool visible; int textSize; void drawObj(G3D::RenderDevice*); - + void setButtonListener(ButtonListener*); + void onClick(); }; \ No newline at end of file diff --git a/main.cpp b/main.cpp index 8ed0ec0..6ab22c5 100644 --- a/main.cpp +++ b/main.cpp @@ -340,7 +340,9 @@ void Demo::onInit() { void clearInstances() { for(size_t i = 0; i < instances.size(); i++) + { delete instances.at(i); + } delete dataModel; } void OnError(int err, std::string msg = "") @@ -354,10 +356,15 @@ void OnError(int err, std::string msg = "") void Demo::onCleanup() { clearInstances(); + go->~Texture(); + go_ovr->~Texture(); + go_dn->~Texture(); + app->sky->~Sky(); } + void Demo::onLogic() { // Add non-simulation game logic and AI code here } @@ -704,8 +711,6 @@ int main(int argc, char** argv) { settings.window.defaultIconFilename = GetFileInPath("/content/images/rico256c.png"); settings.window.resizable = true; settings.writeLicenseFile = false; - App app = App(settings); - //app.window()->setIcon(ExePath() + "/content/images/rico.png"); - app.run(); + App(settings).run(); return 0; } \ No newline at end of file