Skip to content

Commit

Permalink
smooth toggles
Browse files Browse the repository at this point in the history
  • Loading branch information
Melvin1663 committed Aug 3, 2024
1 parent 43753a0 commit ea1e2d3
Show file tree
Hide file tree
Showing 3 changed files with 315 additions and 362 deletions.
99 changes: 14 additions & 85 deletions src/Client/GUI/Engine/Elements/Control/Toggle/Toggle.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,81 +37,10 @@
#define colors_secondary7_rgb clickgui->settings.getSettingByName<bool>("colors_secondary7_rgb")->value

bool FlarialGUI::Toggle(int index, float x, float y, bool isEnabled) {

D2D1_COLOR_F disabledColor = colors_primary3_rgb ? rgbColor : colors_primary3;
D2D1_COLOR_F enabledColor = colors_primary1_rgb ? rgbColor : colors_primary1;
D2D1_COLOR_F circleColor = colors_primary2_rgb ? rgbColor : colors_primary2;

disabledColor.a = o_colors_primary3;
enabledColor.a = o_colors_primary1;
circleColor.a = o_colors_primary2;

if (shouldAdditionalY) {

for (int i = 0; i < highestAddIndexes + 1; i++) {
if (FlarialGUI::DropDownMenus[i].isActive && i <= additionalIndex) {
y += additionalY[i];
}
}
}

const bool isAdditionalY = shouldAdditionalY;
float rectWidth = Constraints::RelativeConstraint(0.062, "height", true);
float rectHeight = Constraints::RelativeConstraint(0.03, "height", true);

Vec2<float> round = Constraints::RoundingConstraint(30, 30);

if (isAdditionalY) UnSetIsInAdditionalYMode();

if (isEnabled) {
toggleColors[index] = FlarialGUI::LerpColor(toggleColors[index], enabledColor, 0.10f * FlarialGUI::frameFactor);
} else {
toggleColors[index] = FlarialGUI::LerpColor(toggleColors[index], disabledColor,
0.10f * FlarialGUI::frameFactor);
}

FlarialGUI::RoundedRect(x, y, toggleColors[index], rectWidth, rectHeight, round.x, round.x);

// the circle (I KNOW IM USING A RECT LOL)

float circleWidth = Constraints::RelativeConstraint(0.0202, "height", true);
float circleHeight = Constraints::RelativeConstraint(0.02, "height", true);


float ySpacing = Constraints::SpacingConstraint(0.2, circleHeight);
float xSpacing = Constraints::SpacingConstraint(0.2, circleWidth);
round = Constraints::RoundingConstraint(23, 23);

float enabledSpacing;

if (isEnabled) {
FadeEffect::ApplyFadeInEffect(2.4f * FlarialGUI::frameFactor, Constraints::SpacingConstraint(1.6, circleWidth),
FlarialGUI::toggleSpacings[index]);
enabledSpacing = FlarialGUI::toggleSpacings[index];
if (enabledSpacing > Constraints::SpacingConstraint(1.6, circleWidth))
enabledSpacing = Constraints::SpacingConstraint(1.6, circleWidth);
} else {
FadeEffect::ApplyFadeOutEffect(2.4f * FlarialGUI::frameFactor, FlarialGUI::toggleSpacings[index]);
enabledSpacing = FlarialGUI::toggleSpacings[index];
}

FlarialGUI::RoundedRect(x + xSpacing + enabledSpacing, y + ySpacing, circleColor, circleWidth, circleHeight,
round.x, round.x);

if (isAdditionalY) SetIsInAdditionalYMode();

if (isInScrollView) y += FlarialGUI::scrollpos;
if (CursorInRect(x, y, rectWidth, rectHeight) && MC::mouseButton == MouseButton::Left && !MC::held &&
(!activeColorPickerWindows || index == 123)) {
MC::mouseButton = MouseButton::None;
return true;
}

return false;
return FlarialGUI::Toggle(index, x, y, isEnabled, false);
}

bool FlarialGUI::Toggle(int index, float x, float y, bool isEnabled, bool rgb) {

D2D1_COLOR_F disabledColor = colors_primary3;
D2D1_COLOR_F enabledColor = colors_primary1;
D2D1_COLOR_F circleColor = colors_primary2;
Expand All @@ -121,7 +50,6 @@ bool FlarialGUI::Toggle(int index, float x, float y, bool isEnabled, bool rgb) {
circleColor.a = o_colors_primary2;

if (shouldAdditionalY) {

for (int i = 0; i < highestAddIndexes + 1; i++) {
if (FlarialGUI::DropDownMenus[i].isActive && i <= additionalIndex) {
y += additionalY[i];
Expand All @@ -130,8 +58,10 @@ bool FlarialGUI::Toggle(int index, float x, float y, bool isEnabled, bool rgb) {
}

const bool isAdditionalY = shouldAdditionalY;
float rectWidth = Constraints::RelativeConstraint(0.062, "height", true);
float rectHeight = Constraints::RelativeConstraint(0.03, "height", true);
float rectWidth = Constraints::RelativeConstraint(0.058, "height", true);
float rectHeight = Constraints::RelativeConstraint(0.027, "height", true);

y -= rectHeight / 2.0f;

Vec2<float> round = Constraints::RoundingConstraint(30, 30);

Expand All @@ -140,32 +70,31 @@ bool FlarialGUI::Toggle(int index, float x, float y, bool isEnabled, bool rgb) {
if (isEnabled) {
toggleColors[index] = FlarialGUI::LerpColor(toggleColors[index], enabledColor, 0.10f * FlarialGUI::frameFactor);
} else {
toggleColors[index] = FlarialGUI::LerpColor(toggleColors[index], disabledColor,
0.10f * FlarialGUI::frameFactor);
toggleColors[index] = FlarialGUI::LerpColor(toggleColors[index], disabledColor, 0.10f * FlarialGUI::frameFactor);
}

FlarialGUI::RoundedRect(x, y, rgb ? rgbColor : toggleColors[index], rectWidth, rectHeight, round.x, round.x);

// the circle (I KNOW IM USING A RECT LOL)

float circleWidth = Constraints::RelativeConstraint(0.0202, "height", true);
float circleHeight = Constraints::RelativeConstraint(0.02, "height", true);

float circleWidth = Constraints::SpacingConstraint(0.7, rectHeight);
float circleHeight = Constraints::SpacingConstraint(0.7, rectHeight);

float ySpacing = Constraints::SpacingConstraint(0.2205f, circleHeight);
float ySpacing = Constraints::SpacingConstraint(0.2f, circleHeight);
float xSpacing = Constraints::SpacingConstraint(0.2f, circleWidth);
round = Constraints::RoundingConstraint(23, 23);

float enabledSpacing;

if (isEnabled) {
FadeEffect::ApplyFadeInEffect(2.4f * FlarialGUI::frameFactor, Constraints::SpacingConstraint(1.6, circleWidth),
FlarialGUI::toggleSpacings[index]);
FlarialGUI::lerp(FlarialGUI::toggleSpacings[index], Constraints::SpacingConstraint(1.6, circleWidth), 0.25f * FlarialGUI::frameFactor);
//FadeEffect::ApplyFadeInEffect(2.4f * FlarialGUI::frameFactor, Constraints::SpacingConstraint(1.6, circleWidth),FlarialGUI::toggleSpacings[index]);
enabledSpacing = FlarialGUI::toggleSpacings[index];
if (enabledSpacing > Constraints::SpacingConstraint(1.6, circleWidth))
enabledSpacing = Constraints::SpacingConstraint(1.6, circleWidth);
enabledSpacing = Constraints::SpacingConstraint(1.6, circleWidth);
} else {
FadeEffect::ApplyFadeOutEffect(2.4f * FlarialGUI::frameFactor, FlarialGUI::toggleSpacings[index]);
FlarialGUI::lerp(FlarialGUI::toggleSpacings[index], 0.0f, 0.25f * FlarialGUI::frameFactor);
//FadeEffect::ApplyFadeOutEffect(2.4f * FlarialGUI::frameFactor, FlarialGUI::toggleSpacings[index]);
enabledSpacing = FlarialGUI::toggleSpacings[index];
}

Expand Down
Loading

0 comments on commit ea1e2d3

Please sign in to comment.