rename engine to src
This commit is contained in:
75
src/node_checkbox.cpp
Normal file
75
src/node_checkbox.cpp
Normal file
@@ -0,0 +1,75 @@
|
||||
#include "pch.h"
|
||||
#include "log.h"
|
||||
#include "node_checkbox.h"
|
||||
|
||||
Node* NodeCheckBox::clone_instantiate() const
|
||||
{
|
||||
return new NodeCheckBox();
|
||||
}
|
||||
|
||||
void NodeCheckBox::clone_children(Node* dest) const
|
||||
{
|
||||
Node::clone_children(dest);
|
||||
NodeCheckBox* n = static_cast<NodeCheckBox*>(dest);
|
||||
n->m_outer = (NodeBorder*)n->m_children[0].get();
|
||||
n->m_inner = (NodeBorder*)n->m_outer->m_children[0].get();
|
||||
n->m_mouse_ignore = false;
|
||||
}
|
||||
|
||||
void NodeCheckBox::init()
|
||||
{
|
||||
m_outer = new NodeBorder();
|
||||
m_inner = new NodeBorder();
|
||||
add_child(m_outer);
|
||||
m_outer->add_child(m_inner);
|
||||
m_outer->init();
|
||||
m_outer->m_color = { .3, .3, .3, 1 };
|
||||
m_outer->SetAlign(YGAlignCenter);
|
||||
m_outer->SetJustify(YGJustifyCenter);
|
||||
m_outer->SetPadding(5, 5, 5, 5);
|
||||
m_outer->SetWidthP(100);
|
||||
m_outer->SetHeightP(100);
|
||||
m_outer->m_mouse_ignore = false;
|
||||
m_inner->init();
|
||||
m_inner->SetWidthP(100);
|
||||
m_inner->SetHeightP(100);
|
||||
m_inner->m_border_color = glm::vec4(.8, .8, .8, 1);
|
||||
m_inner->m_thinkness = 1;
|
||||
m_inner->m_color = glm::vec4(.8, .8, .8, 1);
|
||||
m_mouse_ignore = false;
|
||||
}
|
||||
|
||||
void NodeCheckBox::create()
|
||||
{
|
||||
m_outer->create();
|
||||
m_inner->create();
|
||||
}
|
||||
|
||||
kEventResult NodeCheckBox::handle_event(Event* e)
|
||||
{
|
||||
Node::handle_event(e);
|
||||
switch (e->m_type)
|
||||
{
|
||||
case kEventType::MouseEnter:
|
||||
break;
|
||||
case kEventType::MouseLeave:
|
||||
break;
|
||||
case kEventType::MouseDownL:
|
||||
break;
|
||||
case kEventType::MouseUpL:
|
||||
checked = !checked;
|
||||
if (on_value_changed)
|
||||
on_value_changed(this, checked);
|
||||
break;
|
||||
default:
|
||||
return kEventResult::Available;
|
||||
break;
|
||||
}
|
||||
return kEventResult::Consumed;
|
||||
}
|
||||
|
||||
void NodeCheckBox::draw()
|
||||
{
|
||||
m_inner->m_color = checked ? glm::vec4(.4, .4, .4, 1) : glm::vec4(.8, .8, .8, 1);
|
||||
Node::draw();
|
||||
}
|
||||
Reference in New Issue
Block a user