Skip to content

Commit

Permalink
Added template for creating new GUI Object classes
Browse files Browse the repository at this point in the history
  • Loading branch information
Neko-Box-Coder committed Aug 30, 2023
1 parent f8a3a4a commit 7853d20
Show file tree
Hide file tree
Showing 3 changed files with 93 additions and 0 deletions.
49 changes: 49 additions & 0 deletions Include/ssGUI/GUIObjectClasses/TemplateGUIObject.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#ifndef SSGUI_TEMPLATE_GUI_OBJECT_HPP
#define SSGUI_TEMPLATE_GUI_OBJECT_HPP

#include "ssGUI/GUIObjectClasses/Widget.hpp"

//namespace: ssGUI
namespace ssGUI
{
/*class: TemplateGUIObject
A template GUI Object. Use this to create new GUI Object Classes.
Variables & Constructor:
============================== C++ ==============================
protected:
=================================================================
============================== C++ ==============================
TemplateGUIObject::TemplateGUIObject()
{
}
=================================================================
*/
class TemplateGUIObject : public Widget
{
private:
TemplateGUIObject& operator=(TemplateGUIObject const& other) = default;

protected:
TemplateGUIObject(TemplateGUIObject const& other);

virtual void ConstructRenderInfo() override;

public:
static const std::string ListenerKey;

TemplateGUIObject();
virtual ~TemplateGUIObject() override;

//function: GetType
//See <Widget::GetType>
virtual ssGUI::Enums::GUIObjectType GetType() const override;

//function: Clone
//See <Widget::Clone>
virtual TemplateGUIObject* Clone(bool cloneChildren) override;

};
}

#endif
1 change: 1 addition & 0 deletions Src/ssGUI/GUIObjectClasses/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ target_sources(ssGUI PRIVATE
"${CMAKE_CURRENT_LIST_DIR}/Checkbox.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Menu.cpp"
"${CMAKE_CURRENT_LIST_DIR}/GUIObject.cpp"
"${CMAKE_CURRENT_LIST_DIR}/TemplateGUIObject.cpp"
)
43 changes: 43 additions & 0 deletions Src/ssGUI/GUIObjectClasses/TemplateGUIObject.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#include "ssGUI/GUIObjectClasses/TemplateGUIObject.hpp"

namespace ssGUI
{
TemplateGUIObject::TemplateGUIObject(TemplateGUIObject const& other) : Widget(other)
{
}

void TemplateGUIObject::ConstructRenderInfo()
{
}

const std::string TemplateGUIObject::ListenerKey = "Template GUI Object";

TemplateGUIObject::TemplateGUIObject()
{
}

TemplateGUIObject::~TemplateGUIObject()
{

}

ssGUI::Enums::GUIObjectType TemplateGUIObject::GetType() const
{
return ssGUI::Enums::GUIObjectType::WIDGET;
}

TemplateGUIObject* TemplateGUIObject::Clone(bool cloneChildren)
{
ssGUI_LOG_FUNC();
TemplateGUIObject* temp = new TemplateGUIObject(*this);
CloneExtensionsAndEventCallbacks(temp);

if(cloneChildren)
{
if(CloneChildren(this, temp) == nullptr)
return nullptr;
}

return temp;
}
}

0 comments on commit 7853d20

Please sign in to comment.