Vuo  2.0.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
35 
41 {
42 private:
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 
75 public:
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 
233  char *getSummary()
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 = VuoLayer_makeEmpty();
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  VuoLayer textLayer;
435  textLayer.sceneObject = VuoSceneText_make(label, f, true, INFINITY, VuoAnchor_make(VuoHorizontalAlignment_Left, VuoVerticalAlignment_Center));
436  textLayer.sceneObject.transform = VuoTransform_makeEuler((VuoPoint3d){ (float)checkboxWidth/2 + (float)marginBetweenCheckboxAndLabel, -.0001f * (float)f.pointSize, 0 },
437  (VuoPoint3d){ 0, 0, 0 },
438  (VuoPoint3d){ 1, 1, 1 });
439  VuoListAppendValue_VuoLayer(layers, textLayer);
440  }
441 
442 
443  VuoLayer group = VuoLayer_makeGroup(layers, VuoTransform2d_make(position, 0, VuoPoint2d_make(1, 1)));
444 
445  // Center horizontally.
446  VuoPoint2d textSize = VuoRenderedLayers_getTextSize(renderedLayers, label, labelFont, true, 1, 0, INFINITY, true);
447  group.sceneObject.transform.translation.x += checkboxWidth/2 - (checkboxWidth + marginBetweenCheckboxAndLabel + textSize.x)/2;
448 
449  // Wrap it in an extra group, so the above centering and the anchor aren't disturbed by e.g. `Arrange Layers in Column`.
451  VuoRetain(l);
452  VuoListAppendValue_VuoLayer(l, VuoLayer_setAnchor(group, anchor, renderedLayers.pixelsWide, renderedLayers.pixelsHigh, renderedLayers.backingScaleFactor));
454  VuoRelease(l);
455  return lg;
456  }
457 };
458 
460 
465 
466  VuoColor labelColor,
467  VuoColor labelColorHovered,
468  VuoColor labelColorPressed,
469  VuoColor labelColorToggled,
470  VuoColor labelColorToggledAndHovered,
471 
472  VuoColor checkmarkColor,
473  VuoColor checkmarkColorHovered,
474  VuoColor checkmarkColorPressed,
475 
476  VuoColor checkmarkBorderColor,
477  VuoColor checkmarkBorderColorHovered,
478  VuoColor checkmarkBorderColorPressed,
479 
480  VuoColor checkboxBackgroundColor,
481  VuoColor checkboxBackgroundColorHovered,
482  VuoColor checkboxBackgroundColorPressed,
483  VuoColor checkboxBackgroundColorToggled,
484  VuoColor checkboxBackgroundColorToggledAndHovered,
485 
486  VuoColor checkboxBorderColor,
487  VuoColor checkboxBorderColorHovered,
488  VuoColor checkboxBorderColorPressed,
489  VuoColor checkboxBorderColorToggled,
490  VuoColor checkboxBorderColorToggledAndHovered,
491 
492  VuoReal checkboxBorderThickness,
493  VuoReal checkboxCornerRoundness,
494  VuoReal marginBetweenCheckboxAndLabel)
495 {
496  return reinterpret_cast<VuoUiTheme>(new VuoUiThemeToggleRounded(labelFont,
497 
498  labelColor,
499  labelColorHovered,
500  labelColorPressed,
501  labelColorToggled,
502  labelColorToggledAndHovered,
503 
504  checkmarkColor,
505  checkmarkColorHovered,
506  checkmarkColorPressed,
507 
508  checkmarkBorderColor,
509  checkmarkBorderColorHovered,
510  checkmarkBorderColorPressed,
511 
512  checkboxBackgroundColor,
513  checkboxBackgroundColorHovered,
514  checkboxBackgroundColorPressed,
515  checkboxBackgroundColorToggled,
516  checkboxBackgroundColorToggledAndHovered,
517 
518  checkboxBorderColor,
519  checkboxBorderColorHovered,
520  checkboxBorderColorPressed,
521  checkboxBorderColorToggled,
522  checkboxBorderColorToggledAndHovered,
523 
524  checkboxBorderThickness,
525  checkboxCornerRoundness,
526  marginBetweenCheckboxAndLabel));
527 }