/* 
 * Thomas Pantzer: new_panel.h, v0.4.7  8.6.99 16:32 
 * 
 * 
 * Copyright 1999 by Thomas Pantzer
 * 
 * Permission to use, copy, modify, and distribute this software for noncommercial 
 * use and without fee is hereby granted, provided that the above copyright notice 
 * appear in all copies and that both that copyright notice and this permission 
 * notice appear in supporting documentation, and that the name of the Author not be 
 * used in advertising or publicity pertaining to distribution of the software 
 * without specific, written prior permission. The Author makes no representations about
 * the suitability of this software for any purpose.  It is provided "as is" 
 * without expressed or implied warranty. 
 * 
 * 
 * pantec@isys2.informatik.uni-leipzig.de   (Thomas Pantzer) 
 * 
 */

#ifndef FD_new_panel_h_
#define FD_new_panel_h_
/* Header file generated with fdesign. */

/**** Callback routines ****/

extern void slider_cb(FL_OBJECT *, long);
extern void dial_cb(FL_OBJECT *, long);
extern void button_cb(FL_OBJECT *, long);
extern void plot_cb(FL_OBJECT *, long);
extern void choice_cb(FL_OBJECT *, long);
extern void input_cb(FL_OBJECT *, long);
// extern void popup_cb(int arg);
extern void pos_cb(FL_OBJECT *, long);
extern void create_pup(FL_OBJECT *, long);
void do_nothing(FL_OBJECT *ob, long data);


/**** Forms and Objects ****/

typedef struct {
	FL_FORM *panel;
	void *vdata;
	long ldata;
//	FL_OBJECT *pathlen_sl;
//	FL_OBJECT *stepping_sl;
	FL_OBJECT *update_sl;
	FL_OBJECT *gripper_dl;

//	FL_OBJECT *move1_bt;
	FL_OBJECT *led_bt;
	FL_OBJECT *odo_bt;
	FL_OBJECT *visual_bt;
	FL_OBJECT *mpeg_bt;
	FL_OBJECT *filter_plot;
	FL_OBJECT *iris_sl;
	FL_OBJECT *run_bt;
	FL_OBJECT *grip_bt;
	FL_OBJECT *speed_sl;
	FL_OBJECT *turn_dl;

//	FL_OBJECT *demo_ch;
//	FL_OBJECT *mode_ch;
//	FL_OBJECT *robos_ch;
//	FL_OBJECT *select_ch;
	FL_OBJECT *control_ch;

	FL_OBJECT *algo_bt;
	int algo_pup;
	FL_OBJECT *view_bt;
	int view_pup;


//	FL_OBJECT *show_ch;

	FL_OBJECT *device_in;

//	FL_OBJECT *gamma_bt;
//	FL_OBJECT *klevel_sl;
//	FL_OBJECT *epsilon_sl;
//	FL_OBJECT *ny_sl;
//	FL_OBJECT *infoTH_sl;
//	FL_OBJECT *addline_bt;

	FL_OBJECT *exit_bt;
	FL_OBJECT *grip_sl;
	FL_OBJECT *contact_bt;
	FL_OBJECT *resistor_in;
	FL_OBJECT *world_pos;
	FL_OBJECT *alpha_dl;
	FL_OBJECT *aspect_dl;
	FL_OBJECT *move_bt[10];
	FL_OBJECT *lcd_sl[64];
	FL_OBJECT *filter_ch[5];
	FL_OBJECT *ired_sl[8];
	FL_OBJECT *ambl_sl[8];
	FL_OBJECT *canvas;

	FL_OBJECT *send_delay;
	FL_OBJECT *receive_delay;
	FL_OBJECT *update;
	FL_OBJECT *unfair;
	FL_OBJECT *save_costs;
	FL_OBJECT *upsleep;
	FL_OBJECT *upphase; 
	FL_OBJECT *total_turn;
	FL_OBJECT *delta_s_avg; 

//	FL_OBJECT *slBorder_bt;
} FD_panel;

extern FD_panel * create_form_panel(void);

extern int idle_cb(XEvent *,void *);

extern int preemptive_handler(FL_OBJECT *ob, int event,
                          FL_Coord mx, FL_Coord my, int key, void *xev);

extern int post_handler(FL_OBJECT *ob, int event,
            FL_Coord mx, FL_Coord my, int key, void *xev);

extern int canvas_expose(FL_OBJECT *ob, Window win, int w, int h, 
                                           XEvent *ev, void *d);



#define cmd_stepping 1
#define cmd_update   2	
#define cmd_armpos   3 
#define cmd_move7    4 
#define cmd_move8    5
#define cmd_move9    6 
#define cmd_move4    7
#define cmd_move1    8
#define cmd_move3    9
#define cmd_move6   10
#define cmd_led     11
#define cmd_odo     12
#define cmd_visual  13
#define cmd_mpeg     14
#define cmd_run      15
#define cmd_grip     16
#define cmd_speed    17
#define cmd_filter1  18
#define cmd_filter2  19
#define cmd_filter3  20
#define cmd_filter4  21
#define cmd_turn     22
#define cmd_control  23
#define cmd_mode     24
#define cmd_robots   25
#define cmd_select   26
#define cmd_device   27

// #define cmd_gamma    28
// #define cmd_klevel   29
// #define cmd_epsilon  30
// #define cmd_ny       31
// #define cmd_infoTH   32
// #define cmd_addline  33

#define cmd_pathlen  34	
#define cmd_move2    35

#define cmd_algo	36
#define cmd_view	37	
#define cmd_iredsl	38
#define cmd_amblsl	39

// #define cmd_arm      36



#ifdef MAIN_G
#define vextern
#else
#define vextern extern
#endif


vextern FD_panel  	*fd_panel;


#undef vextern

#endif /* FD_new_panel_h_ */







/**/
/**/
/**/
/**/
/**/
/**/
/**/
/**/
/*****  End Of File  ****************************/
