Sequencer - Tweaking colors
Also fixed a bug where selecting a track wouldn't unselect previously selected segment.
This commit is contained in:
parent
4e5991d2ea
commit
052d51a22f
1 changed files with 16 additions and 8 deletions
|
@ -559,8 +559,8 @@ void T_SyncViewImpl_::sequencerWidget( ) noexcept
|
|||
if ( io.MouseDown[ 0 ] || io.MouseDown[ 1 ] ) {
|
||||
selId = dTrack.id;
|
||||
selIsOverride = dTrack.isOverride;
|
||||
selSegment = {};
|
||||
selPoint = {};
|
||||
selSegment = decltype( selSegment ){};
|
||||
selPoint = decltype( selPoint ){};
|
||||
sub = E_SubWindow::SW_TRACK;
|
||||
}
|
||||
} else if ( mp.type == E_MousePosType::SEGMENT ) {
|
||||
|
@ -570,7 +570,7 @@ void T_SyncViewImpl_::sequencerWidget( ) noexcept
|
|||
selId = dTrack.id;
|
||||
selIsOverride = dTrack.isOverride;
|
||||
selSegment = dSeg.seg;
|
||||
selPoint = {};
|
||||
selPoint = decltype( selPoint ){};
|
||||
sub = E_SubWindow::SW_SEGMENT;
|
||||
}
|
||||
}
|
||||
|
@ -765,9 +765,13 @@ void T_SyncViewImpl_::sequencerTrack(
|
|||
|
||||
// Compute colors
|
||||
using namespace ImGui;
|
||||
const auto bgColor{ ColorHSVAToU32( hue , .25f , 1.f , .25f ) } ,
|
||||
borderColor{ ColorHSVAToU32( hue , .88f , 1.f , 1.f ) };
|
||||
const uint32_t segColors[ 2 ] = {
|
||||
const bool sCurve{ selId && !selIsOverride && selId == id };
|
||||
const float scv{ sCurve ? 1.f : .7f };
|
||||
const auto bgColor{ ColorHSVAToU32( hue , .25f , scv , .25f ) } ,
|
||||
borderColor{ ColorHSVAToU32( hue , .5f , scv , 1.f ) };
|
||||
const uint32_t segColors[] = {
|
||||
ColorHSVAToU32( hue - .03f , .4f , .7f , 1.f ) ,
|
||||
ColorHSVAToU32( hue + .03f , .4f , .7f , 1.f ) ,
|
||||
ColorHSVAToU32( hue - .03f , .4f , 1.f , 1.f ) ,
|
||||
ColorHSVAToU32( hue + .03f , .4f , 1.f , 1.f ) ,
|
||||
};
|
||||
|
@ -802,7 +806,6 @@ void T_SyncViewImpl_::sequencerTrack(
|
|||
const auto nSeg{ curve ? curve->segments.size( ) : 0u };
|
||||
uint32_t segStart{ 0 };
|
||||
for ( auto i = 0u ; i < nSeg ; i ++ ) {
|
||||
const auto color{ segColors[ i % 2 ] };
|
||||
auto const& seg{ curve->segments[ i ] };
|
||||
const auto segDur{ [&](){
|
||||
auto t{ 0u };
|
||||
|
@ -823,6 +826,11 @@ void T_SyncViewImpl_::sequencerTrack(
|
|||
}
|
||||
|
||||
// Add segment to displayed list
|
||||
const bool sSegment{ sCurve && selSegment && *selSegment == i };
|
||||
if ( sSegment ) {
|
||||
printf( "SelSeg! %d\n" , *selSegment );
|
||||
}
|
||||
const auto color{ segColors[ i % 2 + ( sSegment ? 2 : 0 ) ] };
|
||||
auto dSegIdx{ dspSegments.size( ) };
|
||||
auto& dSeg{ dspSegments.addNew( ) };
|
||||
dSeg.area = segFull;
|
||||
|
@ -1362,7 +1370,7 @@ void T_SyncViewImpl_::displaySegmentWindow( ) noexcept
|
|||
if ( curve->segments.size( ) > 1 ) {
|
||||
selSegment = ( sid == 0 ? 0 : ( sid - 1 ) );
|
||||
} else {
|
||||
selSegment = {};
|
||||
selSegment = decltype( selSegment ){};
|
||||
}
|
||||
SyncEditor::DeleteSegment( selId , sid );
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue