Provided by: tk8.4-doc_8.4.19-4_all bug


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


       #include <tk.h>

       int                                                                                        │
       Tk_GetPixelsFromObj(interp, tkwin, objPtr, intPtr)                                         │

       Tk_GetPixels(interp, tkwin, string, intPtr)

       int                                                                                        │
       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 │
                                         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.


       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 isn't one of the ones │
       above) then TCL_ERROR is returned and an error message  is  left  in  interp's  result  if │
       interp  isn't  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