improve panels, inverted brush outline color
This commit is contained in:
@@ -1785,6 +1785,7 @@ Here's a list of what's available in this release.
|
|||||||
|
|
||||||
</node>
|
</node>
|
||||||
<!-- status bar -->
|
<!-- status bar -->
|
||||||
|
<border height="10" color="0 0 0 .6" mouse-capture="true"/>
|
||||||
<!--<border height="30" width="100%" color=".15" border-color=".3" dir="row" pad="0 0 0 10" align="center">
|
<!--<border height="30" width="100%" color=".15" border-color=".3" dir="row" pad="0 0 0 10" align="center">
|
||||||
--><!--<text-input width="100" height="100%" color=".3"/>--><!--
|
--><!--<text-input width="100" height="100%" color=".3"/>--><!--
|
||||||
<text text="Status Bar: nothing to show here."/>
|
<text text="Status Bar: nothing to show here."/>
|
||||||
|
|||||||
@@ -783,6 +783,7 @@ void App::init_menu_experimental()
|
|||||||
if (visible(floating_presets.get()))
|
if (visible(floating_presets.get()))
|
||||||
return;
|
return;
|
||||||
auto fpanel = floatings_container->add_child<NodePanelFloating>();
|
auto fpanel = floatings_container->add_child<NodePanelFloating>();
|
||||||
|
fpanel->SetHeight(300);
|
||||||
fpanel->SetMinHeight(300);
|
fpanel->SetMinHeight(300);
|
||||||
if (!floating_presets)
|
if (!floating_presets)
|
||||||
{
|
{
|
||||||
@@ -810,6 +811,7 @@ void App::init_menu_experimental()
|
|||||||
if (visible(floating_color.get()))
|
if (visible(floating_color.get()))
|
||||||
return;
|
return;
|
||||||
auto fpanel = floatings_container->add_child<NodePanelFloating>();
|
auto fpanel = floatings_container->add_child<NodePanelFloating>();
|
||||||
|
fpanel->SetHeight(300);
|
||||||
fpanel->SetMinHeight(300);
|
fpanel->SetMinHeight(300);
|
||||||
if (!floating_color)
|
if (!floating_color)
|
||||||
{
|
{
|
||||||
@@ -833,7 +835,7 @@ void App::init_menu_experimental()
|
|||||||
if (visible(floating_picker.get()))
|
if (visible(floating_picker.get()))
|
||||||
return;
|
return;
|
||||||
auto fpanel = floatings_container->add_child<NodePanelFloating>();
|
auto fpanel = floatings_container->add_child<NodePanelFloating>();
|
||||||
fpanel->SetHeight(YGUndefined);
|
fpanel->SetHeight(300);
|
||||||
fpanel->SetWidth(300);
|
fpanel->SetWidth(300);
|
||||||
if (!floating_picker)
|
if (!floating_picker)
|
||||||
{
|
{
|
||||||
@@ -870,6 +872,7 @@ void App::init_menu_experimental()
|
|||||||
return;
|
return;
|
||||||
auto fpanel = floatings_container->add_child<NodePanelFloating>();
|
auto fpanel = floatings_container->add_child<NodePanelFloating>();
|
||||||
fpanel->SetMinHeight(100);
|
fpanel->SetMinHeight(100);
|
||||||
|
fpanel->SetHeight(300);
|
||||||
fpanel->m_container->add_child(layers);
|
fpanel->m_container->add_child(layers);
|
||||||
layers->SetPositioning(YGPositionTypeRelative);
|
layers->SetPositioning(YGPositionTypeRelative);
|
||||||
layers->SetPosition(0, 0);
|
layers->SetPosition(0, 0);
|
||||||
@@ -885,6 +888,7 @@ void App::init_menu_experimental()
|
|||||||
return;
|
return;
|
||||||
auto fpanel = floatings_container->add_child<NodePanelFloating>();
|
auto fpanel = floatings_container->add_child<NodePanelFloating>();
|
||||||
fpanel->m_container->add_child(stroke);
|
fpanel->m_container->add_child(stroke);
|
||||||
|
fpanel->SetHeight(300);
|
||||||
stroke->SetPositioning(YGPositionTypeRelative);
|
stroke->SetPositioning(YGPositionTypeRelative);
|
||||||
stroke->SetPosition(0, 0);
|
stroke->SetPosition(0, 0);
|
||||||
|
|
||||||
@@ -896,6 +900,7 @@ void App::init_menu_experimental()
|
|||||||
return;
|
return;
|
||||||
auto fpanel = floatings_container->add_child<NodePanelFloating>();
|
auto fpanel = floatings_container->add_child<NodePanelFloating>();
|
||||||
fpanel->m_container->add_child(grid);
|
fpanel->m_container->add_child(grid);
|
||||||
|
fpanel->SetHeight(300);
|
||||||
grid->SetPositioning(YGPositionTypeRelative);
|
grid->SetPositioning(YGPositionTypeRelative);
|
||||||
grid->SetPosition(0, 0);
|
grid->SetPosition(0, 0);
|
||||||
grid->SetWidthP(100);
|
grid->SetWidthP(100);
|
||||||
|
|||||||
@@ -242,8 +242,11 @@ void CanvasModePen::on_Draw(const glm::mat4& ortho, const glm::mat4& proj, const
|
|||||||
tip_color = glm::vec4(s.col, s.flow);
|
tip_color = glm::vec4(s.col, s.flow);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ShaderManager::u_int(kShaderUniform::DrawOutline, glm::min(tip_scale.x, tip_scale.y) < 20 || m_resizing ? false : m_draw_outline);
|
glm::u8vec4 pixel;
|
||||||
ShaderManager::u_vec4(kShaderUniform::Col, tip_color);
|
glReadPixels(pos.x, App::I.height - pos.y - 1, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &pixel);
|
||||||
|
bool outline = glm::min(tip_scale.x, tip_scale.y) < 20 || m_resizing ? false : m_draw_outline;
|
||||||
|
ShaderManager::u_int(kShaderUniform::DrawOutline, outline);
|
||||||
|
ShaderManager::u_vec4(kShaderUniform::Col, outline ? glm::vec4(1.f - glm::vec3(pixel) / 255.f, 1.f) : tip_color);
|
||||||
ShaderManager::u_mat4(kShaderUniform::MVP,
|
ShaderManager::u_mat4(kShaderUniform::MVP,
|
||||||
glm::scale(glm::vec3(1, -1, 1)) *
|
glm::scale(glm::vec3(1, -1, 1)) *
|
||||||
ortho *
|
ortho *
|
||||||
|
|||||||
@@ -119,6 +119,14 @@ kEventResult Node::on_event(Event* e)
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool skip_children = false;
|
bool skip_children = false;
|
||||||
|
|
||||||
|
// skip mouse events if outside
|
||||||
|
if (e->m_cat == kEventCategory::MouseEvent)
|
||||||
|
{
|
||||||
|
MouseEvent* me = static_cast<MouseEvent*>(e);
|
||||||
|
skip_children |= m_mouse_inside && !point_in_rect(me->m_pos, m_clip);
|
||||||
|
}
|
||||||
|
|
||||||
skip_children |= (e->m_cat == kEventCategory::MouseEvent || e->m_cat == kEventCategory::GestureEvent) &&
|
skip_children |= (e->m_cat == kEventCategory::MouseEvent || e->m_cat == kEventCategory::GestureEvent) &&
|
||||||
(m_mouse_captured) && (root()->current_mouse_capture == this) && m_capture_children; // <-- THIS IS WRONG "!m_capture_children" is correct, but it breaks everything if changed
|
(m_mouse_captured) && (root()->current_mouse_capture == this) && m_capture_children; // <-- THIS IS WRONG "!m_capture_children" is correct, but it breaks everything if changed
|
||||||
|
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ kEventResult NodePanelFloating::handle_event(Event* e)
|
|||||||
m_outline->SetPositioning(YGPositionTypeAbsolute);
|
m_outline->SetPositioning(YGPositionTypeAbsolute);
|
||||||
m_outline->SetPosition(m_pos);
|
m_outline->SetPosition(m_pos);
|
||||||
m_outline->SetSize(GetSize());
|
m_outline->SetSize(GetSize());
|
||||||
m_outline->m_color = { 0, 0, 0, 0.1 };
|
m_outline->m_color = { 0, 0, 0, 0.25 };
|
||||||
m_outline->m_thinkness = 1;
|
m_outline->m_thinkness = 1;
|
||||||
m_drop_placeholder = std::make_shared<NodeBorder>();
|
m_drop_placeholder = std::make_shared<NodeBorder>();
|
||||||
m_drop_placeholder->SetSize(350, 10);
|
m_drop_placeholder->SetSize(350, 10);
|
||||||
|
|||||||
Reference in New Issue
Block a user