Tk_GetPixelsFromObj(3)

πŸ“¦
version 9.0.3 Β· 2 versions
, in alpine 3.23, alpine 3.24, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable

πŸ’– Tk_GetPixelsFromObj(3) β€” Tk Library Procedures πŸ’–


✨ NAME ✨

The crew: Tk_GetPixelsFromObj, Tk_GetPixels, Tk_GetMMFromObj, Tk_GetScreenMM, Tk_GetDoublePixelsFromObj β€” translate between strings and screen units. Periodt πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

#include <tk.h>

int
Tk_GetPixelsFromObj(interp, tkwin, objPtr, intPtr)

int
Tk_GetDoublePixelsFromObj(interp, tkwin, objPtr, doublePtr)

int
Tk_GetPixels(interp, tkwin, string, intPtr)

int
Tk_GetMMFromObj(interp, tkwin, objPtr, doublePtr)

int
Tk_GetScreenMM(interp, tkwin, string, doublePtr)

πŸŽ€ ARGUMENTS πŸŽ€

  • Tcl_Interp *interp (in) β€” the interpreter you use for error reporting, bestie.
  • Tk_Window tkwin (in) β€” window whose screen geometry determines the conversion between absolute units and pixels.
  • Tcl_Obj *objPtr (in/out) β€” string value specifies a distance on the screen; internal rep will be modified to cache converted distance.
  • const char *string (in) β€” same as objPtr except specification of distance is passed as a string.
  • int *intPtr (out) β€” pointer to location in which to store converted distance in pixels.
  • double *doublePtr (out) β€” pointer to location in which to store converted distance in millimeters.

πŸ’… DESCRIPTION πŸ’…

Okay so these procedures take as argument a specification of distance on the screen (objPtr or string) and compute the corresponding distance either in integer pixels or floating-point millimeters. In either case, objPtr or string specifies a screen distance as a floating-point number followed by one of the following characters that indicates units:

  • <none> β€” no unit character; the number specifies a distance in pixels.
  • c β€” the number specifies a distance in centimeters on the screen.
  • i β€” the number specifies a distance in inches on the screen.
  • m β€” the number specifies a distance in millimeters on the screen.
  • p β€” the number specifies a distance in printer's points (1/72 inch) on the screen.

Tk_GetPixelsFromObj converts the value of objPtr to the nearest even number of pixels and stores that value at *intPtr. It returns TCL_OK under normal circumstances. If an error occurs (e.g. objPtr contains a number followed by a character that is not one of the ones above) then TCL_ERROR is returned and an error message is left in interp's result if interp is not NULL. And yes, Tk_GetPixelsFromObj caches information about the return value in objPtr, which speeds up future calls to Tk_GetPixelsFromObj with the same objPtr ✨

Tk_GetDoublePixelsFromObj is identical to Tk_GetPixelsFromObj except it returns a double not rounded to the nearest integer. No rounding drama πŸ’…

Tk_GetPixels is identical to Tk_GetPixelsFromObj except that the screen distance is specified with a string instead of an object. This prevents Tk_GetPixels from caching the return value, so Tk_GetPixels is less efficient than Tk_GetPixelsFromObj. Lowkey important, bestie 🫢

Tk_GetMMFromObj and Tk_GetScreenMM are similar to Tk_GetPixelsFromObj and Tk_GetPixels (respectively) except that they convert the screen distance to millimeters and store a double-precision floating-point result at *doublePtr. Millimeter slay 🌸


πŸ”₯ KEYWORDS πŸ”₯

centimeters, convert, inches, millimeters, pixels, points, screen units


🌈 Sign-off tea: this page is from Tk 8.1 and its title is Tk_GetPixelsFromObj(3); the footer has no date listed, so that's the whole date situation. Bye bestie β€” go convert those screen units and slay πŸ’…πŸ«Ά
πŸ“¦ where this page comes from