/*
 *----------------------------------------------------------------------
 *
 * Tk_BellCmd --
 *
 *    This procedure is invoked to process the "bell" Tcl command.
 *    See the user documentation for details on what it does.
 *
 * Results:
 *    A standard Tcl result.
 *
 * Side effects:
 *    None.
 *
 *----------------------------------------------------------------------
 */
      /* ARGSUSED */
int
Tk_BellCmd(clientData, interp, argc, argv)
    ClientData clientData;    /* Main window associated with
                               * interpreter.*/
    Tcl_Interp *interp;               /* Current interpreter. */
    int argc;                 /* Number of arguments. */
    char **argv;              /* Argument strings. */
{
    Tk_Window tkwin = (Tk_Window) clientData;
    int percent;

    if (argc == 1) {
      percent = 50;
    } else if (argc == 2) {
      if ((Tcl_GetInt(interp, argv[1], &percent) != TCL_OK)
          || (percent < -100) || (percent > 100)) {
          Tcl_ResetResult(interp);
          Tcl_AppendResult(interp, "bad volume percentage value \"",
                           argv[1], "\"", (char *) NULL);
          return TCL_ERROR;
      }
    } else {
      Tcl_AppendResult(interp, "wrong # args: should be \"",
                       argv[0], " ?volumePercent?\"", (char *) NULL);
      return TCL_ERROR;
    }

    XBell(Tk_Display(tkwin), percent);
    return TCL_OK;
}
