summaryrefslogtreecommitdiff
path: root/src/imgui_ui_properties.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/imgui_ui_properties.cpp')
-rw-r--r--src/imgui_ui_properties.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/imgui_ui_properties.cpp b/src/imgui_ui_properties.cpp
index c6b710c..d89f2f0 100644
--- a/src/imgui_ui_properties.cpp
+++ b/src/imgui_ui_properties.cpp
@@ -390,7 +390,7 @@ ImGui_PropertiesPanel(project_data *File, project_state *State, ui *UI, memory *
ImGui_Properties_CurvesUI(State, Memory, io, Effect, Property, SortedPointStart);
c = EffectHeader->Property_Count; // Causes this loop to only iterate once.
} else if (EffectHeader->DisplayType == effect_display_type_levels) {
- ImGui::Text("Levels!");
+ ImGui::Text("Levels");
uint32 VisibleChannel = *(uint32 *)&Effect->ExtraData[0];
real32 *P_Left = 0, *P_Mid = 0, *P_Right = 0;
if (VisibleChannel == 0) {
@@ -431,6 +431,25 @@ ImGui_PropertiesPanel(project_data *File, project_state *State, ui *UI, memory *
State->UpdateFrame = true;
}
}
+ if (Layer->IsShapeLayer) {
+ shape_options *Opt = &Layer->Shape.Opt;
+ // TODO(fox): Combine with RGBA function?
+ char *Names[3] = { "Fill only", "Stroke only", "Fill and stroke" };
+ if (ImGui::BeginListBox("Shape render type")) {
+ for (int i = 0; i < 3; i++) {
+ if (ImGui::Selectable(Names[i], (Opt->Visibility == i))) {
+ Opt->Visibility = i;
+ }
+ }
+ ImGui::EndListBox();
+ }
+ ImGui::ColorEdit4("Fill color", (real32 *)&Opt->FillCol, ImGuiColorEditFlags_Float);
+ ImGui::ColorEdit4("Stroke color", (real32 *)&Opt->StrokeCol, ImGuiColorEditFlags_Float);
+ real32 StrokeWidthMin = 0;
+ real32 StrokeWidthMax = 1024;
+ ImGui::DragScalar("Stroke width", ImGuiDataType_Float, &Opt->StrokeWidth, 1, &StrokeWidthMin, &StrokeWidthMax, "%.3f");
+ // State->UpdateFrame = true;
+ }
ImGui::End();
} else {
ImGui::Begin("Properties: empty###Properties");