/* Written by Dan Heller and Paula Ferguson.  
 * Copyright 1994, O'Reilly & Associates, Inc.
 * Permission to use, copy, and modify this program without
 * restriction is hereby granted, as long as this copyright
 * notice appears in each copy of the program source code.
 * This program is freely distributable without licensing fees and
 * is provided without guarantee or warrantee expressed or implied.
 * This program is -not- in the public domain.
 */

/* simple_scale.c -- demonstrate a few scale widgets. */

#include <Xm/Scale.h>
#include <Xm/RowColumn.h>

main(argc, argv)
int argc;
char *argv[];
{
    Widget        toplevel, rowcol, scale;
    XtAppContext  app;
    void          new_value(); /* callback for Scale widgets */
    
    XtSetLanguageProc (NULL, NULL, NULL);

    toplevel = XtVaAppInitialize (&app, "Demos", NULL, 0,
        &argc, argv, NULL, NULL);

    rowcol = XtVaCreateWidget ("rowcol",
        xmRowColumnWidgetClass, toplevel,
        XmNorientation, XmHORIZONTAL,
        NULL);

    scale = XtVaCreateManagedWidget ("Days",
        xmScaleWidgetClass, rowcol,
        XtVaTypedArg, XmNtitleString, XmRString, "Days", 5,
        XmNmaximum,   7,
        XmNminimum,   1,
        XmNvalue,     1,
        XmNshowValue, True,
        NULL);
    XtAddCallback (scale, XmNvalueChangedCallback, new_value, NULL);

    scale = XtVaCreateManagedWidget ("Weeks",
        xmScaleWidgetClass, rowcol,
        XtVaTypedArg, XmNtitleString, XmRString, "Weeks", 6,
        XmNmaximum,   52,
        XmNminimum,   1,
        XmNvalue,     1,
        XmNshowValue, True,
        NULL);
    XtAddCallback (scale, XmNvalueChangedCallback, new_value, NULL);

    scale = XtVaCreateManagedWidget ("Months",
        xmScaleWidgetClass, rowcol,
        XtVaTypedArg, XmNtitleString, XmRString, "Months", 7,
        XmNmaximum,   12,
        XmNminimum,   1,
        XmNvalue,     1,
        XmNshowValue, True,
        NULL);
    XtAddCallback (scale, XmNvalueChangedCallback, new_value, NULL);

    scale = XtVaCreateManagedWidget ("Years",
        xmScaleWidgetClass, rowcol,
        XtVaTypedArg, XmNtitleString, XmRString, "Years", 6,
        XmNmaximum,   20,
        XmNminimum,   1,
        XmNvalue,     1,
        XmNshowValue, True,
        NULL);
    XtAddCallback (scale, XmNvalueChangedCallback, new_value, NULL);

    XtManageChild (rowcol);

    XtRealizeWidget (toplevel);
    XtAppMainLoop (app);
}

void
new_value(scale_w, client_data, call_data)
Widget scale_w;
XtPointer client_data;
XtPointer call_data;
{
    XmScaleCallbackStruct *cbs = (XmScaleCallbackStruct *) call_data;

    printf("%s: %d\n", XtName(scale_w), cbs->value);
}