124 VuoColor _labelColorToggledAndHovered,
131 VuoColor _checkmarkBorderColorHovered,
132 VuoColor _checkmarkBorderColorPressed,
135 VuoColor _checkboxBackgroundColorHovered,
136 VuoColor _checkboxBackgroundColorPressed,
137 VuoColor _checkboxBackgroundColorToggled,
138 VuoColor _checkboxBackgroundColorToggledAndHovered,
141 VuoColor _checkboxBorderColorHovered,
142 VuoColor _checkboxBorderColorPressed,
143 VuoColor _checkboxBorderColorToggled,
144 VuoColor _checkboxBorderColorToggledAndHovered,
146 VuoReal _checkboxBorderThickness,
147 VuoReal _checkboxCornerRoundness,
148 VuoReal _marginBetweenCheckboxAndLabel)
150 labelFont = _labelFont;
153 labelColor = _labelColor;
154 labelColorHovered = _labelColorHovered;
155 labelColorPressed = _labelColorPressed;
156 labelColorToggled = _labelColorToggled;
157 labelColorToggledAndHovered = _labelColorToggledAndHovered;
159 checkmarkColor = _checkmarkColor;
160 checkmarkColorHovered = _checkmarkColorHovered;
161 checkmarkColorPressed = _checkmarkColorPressed;
163 checkmarkBorderColor = _checkmarkBorderColor;
164 checkmarkBorderColorHovered = _checkmarkBorderColorHovered;
165 checkmarkBorderColorPressed = _checkmarkBorderColorPressed;
167 checkboxBackgroundColor = _checkboxBackgroundColor;
168 checkboxBackgroundColorHovered = _checkboxBackgroundColorHovered;
169 checkboxBackgroundColorPressed = _checkboxBackgroundColorPressed;
170 checkboxBackgroundColorToggled = _checkboxBackgroundColorToggled;
171 checkboxBackgroundColorToggledAndHovered = _checkboxBackgroundColorToggledAndHovered;
173 checkboxBorderColor = _checkboxBorderColor;
174 checkboxBorderColorHovered = _checkboxBorderColorHovered;
175 checkboxBorderColorPressed = _checkboxBorderColorPressed;
176 checkboxBorderColorToggled = _checkboxBorderColorToggled;
177 checkboxBorderColorToggledAndHovered = _checkboxBorderColorToggledAndHovered;
179 checkboxBorderThickness = _checkboxBorderThickness;
180 checkboxCornerRoundness = _checkboxCornerRoundness;
181 marginBetweenCheckboxAndLabel = _marginBetweenCheckboxAndLabel;
198 json_object_object_add(json,
"labelColorHovered",
VuoColor_getJson(labelColorHovered));
199 json_object_object_add(json,
"labelColorPressed",
VuoColor_getJson(labelColorPressed));
200 json_object_object_add(json,
"labelColorToggled",
VuoColor_getJson(labelColorToggled));
201 json_object_object_add(json,
"labelColorToggledAndHovered",
VuoColor_getJson(labelColorToggledAndHovered));
203 json_object_object_add(json,
"checkmarkColor",
VuoColor_getJson(checkmarkColor));
204 json_object_object_add(json,
"checkmarkColorHovered",
VuoColor_getJson(checkmarkColorHovered));
205 json_object_object_add(json,
"checkmarkColorPressed",
VuoColor_getJson(checkmarkColorPressed));
207 json_object_object_add(json,
"checkmarkBorderColor",
VuoColor_getJson(checkmarkBorderColor));
208 json_object_object_add(json,
"checkmarkBorderColorHovered",
VuoColor_getJson(checkmarkBorderColorHovered));
209 json_object_object_add(json,
"checkmarkBorderColorPressed",
VuoColor_getJson(checkmarkBorderColorPressed));
211 json_object_object_add(json,
"checkboxBackgroundColor",
VuoColor_getJson(checkboxBackgroundColor));
212 json_object_object_add(json,
"checkboxBackgroundColorHovered",
VuoColor_getJson(checkboxBackgroundColorHovered));
213 json_object_object_add(json,
"checkboxBackgroundColorPressed",
VuoColor_getJson(checkboxBackgroundColorPressed));
214 json_object_object_add(json,
"checkboxBackgroundColorToggled",
VuoColor_getJson(checkboxBackgroundColorToggled));
215 json_object_object_add(json,
"checkboxBackgroundColorToggledAndHovered",
VuoColor_getJson(checkboxBackgroundColorToggledAndHovered));
217 json_object_object_add(json,
"checkboxBorderColor",
VuoColor_getJson(checkboxBorderColor));
218 json_object_object_add(json,
"checkboxBorderColorHovered",
VuoColor_getJson(checkboxBorderColorHovered));
219 json_object_object_add(json,
"checkboxBorderColorPressed",
VuoColor_getJson(checkboxBorderColorPressed));
220 json_object_object_add(json,
"checkboxBorderColorToggled",
VuoColor_getJson(checkboxBorderColorToggled));
221 json_object_object_add(json,
"checkboxBorderColorToggledAndHovered",
VuoColor_getJson(checkboxBorderColorToggledAndHovered));
223 json_object_object_add(json,
"checkboxBorderThickness",
VuoReal_getJson(checkboxBorderThickness));
224 json_object_object_add(json,
"checkboxCornerRoundness",
VuoReal_getJson(checkboxCornerRoundness));
225 json_object_object_add(json,
"marginBetweenCheckboxAndLabel",
VuoReal_getJson(marginBetweenCheckboxAndLabel));
249 &&
VuoColor_areEqual(labelColorToggledAndHovered, thatSpecialized->labelColorToggledAndHovered)
252 &&
VuoColor_areEqual(checkmarkColorHovered, thatSpecialized->checkmarkColorHovered)
253 &&
VuoColor_areEqual(checkmarkColorPressed, thatSpecialized->checkmarkColorPressed)
255 &&
VuoColor_areEqual(checkmarkBorderColor, thatSpecialized->checkmarkBorderColor)
256 &&
VuoColor_areEqual(checkmarkBorderColorHovered, thatSpecialized->checkmarkBorderColorHovered)
257 &&
VuoColor_areEqual(checkmarkBorderColorPressed, thatSpecialized->checkmarkBorderColorPressed)
259 &&
VuoColor_areEqual(checkboxBackgroundColor, thatSpecialized->checkboxBackgroundColor)
260 &&
VuoColor_areEqual(checkboxBackgroundColorHovered, thatSpecialized->checkboxBackgroundColorHovered)
261 &&
VuoColor_areEqual(checkboxBackgroundColorPressed, thatSpecialized->checkboxBackgroundColorPressed)
262 &&
VuoColor_areEqual(checkboxBackgroundColorToggled, thatSpecialized->checkboxBackgroundColorToggled)
263 &&
VuoColor_areEqual(checkboxBackgroundColorToggledAndHovered, thatSpecialized->checkboxBackgroundColorToggledAndHovered)
266 &&
VuoColor_areEqual(checkboxBorderColorHovered, thatSpecialized->checkboxBorderColorHovered)
267 &&
VuoColor_areEqual(checkboxBorderColorPressed, thatSpecialized->checkboxBorderColorPressed)
268 &&
VuoColor_areEqual(checkboxBorderColorToggled, thatSpecialized->checkboxBorderColorToggled)
269 &&
VuoColor_areEqual(checkboxBorderColorToggledAndHovered, thatSpecialized->checkboxBorderColorToggledAndHovered)
271 &&
VuoReal_areEqual(checkboxBorderThickness, thatSpecialized->checkboxBorderThickness)
272 &&
VuoReal_areEqual(checkboxCornerRoundness, thatSpecialized->checkboxCornerRoundness)
273 &&
VuoReal_areEqual(marginBetweenCheckboxAndLabel, thatSpecialized->marginBetweenCheckboxAndLabel);
331 float checkboxWidth = lineHeight * .6;
332 float checkboxHeight = checkboxWidth;
334 checkboxWidth += checkboxBorderThickness * 2;
335 checkboxHeight += checkboxBorderThickness * 2;
337 float innerCornerRoundness = (checkboxHeight - checkboxBorderThickness * 2 - (checkboxHeight * (1 - checkboxCornerRoundness))) / (checkboxHeight - checkboxBorderThickness * 2);
340 isPressed ? checkboxBackgroundColorPressed :
341 (isToggled && isHovered ? checkboxBackgroundColorToggledAndHovered :
342 (isToggled ? checkboxBackgroundColorToggled :
343 (isHovered ? checkboxBackgroundColorHovered :
344 checkboxBackgroundColor))),
347 checkboxWidth - checkboxBorderThickness * 2,
348 checkboxHeight - checkboxBorderThickness * 2,
350 innerCornerRoundness);
353 VuoPoint2d checkmarkPosition{ (float)checkboxWidth * .15f, (
float)checkboxHeight * .15f};
354 VuoReal checkmarkWidth = checkboxWidth * 1.15;
360 VuoPoint2d_add(checkmarkPosition, (VuoPoint2d){ (float)marginBetweenCheckboxAndLabel / 2, 0 }),
362 checkmarkWidth + marginBetweenCheckboxAndLabel,
369 isPressed ? checkmarkColorPressed :
370 (isHovered ? checkmarkColorHovered :
373 isPressed ? checkmarkBorderColorPressed :
374 (isHovered ? checkmarkBorderColorHovered :
375 checkmarkBorderColor),
384 isPressed ? checkboxBorderColorPressed :
385 (isToggled && isHovered ? checkboxBorderColorToggledAndHovered :
386 (isToggled ? checkboxBorderColorToggled :
387 (isHovered ? checkboxBorderColorHovered :
388 checkboxBorderColor))),
394 checkboxCornerRoundness);
408 f.color = (
VuoColor){ f.color.r * labelColorPressed.r,
409 f.color.g * labelColorPressed.g,
410 f.color.b * labelColorPressed.b,
411 f.color.a * labelColorPressed.a };
412 else if (isToggled && isHovered)
413 f.color = (
VuoColor){ f.color.r * labelColorToggledAndHovered.r,
414 f.color.g * labelColorToggledAndHovered.g,
415 f.color.b * labelColorToggledAndHovered.b,
416 f.color.a * labelColorToggledAndHovered.a };
418 f.color = (
VuoColor){ f.color.r * labelColorHovered.r,
419 f.color.g * labelColorHovered.g,
420 f.color.b * labelColorHovered.b,
421 f.color.a * labelColorHovered.a };
423 f.color = (
VuoColor){ f.color.r * labelColorToggled.r,
424 f.color.g * labelColorToggled.g,
425 f.color.b * labelColorToggled.b,
426 f.color.a * labelColorToggled.a };
428 f.color = (
VuoColor){ f.color.r * labelColor.r,
429 f.color.g * labelColor.g,
430 f.color.b * labelColor.b,
431 f.color.a * labelColor.a };
435 (VuoPoint3d){ 0, 0, 0 },
436 (VuoPoint3d){ 1, 1, 1 }));
447 unsigned long int pixelsWide, pixelsHigh;
448 float backingScaleFactor;