static void handlerDraw(uiAreaHandler *a, uiArea *area, uiAreaDrawParams *dp) { #if 0 uiDrawTextFontDescriptor desc; uiDrawTextFont *font; char *s; char *family; // make compiler happy uiDrawTextLayout *layout; uiDrawTextFontMetrics metrics; double ypos; double width; double height; memset(&desc, 0, sizeof (uiDrawTextFontDescriptor)); family = uiEntryText(textFont); desc.Family = family; desc.Size = entryDouble(textSize); desc.Weight = uiComboboxSelected(textWeight); desc.Italic = uiComboboxSelected(textItalic); desc.SmallCaps = uiCheckboxChecked(textSmallCaps); desc.Stretch = uiComboboxSelected(textStretch); desc.Gravity = uiComboboxSelected(textGravity); font = uiDrawLoadClosestFont(&desc); uiFreeText(family); uiDrawTextFontGetMetrics(font, &metrics); width = entryDouble(textWidth); drawGuides(dp->Context, &metrics); s = uiEntryText(textString); layout = uiDrawNewTextLayout(s, font, width); uiFreeText(s); ypos = 10; uiDrawText(dp->Context, 10, ypos, layout); // TODO make these optional? uiDrawTextLayoutExtents(layout, &width, &height); uiDrawFreeTextLayout(layout); layout = uiDrawNewTextLayout("This is a second line", font, -1); if (/*TODO reuse width*/entryDouble(textWidth) < 0) { double ad; ad = metrics.Ascent + metrics.Descent; printf("ad:%g extent:%g\n", ad, height); } ypos += height; if (uiCheckboxChecked(addLeading)) ypos += metrics.Leading; uiDrawText(dp->Context, 10, ypos, layout); uiDrawFreeTextLayout(layout); uiDrawFreeTextFont(font); #endif }
void setFullscreen(uiCheckbox *cb, void *data) { uiWindow *w = uiWindow(data); uiWindowSetFullscreen(w, uiCheckboxChecked(fullscreen)); updatesize(w); }
// based on the cairo arc sample static void handlerDraw(uiAreaHandler *a, uiArea *area, uiAreaDrawParams *p) { double xc = 128.0; double yc = 128.0; double radius = 100.0; uiDrawBrush source; uiDrawStrokeParams sp; uiDrawPath *path; char *startText; char *sweepText; double factor; source.Type = uiDrawBrushTypeSolid; source.R = 0; source.G = 0; source.B = 0; source.A = 1; sp.Cap = uiDrawLineCapFlat; sp.Join = uiDrawLineJoinMiter; sp.MiterLimit = uiDrawDefaultMiterLimit; sp.Dashes = NULL; sp.NumDashes = 0; sp.DashPhase = 0; startText = uiEntryText(startAngle); sweepText = uiEntryText(sweep); factor = M_PI / 180; if (uiCheckboxChecked(radians)) factor = 1; sp.Thickness = 10.0; path = uiDrawNewPath(uiDrawFillModeWinding); uiDrawPathNewFigure(path, xc, yc); uiDrawPathArcTo(path, xc, yc, radius, atof(startText) * factor, atof(sweepText) * factor, uiCheckboxChecked(negative)); uiDrawPathEnd(path); uiDrawStroke(p->Context, path, &source, &sp); uiDrawFreePath(path); uiFreeText(startText); uiFreeText(sweepText); }
static void callback_uiCheckboxOnToggled( uiCheckbox* c, void* d ) { lua_State* L = (lua_State*) d; if( L ) { lua_pushboolean( L, uiCheckboxChecked( c ) ); invoke_callback( L, c, callback_OnToggled, 1 ); } }
static Janet janet_ui_checkbox_checked(int32_t argc, Janet *argv) { janet_arity(argc, 1, 2); uiCheckbox *cbox = janet_getuitype(argv, 0, &checkbox_td); if (argc == 2) { int checked = janet_getboolean(argv, 1); uiCheckboxSetChecked(cbox, checked); return argv[0]; } return janet_wrap_boolean(uiCheckboxChecked(cbox)); }
static void drawGuides(uiDrawContext *c, uiDrawTextFontMetrics *m) { uiDrawPath *p; uiDrawBrush b; uiDrawStrokeParams sp; double leading; double y; leading = 0; if (uiCheckboxChecked(addLeading)) leading = m->Leading; memset(&b, 0, sizeof (uiDrawBrush)); b.Type = uiDrawBrushTypeSolid; memset(&sp, 0, sizeof (uiDrawStrokeParams)); sp.Cap = uiDrawLineCapFlat; sp.Join = uiDrawLineJoinMiter; sp.MiterLimit = uiDrawDefaultMiterLimit; sp.Thickness = 2; uiDrawSave(c); p = uiDrawNewPath(uiDrawFillModeWinding); y = 10; uiDrawPathNewFigure(p, 8, y); y += m->Ascent; uiDrawPathLineTo(p, 8, y); uiDrawPathEnd(p); b.R = 0.94; b.G = 0.5; b.B = 0.5; b.A = 1.0; uiDrawStroke(c, p, &b, &sp); uiDrawFreePath(p); p = uiDrawNewPath(uiDrawFillModeWinding); uiDrawPathNewFigure(p, 8, y); y += m->Descent; uiDrawPathLineTo(p, 8, y); uiDrawPathEnd(p); b.R = 0.12; b.G = 0.56; b.B = 1.0; b.A = 1.0; uiDrawStroke(c, p, &b, &sp); uiDrawFreePath(p); // and again for the second line p = uiDrawNewPath(uiDrawFillModeWinding); y += leading; uiDrawPathNewFigure(p, 8, y); y += m->Ascent; uiDrawPathLineTo(p, 8, y); uiDrawPathEnd(p); b.R = 0.94; b.G = 0.5; b.B = 0.5; b.A = 0.75; uiDrawStroke(c, p, &b, &sp); uiDrawFreePath(p); p = uiDrawNewPath(uiDrawFillModeWinding); uiDrawPathNewFigure(p, 8, y); y += m->Descent; uiDrawPathLineTo(p, 8, y); uiDrawPathEnd(p); b.R = 0.12; b.G = 0.56; b.B = 1.0; b.A = 0.75; uiDrawStroke(c, p, &b, &sp); uiDrawFreePath(p); // and a box to text layout top-left corners p = uiDrawNewPath(uiDrawFillModeWinding); uiDrawPathAddRectangle(p, 0, 0, 10, 10); uiDrawPathEnd(p); uiDrawClip(c, p); b.R = 0.85; b.G = 0.65; b.B = 0.13; b.A = 1.0; uiDrawStroke(c, p, &b, &sp); uiDrawFreePath(p); uiDrawRestore(c); }
static void borderless(uiCheckbox *c, void *data) { uiWindow *w = uiWindow(data); uiWindowSetBorderless(w, uiCheckboxChecked(c)); }
static void handlerDraw(uiAreaHandler *a, uiArea *area, uiAreaDrawParams *dp) { uiDrawTextFont *font; uiDrawTextLayout *layout; double r, g, b, al; char surrogates[1 + 4 + 1 + 1]; char composed[2 + 2 + 2 + 3 + 2 + 1]; double width, height; font = uiFontButtonFont(textFontButton); layout = uiDrawNewTextLayout("One two three four", font, -1); uiDrawTextLayoutSetColor(layout, 4, 7, 1, 0, 0, 1); uiDrawTextLayoutSetColor(layout, 8, 14, 1, 0, 0.5, 0.5); uiColorButtonColor(textColorButton, &r, &g, &b, &al); uiDrawTextLayoutSetColor(layout, 14, 18, r, g, b, al); uiDrawText(dp->Context, 10, 10, layout); uiDrawTextLayoutExtents(layout, &width, &height); uiDrawFreeTextLayout(layout); surrogates[0] = 'x'; surrogates[1] = 0xF0; // surrogates D800 DF08 surrogates[2] = 0x90; surrogates[3] = 0x8C; surrogates[4] = 0x88; surrogates[5] = 'y'; surrogates[6] = '\0'; layout = uiDrawNewTextLayout(surrogates, font, -1); uiDrawTextLayoutSetColor(layout, 1, 2, 1, 0, 0.5, 0.5); uiDrawText(dp->Context, 10, 10 + height, layout); uiDrawFreeTextLayout(layout); composed[0] = 'z'; composed[1] = 'z'; composed[2] = 0xC3; // 2 composed[3] = 0xA9; composed[4] = 'z'; composed[5] = 'z'; composed[6] = 0x65; // 5 composed[7] = 0xCC; composed[8] = 0x81; composed[9] = 'z'; composed[10] = 'z'; composed[11] = '\0'; layout = uiDrawNewTextLayout(composed, font, -1); uiDrawTextLayoutSetColor(layout, 2, 3, 1, 0, 0.5, 0.5); uiDrawTextLayoutSetColor(layout, 5, 6, 1, 0, 0.5, 0.5); if (!uiCheckboxChecked(noZ)) uiDrawTextLayoutSetColor(layout, 6, 7, 0.5, 0, 1, 0.5); uiDrawText(dp->Context, 10, 10 + height + height, layout); uiDrawFreeTextLayout(layout); uiDrawFreeTextFont(font); }