diff --git a/Blocks3D VS2003.vcproj b/Blocks3D VS2003.vcproj
index 3a75a92..b832ddc 100644
--- a/Blocks3D VS2003.vcproj
+++ b/Blocks3D VS2003.vcproj
@@ -27,7 +27,7 @@
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
WholeProgramOptimization="TRUE"
- AdditionalIncludeDirectories="".\src\include""
+ AdditionalIncludeDirectories="C:\libraries\ode\include;C:\libraries\sdl\include;"C:\libraries\g3d-6_10\include";.\src\include"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;NO_SDL_MAIN;_ATL_STATIC_REGISTRY"
StringPooling="TRUE"
RuntimeLibrary="2"
@@ -47,6 +47,7 @@
OutputFile="./Blocks3D.exe"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
+ AdditionalLibraryDirectories="C:\libraries\sdl\lib\x86;C:\libraries\ode\lib\releaselib;"C:\libraries\g3d-6_10\win32-7-lib""
ProgramDatabaseFile=".\Release/Blocks3D.pdb"
SubSystem="2"
StackReserveSize="16777216"
@@ -96,7 +97,7 @@
-
+
\ No newline at end of file
diff --git a/src/include/DataModelV3/Gui/BaseButtonInstance.h b/src/include/DataModelV3/Gui/BaseButtonInstance.h
index 06a7e2a..9dd1de3 100644
--- a/src/include/DataModelV3/Gui/BaseButtonInstance.h
+++ b/src/include/DataModelV3/Gui/BaseButtonInstance.h
@@ -12,6 +12,7 @@ namespace B3D{
virtual void drawObj(RenderDevice* rd, Vector2 mousePos, bool mouseDown);
virtual bool mouseInButton(float, float, RenderDevice* rd);
virtual void onMouseClick();
+ virtual void setCallback(void (*callback)(DataModelInstance * theDatamodel, BaseButtonInstance * theCaller, WPARAM wParam, LPARAM lParam));
void setActionCode(int actionCode);
bool floatBottom;
bool floatRight;
@@ -21,5 +22,6 @@ namespace B3D{
protected:
int actionCode;
bool mouseInArea(float, float, float, float, float, float);
+ void (*callback)(DataModelInstance * theDatamodel, BaseButtonInstance * theCaller, WPARAM wParam, LPARAM lParam);
};
}
\ No newline at end of file
diff --git a/src/source/DataModelV3/Gui/BaseButtonInstance.cpp b/src/source/DataModelV3/Gui/BaseButtonInstance.cpp
index ed969d9..b1660eb 100644
--- a/src/source/DataModelV3/Gui/BaseButtonInstance.cpp
+++ b/src/source/DataModelV3/Gui/BaseButtonInstance.cpp
@@ -4,6 +4,7 @@ using namespace B3D;
BaseButtonInstance::BaseButtonInstance(void) : Instance()
{
actionCode = 0;
+ callback = NULL;
}
void BaseButtonInstance::render(RenderDevice* rd)
@@ -29,12 +30,20 @@ bool BaseButtonInstance::mouseInButton(float mousex, float mousey, RenderDevice*
void BaseButtonInstance::onMouseClick()
{
+ if(callback != NULL)
+ {
+ callback(this->getParentDataModel(), this, NULL, NULL);
+ }
// if(listener != NULL)
// {
// listener->onButton1MouseClick(this);
// }
}
+void BaseButtonInstance::setCallback(void (*callback)(DataModelInstance * theDatamodel, BaseButtonInstance * theCaller, WPARAM wParam, LPARAM lParam))
+{
+ this->callback = callback;
+}
bool BaseButtonInstance::mouseInArea(float point1x, float point1y, float point2x, float point2y, float mousex, float mousey)
{
diff --git a/src/source/DataModelV3/Gui/GuiRootInstance.cpp b/src/source/DataModelV3/Gui/GuiRootInstance.cpp
index 1fefeb8..6326cc0 100644
--- a/src/source/DataModelV3/Gui/GuiRootInstance.cpp
+++ b/src/source/DataModelV3/Gui/GuiRootInstance.cpp
@@ -22,6 +22,10 @@ using namespace B3D;
#define VS03_WORKAROUND
#endif
+void menuCallback(DataModelInstance * theDataModel, BaseButtonInstance * theCaller, WPARAM wParam, LPARAM lParam) {
+ MessageBoxA(NULL, "Tomato", "Tomato", MB_OK);
+}
+
ImageButtonInstance* GuiRootInstance::makeImageButton(G3D::TextureRef newImage = NULL, G3D::TextureRef overImage = NULL, G3D::TextureRef downImage = NULL, G3D::TextureRef disableImage = NULL)
{
//Oh come on
@@ -65,7 +69,7 @@ TextButtonInstance* makeToolbarTextButton(std::string title, std::string name, V
button->fontLocationRelativeTo = Vector2(10, 0);
button->boxColorOvr = Color4(0.6F,0.6F,0.6F,0.4F);
button->setAllColorsSame();
- //button->setButtonListener(menuListener);
+ button->setCallback(&menuCallback);
return button;
}
@@ -150,7 +154,7 @@ GuiRootInstance::GuiRootInstance() : Instance(), _message(""), _messageTime(0)
button->setParent(this);
button->name = "MENU";
//TODO Define Action
- //button->setButtonListener(menuListener);
+ button->setCallback(&menuCallback);
ImageButtonInstance* instance = new ToggleImageButtonInstance(
Texture::fromFile(VS03_WORKAROUND GetFileInPath("/content/images/Run.png")),
@@ -162,7 +166,7 @@ GuiRootInstance::GuiRootInstance() : Instance(), _message(""), _messageTime(0)
Texture::fromFile(VS03_WORKAROUND GetFileInPath("/content/images/Stop_dn.png"))
);
//TODO Define Action
- //instance->setButtonListener(menuListener);
+ instance->setCallback(&menuCallback);
instance->name = "go";
instance->size = Vector2(65,65);
instance->position = Vector2(6.5, 25);