Mouse over icons on source (on Symbol and Characters)

Rename class Glyph in Decoration to Character ('Glyph' was used in system X typedef). Added MouseOver in Mixing and Layers view to show highlight color on icons of Symbol and Initials of source. Show left panel on clic on source Initials.
This commit is contained in:
Bruno Herbelin
2023-04-16 23:21:08 +02:00
parent f9caa75aa7
commit 4ed884de55
13 changed files with 132 additions and 23 deletions

View File

@@ -448,6 +448,10 @@ std::pair<Node *, glm::vec2> MixingView::pick(glm::vec2 P)
else if ( pick.first == s->symbol_ ) {
UserInterface::manager().showSourceEditor(s);
}
// pick the initials: ask to show left panel
else if ( pick.first == s->initial_0_ || pick.first == s->initial_1_ ) {
UserInterface::manager().showSourcePanel(s);
}
// pick on the mixing group rotation icon
else if ( pick.first == s->rotation_mixingroup_ ) {
if (UserInterface::manager().shiftModifier())
@@ -612,7 +616,10 @@ View::Cursor MixingView::over (glm::vec2 pos)
View::Cursor ret = Cursor();
std::pair<Node *, glm::vec2> pick = View::pick(pos);
//
// deal with internal interactive objects
//
// mouse over opacity slider
if ( pick.first == slider_ ) {
slider_->color = glm::vec4( COLOR_CIRCLE_OVER, 0.9f );
slider_arrows_->visible_ = true;
@@ -623,6 +630,7 @@ View::Cursor MixingView::over (glm::vec2 pos)
slider_->color = glm::vec4( COLOR_CIRCLE, 0.9f );
}
// mouse over limbo scale
if ( pick.first == limbo_slider_ ) {
limbo_up_->shader()->color = glm::vec4( COLOR_CIRCLE_ARROW, limbo_slider_root_->translation_.y < MIXING_MAX_THRESHOLD ? 0.1f : 0.01f );
limbo_down_->shader()->color = glm::vec4( COLOR_CIRCLE_ARROW, limbo_slider_root_->translation_.y > MIXING_MIN_THRESHOLD ? 0.1f : 0.01f );
@@ -633,6 +641,7 @@ View::Cursor MixingView::over (glm::vec2 pos)
limbo_down_->shader()->color = glm::vec4( COLOR_CIRCLE_ARROW, 0.01f );
}
// mouse over white and black buttons
if ( pick.first == button_white_ )
button_white_->color = glm::vec4( COLOR_CIRCLE_OVER, 1.f );
else
@@ -643,6 +652,28 @@ View::Cursor MixingView::over (glm::vec2 pos)
else
button_black_->color = glm::vec4( COLOR_CIRCLE, 1.f );
//
// mouse over source
//
// Source *s = Mixer::manager().findSource(pick.first);
Source *s = Mixer::manager().currentSource();
if (s != nullptr) {
s->symbol_->color = glm::vec4( COLOR_HIGHLIGHT_SOURCE, 1.f );
s->initial_0_->color = glm::vec4( COLOR_HIGHLIGHT_SOURCE, 1.f );
s->initial_1_->color = glm::vec4( COLOR_HIGHLIGHT_SOURCE, 1.f );
const ImVec4 h = ImGuiToolkit::HighlightColor();
// overlay symbol
if ( pick.first == s->symbol_ )
s->symbol_->color = glm::vec4( h.x, h.y, h.z, 1.f );
// overlay initials
if ( pick.first == s->initial_0_ || pick.first == s->initial_1_ ) {
s->initial_0_->color = glm::vec4( h.x, h.y, h.z, 1.f );
s->initial_1_->color = glm::vec4( h.x, h.y, h.z, 1.f );
}
}
return ret;
}