Made listeners use heap

This commit is contained in:
Vulpovile
2021-03-08 23:52:10 -08:00
parent 20afd874dc
commit 3935a7072e
11 changed files with 35 additions and 91 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -1,32 +0,0 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: G3DTest - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\Users\Andreja\AppData\Local\Temp\RSPFD70.tmp" with contents
[
/nologo /MLd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /Fp"Debug/G3DTest.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c
"C:\USERS\ANDREJA\G3D\G3DTest\main.cpp"
]
Creating command line "cl.exe @C:\Users\Andreja\AppData\Local\Temp\RSPFD70.tmp"
Creating temporary file "C:\Users\Andreja\AppData\Local\Temp\RSPFD71.tmp" with contents
[
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /incremental:yes /pdb:"Debug/G3DTest.pdb" /debug /machine:I386 /out:"Debug/G3DTest.exe" /pdbtype:sept
.\Debug\main.obj
]
Creating command line "link.exe @C:\Users\Andreja\AppData\Local\Temp\RSPFD71.tmp"
<h3>Output Window</h3>
Compiling...
main.cpp
Linking...
<h3>Results</h3>
G3DTest.exe - 0 error(s), 0 warning(s)
</pre>
</body>
</html>

View File

@@ -14,7 +14,7 @@ public:
virtual void drawObj(RenderDevice* rd, Vector2 mousePos, bool mouseDown);
virtual bool mouseInButton(float, float, RenderDevice* rd);
virtual void onMouseClick();
void setButtonListener(ButtonListener*);
void setButtonListener(ButtonListener&);
bool floatBottom;
bool floatRight;
bool floatCenter;

View File

@@ -14,7 +14,7 @@ public:
virtual void drawObj(RenderDevice* rd, Vector2 mousePos, bool mouseDown);
virtual bool mouseInButton(float, float, RenderDevice* rd);
virtual void onMouseClick();
void setButtonListener(ButtonListener*);
void setButtonListener(ButtonListener&);
bool floatBottom;
bool floatRight;
bool floatCenter;

View File

@@ -28,7 +28,7 @@ BaseButtonInstance::~BaseButtonInstance(void)
}
}
void BaseButtonInstance::setButtonListener(ButtonListener* buttonListener)
void BaseButtonInstance::setButtonListener(ButtonListener& buttonListener)
{
listener = buttonListener;
}

View File

@@ -21,16 +21,11 @@ void BaseButtonInstance::render(RenderDevice* rd)
BaseButtonInstance::~BaseButtonInstance(void)
{
if(listener != NULL && listener->doDelete)
{
delete listener;
listener = NULL;
}
}
void BaseButtonInstance::setButtonListener(ButtonListener* buttonListener)
void BaseButtonInstance::setButtonListener(ButtonListener& buttonListener)
{
listener = buttonListener;
listener = &buttonListener;
}
void BaseButtonInstance::drawObj(RenderDevice* rd, Vector2 mousePos, bool mouseDown){}

View File

@@ -18,6 +18,13 @@
#include "Listener/DeleteListener.h"
#include "Listener/ToolbarListener.h"
MenuButtonListener menuListener = MenuButtonListener();
ToolbarListener toolbar = ToolbarListener();
GUDButtonListener gud = GUDButtonListener();
ModeSelectionListener msl = ModeSelectionListener();
RotateButtonListener rbl = RotateButtonListener();
DeleteListener delet = DeleteListener();
CameraButtonListener cam = CameraButtonListener();
ImageButtonInstance* GuiRootInstance::makeImageButton(G3D::TextureRef newImage = NULL, G3D::TextureRef overImage = NULL, G3D::TextureRef downImage = NULL, G3D::TextureRef disableImage = NULL)
{
@@ -32,11 +39,8 @@ TextButtonInstance* GuiRootInstance::makeTextButton()
TextButtonInstance* part = new TextButtonInstance();
return part;
}
ToolbarListener * toolbar;
GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
{
toolbar = new ToolbarListener();
toolbar->doDelete = false;
g_fntdominant = GFont::fromFile(GetFileInPath("/content/font/dominant.fnt"));
g_fntlighttrek = GFont::fromFile(GetFileInPath("/content/font/lighttrek.fnt"));
@@ -55,7 +59,7 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
button->boxOutlineColorOvr = Color3(0,255,255);
button->boxColorDn = Color4(button->boxColor.r,button->boxColor.g,button->boxColor.b, 0.2F);
button->setButtonListener(toolbar);
toolbar->addButtonRef(button);
toolbar.addButtonRef(button);
button = makeTextButton();
@@ -72,7 +76,7 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
button->boxOutlineColorOvr = Color3(0,255,255);
button->boxColorDn = Color4(button->boxColor.r,button->boxColor.g,button->boxColor.b, 0.2F);
button->setButtonListener(toolbar);
toolbar->addButtonRef(button);
toolbar.addButtonRef(button);
button = makeTextButton();
button->boxBegin = Vector2(0, -72);
@@ -88,7 +92,7 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
button->boxOutlineColorOvr = Color3(0,255,255);
button->boxColorDn = Color4(button->boxColor.r,button->boxColor.g,button->boxColor.b, 0.2F);
button->setButtonListener(toolbar);
toolbar->addButtonRef(button);
toolbar.addButtonRef(button);
button = makeTextButton();
button->boxBegin = Vector2(0, -96);
@@ -104,7 +108,7 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
button->boxOutlineColorOvr = Color3(0,255,255);
button->boxColorDn = Color4(button->boxColor.r,button->boxColor.g,button->boxColor.b, 0.2F);
button->setButtonListener(toolbar);
toolbar->addButtonRef(button);
toolbar.addButtonRef(button);
button = makeTextButton();
button->boxBegin = Vector2(0, -120);
@@ -120,7 +124,7 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
button->boxOutlineColorOvr = Color3(0,255,255);
button->boxColorDn = Color4(button->boxColor.r,button->boxColor.g,button->boxColor.b, 0.2F);
button->setButtonListener(toolbar);
toolbar->addButtonRef(button);
toolbar.addButtonRef(button);
//Top bar
button = makeTextButton();
@@ -137,7 +141,7 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
button->setAllColorsSame();
button->boxColorOvr = Color4(0.6F,0.6F,0.6F,0.4F);
button->name = "file";
button->setButtonListener(new MenuButtonListener());
button->setButtonListener(menuListener);
button = makeTextButton();
button->boxBegin = Vector2(125, 0);
@@ -211,7 +215,7 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
button->font = g_fntlighttrek;
button->fontLocationRelativeTo = Vector2(10, 0);
button->setParent(this);
button->setButtonListener(new GUDButtonListener());
button->setButtonListener(menuListener);
button = makeTextButton();
button->boxBegin = Vector2(0,240);
@@ -227,7 +231,7 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
button->font = g_fntlighttrek;
button->fontLocationRelativeTo = Vector2(10, 0);
button->setParent(this);
button->setButtonListener(new GUDButtonListener());
button->setButtonListener(gud);
button = makeTextButton();
button->boxBegin = Vector2(0,265);
@@ -243,7 +247,7 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
button->fontLocationRelativeTo = Vector2(10, 0);
button->setParent(this);
button->name = "Duplicate";
button->setButtonListener(new GUDButtonListener());
button->setButtonListener(gud);
ImageButtonInstance* instance = new ToggleImageButtonInstance(
Texture::fromFile(GetFileInPath("/content/images/Run.png")),
@@ -254,7 +258,7 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
Texture::fromFile(GetFileInPath("/content/images/Stop_ovr.png")),
Texture::fromFile(GetFileInPath("/content/images/Stop_dn.png"))
);
instance->setButtonListener(new MenuButtonListener());
instance->setButtonListener(menuListener);
instance->name = "go";
instance->size = Vector2(65,65);
instance->position = Vector2(6.5, 25);
@@ -270,14 +274,14 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
instance->position = Vector2(15, 90);
instance->setParent(this);
instance->name = "Cursor";
instance->setButtonListener(new ModeSelectionListener());
instance->setButtonListener(msl);
instance = makeImageButton(Texture::fromFile(GetFileInPath("/content/images/ScaleTool.png")),Texture::fromFile(GetFileInPath("/content/images/ScaleTool_ovr.png")),Texture::fromFile(GetFileInPath("/content/images/ScaleTool_dn.png")),Texture::fromFile(GetFileInPath("/content/images/ScaleTool_ds.png")));
instance->size = Vector2(40,40);
instance->position = Vector2(0, 140);
instance->setParent(this);
instance->name = "Resize";
instance->setButtonListener(new ModeSelectionListener());
instance->setButtonListener(msl);
instance = makeImageButton(
@@ -289,7 +293,7 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
instance->position = Vector2(40, 140);
instance->setParent(this);
instance->name = "Arrows";
instance->setButtonListener(new ModeSelectionListener());
instance->setButtonListener(msl);
instance = makeImageButton(
Texture::fromFile(GetFileInPath("/content/images/SelectionRotate.png")),
@@ -300,7 +304,7 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
instance->position = Vector2(10, 175);
instance->setParent(this);
instance->name = "Rotate";
instance->setButtonListener(new RotateButtonListener());
instance->setButtonListener(rbl);
instance = makeImageButton(
Texture::fromFile(GetFileInPath("/content/images/SelectionTilt.png")),
@@ -311,7 +315,7 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
instance->position = Vector2(40, 175);
instance->setParent(this);
instance->name = "Tilt";
instance->setButtonListener(new RotateButtonListener());
instance->setButtonListener(rbl);
instance = makeImageButton(
@@ -323,7 +327,7 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
instance->position = Vector2(20, 284);
instance->setParent(this);
instance->name = "Delete";
instance->setButtonListener(new DeleteListener());
instance->setButtonListener(delet);
instance = makeImageButton(
Texture::fromFile(GetFileInPath("/content/images/CameraZoomIn.png")),
@@ -335,7 +339,7 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
instance->position = Vector2(-77, -90);
instance->setParent(this);
instance->name = "ZoomIn";
instance->setButtonListener(new CameraButtonListener());
instance->setButtonListener(cam);
instance = makeImageButton(
Texture::fromFile(GetFileInPath("/content/images/CameraZoomOut.png")),
@@ -347,7 +351,7 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
instance->position = Vector2(-77, -31);
instance->setParent(this);
instance->name = "ZoomOut";
instance->setButtonListener(new CameraButtonListener());
instance->setButtonListener(cam);
instance = makeImageButton(
Texture::fromFile(GetFileInPath("/content/images/CameraPanLeft.png")),
@@ -359,7 +363,7 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
instance->position = Vector2(-110, -50);
instance->setParent(this);
instance->name = "PanLeft";
instance->setButtonListener(new CameraButtonListener());
instance->setButtonListener(cam);
instance = makeImageButton(
Texture::fromFile(GetFileInPath("/content/images/CameraPanRight.png")),
@@ -371,7 +375,7 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
instance->position = Vector2(-45, -50);
instance->setParent(this);
instance->name = "PanRight";
instance->setButtonListener(new CameraButtonListener());
instance->setButtonListener(cam);
instance = makeImageButton(
Texture::fromFile(GetFileInPath("/content/images/CameraCenter.png")),
@@ -383,7 +387,7 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
instance->position = Vector2(-77, -60);
instance->setParent(this);
instance->name = "CenterCam";
instance->setButtonListener(new CameraButtonListener());
instance->setButtonListener(cam);
instance = makeImageButton(
Texture::fromFile(GetFileInPath("/content/images/CameraTiltUp.png")),
@@ -395,7 +399,7 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
instance->position = Vector2(-105, -75);
instance->setParent(this);
instance->name = "TiltUp";
instance->setButtonListener(new CameraButtonListener());
instance->setButtonListener(cam);
instance = makeImageButton(
Texture::fromFile(GetFileInPath("/content/images/CameraTiltDown.png")),
@@ -407,7 +411,7 @@ GuiRootInstance::GuiRootInstance() : _message(""), _messageTime(0)
instance->position = Vector2(-40, -75);
instance->setParent(this);
instance->name = "TiltDown";
instance->setButtonListener(new CameraButtonListener());
instance->setButtonListener(cam);
}
@@ -519,7 +523,6 @@ void GuiRootInstance::update()
GuiRootInstance::~GuiRootInstance()
{
delete toolbar;
}
void GuiRootInstance::onMouseLeftUp(G3D::RenderDevice* renderDevice, int x,int y)

View File

@@ -38,7 +38,6 @@ ImageButtonInstance::~ImageButtonInstance(void)
image_ovr = NULL;
image_ds = NULL;
image_dn = NULL;
delete listener;
listener = NULL;
selected = false;
}

View File

@@ -39,7 +39,6 @@ ToggleImageButtonInstance::~ToggleImageButtonInstance(void)
image_ovr = NULL;
image_ds = NULL;
image_dn = NULL;
delete listener;
listener = NULL;
selected = false;
}

View File

@@ -146,24 +146,6 @@ LRESULT CALLBACK G3DProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
}
LRESULT CALLBACK MenuProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
Application *app = (Application *)GetWindowLongPtr(hwnd, GWL_USERDATA);
if (app==NULL)
{
return DefWindowProc(hwnd, msg, wParam, lParam);
}
switch(msg)
{
default:
{
return DefWindowProc(hwnd, msg, wParam, lParam);
}
}
return 0;
}
int main(int argc, char** argv) {
try{
hresult = OleInitialize(NULL);
@@ -206,8 +188,6 @@ int main(int argc, char** argv) {
return false;
if (!createWindowClass("G3DWindow",G3DProc,hThisInstance))
return false;
if (!createWindowClass("MenuWindow",MenuProc,hThisInstance))
return false;
HWND hwndMain = CreateWindowEx(
WS_EX_APPWINDOW,