Something went wrong. Try again.
art software for the rest of us
drawing paint image sdl art
Something went wrong. Try again.
C++
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970#include "ColorsPanel.h"#include <cstdio>#include "../Tools/Tool.h"
void ColorsPanel::OnActivate(){ state = OPEN;}void ColorsPanel::OnDeactivate(){ state = CLOSED;}
void ColorsPanel::SetColor(float* color){ this->color = color;}void ColorsPanel::OnRender(){ if (!state) { return; } color = Tool::Color; float unusable = 1.0f; float* opacity = Tool::GetActive()->Opacity ? Tool::GetActive()->Opacity : &unusable; char stringBuffers[4][10]; std::sprintf(stringBuffers[0], "R: %.0f", (color[0] * 255.0)); std::sprintf(stringBuffers[1], "G: %.0f", (color[1] * 255.0)); std::sprintf(stringBuffers[2], "B: %.0f", (color[2] * 255.0)); std::sprintf(stringBuffers[3], "A: %.0f", (*opacity * 255.0));
const ImGuiViewport* viewport = ImGui::GetMainViewport(); ImVec2 work_pos = viewport->WorkPos; ImVec2 work_size = viewport->WorkSize; ImVec2 window_pos;
window_pos.x = work_pos.x + (work_size.x / 2) + 32; window_pos.y = work_pos.y + work_size.y - 64; if (state != DETACHED) { ImGui::SetNextWindowPos(window_pos, 0, ImVec2(0.5f, 1.0f)); } ImGui::SetNextWindowSizeConstraints(ImVec2(352, 532), ImVec2(FLT_MAX, FLT_MAX));
if (!beginCustomWindow("Colors")) { return; } ImGui::PushItemWidth(0.0f); ImGui::ColorPicker4("", color, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoOptions | ImGuiColorEditFlags_PickerHueWheel | ImGuiColorEditFlags_NoSidePreview); ImGui::SeparatorText("RGB"); ImGui::SliderFloat("##RedSlider", &color[0], 0.0f, 1.0f, stringBuffers[0]); ImGui::SliderFloat("##GreenSlider", &color[1], 0.0f, 1.0f, stringBuffers[1]); ImGui::SliderFloat("##BlueSlider", &color[2], 0.0f, 1.0f, stringBuffers[2]); ImGui::SeparatorText("Transparency"); if (opacity == &unusable) { ImGui::BeginDisabled(); } ImGui::SliderFloat("##AlphaSlider", opacity, 0.0f, 1.0f, stringBuffers[3]); if (opacity == &unusable) { ImGui::EndDisabled(); } ImGui::PopItemWidth();
endCustomWindow();}