ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



Tk_ConfigureWidget(3)                       Tk Library Procedures                      Tk_ConfigureWidget(3)



____________________________________________________________________________________________________________

NAME
       Tk_ConfigureWidget,  Tk_ConfigureInfo,  Tk_ConfigureValue,  Tk_FreeOptions  -  process  configuration
       options for widgets

SYNOPSIS
       #include <tk.h>

       int
       Tk_ConfigureWidget(interp, tkwin, specs, argc, argv, widgRec, flags)

       int
       Tk_ConfigureInfo(interp, tkwin, specs, widgRec, argvName, flags)

       int
       Tk_ConfigureValue(interp, tkwin, specs, widgRec, argvName, flags)

       Tk_FreeOptions(specs, widgRec, display, flags)

ARGUMENTS
       Tcl_Interp      *interp    (in)      Interpreter to use for returning error messages.

       Tk_Window       tkwin      (in)      Window used to represent widget (needed to set up X  resources).

       Tk_ConfigSpec   *specs     (in)      Pointer to table specifying legal configuration options for this
                                            widget.

       int             argc       (in)      Number of arguments in argv.

       CONST char      **argv     (in)      Command-line options for configuring widget.

       char            *widgRec   (in/out)  Points to widget record structure.  Fields in this structure get
                                            modified  by  Tk_ConfigureWidget  to hold configuration informa-tion. information.
                                            tion.

       int             flags      (in)      If non-zero, then it specifies an  OR-ed  combination  of  flags
                                            that   control  the  processing  of  configuration  information.
                                            TK_CONFIG_ARGV_ONLY causes the option database and  defaults  to
                                            be ignored, and flag bits TK_CONFIG_USER_BIT and higher are used
                                            to selectively disable entries in specs.

       type name       type       (in)      The name of the type of a widget record.

       field name      field      (in)      The name of a field in records of type type.

       CONST char      *argvName  (in)      The name used on Tcl command lines  to  refer  to  a  particular
                                            option  (e.g.  when  creating a widget or invoking the configure
                                            widget command).  If non-NULL, then information is returned only
                                            for  this option.  If NULL, then information is returned for all
                                            available options.

       Display         *display   (in)      Display containing widget whose record is being  freed;   needed
                                            in order to free up resources.
____________________________________________________________________________________________________________

DESCRIPTION
       Note:  Tk_ConfigureWidget  should  be replaced with the new Tcl_Obj based API Tk_SetOptions.  The old |
       interface is retained for backward compatibility.

       Tk_ConfigureWidget is called to configure various aspects of a widget, such as colors, fonts,  border
       width,  etc.   It  is  intended  as a convenience procedure to reduce the amount of code that must be
       written in individual widget managers to handle configuration information.  It is  typically  invoked
       when  widgets  are  created,  and again when the configure command is invoked for a widget.  Although
       intended primarily for widgets, Tk_ConfigureWidget can be used in other  situations  where  argc-argv
       information is to be used to fill in a record structure, such as configuring graphical elements for a
       canvas widget or entries of a menu.

       Tk_ConfigureWidget processes a table specifying the configuration options that are supported  (specs)
       and  a  collection of command-line arguments (argc and argv) to fill in fields of a record (widgRec).
       It uses the option database and defaults specified in specs to fill in fields of widgRec that are not
       specified  in  argv.   Tk_ConfigureWidget normally returns the value TCL_OK; in this case it does not
       modify interp.  If an error occurs then TCL_ERROR is returned and Tk_ConfigureWidget  will  leave  an
       error  message  in interp->result in the standard Tcl fashion.  In the event of an error return, some
       of the fields of widgRec could already have been set, if configuration information for them was  suc-cessfully successfully
       cessfully  processed  before  the error occurred.  The other fields will be set to reasonable initial
       values so that Tk_FreeOptions can be called for cleanup.

       The specs array specifies the kinds of configuration options expected by the  widget.   Each  of  its
       entries specifies one configuration option and has the following structure:
              typedef struct {
                int type;
                char *argvName;
                char *dbName;
                char *dbClass;
                char *defValue;
                int offset;
                int specFlags;
                Tk_CustomOption *customPtr;
              } Tk_ConfigSpec;
       The  type field indicates what type of configuration option this is (e.g. TK_CONFIG_COLOR for a color
       value, or TK_CONFIG_INT for an integer value).  The type field indicates how to use the value of  the
       option  (more  on this below).  The argvName field is a string such as ``-font'' or ``-bg'', which is
       compared with the values in argv (if argvName is NULL it means this is a grouped entry;  see  GROUPED
       ENTRIES  below).   The  dbName  and dbClass fields are used to look up a value for this option in the
       option database.  The defValue field specifies a default value for this configuration  option  if  no
       value is specified in either argv or the option database.  Offset indicates where in widgRec to store
       information about this option, and specFlags contains additional information to control the  process-ing processing
       ing  of this configuration option (see FLAGS below).  The last field, customPtr, is only used if type
       is TK_CONFIG_CUSTOM;  see CUSTOM OPTION TYPES below.

       Tk_ConfigureWidget first processes argv to see which (if any)  configuration  options  are  specified
       there.   Argv must contain an even number of fields;  the first of each pair of fields must match the
       argvName of some entry in specs (unique abbreviations are acceptable), and the second  field  of  the
       pair  contains the value for that configuration option.  If there are entries in spec for which there
       were no matching entries in argv, Tk_ConfigureWidget uses the dbName and dbClass fields of the  specs
       entry  to  probe  the  option  database;   if  a value is found, then it is used as the value for the
       option.  Finally, if no entry is found in the option database, the defValue field of the specs  entry
       is  used  as  the  value  for  the  configuration option.  If the defValue is NULL, or if the TK_CON-FIG_DONT_SET_DEFAULT TK_CONFIG_DONT_SET_DEFAULT
       FIG_DONT_SET_DEFAULT bit is set in flags, then there is no default value and this specs entry will be
       ignored if no value is specified in argv or the option database.

       Once a string value has been determined for a configuration option, Tk_ConfigureWidget translates the
       string value into a more useful form, such as a color if type is TK_CONFIG_COLOR  or  an  integer  if
       type  is  TK_CONFIG_INT.  This value is then stored in the record pointed to by widgRec.  This record
       is assumed to contain information relevant to the manager of the widget;  its exact type  is  unknown
       to  Tk_ConfigureWidget.  The offset field of each specs entry indicates where in widgRec to store the
       information about this configuration option.  You should use the Tk_Offset macro to  generate  offset
       values (see below for a description of Tk_Offset).  The location indicated by widgRec and offset will
       be referred to as the ``target'' in the descriptions below.

       The type field of each entry in specs determines what to do with the string value of that  configura-tion configuration
       tion option.  The legal values for type, and the corresponding actions, are:

       TK_CONFIG_ACTIVE_CURSOR
              The  value  must  be  an  ASCII  string identifying a cursor in a form suitable for passing to
              Tk_GetCursor.  The value is converted to a Tk_Cursor by calling Tk_GetCursor and the result is
              stored  in  the target.  In addition, the resulting cursor is made the active cursor for tkwin
              by calling XDefineCursor.  If TK_CONFIG_NULL_OK is specified in specFlags then the  value  may
              be  an  empty  string, in which case the target and tkwin's active cursor will be set to None.
              If the previous value of the target wasn't None, then it is freed by passing it to Tk_FreeCur-sor. Tk_FreeCursor.
              sor.

       TK_CONFIG_ANCHOR
              The  value  must be an ASCII string identifying an anchor point in one of the ways accepted by
              Tk_GetAnchor.  The string is converted to a Tk_Anchor by calling Tk_GetAnchor and  the  result
              is stored in the target.

       TK_CONFIG_BITMAP
              The  value  must  be  an  ASCII  string identifying a bitmap in a form suitable for passing to
              Tk_GetBitmap.  The value is converted to a Pixmap by calling Tk_GetBitmap and  the  result  is
              stored in the target.  If TK_CONFIG_NULL_OK is specified in specFlags then the value may be an
              empty string, in which case the target is set to None.  If the previous value  of  the  target
              wasn't None, then it is freed by passing it to Tk_FreeBitmap.

       TK_CONFIG_BOOLEAN
              The  value  must  be  an ASCII string specifying a boolean value.  Any of the values ``true'',
              ``yes'', ``on'', or ``1'', or an abbreviation of one of these values, means true; any  of  the
              values  ``false'', ``no'', ``off'', or ``0'', or an abbreviation of one of these values, means
              false.  The target is expected to be an integer;  for true values it will be set to 1 and  for
              false values it will be set to 0.

       TK_CONFIG_BORDER
              The value must be an ASCII string identifying a border color in a form suitable for passing to
              Tk_Get3DBorder.  The value is converted to a (Tk_3DBorder *) by calling Tk_Get3DBorder and the
              result is stored in the target.  If TK_CONFIG_NULL_OK is specified in specFlags then the value
              may be an empty string, in which case the target will be set to NULL.  If the  previous  value
              of the target wasn't NULL, then it is freed by passing it to Tk_Free3DBorder.

       TK_CONFIG_CAP_STYLE
              The  value  must  be  an  ASCII  string identifying a cap style in one of the ways accepted by
              Tk_GetCapStyle.  The string is converted to an integer value corresponding to the cap style by
              calling Tk_GetCapStyle and the result is stored in the target.

       TK_CONFIG_COLOR
              The  value  must  be  an  ASCII  string  identifying a color in a form suitable for passing to
              Tk_GetColor.  The value is converted to an (XColor *) by calling Tk_GetColor and the result is
              stored in the target.  If TK_CONFIG_NULL_OK is specified in specFlags then the value may be an
              empty string, in which case the target will be set to None.  If the previous value of the tar-get target
              get wasn't NULL, then it is freed by passing it to Tk_FreeColor.

       TK_CONFIG_CURSOR
              This option is identical to TK_CONFIG_ACTIVE_CURSOR except that the new cursor is not made the
              active one for tkwin.

       TK_CONFIG_CUSTOM
              This option allows applications to define new option types.  The customPtr field of the  entry
              points to a structure defining the new option type.  See the section CUSTOM OPTION TYPES below
              for details.

       TK_CONFIG_DOUBLE
              The value must be an ASCII floating-point number in the format accepted by strtol.  The string
              is converted to a double value, and the value is stored in the target.

       TK_CONFIG_END
              Marks  the  end  of the table.  The last entry in specs must have this type;  all of its other
              fields are ignored and it will never match any arguments.

       TK_CONFIG_FONT
              The value must be an ASCII string identifying a font in a form suitable for passing to Tk_Get-Font. Tk_GetFont.
              Font.   The  value is converted to a Tk_Font by calling Tk_GetFont and the result is stored in
              the target.  If TK_CONFIG_NULL_OK is specified in specFlags then the value  may  be  an  empty
              string,  in  which  case  the target will be set to NULL.  If the previous value of the target
              wasn't NULL, then it is freed by passing it to Tk_FreeFont.

       TK_CONFIG_INT
              The value must be an ASCII integer string in the format accepted by  strtol  (e.g.  ``0''  and
              ``0x''  prefixes  may  be  used  to  specify octal or hexadecimal numbers, respectively).  The
              string is converted to an integer value and the integer is stored in the target.

       TK_CONFIG_JOIN_STYLE
              The value must be an ASCII string identifying a join style in one  of  the  ways  accepted  by
              Tk_GetJoinStyle.   The string is converted to an integer value corresponding to the join style
              by calling Tk_GetJoinStyle and the result is stored in the target.

       TK_CONFIG_JUSTIFY
              The value must be an ASCII string identifying a  justification  method  in  one  of  the  ways
              accepted  by  Tk_GetJustify.  The string is converted to a Tk_Justify by calling Tk_GetJustify
              and the result is stored in the target.

       TK_CONFIG_MM
              The value must specify a screen distance in one of the  forms  acceptable  to  Tk_GetScreenMM.
              The  string  is  converted  to double-precision floating-point distance in millimeters and the
              value is stored in the target.

       TK_CONFIG_PIXELS
              The value must specify screen units in one of  the  forms  acceptable  to  Tk_GetPixels.   The
              string is converted to an integer distance in pixels and the value is stored in the target.

       TK_CONFIG_RELIEF
              The  value  must  be  an  ASCII  string identifying a relief in a form suitable for passing to
              Tk_GetRelief.  The value is converted to an integer relief value by calling  Tk_GetRelief  and
              the result is stored in the target.

       TK_CONFIG_STRING
              A  copy of the value is made by allocating memory space with malloc and copying the value into
              the dynamically-allocated space.  A pointer to the new string is stored  in  the  target.   If
              TK_CONFIG_NULL_OK  is  specified  in specFlags then the value may be an empty string, in which
              case the target will be set to NULL.  If the previous value of the target wasn't NULL, then it
              is freed by passing it to free.

       TK_CONFIG_SYNONYM
              This  type  value identifies special entries in specs that are synonyms for other entries.  If
              an argv value matches the  argvName  of  a  TK_CONFIG_SYNONYM  entry,  the  entry  isn't  used
              directly.  Instead,  Tk_ConfigureWidget searches specs for another entry whose argvName is the
              same as the dbName field in the TK_CONFIG_SYNONYM entry;  this new entry is used  just  as  if
              its argvName had matched the argv value.  The synonym mechanism allows multiple argv values to
              be used for a single configuration option, such as ``-background'' and ``-bg''.

       TK_CONFIG_UID
              The value is translated to a Tk_Uid (by passing it to  Tk_GetUid).   The  resulting  value  is
              stored  in  the  target.   If  TK_CONFIG_NULL_OK is specified in specFlags and the value is an
              empty string then the target will be set to NULL.

       TK_CONFIG_WINDOW
              The value must be a window path name.  It is translated to a Tk_Window token and the token  is
              stored in the target.


GROUPED ENTRIES
       In  some  cases  it  is useful to generate multiple resources from a single configuration value.  For
       example, a color name might be used both to generate the background color for a widget (using TK_CON-FIG_COLOR) TK_CONFIG_COLOR)
       FIG_COLOR) and to generate a 3-D border to draw around the widget (using TK_CONFIG_BORDER).  In cases
       like this it is possible to specify that several consecutive entries in specs are to be treated as  a
       group.   The  first entry is used to determine a value (using its argvName, dbName, dbClass, and def-Value defValue
       Value fields).  The value will be processed several times (one for each entry in the group), generat-ing generating
       ing  multiple different resources and modifying multiple targets within widgRec.  Each of the entries
       after the first must have a NULL value in its argvName field;  this indicates that the entry is to be
       grouped with the entry that precedes it.  Only the type and offset fields are used from these follow-on followon
       on entries.


FLAGS
       The flags argument passed to Tk_ConfigureWidget is used in conjunction with the specFlags  fields  in
       the  entries  of  specs  to  provide additional control over the processing of configuration options.
       These values are used in three different ways as described below.

       First, if the flags argument to Tk_ConfigureWidget has the TK_CONFIG_ARGV_ONLY bit set (i.e., flags |
       TK_CONFIG_ARGV_ONLY  != 0), then the option database and defValue fields are not used.  In this case,
       if an entry in specs doesn't match a field in argv then nothing  happens:  the  corresponding  target
       isn't  modified.   This  feature  is  useful when the goal is to modify certain configuration options
       while leaving others in their current state, such as when a configure widget command  is  being  pro-cessed. processed.
       cessed.

       Second, the specFlags field of an entry in specs may be used to control the processing of that entry.
       Each specFlags field may consists of an OR-ed combination of the following values:

       TK_CONFIG_COLOR_ONLY
              If this bit is set then the entry will only be considered if the display for  tkwin  has  more
              than one bit plane.  If the display is monochromatic then this specs entry will be ignored.

       TK_CONFIG_MONO_ONLY
              If this bit is set then the entry will only be considered if the display for tkwin has exactly
              one bit plane.  If the display is not monochromatic then this specs entry will be ignored.

       TK_CONFIG_NULL_OK
              This bit is only relevant for some types of entries (see the descriptions of the various entry
              types  above).   If  this bit is set, it indicates that an empty string value for the field is
              acceptable and if it occurs then the target should be set to NULL or None,  depending  on  the
              type of the target.  This flag is typically used to allow a feature to be turned off entirely,
              e.g. set a cursor value to None so that a window simply inherits its parent's cursor.  If this
              bit  isn't  set  then  empty  strings  are processed as strings, which generally results in an
              error.

       TK_CONFIG_DONT_SET_DEFAULT
              If this bit is one, it means that the defValue field of the entry  should  only  be  used  for
              returning  the  default  value in Tk_ConfigureInfo.  In calls to Tk_ConfigureWidget no default
              will be supplied for entries with this flag set;  it is assumed that the  caller  has  already
              supplied  a  default value in the target location.  This flag provides a performance optimiza-tion optimization
              tion where it is expensive to process the default string:  the client can compute the  default
              once, save the value, and provide it before calling Tk_ConfigureWidget.

       TK_CONFIG_OPTION_SPECIFIED
              This  bit is set and cleared by Tk_ConfigureWidget.  Whenever Tk_ConfigureWidget returns, this
              bit will be set in all the entries where a value was specified in argv.  It will  be  zero  in
              all  other  entries.   This  bit provides a way for clients to determine which values actually
              changed in a call to Tk_ConfigureWidget.

       The TK_CONFIG_MONO_ONLY and TK_CONFIG_COLOR_ONLY  flags  are  typically  used  to  specify  different
       default values for monochrome and color displays.  This is done by creating two entries in specs that
       are identical except for their defValue and specFlags  fields.   One  entry  should  have  the  value
       TK_CONFIG_MONO_ONLY  in  its specFlags and the default value for monochrome displays in its defValue;
       the other entry entry should have the value TK_CONFIG_COLOR_ONLY in its specFlags and the appropriate
       defValue for color displays.

       Third,  it is possible to use flags and specFlags together to selectively disable some entries.  This
       feature is not needed very often.  It is useful in cases where several similar kinds of  widgets  are
       implemented  in  one  place.  It allows a single specs table to be created with all the configuration
       options for all the widget types.  When processing a particular widget type, only entries relevant to
       that  type  will be used.  This effect is achieved by setting the high-order bits (those in positions
       equal to or greater than TK_CONFIG_USER_BIT) in specFlags values or in flags.  In order for a partic-ular particular
       ular  entry  in  specs  to be used, its high-order bits must match exactly the high-order bits of the
       flags value passed to Tk_ConfigureWidget.  If a specs table is being  used  for  N  different  widget
       types,  then  N of the high-order bits will be used.  Each specs entry will have one of more of those
       bits set in its specFlags field to indicate the widget types for which this  entry  is  valid.   When
       calling  Tk_ConfigureWidget, flags will have a single one of these bits set to select the entries for
       the desired widget type.  For a working example of this feature, see the code in tkButton.c.


TK_OFFSET
       The Tk_Offset macro is provided as a safe way of generating the offset values for entries in  Tk_Con-figSpec Tk_ConfigSpec
       figSpec  structures.   It takes two arguments:  the name of a type of record, and the name of a field
       in that record.  It returns the byte offset of the named field in records of the given type.


TK_CONFIGUREINFO
       The Tk_ConfigureInfo procedure may be used to obtain information about one or all of the options  for
       a given widget.  Given a token for a window (tkwin), a table describing the configuration options for
       a class of widgets (specs), a pointer to a widget record containing the  current  information  for  a
       widget (widgRec), and a NULL argvName argument, Tk_ConfigureInfo generates a string describing all of
       the configuration options for the window.  The string is placed in interp->result.  Under normal cir-cumstances circumstances
       cumstances  it  returns TCL_OK;  if an error occurs then it returns TCL_ERROR and interp->result con-tains contains
       tains an error message.

       If argvName is NULL, then the value left in interp->result by Tk_ConfigureInfo consists of a list  of
       one  or  more  entries,  each  of which describes one configuration option (i.e. one entry in specs).
       Each entry in the list will contain either two or five values.  If the corresponding entry  in  specs
       has  type  TK_CONFIG_SYNONYM,  then the list will contain two values:  the argvName for the entry and
       the dbName (synonym name).  Otherwise the list will contain five values:  argvName, dbName,  dbClass,
       defValue,  and current value.  The current value is computed from the appropriate field of widgRec by
       calling procedures like Tk_NameOfColor.

       If the argvName argument to Tk_ConfigureInfo is non-NULL, then it  indicates  a  single  option,  and
       information  is  returned  only  for that option.  The string placed in interp->result will be a list
       containing two or five values as described above;  this will be identical to the  corresponding  sub-list sublist
       list that would have been returned if argvName had been NULL.

       The flags argument to Tk_ConfigureInfo is used to restrict the specs entries to consider, just as for
       Tk_ConfigureWidget.


TK_CONFIGUREVALUE
       Tk_ConfigureValue takes arguments similar to Tk_ConfigureInfo; instead of returning a list of values,
       it  just  returns the current value of the option given by argvName (argvName must not be NULL).  The
       value is returned in interp->result and TCL_OK is normally returned as the procedure's result.  If an
       error  occurs in Tk_ConfigureValue (e.g., argvName is not a valid option name), TCL_ERROR is returned
       and an error message is left in interp->result.  This procedure is typically called to implement cget
       widget commands.


TK_FREEOPTIONS
       The  Tk_FreeOptions  procedure  may  be invoked during widget cleanup to release all of the resources
       associated with configuration options.  It scans through specs and for each entry corresponding to  a
       resource  that must be explicitly freed (e.g. those with type TK_CONFIG_COLOR), it frees the resource
       in the widget record.  If the field in the widget record doesn't refer to a resource (e.g.   it  con-tains contains
       tains a null pointer) then no resource is freed for that entry.  After freeing a resource, Tk_FreeOp-tions Tk_FreeOptions
       tions sets the corresponding field of the widget record to null.


CUSTOM OPTION TYPES
       Applications can extend the built-in configuration types with additional configuration types by writ-ing writing
       ing  procedures  to  parse and print options of the a type and creating a structure pointing to those
       procedures:
              typedef struct Tk_CustomOption {
                Tk_OptionParseProc *parseProc;
                Tk_OptionPrintProc *printProc;
                ClientData clientData;
              } Tk_CustomOption;

              typedef int Tk_OptionParseProc(
                ClientData clientData,
                Tcl_Interp *interp,
                Tk_Window tkwin,
                char *value,
                char *widgRec,
                int offset);

              typedef char *Tk_OptionPrintProc(
                ClientData clientData,
                Tk_Window tkwin,
                char *widgRec,
                int offset,
                Tcl_FreeProc **freeProcPtr);
       The Tk_CustomOption structure contains three fields, which are pointers to the two procedures  and  a
       clientData  value to be passed to those procedures when they are invoked.  The clientData value typi-cally typically
       cally points to a structure containing information that is needed by the  procedures  when  they  are
       parsing and printing options.

       The  parseProc  procedure  is invoked by Tk_ConfigureWidget to parse a string and store the resulting
       value in the widget record.  The clientData argument is a copy of the clientData field in the Tk_Cus-tomOption Tk_CustomOption
       tomOption  structure.   The  interp  argument  points  to a Tcl interpreter used for error reporting.
       Tkwin is a copy of the tkwin argument to Tk_ConfigureWidget.  The value argument is a string describ-ing describing
       ing  the  value  for  the  option;  it could have been specified explicitly in the call to Tk_Config-ureWidget Tk_ConfigureWidget
       ureWidget or it could come from the option database or a default.  Value will never be a null pointer
       but  it  may  point  to an empty string.  RecordPtr is the same as the widgRec argument to Tk_Config-ureWidget; Tk_ConfigureWidget;
       ureWidget;  it points to the start of the widget record to modify.  The last argument, offset,  gives
       the  offset in bytes from the start of the widget record to the location where the option value is to
       be placed.  The procedure should translate the string to whatever form is appropriate for the  option
       and  store  the value in the widget record.  It should normally return TCL_OK, but if an error occurs
       in translating the string to a value then it should return TCL_ERROR and store an  error  message  in
       interp->result.

       The  printProc procedure is called by Tk_ConfigureInfo to produce a string value describing an exist-ing existing
       ing option.  Its clientData, tkwin, widgRec, and offset arguments all have the same  meaning  as  for
       Tk_OptionParseProc  procedures.   The  printProc  procedure  should examine the option whose value is
       stored at offset in widgRec, produce a string describing that option, and return  a  pointer  to  the
       string.  If the string is stored in dynamically-allocated memory, then the procedure must set *freeP-rocPtr *freeProcPtr
       rocPtr to the address of a procedure to call to free the string's memory;  Tk_ConfigureInfo will call
       this  procedure when it is finished with the string.  If the result string is stored in static memory
       then printProc need not do anything with the freeProcPtr argument.

       Once parseProc and printProc have been defined and a Tk_CustomOption structure has been  created  for
       them,  options  of  this new type may be manipulated with Tk_ConfigSpec entries whose type fields are
       TK_CONFIG_CUSTOM and whose customPtr fields point to the Tk_CustomOption structure.


EXAMPLES
       Although the explanation of Tk_ConfigureWidget is  fairly  complicated,  its  actual  use  is  pretty
       straightforward.   The  easiest  way to get started is to copy the code from an existing widget.  The
       library implementation of frames (tkFrame.c) has a simple configuration table, and the library imple-mentation implementation
       mentation of buttons (tkButton.c) has a much more complex table that uses many of the fancy specFlags
       mechanisms.


SEE ALSO
       Tk_SetOptions(3)


KEYWORDS
       anchor, bitmap, boolean, border, cap style, color, configuration  options,  cursor,  custom,  double,
       font, integer, join style, justify, millimeters, pixels, relief, synonym, uid



Tk                                                   4.1                               Tk_ConfigureWidget(3)

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.