Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -439,7 +439,7 @@ NodeWidget *GraphController::hoveredNode(float mouseX, float mouseY) {
for(auto node : m_graph->nodes()) {
NodeWidget *widget = static_cast<NodeWidget *>(node->widget());
if(widget) {
RectTransform *rect = widget->title()->rectTransform();
RectTransform *rect = widget->header()->rectTransform();
if(rect->isHovered(mouseX, mouseY)) {
hovered = widget;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,16 +41,16 @@ void GroupWidget::update() {
Widget::update();

Vector4 newColor = m_node->color();
if(m_title->color() != newColor) {
if(m_header->color() != newColor) {
setColor(Vector4(newColor.x, newColor.y, newColor.z, 0.5f));
m_title->setColor(newColor);
m_header->setColor(newColor);
}

Input::CursorShape shape = Input::CURSOR_ARROW;

Vector4 cursor = Input::mousePosition();
if(m_title) {
bool hover = m_title->rectTransform()->isHovered(cursor.x, cursor.y);
if(m_header) {
bool hover = m_header->rectTransform()->isHovered(cursor.x, cursor.y);
if(hover && Input::isMouseButtonDown(0)) {
emitSignal(_SIGNAL(pressed()));
} else {
Expand Down Expand Up @@ -138,30 +138,30 @@ void GroupWidget::composeComponent() {

setColor(Vector4(1.0f, 1.0f, 1.0f, 0.5f));

Actor *title = Engine::composeActor<Frame>("Title", actor());
if(title) {
m_title = title->getComponent<Frame>();
if(m_title) {
RectTransform *rect = m_title->rectTransform();
Actor *header = Engine::composeActor<Frame>("Header", actor());
if(header) {
m_header = header->getComponent<Frame>();
if(m_header) {
RectTransform *rect = m_header->rectTransform();
rect->setAnchors(Vector2(0.0f, 1.0f), Vector2(1.0f, 1.0f));
rect->setSize(Vector2(0, row));
rect->setPivot(Vector2(0.0f, 1.0f));

Vector4 corn(corners());
corn.x = corn.y = 0.0f;
corn.w = corn.z;
m_title->setCorners(corn);
m_title->setBorderColor(Vector4());

m_label = Engine::objectCreate<Label>("", title);
if(m_label) {
m_label->lower();
m_label->setFontSize(32);
m_label->setAlign(Alignment::Middle | Alignment::Center);
m_label->setColor(Vector4(0.66f, 0.66f, 0.66f, 1.0f));
m_label->setFont(Engine::loadResource<Font>(".embedded/Roboto.ttf"));
m_header->setCorners(corn);
m_header->setBorderColor(Vector4());

m_title = Engine::objectCreate<Label>("Title", header);
if(m_title) {
m_title->lower();
m_title->setFontSize(32);
m_title->setAlign(Alignment::Middle | Alignment::Center);
m_title->setColor(Vector4(0.66f, 0.66f, 0.66f, 1.0f));
m_title->setFont(Engine::loadResource<Font>(".embedded/Roboto.ttf"));
}
m_title->lower();
m_header->lower();
}
}

Expand Down
55 changes: 26 additions & 29 deletions modules/editor/grapheditor/editor/graph/graphwidgets/nodewidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ const float row = 20.0f;

NodeWidget::NodeWidget() :
m_node(nullptr),
m_label(nullptr),
m_title(nullptr),
m_header(nullptr),
m_callLayout(nullptr),
m_hovered(false) {

Expand All @@ -39,8 +39,8 @@ void NodeWidget::setGraphNode(GraphNode *node) {

updateName();

if(m_title) {
m_title->setColor(m_node->color());
if(m_header) {
m_header->setColor(m_node->color());
}

rectTransform()->setSize(m_node->defaultSize());
Expand Down Expand Up @@ -68,8 +68,8 @@ void NodeWidget::setGraphNode(GraphNode *node) {
}

void NodeWidget::updateName() {
if(m_label) {
m_label->setText(!m_node->name().isEmpty() ? m_node->name() : m_node->typeName());
if(m_title) {
m_title->setText(!m_node->name().isEmpty() ? m_node->name() : m_node->typeName());
}
}

Expand All @@ -86,12 +86,12 @@ void NodeWidget::setSelected(bool flag) {
}
}

Frame *NodeWidget::title() const {
return m_title;
Frame *NodeWidget::header() const {
return m_header;
}

Label *NodeWidget::label() const {
return m_label;
Label *NodeWidget::title() const {
return m_title;
}

GraphNode *NodeWidget::node() const {
Expand All @@ -115,10 +115,10 @@ void NodeWidget::update() {

Vector4 pos = Input::mousePosition();

if(m_title) {
if(m_header) {
RectTransform *hoveredRect = rectTransform()->hoveredTransform(pos.x, pos.y);

if(hoveredRect == m_title->rectTransform() && Input::isMouseButtonDown(Input::MOUSE_LEFT)) {
if(hoveredRect == m_header->rectTransform() && Input::isMouseButtonDown(Input::MOUSE_LEFT)) {
pressed();
} else if(dynamic_cast<StateNode *>(m_node)) {
bool hover = (hoveredRect == rectTransform());
Expand Down Expand Up @@ -166,29 +166,26 @@ void NodeWidget::composeComponent() {
rect->setHorizontalPolicy(RectTransform::Fixed);
rect->setBorder(2.0f);

Actor *title = Engine::composeActor<Frame>("Title", actor());
if(title) {
m_title = title->getComponent<Frame>();
if(m_title) {
RectTransform *titleRect = m_title->rectTransform();
layout->addTransform(titleRect);
Actor *header = Engine::composeActor<Frame>("Header", actor());
if(header) {
m_header = header->getComponent<Frame>();
if(m_header) {
RectTransform *headerRect = m_header->rectTransform();
layout->addTransform(headerRect);

titleRect->setSize(Vector2(0, row));
titleRect->setPivot(Vector2(0.0f, 1.0f));
titleRect->setAnchors(Vector2(0.0f, 1.0f), Vector2(1.0f, 1.0f));
headerRect->setSize(Vector2(0, row));
headerRect->setPivot(Vector2(0.0f, 1.0f));
headerRect->setAnchors(Vector2(0.0f, 1.0f), Vector2(1.0f, 1.0f));

Vector4 corn(corners() - 1);
corn.x = corn.y;
corn.w = corn.z = 0.0f;
m_title->setCorners(corn);
m_title->setBorderColor(Vector4());

m_label = Engine::objectCreate<Label>("", title);
if(m_label) {
m_label->setFontSize(14);
m_label->setAlign(Alignment::Middle | Alignment::Center);
m_label->setColor(Vector4(1.0f));
m_label->setFont(Engine::loadResource<Font>(".embedded/Roboto.ttf"));
m_header->setCorners(corn);
m_header->setBorderColor(Vector4());

Actor *title = Engine::composeActor<Label>("Title", header);
if(title) {
m_title = title->getComponent<Label>();
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ class NodeWidget : public Frame {
bool isSelected() const;
void setSelected(bool flag);

Frame *title() const;
Frame *header() const;

Label *label() const;
Label *title() const;

GraphNode *node() const;

Expand All @@ -51,9 +51,9 @@ class NodeWidget : public Frame {
protected:
GraphNode *m_node;

Label *m_label;
Label *m_title;

Frame *m_title;
Frame *m_header;

Layout *m_callLayout;

Expand Down
9 changes: 5 additions & 4 deletions modules/editor/grapheditor/editor/graph/statenode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,13 @@ Widget *StateNode::widget() {
rect->setVerticalPolicy(RectTransform::Fixed);
rect->setHorizontalPolicy(RectTransform::Fixed);

Frame *title = nodeWidget->title();
Vector4 corners(title->corners());
Frame *header = nodeWidget->header();
Vector4 corners(header->corners());
corners.z = corners.w = corners.x;
title->setCorners(corners);
header->setCorners(corners);

RectTransform *titleRect = title->rectTransform();

RectTransform *titleRect = header->rectTransform();
titleRect->setMargin(Vector4(5.0f));
titleRect->setAnchors(Vector2(0.0f), Vector2(1.0f));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ Widget *ShaderNode::widget() {

Actor *title = result->actor();
for(auto it : title->getChildren()) {
if(it->name() == "Title") {
if(it->name() == "Header") {
title = static_cast<Actor *>(it);
}
}
Expand Down
Loading