_________________________________________________________________ NAME Tk_AllocColorFromObj, Tk_GetColor, Tk_GetColorFromObj, Tk_GetColorByValue, Tk_NameOfColor, Tk_FreeColorFromObj, Tk_FreeColor - maintain database of colors SYNOPSIS #include <tk.h> XColor * | Tk_AllocColorFromObj(interp, tkwin, objPtr) | XColor * | Tk_GetColor(interp, tkwin, name) | XColor * | Tk_GetColorFromObj(tkwin, objPtr) | XColor * Tk_GetColorByValue(tkwin, prefPtr) char * Tk_NameOfColor(colorPtr) GC Tk_GCForColor(colorPtr, drawable) Tk_FreeColorFromObj(tkwin, objPtr) | Tk_FreeColor(colorPtr) ARGUMENTS Tcl_Interp *interp (in) Interpreter to use for error reporting. Tk_Window tkwin (in) Token for window in which color will be used. Tcl_Obj *objPtr (in/out) || String value describes | desired color; internal | rep will be modified to | cache pointer to | corresponding (XColor *). | char *name (in) || Same as objPtr except | description of color is | passed as a string and | resulting (XColor *) | isn't cached. XColor *prefPtr (in) Indicates red, green, and blue intensities of desired color. XColor *colorPtr (in) Pointer to X color infor- mation. Must have been allocated by previous call to Tk_AllocColorFromObj, Tk_GetColor or Tk_GetColorByValue, except when passed to Tk_NameOfColor. Drawable drawable (in) Drawable in which the result graphics context will be used. Must have same screen and depth as the window for which the color was allocated. _________________________________________________________________ DESCRIPTION These procedures manage the colors being used by a Tk appli- | cation. They allow colors to be shared whenever possible, | so that colormap space is preserved, and they pick closest | available colors when colormap space is exhausted. | Given a textual description of a color, Tk_AllocColorFromObj | locates a pixel value that may be used to render the color | in a particular window. The desired color is specified with | an object whose string value must have one of the following | forms: colorname Any of the valid textual names for a color defined in the server's color database file, such as red or PeachPuff. #RGB #RRGGBB #RRRGGGBBB #RRRRGGGGBBBB A numeric specification of the red, green, and blue intensities to use to display the color. Each R, G, or B represents a single hexadecimal digit. The four forms permit colors to be specified with 4-bit, 8-bit, 12-bit or 16-bit values. When fewer than 16 bits are provided for each color, they represent the most significant bits of the color. For example, #3a7 is the same as #3000a0007000. Tk_AllocColorFromObj returns a pointer to an XColor struc- | ture; the structure indicates the exact intensities of the | allocated color (which may differ slightly from those | requested, depending on the limitations of the screen) and a | pixel value that may be used to draw with the color in | tkwin. If an error occurs in Tk_AllocColorFromObj (such as | an unknown color name) then NULL is returned and an error | message is stored in interp's result if interp isn't NULL. | If the colormap for tkwin is full, Tk_AllocColorFromObj will | use the closest existing color in the colormap. | Tk_AllocColorFromObj caches information about the return | value in objPtr, which speeds up future calls to procedures | such as Tk_AllocColorFromObj and Tk_GetColorFromObj. | Tk_GetColor is identical to Tk_AllocColorFromObj except that | the description of the color is specified with a string | instead of an object. This prevents Tk_GetColor from cach- | ing the return value, so Tk_GetColor is less efficient than | Tk_AllocColorFromObj. | Tk_GetColorFromObj returns the token for an existing color, | given the window and description used to create the color. | Tk_GetColorFromObj doesn't actually create the color; the | color must already have been created with a previous call to | Tk_AllocColorFromObj or Tk_GetColor. The return value is | cached in objPtr, which speeds up future calls to | Tk_GetColorFromObj with the same objPtr and tkwin. Tk_GetColorByValue is similar to Tk_GetColor except that the desired color is indicated with the red, green, and blue fields of the structure pointed to by colorPtr. This package maintains a database of all the colors currently in use. If the same color is requested multiple times from Tk_GetColor or Tk_AllocColorFromObj (e.g. by dif- ferent windows), or if the same intensities are requested multiple times from Tk_GetColorByValue, then existing pixel values will be re-used. Re-using an existing pixel avoids any interaction with the window server, which makes the allocation much more efficient. These procedures also pro- vide a portable interface that works across all platforms. For this reason, you should generally use Tk_AllocColorFromObj, Tk_GetColor, or Tk_GetColorByValue instead of lower level procedures like XAllocColor. Since different calls to this package may return the same shared pixel value, callers should never change the color of a pixel returned by the procedures. If you need to change a color value dynamically, you should use XAllocColorCells to allocate the pixel value for the color. The procedure Tk_NameOfColor is roughly the inverse of Tk_GetColor. If its colorPtr argument was created by Tk_AllocColorFromObj or Tk_GetColor then the return value is the string that was used to create the color. If colorPtr was created by a call to Tk_GetColorByValue, or by any other mechanism, then the return value is a string that could be passed to Tk_GetColor to return the same color. Note: the string returned by Tk_NameOfColor is only guaranteed to per- sist until the next call to Tk_NameOfColor. Tk_GCForColor returns a graphics context whose foreground field is the pixel allocated for colorPtr and whose other fields all have default values. This provides an easy way to do basic drawing with a color. The graphics context is cached with the color and will exist only as long as colorPtr exists; it is freed when the last reference to colorPtr is freed by calling Tk_FreeColor. When a color is no longer needed Tk_FreeColorFromObj or | Tk_FreeColor should be called to release it. For | Tk_FreeColorFromObj the color to release is specified with | the same information used to create it; for Tk_FreeColor the | color to release is specified with a pointer to its XColor | structure. There should be exactly one call to | Tk_FreeColorFromObj or Tk_FreeColor for each call to | Tk_AllocColorFromObj, Tk_GetColor, or Tk_GetColorByValue. KEYWORDS color, intensity, object, pixel value
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |