Menu now works

This commit is contained in:
andreja6
2020-03-10 13:26:01 -07:00
parent 30529c5387
commit 72c6d19d7f
9 changed files with 79 additions and 10 deletions

View File

@@ -20,7 +20,11 @@ void BaseButtonInstance::render(RenderDevice* rd)
BaseButtonInstance::~BaseButtonInstance(void) BaseButtonInstance::~BaseButtonInstance(void)
{ {
delete listener; if(listener != NULL && listener->doDelete)
{
delete listener;
listener = NULL;
}
} }
void BaseButtonInstance::setButtonListener(ButtonListener* buttonListener) void BaseButtonInstance::setButtonListener(ButtonListener* buttonListener)

View File

@@ -4,6 +4,7 @@
ButtonListener::ButtonListener() ButtonListener::ButtonListener()
{ {
doDelete = true;
} }
ButtonListener::~ButtonListener(void) ButtonListener::~ButtonListener(void)

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
//#include "Application.h" //#include "Application.h"
//#include "BaseButtonInstance.h" #include "BaseButtonInstance.h"
class BaseButtonInstance; class BaseButtonInstance;
@@ -10,6 +10,7 @@ class ButtonListener
ButtonListener(); ButtonListener();
~ButtonListener(void); ~ButtonListener(void);
virtual void onButton1MouseClick(BaseButtonInstance*); virtual void onButton1MouseClick(BaseButtonInstance*);
bool doDelete;
//virtual void onMouseOver(); //TODO //virtual void onMouseOver(); //TODO
//virtual void onMouseOut(); //TODO //virtual void onMouseOut(); //TODO
//virtual void onButton1MouseDown(); //TODO //virtual void onButton1MouseDown(); //TODO

View File

@@ -302,10 +302,6 @@
RelativePath=".\StringFunctions.cpp" RelativePath=".\StringFunctions.cpp"
> >
</File> </File>
<File
RelativePath=".\ToggleImageButtonInstance.cpp"
>
</File>
<File <File
RelativePath=".\Tool.cpp" RelativePath=".\Tool.cpp"
> >
@@ -357,6 +353,10 @@
RelativePath=".\TextButtonInstance.cpp" RelativePath=".\TextButtonInstance.cpp"
> >
</File> </File>
<File
RelativePath=".\ToggleImageButtonInstance.cpp"
>
</File>
<File <File
RelativePath=".\WorkspaceInstance.cpp" RelativePath=".\WorkspaceInstance.cpp"
> >
@@ -393,6 +393,10 @@
RelativePath=".\RotateButtonListener.cpp" RelativePath=".\RotateButtonListener.cpp"
> >
</File> </File>
<File
RelativePath=".\ToolbarListener.cpp"
>
</File>
</Filter> </Filter>
</Filter> </Filter>
<Filter <Filter
@@ -574,6 +578,10 @@
RelativePath=".\ModeSelectionListener.h" RelativePath=".\ModeSelectionListener.h"
> >
</File> </File>
<File
RelativePath=".\ToolbarListener.h"
>
</File>
</Filter> </Filter>
</Filter> </Filter>
<Filter <Filter

View File

@@ -15,6 +15,7 @@
#include "RotateButtonListener.h" #include "RotateButtonListener.h"
#include "CameraButtonListener.h" #include "CameraButtonListener.h"
#include "DeleteListener.h" #include "DeleteListener.h"
#include "ToolbarListener.h"
#include "ImageButtonInstance.h" #include "ImageButtonInstance.h"
@@ -31,9 +32,11 @@ TextButtonInstance* GuiRoot::makeTextButton()
TextButtonInstance* part = new TextButtonInstance(); TextButtonInstance* part = new TextButtonInstance();
return part; return part;
} }
ToolbarListener * toolbar;
GuiRoot::GuiRoot() : _message(""), _messageTime(0) GuiRoot::GuiRoot() : _message(""), _messageTime(0)
{ {
toolbar = new ToolbarListener();
toolbar->doDelete = false;
g_fntdominant = GFont::fromFile(GetFileInPath("/content/font/dominant.fnt")); g_fntdominant = GFont::fromFile(GetFileInPath("/content/font/dominant.fnt"));
g_fntlighttrek = GFont::fromFile(GetFileInPath("/content/font/lighttrek.fnt")); g_fntlighttrek = GFont::fromFile(GetFileInPath("/content/font/lighttrek.fnt"));
@@ -51,6 +54,8 @@ GuiRoot::GuiRoot() : _message(""), _messageTime(0)
button->setAllColorsSame(); button->setAllColorsSame();
button->boxOutlineColorOvr = Color3(0,255,255); button->boxOutlineColorOvr = Color3(0,255,255);
button->boxColorDn = Color4(button->boxColor.r,button->boxColor.g,button->boxColor.b, 0.2F); button->boxColorDn = Color4(button->boxColor.r,button->boxColor.g,button->boxColor.b, 0.2F);
button->setButtonListener(toolbar);
toolbar->addButtonRef(button);
button = makeTextButton(); button = makeTextButton();
@@ -66,7 +71,8 @@ GuiRoot::GuiRoot() : _message(""), _messageTime(0)
button->setAllColorsSame(); button->setAllColorsSame();
button->boxOutlineColorOvr = Color3(0,255,255); button->boxOutlineColorOvr = Color3(0,255,255);
button->boxColorDn = Color4(button->boxColor.r,button->boxColor.g,button->boxColor.b, 0.2F); button->boxColorDn = Color4(button->boxColor.r,button->boxColor.g,button->boxColor.b, 0.2F);
button->setButtonListener(toolbar);
toolbar->addButtonRef(button);
button = makeTextButton(); button = makeTextButton();
button->boxBegin = Vector2(0, -72); button->boxBegin = Vector2(0, -72);
@@ -81,6 +87,8 @@ GuiRoot::GuiRoot() : _message(""), _messageTime(0)
button->setAllColorsSame(); button->setAllColorsSame();
button->boxOutlineColorOvr = Color3(0,255,255); button->boxOutlineColorOvr = Color3(0,255,255);
button->boxColorDn = Color4(button->boxColor.r,button->boxColor.g,button->boxColor.b, 0.2F); button->boxColorDn = Color4(button->boxColor.r,button->boxColor.g,button->boxColor.b, 0.2F);
button->setButtonListener(toolbar);
toolbar->addButtonRef(button);
button = makeTextButton(); button = makeTextButton();
button->boxBegin = Vector2(0, -96); button->boxBegin = Vector2(0, -96);
@@ -95,6 +103,8 @@ GuiRoot::GuiRoot() : _message(""), _messageTime(0)
button->setAllColorsSame(); button->setAllColorsSame();
button->boxOutlineColorOvr = Color3(0,255,255); button->boxOutlineColorOvr = Color3(0,255,255);
button->boxColorDn = Color4(button->boxColor.r,button->boxColor.g,button->boxColor.b, 0.2F); button->boxColorDn = Color4(button->boxColor.r,button->boxColor.g,button->boxColor.b, 0.2F);
button->setButtonListener(toolbar);
toolbar->addButtonRef(button);
button = makeTextButton(); button = makeTextButton();
button->boxBegin = Vector2(0, -120); button->boxBegin = Vector2(0, -120);
@@ -109,6 +119,8 @@ GuiRoot::GuiRoot() : _message(""), _messageTime(0)
button->setAllColorsSame(); button->setAllColorsSame();
button->boxOutlineColorOvr = Color3(0,255,255); button->boxOutlineColorOvr = Color3(0,255,255);
button->boxColorDn = Color4(button->boxColor.r,button->boxColor.g,button->boxColor.b, 0.2F); button->boxColorDn = Color4(button->boxColor.r,button->boxColor.g,button->boxColor.b, 0.2F);
button->setButtonListener(toolbar);
toolbar->addButtonRef(button);
//Top bar //Top bar
button = makeTextButton(); button = makeTextButton();
@@ -503,6 +515,11 @@ void GuiRoot::update()
} }
} }
GuiRoot::~GuiRoot()
{
delete toolbar;
}
void GuiRoot::onMouseLeftUp(G3D::RenderDevice* renderDevice, int x,int y) void GuiRoot::onMouseLeftUp(G3D::RenderDevice* renderDevice, int x,int y)
{ {
std::vector<Instance*> instances_2D = this->getAllChildren(); std::vector<Instance*> instances_2D = this->getAllChildren();

View File

@@ -9,6 +9,7 @@ class GuiRoot : public Instance
{ {
public: public:
GuiRoot(); GuiRoot();
GuiRoot::~GuiRoot();
TextButtonInstance* makeTextButton(); TextButtonInstance* makeTextButton();
void drawButtons(RenderDevice* rd); void drawButtons(RenderDevice* rd);
ImageButtonInstance* makeImageButton(G3D::TextureRef newImage, G3D::TextureRef overImage, G3D::TextureRef downImage, G3D::TextureRef disableImage); ImageButtonInstance* makeImageButton(G3D::TextureRef newImage, G3D::TextureRef overImage, G3D::TextureRef downImage, G3D::TextureRef disableImage);

5
Tool.h
View File

@@ -11,6 +11,7 @@ public:
void OnButton1MouseUp(); void OnButton1MouseUp();
void OnButton2MouseUp(); void OnButton2MouseUp();
void OnButton3MouseUp(); void OnButton3MouseUp();
void OnKeyPress(); void OnMouseScroll();
void OnKeyRelease(); void OnKeyDown();
void OnKeyUp();
}; };

23
ToolbarListener.cpp Normal file
View File

@@ -0,0 +1,23 @@
#include "ToolbarListener.h"
#include "Globals.h"
#include "StringFunctions.h"
#include "Application.h"
void ToolbarListener::onButton1MouseClick(BaseButtonInstance* btn)
{
if(TextButtonInstance* button = dynamic_cast<TextButtonInstance*>(btn))
{
for(size_t i = 0; i < btns.size(); i++)
btns[i]->selected = false;
button->selected = true;
if(button->title == "Model") g_usableApp->navigateToolbox("http://androdome.com/res/ClientToolbox.php");
else if(button->title == "Surface") g_usableApp->navigateToolbox(GetFileInPath("/content/page/surface.html"));
else if(button->title == "Color") g_usableApp->navigateToolbox(GetFileInPath("/content/page/color.html"));
else if(button->title == "Controller") g_usableApp->navigateToolbox(GetFileInPath("/content/page/controller.html"));
else if(button->title == "Hopper") g_usableApp->navigateToolbox(GetFileInPath("/content/page/hopper.html"));
}
}
void ToolbarListener::addButtonRef(BaseButtonInstance* button)
{
btns.push_back(button);
}

13
ToolbarListener.h Normal file
View File

@@ -0,0 +1,13 @@
#pragma once
#include "buttonlistener.h"
#pragma once
#include <G3DAll.h>
class ToolbarListener : public ButtonListener
{
public:
void onButton1MouseClick(BaseButtonInstance* button);
void addButtonRef(BaseButtonInstance* button);
private:
std::vector<BaseButtonInstance*> btns;
};