Provided by: tk8.5-doc_8.5.11-1_all bug


       Tk_GetPixelsFromObj,  Tk_GetPixels,  Tk_GetMMFromObj,  Tk_GetScreenMM  - translate between
       strings and screen units


       #include <tk.h>

       Tk_GetPixelsFromObj(interp, tkwin, objPtr, intPtr)

       Tk_GetPixels(interp, tkwin, string, intPtr)

       Tk_GetMMFromObj(interp, tkwin, objPtr, doublePtr)

       Tk_GetScreenMM(interp, tkwin, string, doublePtr)


       Tcl_Interp *interp (in)           Interpreter to use for error reporting.

       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

       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.


       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> 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.   Tk_GetPixelsFromObj  caches information about the return value in
       objPtr, which speeds up future calls to Tk_GetPixelsFromObj with the same objPtr.

       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_GetAnchor is less efficient than Tk_GetPixelsFromObj.

       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.


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