// gcc -o thumbwheel thumbwheel.c -L/usr/X11/lib -lforms -lm -lX11 -I/usr/X11/include/

#include <stdlib.h>

#include "forms.h"

#define TRUE 1

typedef struct {
	FL_FORM *form;
	void *vdata;
	char *cdata;
	long  ldata;
	FL_OBJECT *thumbwheel;
} FD_thumbwheel;

void cbThumbwheel(FL_OBJECT *ob, long data)
{
  printf("%f\n", fl_get_thumbwheel_value(ob));
}

FD_thumbwheel *create_form_thumbwheel(void)
{
  FL_OBJECT *obj;
  FD_thumbwheel *fdui = (FD_thumbwheel *) fl_calloc(1, sizeof(*fdui));

  fdui->form = fl_bgn_form(FL_NO_BOX, 100, 50);
  obj = fl_add_box(FL_UP_BOX,0,0,100,50,"");
  fdui->thumbwheel = obj = fl_add_thumbwheel(FL_HOR_THUMBWHEEL,10,10,80,30,"");
  fl_set_object_callback(obj,cbThumbwheel,0);
  fl_end_form();

  fdui->form->fdui = fdui;

  return fdui;
}

int main(int argc, char *argv[])
{
   FD_thumbwheel *fd_thumbwheel;

   fl_initialize(&argc, argv, 0, 0, 0);
   fd_thumbwheel = create_form_thumbwheel();

   /* fill-in form initialization code */

   /* show the first form */
   fl_show_form(fd_thumbwheel->form,FL_PLACE_CENTERFREE,FL_FULLBORDER,"thumbwheel");

   fl_set_thumbwheel_return(fd_thumbwheel->thumbwheel, FL_RETURN_CHANGED);
   fl_set_thumbwheel_bounds(fd_thumbwheel->thumbwheel, 0.0, 360.0);
   fl_set_thumbwheel_value(fd_thumbwheel->thumbwheel, 0.0);
   fl_set_thumbwheel_crossover(fd_thumbwheel->thumbwheel, TRUE);
   fl_set_thumbwheel_step(fd_thumbwheel->thumbwheel, 120.0);

   fl_do_forms();

   return 0;
}
