summaryrefslogtreecommitdiff
path: root/src/imgui_ui_timeline.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/imgui_ui_timeline.cpp')
-rw-r--r--src/imgui_ui_timeline.cpp39
1 files changed, 20 insertions, 19 deletions
diff --git a/src/imgui_ui_timeline.cpp b/src/imgui_ui_timeline.cpp
index f8c5258..aa4d0cd 100644
--- a/src/imgui_ui_timeline.cpp
+++ b/src/imgui_ui_timeline.cpp
@@ -114,7 +114,7 @@ ImGui_Timeline_GraphInfo(project_data *File, project_state *State, memory *Memor
while (Block_Loop(Memory, F_Layers, File->Layer_Count, &h, &c, &i))
{
block_layer *Layer = (block_layer *)Memory_Block_AddressAtIndex(Memory, F_Layers, i);
- if (!Layer->IsSelected)
+ if (!(Layer->IsSelected & 0x01))
continue;
block_string *String = (block_string *)Memory_Block_AddressAtIndex(Memory, F_Strings, Layer->Block_String_Index);
@@ -243,7 +243,7 @@ ImGui_Timeline_DrawGraph(project_data *File, project_state *State, memory *Memor
for (int i = 0; i < SortedCompStart.LayerCount; i++) {
sorted_layer_array *SortedLayer = &SortedLayerStart[i];
block_layer *Layer = (block_layer *)Memory_Block_AddressAtIndex(Memory, F_Layers, SortedLayer->Block_Layer_Index);
- if (!Layer->IsSelected)
+ if (!(Layer->IsSelected & 0x01))
continue;
int32 Frame_Offset = Layer->Frame_Offset;
@@ -442,7 +442,7 @@ ImGui_Timeline_DrawPrecomp(project_data *File, project_state *State, memory *Mem
int32 Frame_Offset = Layer->Frame_Offset;
real32 Vertical_Offset = SortEntry.SortedOffset + SortEntry.DisplayOffset;
- if (Layer->IsSelected)
+ if (Layer->IsSelected & 0x01)
Interact_Evaluate_Layer(Memory, State, Index_Physical, SortedCompStart, SortedLayerStart, &Frame_Start, &Frame_End, &Frame_Offset);
ImVec2 Layer_LocalPos = ImVec2(Frame_Start + Frame_Offset, Vertical_Offset);
@@ -483,10 +483,10 @@ ImGui_Timeline_DrawPrecomp(project_data *File, project_state *State, memory *Mem
draw_list->AddText(ImVec2(TextX, Layer_ScreenPos_Min.y), 0xFFFFFFFF, buf);
}
- if (Layer->IsSelected == 1) {
+ if (Layer->IsSelected & 0x01) {
draw_list->AddRectFilled(Layer_ScreenPos_Min, Layer_ScreenPos_Max, ImColor(0.25f, 0.25f, 0.25f, 0.5f), 2);
draw_list->AddRect(Layer_ScreenPos_Min, Layer_ScreenPos_Max, ImColor(1.0f, 1.0f, 1.0f, 0.5f), 2);
- } else if (Layer->IsSelected == 2) {
+ } else if (Layer->IsSelected & 0x02) {
// draw_list->AddRectFilled(Layer_ScreenPos_Min, Layer_ScreenPos_Max, ImColor(0.25f, 0.25f, 0.25f, 0.5f), 2);
draw_list->AddRect(Layer_ScreenPos_Min, Layer_ScreenPos_Max, ImColor(0.0f, 0.9f, 0.0f, 0.9f), 4);
}
@@ -511,11 +511,11 @@ ImGui_Timeline_DrawPrecomp(project_data *File, project_state *State, memory *Mem
Test &= (Layer_ScreenPos_Min.x <= io.MouseClickedPos[0].x && Layer_ScreenPos_Max.x >= io.MousePos.x);
if (Test) {
- if (!Layer->IsSelected && !Layer->IsLocked) {
+ if (!(Layer->IsSelected & 0x01) && !(Layer->IsSelected & 0x02) && !Layer->IsLocked) {
Layer_Select(Memory, State, Index_Physical);
}
} else if (!io.KeyShift) {
- Layer->IsSelected = false;
+ Layer->IsSelected = 0x00;
}
}
@@ -535,14 +535,14 @@ ImGui_Timeline_DrawPrecomp(project_data *File, project_state *State, memory *Mem
}
}
if (ImGui::IsItemActivated()) {
- if (!Layer->IsSelected && !Layer->IsLocked) {
+ if (!(Layer->IsSelected & 0x01) && !Layer->IsLocked) {
if (!io.KeyShift) Layer_DeselectAll(File, State, Memory);
Layer_Select(Memory, State, Index_Physical);
}
}
if (ImGui::IsItemActive()) {
if (ImGui::IsMouseDragging(ImGuiMouseButton_Left, -1)) {
- Assert(Layer->IsSelected);
+ Assert(Layer->IsSelected & 0x01);
State->Interact_Active = interact_type_layer_timeadjust;
ImVec2 DragDelta = ImGui::GetMouseDragDelta();
DragDelta = DragDelta + (ImVec2(State->Warp_X, State->Warp_Y) * TimelineSize);
@@ -557,7 +557,7 @@ ImGui_Timeline_DrawPrecomp(project_data *File, project_state *State, memory *Mem
int h = 0, c = 0, i = 0;
while (Block_Loop(Memory, F_Layers, File->Layer_Count, &h, &c, &i)) {
block_layer *Layer = (block_layer *)Memory_Block_AddressAtIndex(Memory, F_Layers, i);
- if (Layer->IsSelected) {
+ if (Layer->IsSelected & 0x01) {
// NOTE(fox): Some data on the tree could be saved here.
History_Action_Swap(Memory, F_Layers, sizeof(Layer->Frame_Start), &Layer->Frame_Start);
History_Action_Swap(Memory, F_Layers, sizeof(Layer->Frame_End), &Layer->Frame_End);
@@ -585,7 +585,7 @@ ImGui_Timeline_DrawPrecomp(project_data *File, project_state *State, memory *Mem
}
if (ImGui::IsItemActivated()) {
- if (!Layer->IsSelected && !Layer->IsLocked) {
+ if (!(Layer->IsSelected & 0x01) && !Layer->IsLocked) {
if (!io.KeyShift) Layer_DeselectAll(File, State, Memory);
Layer_Select(Memory, State, Index_Physical);
Layer_Select_RecurseUp(Memory, State, Index_Physical, RecursionIdx, Recursions);
@@ -599,7 +599,7 @@ ImGui_Timeline_DrawPrecomp(project_data *File, project_state *State, memory *Mem
int h = 0, z = 0, i = 0;
while (Block_Loop(Memory, F_Layers, File->Layer_Count, &h, &z, &i)) {
block_layer *Layer = (block_layer *)Memory_Block_AddressAtIndex(Memory, F_Layers, i);
- if (Layer->IsSelected) {
+ if (Layer->IsSelected & 0x01) {
if (!Commit) {
History_Entry_Commit(Memory, "Toggle visibility");
Commit = true;
@@ -617,14 +617,14 @@ ImGui_Timeline_DrawPrecomp(project_data *File, project_state *State, memory *Mem
bool32 Commit = false;
int h = 0, z = 0, i = 0;
while (Block_Loop(Memory, F_Layers, File->Layer_Count, &h, &z, &i)) {
- block_layer *Layer = (block_layer *)Memory_Block_AddressAtIndex(Memory, F_Layers, i);
- if (Layer->IsSelected == 1 || Layer->IsLocked) {
+ block_layer *CurLayer = (block_layer *)Memory_Block_AddressAtIndex(Memory, F_Layers, i);
+ if ((CurLayer->IsSelected & 0x01) || (Layer == CurLayer)) {
if (!Commit) {
History_Entry_Commit(Memory, "Toggle lock");
Commit = true;
}
- History_Action_Swap(Memory, F_Layers, sizeof(Layer->IsLocked), &Layer->IsLocked);
- Layer->IsLocked ^= 1;
+ History_Action_Swap(Memory, F_Layers, sizeof(CurLayer->IsLocked), &CurLayer->IsLocked);
+ CurLayer->IsLocked ^= 1;
}
}
if (Commit) {
@@ -655,7 +655,7 @@ ImGui_Timeline_DrawPrecomp(project_data *File, project_state *State, memory *Mem
int h = 0, z = 0, i = 0;
while (Block_Loop(Memory, F_Layers, File->Layer_Count, &h, &z, &i)) {
block_layer *Layer = (block_layer *)Memory_Block_AddressAtIndex(Memory, F_Layers, i);
- if (Layer->IsSelected == 1) {
+ if (Layer->IsSelected & 0x01) {
Layer->ColIndex = c;
}
}
@@ -726,7 +726,7 @@ ImGui_Timeline_DrawPrecomp(project_data *File, project_state *State, memory *Mem
// NOTE(fox): Some data on the tree could be saved here.
History_Action_Swap(Memory, F_Layers, sizeof(Layer->Vertical_Offset), &Layer->Vertical_Offset);
Layer->Vertical_Offset = SortEntry.SortedOffset;
- if (Layer->IsSelected) {
+ if (Layer->IsSelected & 0x01) {
History_Action_Swap(Memory, F_Layers, sizeof(Layer->Frame_Offset), &Layer->Frame_Offset);
Interact_Evaluate_Layer(Memory, State, Index_Physical, SortedCompStart, SortedLayerStart, &Layer->Frame_Start, &Layer->Frame_End, &Layer->Frame_Offset);
}
@@ -1087,7 +1087,8 @@ ImGui_Timeline(project_data *File, project_state *State, memory *Memory, ui *UI,
if (LeftClick) {
if (IsItemActivated) {
- if (!io.KeyShift && State->TimelineMode == timeline_mode_default) Layer_DeselectAll(File, State, Memory);
+ if (!io.KeyShift && State->TimelineMode == timeline_mode_default)
+ Layer_DeselectAll(File, State, Memory);
if (State->Interact_Active == interact_type_keyframe_move ||
State->Interact_Active == interact_type_keyframe_rotate ||
State->Interact_Active == interact_type_keyframe_scale) {