18 "title":
"UI Theme: Toggle, Rounded",
29 "VuoHorizontalAlignment",
30 "VuoVerticalAlignment",
49 VuoColor labelColorToggledAndHovered;
56 VuoColor checkmarkBorderColorHovered;
57 VuoColor checkmarkBorderColorPressed;
60 VuoColor checkboxBackgroundColorHovered;
61 VuoColor checkboxBackgroundColorPressed;
62 VuoColor checkboxBackgroundColorToggled;
63 VuoColor checkboxBackgroundColorToggledAndHovered;
69 VuoColor checkboxBorderColorToggledAndHovered;
71 VuoReal checkboxBorderThickness;
72 VuoReal checkboxCornerRoundness;
73 VuoReal marginBetweenCheckboxAndLabel;
83 return new VuoUiThemeToggleRounded(
VuoJson_getObjectValue(
VuoFont, js,
"labelFont", (
VuoFont){
VuoText_make(
"Avenir-Medium"), 24,
false, (
VuoColor){1,1,1,1}, VuoHorizontalAlignment_Center, 1, 1}),
125 VuoColor _labelColorToggledAndHovered,
132 VuoColor _checkmarkBorderColorHovered,
133 VuoColor _checkmarkBorderColorPressed,
136 VuoColor _checkboxBackgroundColorHovered,
137 VuoColor _checkboxBackgroundColorPressed,
138 VuoColor _checkboxBackgroundColorToggled,
139 VuoColor _checkboxBackgroundColorToggledAndHovered,
142 VuoColor _checkboxBorderColorHovered,
143 VuoColor _checkboxBorderColorPressed,
144 VuoColor _checkboxBorderColorToggled,
145 VuoColor _checkboxBorderColorToggledAndHovered,
147 VuoReal _checkboxBorderThickness,
148 VuoReal _checkboxCornerRoundness,
149 VuoReal _marginBetweenCheckboxAndLabel)
151 labelFont = _labelFont;
154 labelColor = _labelColor;
155 labelColorHovered = _labelColorHovered;
156 labelColorPressed = _labelColorPressed;
157 labelColorToggled = _labelColorToggled;
158 labelColorToggledAndHovered = _labelColorToggledAndHovered;
160 checkmarkColor = _checkmarkColor;
161 checkmarkColorHovered = _checkmarkColorHovered;
162 checkmarkColorPressed = _checkmarkColorPressed;
164 checkmarkBorderColor = _checkmarkBorderColor;
165 checkmarkBorderColorHovered = _checkmarkBorderColorHovered;
166 checkmarkBorderColorPressed = _checkmarkBorderColorPressed;
168 checkboxBackgroundColor = _checkboxBackgroundColor;
169 checkboxBackgroundColorHovered = _checkboxBackgroundColorHovered;
170 checkboxBackgroundColorPressed = _checkboxBackgroundColorPressed;
171 checkboxBackgroundColorToggled = _checkboxBackgroundColorToggled;
172 checkboxBackgroundColorToggledAndHovered = _checkboxBackgroundColorToggledAndHovered;
174 checkboxBorderColor = _checkboxBorderColor;
175 checkboxBorderColorHovered = _checkboxBorderColorHovered;
176 checkboxBorderColorPressed = _checkboxBorderColorPressed;
177 checkboxBorderColorToggled = _checkboxBorderColorToggled;
178 checkboxBorderColorToggledAndHovered = _checkboxBorderColorToggledAndHovered;
180 checkboxBorderThickness = _checkboxBorderThickness;
181 checkboxCornerRoundness = _checkboxCornerRoundness;
182 marginBetweenCheckboxAndLabel = _marginBetweenCheckboxAndLabel;
199 json_object_object_add(json,
"labelColorHovered",
VuoColor_getJson(labelColorHovered));
200 json_object_object_add(json,
"labelColorPressed",
VuoColor_getJson(labelColorPressed));
201 json_object_object_add(json,
"labelColorToggled",
VuoColor_getJson(labelColorToggled));
202 json_object_object_add(json,
"labelColorToggledAndHovered",
VuoColor_getJson(labelColorToggledAndHovered));
204 json_object_object_add(json,
"checkmarkColor",
VuoColor_getJson(checkmarkColor));
205 json_object_object_add(json,
"checkmarkColorHovered",
VuoColor_getJson(checkmarkColorHovered));
206 json_object_object_add(json,
"checkmarkColorPressed",
VuoColor_getJson(checkmarkColorPressed));
208 json_object_object_add(json,
"checkmarkBorderColor",
VuoColor_getJson(checkmarkBorderColor));
209 json_object_object_add(json,
"checkmarkBorderColorHovered",
VuoColor_getJson(checkmarkBorderColorHovered));
210 json_object_object_add(json,
"checkmarkBorderColorPressed",
VuoColor_getJson(checkmarkBorderColorPressed));
212 json_object_object_add(json,
"checkboxBackgroundColor",
VuoColor_getJson(checkboxBackgroundColor));
213 json_object_object_add(json,
"checkboxBackgroundColorHovered",
VuoColor_getJson(checkboxBackgroundColorHovered));
214 json_object_object_add(json,
"checkboxBackgroundColorPressed",
VuoColor_getJson(checkboxBackgroundColorPressed));
215 json_object_object_add(json,
"checkboxBackgroundColorToggled",
VuoColor_getJson(checkboxBackgroundColorToggled));
216 json_object_object_add(json,
"checkboxBackgroundColorToggledAndHovered",
VuoColor_getJson(checkboxBackgroundColorToggledAndHovered));
218 json_object_object_add(json,
"checkboxBorderColor",
VuoColor_getJson(checkboxBorderColor));
219 json_object_object_add(json,
"checkboxBorderColorHovered",
VuoColor_getJson(checkboxBorderColorHovered));
220 json_object_object_add(json,
"checkboxBorderColorPressed",
VuoColor_getJson(checkboxBorderColorPressed));
221 json_object_object_add(json,
"checkboxBorderColorToggled",
VuoColor_getJson(checkboxBorderColorToggled));
222 json_object_object_add(json,
"checkboxBorderColorToggledAndHovered",
VuoColor_getJson(checkboxBorderColorToggledAndHovered));
224 json_object_object_add(json,
"checkboxBorderThickness",
VuoReal_getJson(checkboxBorderThickness));
225 json_object_object_add(json,
"checkboxCornerRoundness",
VuoReal_getJson(checkboxCornerRoundness));
226 json_object_object_add(json,
"marginBetweenCheckboxAndLabel",
VuoReal_getJson(marginBetweenCheckboxAndLabel));
235 return strdup(
"Toggle Button Theme (Rounded)");
250 &&
VuoColor_areEqual(labelColorToggledAndHovered, thatSpecialized->labelColorToggledAndHovered)
253 &&
VuoColor_areEqual(checkmarkColorHovered, thatSpecialized->checkmarkColorHovered)
254 &&
VuoColor_areEqual(checkmarkColorPressed, thatSpecialized->checkmarkColorPressed)
256 &&
VuoColor_areEqual(checkmarkBorderColor, thatSpecialized->checkmarkBorderColor)
257 &&
VuoColor_areEqual(checkmarkBorderColorHovered, thatSpecialized->checkmarkBorderColorHovered)
258 &&
VuoColor_areEqual(checkmarkBorderColorPressed, thatSpecialized->checkmarkBorderColorPressed)
260 &&
VuoColor_areEqual(checkboxBackgroundColor, thatSpecialized->checkboxBackgroundColor)
261 &&
VuoColor_areEqual(checkboxBackgroundColorHovered, thatSpecialized->checkboxBackgroundColorHovered)
262 &&
VuoColor_areEqual(checkboxBackgroundColorPressed, thatSpecialized->checkboxBackgroundColorPressed)
263 &&
VuoColor_areEqual(checkboxBackgroundColorToggled, thatSpecialized->checkboxBackgroundColorToggled)
264 &&
VuoColor_areEqual(checkboxBackgroundColorToggledAndHovered, thatSpecialized->checkboxBackgroundColorToggledAndHovered)
267 &&
VuoColor_areEqual(checkboxBorderColorHovered, thatSpecialized->checkboxBorderColorHovered)
268 &&
VuoColor_areEqual(checkboxBorderColorPressed, thatSpecialized->checkboxBorderColorPressed)
269 &&
VuoColor_areEqual(checkboxBorderColorToggled, thatSpecialized->checkboxBorderColorToggled)
270 &&
VuoColor_areEqual(checkboxBorderColorToggledAndHovered, thatSpecialized->checkboxBorderColorToggledAndHovered)
272 &&
VuoReal_areEqual(checkboxBorderThickness, thatSpecialized->checkboxBorderThickness)
273 &&
VuoReal_areEqual(checkboxCornerRoundness, thatSpecialized->checkboxCornerRoundness)
274 &&
VuoReal_areEqual(marginBetweenCheckboxAndLabel, thatSpecialized->marginBetweenCheckboxAndLabel);
332 float checkboxWidth = lineHeight * .6;
333 float checkboxHeight = checkboxWidth;
335 checkboxWidth += checkboxBorderThickness * 2;
336 checkboxHeight += checkboxBorderThickness * 2;
338 float innerCornerRoundness = (checkboxHeight - checkboxBorderThickness * 2 - (checkboxHeight * (1 - checkboxCornerRoundness))) / (checkboxHeight - checkboxBorderThickness * 2);
341 isPressed ? checkboxBackgroundColorPressed :
342 (isToggled && isHovered ? checkboxBackgroundColorToggledAndHovered :
343 (isToggled ? checkboxBackgroundColorToggled :
344 (isHovered ? checkboxBackgroundColorHovered :
345 checkboxBackgroundColor))),
348 checkboxWidth - checkboxBorderThickness * 2,
349 checkboxHeight - checkboxBorderThickness * 2,
351 innerCornerRoundness);
354 VuoPoint2d checkmarkPosition{ (float)checkboxWidth * .15f, (
float)checkboxHeight * .15f};
355 VuoReal checkmarkWidth = checkboxWidth * 1.15;
361 VuoPoint2d_add(checkmarkPosition, (VuoPoint2d){ (float)marginBetweenCheckboxAndLabel / 2, 0 }),
363 checkmarkWidth + marginBetweenCheckboxAndLabel,
370 isPressed ? checkmarkColorPressed :
371 (isHovered ? checkmarkColorHovered :
374 isPressed ? checkmarkBorderColorPressed :
375 (isHovered ? checkmarkBorderColorHovered :
376 checkmarkBorderColor),
385 isPressed ? checkboxBorderColorPressed :
386 (isToggled && isHovered ? checkboxBorderColorToggledAndHovered :
387 (isToggled ? checkboxBorderColorToggled :
388 (isHovered ? checkboxBorderColorHovered :
389 checkboxBorderColor))),
395 checkboxCornerRoundness);
409 f.color = (
VuoColor){ f.color.r * labelColorPressed.r,
410 f.color.g * labelColorPressed.g,
411 f.color.b * labelColorPressed.b,
412 f.color.a * labelColorPressed.a };
413 else if (isToggled && isHovered)
414 f.color = (
VuoColor){ f.color.r * labelColorToggledAndHovered.r,
415 f.color.g * labelColorToggledAndHovered.g,
416 f.color.b * labelColorToggledAndHovered.b,
417 f.color.a * labelColorToggledAndHovered.a };
419 f.color = (
VuoColor){ f.color.r * labelColorHovered.r,
420 f.color.g * labelColorHovered.g,
421 f.color.b * labelColorHovered.b,
422 f.color.a * labelColorHovered.a };
424 f.color = (
VuoColor){ f.color.r * labelColorToggled.r,
425 f.color.g * labelColorToggled.g,
426 f.color.b * labelColorToggled.b,
427 f.color.a * labelColorToggled.a };
429 f.color = (
VuoColor){ f.color.r * labelColor.r,
430 f.color.g * labelColor.g,
431 f.color.b * labelColor.b,
432 f.color.a * labelColor.a };
436 (VuoPoint3d){ 0, 0, 0 },
437 (VuoPoint3d){ 1, 1, 1 }));
448 unsigned long int pixelsWide, pixelsHigh;
449 float backingScaleFactor;
478 VuoColor labelColorToggledAndHovered,
485 VuoColor checkmarkBorderColorHovered,
486 VuoColor checkmarkBorderColorPressed,
489 VuoColor checkboxBackgroundColorHovered,
490 VuoColor checkboxBackgroundColorPressed,
491 VuoColor checkboxBackgroundColorToggled,
492 VuoColor checkboxBackgroundColorToggledAndHovered,
495 VuoColor checkboxBorderColorHovered,
496 VuoColor checkboxBorderColorPressed,
497 VuoColor checkboxBorderColorToggled,
498 VuoColor checkboxBorderColorToggledAndHovered,
500 VuoReal checkboxBorderThickness,
501 VuoReal checkboxCornerRoundness,
502 VuoReal marginBetweenCheckboxAndLabel)
510 labelColorToggledAndHovered,
513 checkmarkColorHovered,
514 checkmarkColorPressed,
516 checkmarkBorderColor,
517 checkmarkBorderColorHovered,
518 checkmarkBorderColorPressed,
520 checkboxBackgroundColor,
521 checkboxBackgroundColorHovered,
522 checkboxBackgroundColorPressed,
523 checkboxBackgroundColorToggled,
524 checkboxBackgroundColorToggledAndHovered,
527 checkboxBorderColorHovered,
528 checkboxBorderColorPressed,
529 checkboxBorderColorToggled,
530 checkboxBorderColorToggledAndHovered,
532 checkboxBorderThickness,
533 checkboxCornerRoundness,
534 marginBetweenCheckboxAndLabel));