static Tk_OptionSpec optionSpecs[] = {

    {TK_OPTION_BORDER, "-activebackground", "activeBackground", "Foreground",
     DEF_DIAL_ACTIVE_BG_COLOR, -1, Tk_Offset(TkDial, activeBorder),
     0, (ClientData) DEF_DIAL_ACTIVE_BG_MONO, 0},

    {TK_OPTION_BORDER, "-background", "background", "Background",
     DEF_DIAL_BG_COLOR, -1, Tk_Offset(TkDial, bgBorder),
     0, (ClientData) DEF_DIAL_BG_MONO, 0},

    {TK_OPTION_INT, "-beginangle", "beginAngle", "BeginAngle",
     DEF_DIAL_BEGIN_ANGLE, -1, Tk_Offset(TkDial, beginAngle), 0, 0, 0},

    {TK_OPTION_DOUBLE, "-bigincrement", "bigIncrement", "BigIncrement",
     DEF_DIAL_BIG_INCREMENT, -1, Tk_Offset(TkDial, bigIncrement), 0, 0, 0},
    {TK_OPTION_SYNONYM, "-bd", (char *) NULL, (char *) NULL,
     (char *) NULL, 0, -1, 0, (ClientData) "-borderwidth", 0},

    {TK_OPTION_SYNONYM, "-bg", (char *) NULL, (char *) NULL,
     (char *) NULL, 0, -1, 0, (ClientData) "-background", 0},

    {TK_OPTION_PIXELS, "-borderwidth", "borderWidth", "BorderWidth",
     DEF_DIAL_BORDER_WIDTH, -1, Tk_Offset(TkDial, borderWidth), 0, 0, 0},

    {TK_OPTION_STRING, "-command", "command", "Command",
     DEF_DIAL_COMMAND, -1, Tk_Offset(TkDial, command),
     TK_CONFIG_NULL_OK, 0, 0},

    {TK_OPTION_BOOLEAN, "-constrainvalue", "constrainValue", "ConstrainValue",
     DEF_DIAL_CONSTRAIN_VALUE, -1, Tk_Offset(TkDial, constrain), 0, 0, 0},

    {TK_OPTION_CURSOR, "-cursor", "cursor", "Cursor",
     DEF_DIAL_CURSOR, -1, Tk_Offset(TkDial, cursor), TK_CONFIG_NULL_OK, 0, 0},

    {TK_OPTION_PIXELS, "-dialborderwidth", "dialBorderWidth",
     "DialBorderWidth", DEF_DIAL_DIAL_BORDER_WIDTH, -1,
     Tk_Offset(TkDial, dialBorderWidth), 0, 0, 0},

    {TK_OPTION_BORDER, "-dialcolor", "dialColor", "DialColor",
     DEF_DIAL_DIAL_COLOR, -1, Tk_Offset(TkDial, dialBorder),
     0, (ClientData) DEF_DIAL_DIAL_MONO, 0},

    {TK_OPTION_RELIEF, "-dialrelief", "dialRelief", "DialRelief",
     DEF_DIAL_DIAL_RELIEF, -1, Tk_Offset(TkDial, dialRelief), 0, 0, 0},

    {TK_OPTION_INT, "-digits", "digits", "Digits",
     DEF_DIAL_DIGITS, -1, Tk_Offset(TkDial, digits), 0, 0, 0},

    {TK_OPTION_INT, "-endangle", "endAngle", "EndAngle",
     DEF_DIAL_END_ANGLE, -1, Tk_Offset(TkDial, endAngle), 0, 0, 0},
    {TK_OPTION_SYNONYM, "-fg", (char *) NULL, (char *) NULL,
     (char *) NULL, 0, -1, 0, (ClientData) "-foreground", 0},

    {TK_OPTION_FONT, "-font", "font", "Font",
     DEF_DIAL_FONT, -1, Tk_Offset(TkDial, tkfont), 0, 0, 0},

    {TK_OPTION_COLOR, "-foreground", "foreground", "Foreground",
     DEF_DIAL_FG_COLOR, -1, Tk_Offset(TkDial, textColorPtr),
     0, (ClientData) DEF_DIAL_FG_MONO, 0},

    {TK_OPTION_DOUBLE, "-from", "from", "From",
     DEF_DIAL_FROM, -1, Tk_Offset(TkDial, fromValue), 0, 0, 0},

    {TK_OPTION_PIXELS, "-height", "height", "Height",
     DEF_DIAL_HEIGHT, -1, Tk_Offset(TkDial, reqHeight), 0, 0, 0},

    {TK_OPTION_COLOR, "-highlightbackground", "highlightBackground",
     "HighlightBackground", HIGHLIGHT_BG, -1,
     Tk_Offset(TkDial, highlightBgColorPtr), 0, 0, 0},

    {TK_OPTION_COLOR, "-highlightcolor", "highlightColor", "HighlightColor",
     HIGHLIGHT, -1, Tk_Offset(TkDial, highlightColorPtr), 0, 0, 0},

    {TK_OPTION_PIXELS, "-highlightthickness", "highlightThickness",
     "HighlightThickness",
     HIGHLIGHT_WIDTH, -1, Tk_Offset(TkDial, highlightWidth), 0, 0, 0},

    {TK_OPTION_STRING, "-label", "label", "Label",
     DEF_DIAL_LABEL, -1, Tk_Offset(TkDial, label), TK_CONFIG_NULL_OK, 0, 0},

    {TK_OPTION_DOUBLE, "-minortickinterval", "minorTickInterval", "TickInterval",
     DEF_DIAL_MIN_TICK_INTERVAL, -1, Tk_Offset(TkDial, minTickInterval),
     0, 0, 0},

    {TK_OPTION_STRING_TABLE, "-mode", "mode", "Mode",
     DEF_DIAL_MODE, -1, Tk_Offset(TkDial, mode),
     0, (ClientData) modeStrings, 0},

    {TK_OPTION_COLOR, "-needlecolor", "needleColor", "NeedleColor",
     DEF_DIAL_NEEDLE_COLOR, -1, Tk_Offset(TkDial, needleColorPtr),
     0, (ClientData) DEF_DIAL_NEEDLE_MONO, 0},

    {TK_OPTION_STRING_TABLE, "-needletype", "needleType", "NeedleType",
     DEF_DIAL_NEEDLE_TYPE, -1, Tk_Offset(TkDial, needleType),
     0, (ClientData) needleStrings, 0},

    {TK_OPTION_PIXELS, "-pad", "pad", "Pad",
     DEF_DIAL_PAD, -1, Tk_Offset(TkDial, pad), 0, 0, 0},

    {TK_OPTION_SYNONYM, "-radius", (char *) NULL, (char *) NULL,
     (char *) NULL, 0, -1, 0, (ClientData) "-width", 0},

    {TK_OPTION_RELIEF, "-relief", "relief", "Relief",
     DEF_DIAL_RELIEF, -1, Tk_Offset(TkDial, relief), 0, 0, 0},

    {TK_OPTION_INT, "-repeatdelay", "repeatDelay", "RepeatDelay",
     DEF_DIAL_REPEAT_DELAY, -1, Tk_Offset(TkDial, repeatDelay), 0, 0, 0},

    {TK_OPTION_INT, "-repeatinterval", "repeatInterval", "RepeatInterval",
     DEF_DIAL_REPEAT_INTERVAL, -1, Tk_Offset(TkDial, repeatInterval), 0, 0, 0},

    {TK_OPTION_DOUBLE, "-resolution", "resolution", "Resolution",
     DEF_DIAL_RESOLUTION, -1, Tk_Offset(TkDial, resolution), 0, 0, 0},

    {TK_OPTION_STRING_TABLE, "-showtags", "showTags", "ShowTags",
     DEF_DIAL_SHOW_TAGS, -1, Tk_Offset(TkDial, showTags),
     0, (ClientData) showtagsStrings, 0},

    {TK_OPTION_BOOLEAN, "-showvalue", "showValue", "ShowValue",
     DEF_DIAL_SHOW_VALUE, -1, Tk_Offset(TkDial, showValue), 0, 0, 0},

    {TK_OPTION_STRING_TABLE, "-state", "state", "State",
     DEF_DIAL_STATE, -1, Tk_Offset(TkDial, state),
     0, (ClientData) stateStrings, 0},

    {TK_OPTION_STRING, "-takefocus", "takeFocus", "TakeFocus",
     DEF_DIAL_TAKE_FOCUS, -1, Tk_Offset(TkDial, takeFocus),
     TK_CONFIG_NULL_OK, 0, 0},

    {TK_OPTION_COLOR, "-tickcolor", "tickColor", "TickColor",
     DEF_DIAL_TICK_COLOR, -1, Tk_Offset(TkDial, tickColorPtr),
     0, (ClientData) DEF_DIAL_TICK_MONO, 0},

    {TK_OPTION_DOUBLE, "-tickinterval", "tickInterval", "TickInterval",
     DEF_DIAL_TICK_INTERVAL, -1, Tk_Offset(TkDial, tickInterval), 0, 0, 0},

    {TK_OPTION_PIXELS, "-tickwidth", "tickWidth", "TickWidth",
     DEF_DIAL_TICK_WIDTH, -1, Tk_Offset(TkDial, tickWidth), 0, 0, 0},

    {TK_OPTION_DOUBLE, "-to", "to", "To",
     DEF_DIAL_TO, -1, Tk_Offset(TkDial, toValue), 0, 0, 0},

    {TK_OPTION_PIXELS, "-width", "width", "Width",
     DEF_DIAL_WIDTH, -1, Tk_Offset(TkDial, reqWidth), 0, 0, 0},

    {TK_OPTION_STRING, "-variable", "variable", "Variable",
     DEF_DIAL_VARIABLE, -1, Tk_Offset(TkDial, varName),
     TK_CONFIG_NULL_OK, 0, 0},

    /* These are maintained purely for 100% compatibility with scale
     * widget options, but are not guaranteed to translate 100% correctly */
    {TK_OPTION_SYNONYM, "-length", (char *) NULL, (char *) NULL,
     (char *) NULL, 0, -1, 0, (ClientData) "-height", 0},
    {TK_OPTION_STRING, "-orient", "orient", "Orient",
     "", -1, Tk_Offset(TkDial, orient), TK_CONFIG_NULL_OK, 0, 0},
    {TK_OPTION_SYNONYM, "-sliderrelief", (char *) NULL, (char *) NULL,
     (char *) NULL, 0, -1, 0, (ClientData) "-dialrelief", 0},
    {TK_OPTION_SYNONYM, "-troughcolor", (char *) NULL, (char *) NULL,
     (char *) NULL, 0, -1, 0, (ClientData) "-needlecolor", 0},

    {TK_OPTION_END, (char *) NULL, (char *) NULL, (char *) NULL,
     (char *) NULL, 0, 0}
};
