MCPcopy Create free account
hub / github.com/GNOME/gjs / textExtents_func

Function textExtents_func

modules/cairo-context.cpp:765–796  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

763}
764
765GJS_JSAPI_RETURN_CONVENTION
766static bool textExtents_func(JSContext* cx, unsigned argc, JS::Value* vp) {
767 GJS_CAIRO_CONTEXT_GET_PRIV_CR_CHECKED(cx, argc, vp, args, this_obj);
768
769 JS::UniqueChars utf8;
770 if (!gjs_parse_call_args(cx, "textExtents", args, "s", "utf8", &utf8))
771 return false;
772
773 cairo_text_extents_t extents;
774 cairo_text_extents(cr, utf8.get(), &extents);
775 if (!gjs_cairo_check_status(cx, cairo_status(cr), "context"))
776 return false;
777
778 JS::RootedObject extents_obj(cx, JS_NewPlainObject(cx));
779 if (!extents_obj)
780 return false;
781
782 JSPropertySpec properties[] = {
783 JS_DOUBLE_PS("xBearing", extents.x_bearing, JSPROP_ENUMERATE),
784 JS_DOUBLE_PS("yBearing", extents.y_bearing, JSPROP_ENUMERATE),
785 JS_DOUBLE_PS("width", extents.width, JSPROP_ENUMERATE),
786 JS_DOUBLE_PS("height", extents.height, JSPROP_ENUMERATE),
787 JS_DOUBLE_PS("xAdvance", extents.x_advance, JSPROP_ENUMERATE),
788 JS_DOUBLE_PS("yAdvance", extents.y_advance, JSPROP_ENUMERATE),
789 JS_PS_END};
790
791 if (!JS_DefineProperties(cx, extents_obj, properties))
792 return false;
793
794 args.rval().setObject(*extents_obj);
795 return true;
796}
797
798GJS_JSAPI_RETURN_CONVENTION
799static bool fontExtents_func(JSContext* cx, unsigned argc, JS::Value* vp) {

Callers

nothing calls this directly

Calls 3

gjs_parse_call_argsFunction · 0.85
gjs_cairo_check_statusFunction · 0.85
getMethod · 0.45

Tested by

no test coverage detected