/* This is an example of the use of counters.
*/

#include <stdio.h>
#include "forms.h"


FL_FORM *form;

FL_OBJECT *result, *button, *co[3];

void create_form_form(void)
{
  FL_OBJECT *obj;
  form = fl_bgn_form(FL_NO_BOX,480,200);
  obj = fl_add_box(FL_UP_BOX,0,0,480,200,"");
  result = obj = fl_add_box(FL_DOWN_BOX,310,20,150,160,"");
  co[0] = obj = fl_add_counter(FL_NORMAL_COUNTER,20,150,270,30,"");
    fl_set_object_color(obj,FL_INDIANRED,FL_RED);
  co[1] = obj = fl_add_counter(FL_NORMAL_COUNTER,20,110,270,30,"");
    fl_set_object_color(obj,FL_PALEGREEN,FL_GREEN);
  co[2] = obj = fl_add_counter(FL_NORMAL_COUNTER,20,70,270,30,"");
    fl_set_object_color(obj,FL_SLATEBLUE,FL_BLUE);
  button = obj = fl_add_button(FL_NORMAL_BUTTON,100,20,110,30,"Exit");
  fl_end_form();
}

int
main(int argc, char *argv[])
{
  FL_OBJECT *ret;
  int i,r,g,b;

  fl_initialize(argv[0], "FormDemo", 0, 0 ,&argc, argv);
  create_form_form();
  fl_set_object_color(result,FL_FREE_COL1,FL_FREE_COL1);
  for (i=0; i<3; i++)
  {
    fl_set_counter_bounds(co[i],0.0,255.0);
    fl_set_counter_step(co[i],1.0,16.0);
    fl_set_counter_precision(co[i],0);
    fl_set_counter_return(co[i],1);
  }

  fl_show_form(form,FL_PLACE_CENTER,FL_NOBORDER,NULL);
  do
  {
    r = (int) fl_get_counter_value(co[0]);
    g = (int) fl_get_counter_value(co[1]);
    b = (int) fl_get_counter_value(co[2]);
    fl_mapcolor(FL_FREE_COL1,r,g,b);
    fl_redraw_object(result);
    ret = fl_do_forms();
  } while (ret != button);
  fl_hide_form(form);
  return 0;
}

