Vuo  2.4.0
VuoUiThemeToggleRounded.cc
Go to the documentation of this file.
1
10#include "VuoUiThemeBase.hh"
11
12#include "type.h"
13#include "VuoSceneText.h"
14
16#ifdef VUO_COMPILER
18 "title": "UI Theme: Toggle, Rounded",
19 "dependencies": [
20 "VuoBoolean",
21 "VuoColor",
22 "VuoFont",
23 "VuoImage",
24 "VuoImageText",
25 "VuoLayer",
26 "VuoPoint2d",
27 "VuoReal",
28 "VuoAnchor",
29 "VuoHorizontalAlignment",
30 "VuoVerticalAlignment",
31 "VuoSceneText"
32 ],
33 });
34#endif
36
41{
42private:
43 VuoFont labelFont;
44
45 VuoColor labelColor;
46 VuoColor labelColorHovered;
47 VuoColor labelColorPressed;
48 VuoColor labelColorToggled;
49 VuoColor labelColorToggledAndHovered;
50
51 VuoColor checkmarkColor;
52 VuoColor checkmarkColorHovered;
53 VuoColor checkmarkColorPressed;
54
55 VuoColor checkmarkBorderColor;
56 VuoColor checkmarkBorderColorHovered;
57 VuoColor checkmarkBorderColorPressed;
58
59 VuoColor checkboxBackgroundColor;
60 VuoColor checkboxBackgroundColorHovered;
61 VuoColor checkboxBackgroundColorPressed;
62 VuoColor checkboxBackgroundColorToggled;
63 VuoColor checkboxBackgroundColorToggledAndHovered;
64
65 VuoColor checkboxBorderColor;
66 VuoColor checkboxBorderColorHovered;
67 VuoColor checkboxBorderColorPressed;
68 VuoColor checkboxBorderColorToggled;
69 VuoColor checkboxBorderColorToggledAndHovered;
70
71 VuoReal checkboxBorderThickness;
72 VuoReal checkboxCornerRoundness;
73 VuoReal marginBetweenCheckboxAndLabel;
74
75public:
76 static std::string type;
77
82 {
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}),
84
85 VuoJson_getObjectValue(VuoColor, js, "labelColor", (VuoColor){.7,.7,.7,.7}),
86 VuoJson_getObjectValue(VuoColor, js, "labelColorHovered", (VuoColor){.7,.7,.7,.8}),
87 VuoJson_getObjectValue(VuoColor, js, "labelColorPressed", (VuoColor){.7,.7,.7,.9}),
88 VuoJson_getObjectValue(VuoColor, js, "labelColorToggled", (VuoColor){.7,.7,.7,.8}),
89 VuoJson_getObjectValue(VuoColor, js, "labelColorToggledAndHovered", (VuoColor){.7,.7,.7,.9}),
90
91 VuoJson_getObjectValue(VuoColor, js, "checkmarkColor", (VuoColor){1,1,1,.9}),
92 VuoJson_getObjectValue(VuoColor, js, "checkmarkColorHovered", (VuoColor){1,1,1,1 }),
93 VuoJson_getObjectValue(VuoColor, js, "checkmarkColorPressed", (VuoColor){1,1,1,.9}),
94
95 VuoJson_getObjectValue(VuoColor, js, "checkmarkBorderColor", (VuoColor){0,0,0,.5}),
96 VuoJson_getObjectValue(VuoColor, js, "checkmarkBorderColorHovered", (VuoColor){0,0,0,.5}),
97 VuoJson_getObjectValue(VuoColor, js, "checkmarkBorderColorPressed", (VuoColor){0,0,0,1}),
98
99 VuoJson_getObjectValue(VuoColor, js, "checkboxBackgroundColor", (VuoColor){.4,.4, .4, 1}),
100 VuoJson_getObjectValue(VuoColor, js, "checkboxBackgroundColorHovered", (VuoColor){.43,.43,.43,1}),
101 VuoJson_getObjectValue(VuoColor, js, "checkboxBackgroundColorPressed", (VuoColor){.4,.5, .6, 1}),
102 VuoJson_getObjectValue(VuoColor, js, "checkboxBackgroundColorToggled", (VuoColor){.4,.6, .8, 1}),
103 VuoJson_getObjectValue(VuoColor, js, "checkboxBackgroundColorToggledAndHovered", (VuoColor){.4,.62,.84,1}),
104
105 VuoJson_getObjectValue(VuoColor, js, "checkboxBorderColor", (VuoColor){.46,.46,.46,1}),
106 VuoJson_getObjectValue(VuoColor, js, "checkboxBorderColorHovered", (VuoColor){.46,.48,.49,1}),
107 VuoJson_getObjectValue(VuoColor, js, "checkboxBorderColorPressed", (VuoColor){.46,.55,.64,1}),
108 VuoJson_getObjectValue(VuoColor, js, "checkboxBorderColorToggled", (VuoColor){.46,.64,.82,1}),
109 VuoJson_getObjectValue(VuoColor, js, "checkboxBorderColorToggledAndHovered", (VuoColor){.46,.66,.86,1}),
110
111 VuoJson_getObjectValue(VuoReal, js, "checkboxBorderThickness", 0.005),
112 VuoJson_getObjectValue(VuoReal, js, "checkboxCornerRoundness", 0.5),
113 VuoJson_getObjectValue(VuoReal, js, "marginBetweenCheckboxAndLabel", 0.025));
114 }
115
120
121 VuoColor _labelColor,
122 VuoColor _labelColorHovered,
123 VuoColor _labelColorPressed,
124 VuoColor _labelColorToggled,
125 VuoColor _labelColorToggledAndHovered,
126
127 VuoColor _checkmarkColor,
128 VuoColor _checkmarkColorHovered,
129 VuoColor _checkmarkColorPressed,
130
131 VuoColor _checkmarkBorderColor,
132 VuoColor _checkmarkBorderColorHovered,
133 VuoColor _checkmarkBorderColorPressed,
134
135 VuoColor _checkboxBackgroundColor,
136 VuoColor _checkboxBackgroundColorHovered,
137 VuoColor _checkboxBackgroundColorPressed,
138 VuoColor _checkboxBackgroundColorToggled,
139 VuoColor _checkboxBackgroundColorToggledAndHovered,
140
141 VuoColor _checkboxBorderColor,
142 VuoColor _checkboxBorderColorHovered,
143 VuoColor _checkboxBorderColorPressed,
144 VuoColor _checkboxBorderColorToggled,
145 VuoColor _checkboxBorderColorToggledAndHovered,
146
147 VuoReal _checkboxBorderThickness,
148 VuoReal _checkboxCornerRoundness,
149 VuoReal _marginBetweenCheckboxAndLabel)
150 {
151 labelFont = _labelFont;
152 VuoFont_retain(labelFont);
153
154 labelColor = _labelColor;
155 labelColorHovered = _labelColorHovered;
156 labelColorPressed = _labelColorPressed;
157 labelColorToggled = _labelColorToggled;
158 labelColorToggledAndHovered = _labelColorToggledAndHovered;
159
160 checkmarkColor = _checkmarkColor;
161 checkmarkColorHovered = _checkmarkColorHovered;
162 checkmarkColorPressed = _checkmarkColorPressed;
163
164 checkmarkBorderColor = _checkmarkBorderColor;
165 checkmarkBorderColorHovered = _checkmarkBorderColorHovered;
166 checkmarkBorderColorPressed = _checkmarkBorderColorPressed;
167
168 checkboxBackgroundColor = _checkboxBackgroundColor;
169 checkboxBackgroundColorHovered = _checkboxBackgroundColorHovered;
170 checkboxBackgroundColorPressed = _checkboxBackgroundColorPressed;
171 checkboxBackgroundColorToggled = _checkboxBackgroundColorToggled;
172 checkboxBackgroundColorToggledAndHovered = _checkboxBackgroundColorToggledAndHovered;
173
174 checkboxBorderColor = _checkboxBorderColor;
175 checkboxBorderColorHovered = _checkboxBorderColorHovered;
176 checkboxBorderColorPressed = _checkboxBorderColorPressed;
177 checkboxBorderColorToggled = _checkboxBorderColorToggled;
178 checkboxBorderColorToggledAndHovered = _checkboxBorderColorToggledAndHovered;
179
180 checkboxBorderThickness = _checkboxBorderThickness;
181 checkboxCornerRoundness = _checkboxCornerRoundness;
182 marginBetweenCheckboxAndLabel = _marginBetweenCheckboxAndLabel;
183 }
185 {
186 VuoFont_release(labelFont);
187 }
188
193 {
195
196 json_object_object_add(json, "labelFont", VuoFont_getJson(labelFont));
197
198 json_object_object_add(json, "labelColor", VuoColor_getJson(labelColor));
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));
203
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));
207
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));
211
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));
217
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));
223
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));
227 return json;
228 }
229
234 {
235 return strdup("Toggle Button Theme (Rounded)");
236 }
237
241 bool operator==(const VuoSerializable &that)
242 {
244 return VuoFont_areEqual(labelFont, thatSpecialized->labelFont)
245
246 && VuoColor_areEqual(labelColor, thatSpecialized->labelColor)
247 && VuoColor_areEqual(labelColorHovered, thatSpecialized->labelColorHovered)
248 && VuoColor_areEqual(labelColorPressed, thatSpecialized->labelColorPressed)
249 && VuoColor_areEqual(labelColorToggled, thatSpecialized->labelColorToggled)
250 && VuoColor_areEqual(labelColorToggledAndHovered, thatSpecialized->labelColorToggledAndHovered)
251
252 && VuoColor_areEqual(checkmarkColor, thatSpecialized->checkmarkColor)
253 && VuoColor_areEqual(checkmarkColorHovered, thatSpecialized->checkmarkColorHovered)
254 && VuoColor_areEqual(checkmarkColorPressed, thatSpecialized->checkmarkColorPressed)
255
256 && VuoColor_areEqual(checkmarkBorderColor, thatSpecialized->checkmarkBorderColor)
257 && VuoColor_areEqual(checkmarkBorderColorHovered, thatSpecialized->checkmarkBorderColorHovered)
258 && VuoColor_areEqual(checkmarkBorderColorPressed, thatSpecialized->checkmarkBorderColorPressed)
259
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)
265
266 && VuoColor_areEqual(checkboxBorderColor, thatSpecialized->checkboxBorderColor)
267 && VuoColor_areEqual(checkboxBorderColorHovered, thatSpecialized->checkboxBorderColorHovered)
268 && VuoColor_areEqual(checkboxBorderColorPressed, thatSpecialized->checkboxBorderColorPressed)
269 && VuoColor_areEqual(checkboxBorderColorToggled, thatSpecialized->checkboxBorderColorToggled)
270 && VuoColor_areEqual(checkboxBorderColorToggledAndHovered, thatSpecialized->checkboxBorderColorToggledAndHovered)
271
272 && VuoReal_areEqual(checkboxBorderThickness, thatSpecialized->checkboxBorderThickness)
273 && VuoReal_areEqual(checkboxCornerRoundness, thatSpecialized->checkboxCornerRoundness)
274 && VuoReal_areEqual(marginBetweenCheckboxAndLabel, thatSpecialized->marginBetweenCheckboxAndLabel);
275 }
276
280 bool operator<(const VuoSerializable &that)
281 {
283
284 VuoType_returnInequality(VuoFont, labelFont, thatSpecialized->labelFont);
285
286 VuoType_returnInequality(VuoColor, labelColor, thatSpecialized->labelColor);
287 VuoType_returnInequality(VuoColor, labelColorHovered, thatSpecialized->labelColorHovered);
288 VuoType_returnInequality(VuoColor, labelColorPressed, thatSpecialized->labelColorPressed);
289 VuoType_returnInequality(VuoColor, labelColorToggled, thatSpecialized->labelColorToggled);
290 VuoType_returnInequality(VuoColor, labelColorToggledAndHovered, thatSpecialized->labelColorToggledAndHovered);
291
292 VuoType_returnInequality(VuoColor, checkmarkColor, thatSpecialized->checkmarkColor);
293 VuoType_returnInequality(VuoColor, checkmarkColorHovered, thatSpecialized->checkmarkColorHovered);
294 VuoType_returnInequality(VuoColor, checkmarkColorPressed, thatSpecialized->checkmarkColorPressed);
295
296 VuoType_returnInequality(VuoColor, checkmarkBorderColor, thatSpecialized->checkmarkBorderColor);
297 VuoType_returnInequality(VuoColor, checkmarkBorderColorHovered, thatSpecialized->checkmarkBorderColorHovered);
298 VuoType_returnInequality(VuoColor, checkmarkBorderColorPressed, thatSpecialized->checkmarkBorderColorPressed);
299
300 VuoType_returnInequality(VuoColor, checkboxBackgroundColor, thatSpecialized->checkboxBackgroundColor);
301 VuoType_returnInequality(VuoColor, checkboxBackgroundColorHovered, thatSpecialized->checkboxBackgroundColorHovered);
302 VuoType_returnInequality(VuoColor, checkboxBackgroundColorPressed, thatSpecialized->checkboxBackgroundColorPressed);
303 VuoType_returnInequality(VuoColor, checkboxBackgroundColorToggled, thatSpecialized->checkboxBackgroundColorToggled);
304 VuoType_returnInequality(VuoColor, checkboxBackgroundColorToggledAndHovered, thatSpecialized->checkboxBackgroundColorToggledAndHovered);
305
306 VuoType_returnInequality(VuoColor, checkboxBorderColor, thatSpecialized->checkboxBorderColor);
307 VuoType_returnInequality(VuoColor, checkboxBorderColorHovered, thatSpecialized->checkboxBorderColorHovered);
308 VuoType_returnInequality(VuoColor, checkboxBorderColorPressed, thatSpecialized->checkboxBorderColorPressed);
309 VuoType_returnInequality(VuoColor, checkboxBorderColorToggled, thatSpecialized->checkboxBorderColorToggled);
310 VuoType_returnInequality(VuoColor, checkboxBorderColorToggledAndHovered, thatSpecialized->checkboxBorderColorToggledAndHovered);
311
312 VuoType_returnInequality(VuoReal, checkboxBorderThickness, thatSpecialized->checkboxBorderThickness);
313 VuoType_returnInequality(VuoReal, checkboxCornerRoundness, thatSpecialized->checkboxCornerRoundness);
314 VuoType_returnInequality(VuoReal, marginBetweenCheckboxAndLabel, thatSpecialized->marginBetweenCheckboxAndLabel);
315
316 return false;
317 }
318
327 VuoLayer render(VuoRenderedLayers renderedLayers, VuoText label, VuoPoint2d position, VuoAnchor anchor, bool isHovered, bool isPressed, bool isToggled)
328 {
329 bool hasText = VuoText_length(label) > 0;
330
332 float checkboxWidth = lineHeight * .6;
333 float checkboxHeight = checkboxWidth;
334
335 checkboxWidth += checkboxBorderThickness * 2;
336 checkboxHeight += checkboxBorderThickness * 2;
337
338 float innerCornerRoundness = (checkboxHeight - checkboxBorderThickness * 2 - (checkboxHeight * (1 - checkboxCornerRoundness))) / (checkboxHeight - checkboxBorderThickness * 2);
339
340 VuoLayer backgroundLayer = VuoLayer_makeRoundedRectangle(VuoText_make("Checkbox Background"),
341 isPressed ? checkboxBackgroundColorPressed :
342 (isToggled && isHovered ? checkboxBackgroundColorToggledAndHovered :
343 (isToggled ? checkboxBackgroundColorToggled :
344 (isHovered ? checkboxBackgroundColorHovered :
345 checkboxBackgroundColor))),
346 VuoPoint2d_make(0, 0),
347 0,
348 checkboxWidth - checkboxBorderThickness * 2,
349 checkboxHeight - checkboxBorderThickness * 2,
350 1,
351 innerCornerRoundness);
352
353
354 VuoPoint2d checkmarkPosition{ (float)checkboxWidth * .15f, (float)checkboxHeight * .15f};
355 VuoReal checkmarkWidth = checkboxWidth * 1.15;
356
357 // Ensures the layer bounds don't change when the checkmark appears or disappears.
358 // Also covers the gap between the checkbox and the label.
359 VuoLayer spacerLayer = VuoLayer_makeColor(VuoText_make("Spacer"),
360 (VuoColor){ 0, 0, 0, 0 },
361 VuoPoint2d_add(checkmarkPosition, (VuoPoint2d){ (float)marginBetweenCheckboxAndLabel / 2, 0 }),
362 0,
363 checkmarkWidth + marginBetweenCheckboxAndLabel,
364 checkmarkWidth);
365
366 VuoLayer toggleLayer = nullptr;
367 if (isToggled)
368 toggleLayer = VuoLayer_makeCheckmark(VuoText_make("Checkmark"),
369
370 isPressed ? checkmarkColorPressed :
371 (isHovered ? checkmarkColorHovered :
372 checkmarkColor),
373
374 isPressed ? checkmarkBorderColorPressed :
375 (isHovered ? checkmarkBorderColorHovered :
376 checkmarkBorderColor),
377
378 .01,
379 checkmarkPosition,
380 0,
381 checkmarkWidth,
382 checkmarkWidth);
383
384 VuoLayer borderLayer = VuoLayer_makeRoundedRectangle(VuoText_make("Checkbox Border"),
385 isPressed ? checkboxBorderColorPressed :
386 (isToggled && isHovered ? checkboxBorderColorToggledAndHovered :
387 (isToggled ? checkboxBorderColorToggled :
388 (isHovered ? checkboxBorderColorHovered :
389 checkboxBorderColor))),
390 VuoPoint2d_make(0, 0),
391 0,
392 checkboxWidth,
393 checkboxHeight,
394 1,
395 checkboxCornerRoundness);
396
398 VuoLocal(layers);
399
400 VuoListAppendValue_VuoLayer(layers, spacerLayer);
401 VuoListAppendValue_VuoLayer(layers, borderLayer);
402 VuoListAppendValue_VuoLayer(layers, backgroundLayer);
403 if(VuoLayer_isPopulated(toggleLayer)) VuoListAppendValue_VuoLayer(layers, toggleLayer);
404
405 if (hasText)
406 {
407 VuoFont f = labelFont;
408 if (isPressed)
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 };
418 else if (isHovered)
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 };
423 else if (isToggled)
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 };
428 else
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 };
433
434 VuoSceneObject textLayer = VuoSceneText_make(label, f, true, INFINITY, VuoAnchor_make(VuoHorizontalAlignment_Left, VuoVerticalAlignment_Center));
435 VuoSceneObject_setTransform(textLayer, VuoTransform_makeEuler((VuoPoint3d){ (float)checkboxWidth/2 + (float)marginBetweenCheckboxAndLabel, -.0001f * (float)f.pointSize, 0 },
436 (VuoPoint3d){ 0, 0, 0 },
437 (VuoPoint3d){ 1, 1, 1 }));
438 VuoListAppendValue_VuoLayer(layers, (VuoLayer)textLayer);
439 }
440
441
442 VuoLayer group = VuoLayer_makeGroup(layers, VuoTransform2d_make(position, 0, VuoPoint2d_make(1, 1)));
443
444 // Center horizontally.
445 VuoPoint2d textSize = VuoRenderedLayers_getTextSize(renderedLayers, label, labelFont, true, 1, 0, INFINITY, true);
446 VuoSceneObject_translate((VuoSceneObject)group, (VuoPoint3d){checkboxWidth/2 - (checkboxWidth + (float)marginBetweenCheckboxAndLabel + textSize.x)/2, 0, 0});
447
448 unsigned long int pixelsWide, pixelsHigh;
449 float backingScaleFactor;
450 if (!VuoRenderedLayers_getRenderingDimensions(renderedLayers, &pixelsWide, &pixelsHigh, &backingScaleFactor))
451 {
452 VuoRetain(group);
453 VuoRelease(group);
454 return nullptr;
455 }
456
457 // Wrap it in an extra group, so the above centering and the anchor aren't disturbed by e.g. `Arrange Layers in Column`.
459 VuoRetain(l);
460 VuoListAppendValue_VuoLayer(l, VuoLayer_setAnchor(group, anchor, pixelsWide, pixelsHigh, backingScaleFactor));
462 VuoRelease(l);
463 return lg;
464 }
465};
466
468
473
474 VuoColor labelColor,
475 VuoColor labelColorHovered,
476 VuoColor labelColorPressed,
477 VuoColor labelColorToggled,
478 VuoColor labelColorToggledAndHovered,
479
480 VuoColor checkmarkColor,
481 VuoColor checkmarkColorHovered,
482 VuoColor checkmarkColorPressed,
483
484 VuoColor checkmarkBorderColor,
485 VuoColor checkmarkBorderColorHovered,
486 VuoColor checkmarkBorderColorPressed,
487
488 VuoColor checkboxBackgroundColor,
489 VuoColor checkboxBackgroundColorHovered,
490 VuoColor checkboxBackgroundColorPressed,
491 VuoColor checkboxBackgroundColorToggled,
492 VuoColor checkboxBackgroundColorToggledAndHovered,
493
494 VuoColor checkboxBorderColor,
495 VuoColor checkboxBorderColorHovered,
496 VuoColor checkboxBorderColorPressed,
497 VuoColor checkboxBorderColorToggled,
498 VuoColor checkboxBorderColorToggledAndHovered,
499
500 VuoReal checkboxBorderThickness,
501 VuoReal checkboxCornerRoundness,
502 VuoReal marginBetweenCheckboxAndLabel)
503{
504 return reinterpret_cast<VuoUiTheme>(new VuoUiThemeToggleRounded(labelFont,
505
506 labelColor,
507 labelColorHovered,
508 labelColorPressed,
509 labelColorToggled,
510 labelColorToggledAndHovered,
511
512 checkmarkColor,
513 checkmarkColorHovered,
514 checkmarkColorPressed,
515
516 checkmarkBorderColor,
517 checkmarkBorderColorHovered,
518 checkmarkBorderColorPressed,
519
520 checkboxBackgroundColor,
521 checkboxBackgroundColorHovered,
522 checkboxBackgroundColorPressed,
523 checkboxBackgroundColorToggled,
524 checkboxBackgroundColorToggledAndHovered,
525
526 checkboxBorderColor,
527 checkboxBorderColorHovered,
528 checkboxBorderColorPressed,
529 checkboxBorderColorToggled,
530 checkboxBorderColorToggledAndHovered,
531
532 checkboxBorderThickness,
533 checkboxCornerRoundness,
534 marginBetweenCheckboxAndLabel));
535}