home *** CD-ROM | disk | FTP | other *** search
- #ifndef lint
- static char sccsid[] = "@(#)panel.c 1.2 92/05/28 SMI" ;
- /* from panel.c 1.2 88/10/19 SMI */
- #endif
-
- /*
- * Copyright (c) 1986 by Sun Microsystems, Inc.
- */
-
- #include <stdio.h>
- #ifdef XV
- #include <xview/xview.h>
- #include <xview/panel.h>
- #else
- #include <suntool/sunview.h>
- #include <suntool/panel.h>
- #endif XV
- #include "dstar.h"
- #include "object_types.h"
-
- float missile_speed, missile_feedback, missile_turn,
- missile_slew ;
-
- static Panel panel ;
- static Panel_item kill_but ;
- static Panel_item debug_toggle ;
- static Panel_item my_speed_slider ;
- static Panel_item speed_slider ;
- static Panel_item feedback_slider ;
- static Panel_item turn_slider ;
- static Panel_item slew_slider ;
-
- static void kill_proc() ;
- static void set_debug() ;
- static void my_speed_proc() ;
- static void speed_proc() ;
- static void feedback_proc() ;
- static void turn_proc() ;
- static void slew_proc() ;
-
- init_panel(frame)
- Frame frame ;
- {
- panel = window_create(frame, PANEL, 0) ;
- if(panel == NULL)
- exit(1) ;
-
- missile_speed = MISSILE_SPEED ;
- missile_feedback = MISSILE_GAIN ;
- missile_turn = MISSILE_TURN ;
- missile_slew = MISSILE_SLEW ;
-
- kill_but = panel_create_item(panel, PANEL_BUTTON,
- PANEL_LABEL_IMAGE,
- panel_button_image(panel, "kill missile", 0, 0),
- PANEL_NOTIFY_PROC, kill_proc,
- 0 ) ;
-
- debug_toggle = panel_create_item(panel, PANEL_TOGGLE,
- PANEL_CHOICE_STRINGS, "debug", 0,
- PANEL_TOGGLE_VALUE, 0, FALSE,
- PANEL_NOTIFY_PROC, set_debug,
- 0 ) ;
-
- my_speed_slider = panel_create_item(panel, PANEL_SLIDER,
- PANEL_LABEL_STRING, "my speed",
- PANEL_NOTIFY_PROC, my_speed_proc,
- PANEL_MAX_VALUE, 50,
- PANEL_VALUE, (int) Me->Speed,
- 0 ) ;
-
- speed_slider = panel_create_item(panel, PANEL_SLIDER,
- PANEL_LABEL_STRING, "speed",
- PANEL_NOTIFY_PROC, speed_proc,
- PANEL_MAX_VALUE, 100,
- PANEL_VALUE, (int) missile_speed,
- 0 ) ;
-
- feedback_slider = panel_create_item(panel, PANEL_SLIDER,
- PANEL_LABEL_STRING, "feedback",
- PANEL_NOTIFY_PROC, feedback_proc,
- PANEL_MAX_VALUE, 100,
- PANEL_VALUE, (int) (missile_feedback*10.0),
- 0 ) ;
-
- turn_slider = panel_create_item(panel, PANEL_SLIDER,
- PANEL_LABEL_STRING, "max turn",
- PANEL_NOTIFY_PROC, turn_proc,
- PANEL_MAX_VALUE, 200,
- PANEL_VALUE, (int) (missile_turn*100.0),
- 0 ) ;
-
- slew_slider = panel_create_item(panel, PANEL_SLIDER,
- PANEL_LABEL_STRING, "slew rate",
- PANEL_NOTIFY_PROC, slew_proc,
- PANEL_MAX_VALUE, 200,
- PANEL_VALUE, (int) (missile_slew * 100.0),
- 0 ) ;
-
-
- window_fit_height(panel) ;
- }
-
-
-
- static void
- kill_proc(item, event)
- Panel_item item ;
- Event *event ;
- {
- if(missiles[0] != NULL)
- missiles[0]->time = 0.0 ;
- }
-
-
-
-
- static void
- set_debug(item, value, event)
- Panel_item item ;
- unsigned int value ;
- Event *event ;
- {
- debug_level = (value & 1) ;
- }
-
-
-
-
- static void
- my_speed_proc(item, value, event)
- Panel_item item ;
- int value ;
- Event *event ;
- {
- Me->Speed = value ;
- }
-
-
-
-
- static void
- speed_proc(item, value, event)
- Panel_item item ;
- int value ;
- Event *event ;
- {
- missile_speed = value ;
- }
-
-
-
-
- static void
- feedback_proc(item, value, event)
- Panel_item item ;
- int value ;
- Event *event ;
- {
- missile_feedback = value*0.1 ;
- }
-
-
-
-
- static void
- turn_proc(item, value, event)
- Panel_item item ;
- int value ;
- Event *event ;
- {
- missile_turn = value*0.01 ;
- }
-
-
-
-
- static void
- slew_proc(item, value, event)
- Panel_item item ;
- int value ;
- Event *event ;
- {
- missile_slew = value*0.01 ;
- }
-