#ifndef IVD_H
#define IVD_H

#include "iviewdef.h"

extern LVAL encode_cursor(int),
            encode_lisp_color(ColorCode),
            encode_point_state(PointState),
            encode_point_symbol(int,int),
            get_hardware_object_by_address(void *),
            gw_draw_bitmap(void),
            gw_free_color(void),
            gw_free_cursor(void),
            gw_make_color(void),
            gw_make_cursor(void),
            get_menu_by_hardware(IVIEW_MENU),
            iview_add_lines(void),
            iview_add_points(void),
            iview_add_strings(void),
            iview_adjust_depth_cuing(void),
            iview_adjust_to_data(void),
            iview_all_points_showing(void),
            iview_all_points_unmasked(void),
            iview_allocate(void),
            iview_alt_adjust_points_in_rect(void),
            iview_alt_adjust_screen(void),
            iview_any_points_selected(void),
            iview_apply_transformation(void),
            iview_brush(void),
            iview_clear_lines(void),
            iview_clear_masks(void),
            iview_clear_points(void),
            iview_clear_strings(void),
            iview_click_range(void),
            iview_content_origin(void),
            iview_content_rect(void),
            iview_content_variables(void),
            iview_dirty(void),
            iview_do_click(void),
            iview_do_motion(void),
            iview_draw_brush(void),
            iview_draw_data_lines(void),
            iview_draw_data_points(void),
            iview_draw_data_strings(void),
            iview_erase_brush(void),
            iview_erase_selection(void),
            iview_fixed_aspect(void),
            iview_get_nice_range(void),
            iview_hist_add_points(void),
            iview_hist_adjust_points_in_rect(void),
            iview_hist_adjust_screen(void),
            iview_hist_adjust_screen_point(void),
            iview_hist_adjust_to_data(void),
            iview_hist_allocate(void),
            iview_hist_bin_counts(void),
            iview_hist_clear_points(void),
            iview_hist_isnew(void),
            iview_hist_mark_points_in_rect(void),
            iview_hist_num_bins(void),
            iview_hist_redraw_content(void),
            iview_hist_resize(void),
            iview_isnew(void),
            iview_line_color(void),
            iview_line_coordinate(void),
            iview_line_masked(void),
            iview_line_next(void),
            iview_line_screen_coordinate(void),
            iview_line_transformed_coordinate(void),
            iview_line_type(void),
            iview_line_width(void),
            iview_linked(void),
            iview_links(void),
            iview_list_add_points(void),
            iview_list_adjust_points_in_rect(void),
            iview_list_adjust_screen(void),
            iview_list_adjust_screen_point(void),
            iview_list_allocate(void),
            iview_list_mark_points_in_rect(void),
            iview_list_redraw_content(void),
            iview_margin(void),
            iview_mask_selection(void),
            iview_mouse_mode(void),
            iview_move_brush(void),
            iview_num_lines(void),
            iview_num_points(void),
            iview_num_strings(void),
            iview_num_variables(void),
            iview_plot2d_add_lines(void),
            iview_plot2d_add_points(void),
            iview_plot2d_add_strings(void),
            iview_plot2d_adjust_to_data(void),
            iview_point_color(void),
            iview_point_coordinate(void),
            iview_point_hilited(void),
            iview_point_label(void),
            iview_point_marked(void),
            iview_point_masked(void),
            iview_point_selected(void),
            iview_point_screen_coordinate(void),
            iview_point_screen_state(void),
            iview_point_showing(void),
            iview_point_state(void),
            iview_point_symbol(void),
            iview_point_transformed_coordinate(void),
            iview_points_hilited(void),
            iview_points_in_rect(void),
            iview_points_selected(void),
            iview_points_showing(void),
            iview_points_to_rect(void),/* needed?? JKL */
            iview_range(void),
            iview_real_to_screen(void),
            iview_resize_brush(void),
            iview_rotate_2(void),
            iview_scale(void),
            iview_scale_to_range(void),
            iview_scaled_range(void),
            iview_scaled_to_screen(void),
            iview_scatmat_add_lines(void),
            iview_scatmat_add_points(void),
            iview_scatmat_add_strings(void),
            iview_scatmat_adjust_points_in_rect(void),
            iview_scatmat_adjust_screen(void),
            iview_scatmat_adjust_screen_point(void),
            iview_scatmat_adjust_screen_points_in_rect(void),
            iview_scatmat_allocate(void),
            iview_scatmat_click(void),
            iview_scatmat_mark_points_in_rect(void),
            iview_scatmat_motion(void),
            iview_scatmat_redraw_content(void),
            iview_scatmat_resize(void),
            iview_screen_range(void),
            iview_screen_to_real(void),
            iview_screen_to_scaled(void),
            iview_shift(void),
            iview_show_all_points(void),
            iview_showing_labels(void),
            iview_slice_variable(void),
            iview_spin_allocate(void),
            iview_spin_angle(void),
            iview_spin_content_variables(void),
            iview_spin_depth_cuing(void),
            iview_spin_draw_axes(void),
            iview_spin_mouse(void),
            iview_spin_redraw_background(void),
            iview_spin_redraw_content(void),
            iview_spin_resize(void),
            iview_spin_rotate(void),
            iview_spin_showing_axes(void),
            iview_std_adjust_points_in_rect(void),
            iview_std_adjust_screen(void),
            iview_std_adjust_screen_point(void),
            iview_std_mark_points(void),
            iview_std_mark_points_in_rect(void),
            iview_std_click(void),
            iview_std_motion(void),
            iview_std_redraw(void),
            iview_std_redraw_background(void),
            iview_std_redraw_content(void),
            iview_std_resize(void),
#ifdef USESTRINGS
            iview_string_color(void),
            iview_string_coordinate(void),
            iview_string_masked(void),
            iview_string_modifiers(void),
            iview_string_screen_coordinate(void),
            iview_string_transformed_coordinate(void),
#endif USESTRINGS
            iview_transformation(void),
            iview_unlink_all_windows(void),
            iview_unmask_all_points(void),
            iview_unselect_all_points(void),
            iview_unshow_all_points(void),
            iview_variable_label(void),
            iview_visible_range(void),
            iview_window_allocate(void),
            iview_window_back_color(void),
            iview_window_buffer_to_screen(void),
            iview_window_canvas_height(void),
            iview_window_canvas_width(void),
            iview_window_clip_rect(void),
            iview_window_copy_to_clip(void),
            iview_window_cursor(void),
            iview_window_drag_grey_rect(void),
            iview_window_draw_color(void),
            iview_window_draw_line(void),
            iview_window_draw_mode(void),
            iview_window_draw_point(void),
            iview_window_draw_string(void),
            iview_window_draw_string_up(void),
            iview_window_draw_symbol(void),
            iview_window_draw_text(void),
            iview_window_draw_text_up(void),
            iview_window_dump_image(void),
            iview_window_erase_arc(void),
            iview_window_erase_oval(void),
            iview_window_erase_poly(void),
            iview_window_erase_rect(void),
            iview_window_frame_arc(void),
            iview_window_frame_oval(void),
            iview_window_frame_poly(void),
            iview_window_frame_rect(void),
            iview_window_has_h_scroll(void),
            iview_window_has_v_scroll(void),
            iview_window_h_scroll_incs(void),
            iview_window_v_scroll_incs(void),
            iview_window_idle_on(void),
            iview_window_isnew(void),
            iview_window_line_type(void),
            iview_window_line_width(void),
            iview_window_menu(void),
            iview_window_paint_arc(void),
            iview_window_paint_oval(void),
            iview_window_paint_poly(void),
            iview_window_paint_rect(void),
            iview_window_remove(void),
            iview_window_replace_symbol(void),
            iview_window_reset_buffer(void),
            iview_window_reverse_colors(void),
            iview_window_scroll(void),
            iview_window_show_window(void),
            iview_window_start_buffering(void),
            iview_window_text_ascent(void),
            iview_window_text_descent(void),
            iview_window_text_width(void),
            iview_window_use_color(void),
            iview_window_view_rect(void),
            iview_window_while_button_down(void),
            iview_x_axis(void),
            iview_y_axis(void),
            IViewWindowGetObject(IVIEW_WINDOW),
            PointToList(Point),
            xsallocate_menu(void),
            xsappend_items(void),
            xsbutton_item_isnew(void),
            xschoice_item_isnew(void),
            xschoice_item_value(void),
            xsdelete_items(void),
            xsdialog_allocate(void),
            xsdialog_allocated_p(void),
            xsdialog_default_button(void),
            xsdialog_isnew(void),
            xsdialog_item_action(void),
            xsdialog_item_do_action(void),
            xsdialog_modal(void),
            xsdialog_remove(void),
            xsdispose_menu(void),
            xsgetbuttonitem(void),
            xsgetchoiceitem(void),
            xsgetdialog(void),
            xsgetdialogitem(void),
            xsgetlistitem(void),
            xsgetmenu(void),
            xsgetmenuitem(void),
            xsgetscrollitem(void),
            xsgettextitem(void),
            xsgettoggleitem(void),
            xshistogram(void),
            xsinstall_menu(void),
            xsitem_action(void),
            xsitem_do_action(void),
            xsitem_enabled(void),
            xsitem_installed(void),
            xsitem_installed_p(void),
            xsitem_isnew(void),
            xsitem_key(void),
            xsitem_mark(void),
            xsitem_style(void),
            xsitem_title(void),
            xsitem_update(void),
            xsiview_window_activate(void),
            xsiview_window_update(void),
            xslist_item_action(void),
            xslist_item_isnew(void),
            xslist_item_selection(void),
            xslist_item_text(void),
            xsmenu_enabled(void),
            xsmenu_isnew(void),
            xsmenu_items(void),
            xsmenu_popup(void),
            xsmenu_select(void),
            xsmenu_title(void),
            xsnamelist(void),
            xsplot_lines(void),
            xsplot_points(void),
            xsremove_menu(void),
            xsscatterplot_matrix(void),
            xsscroll_item_action(void),
            xsscroll_item_isnew(void),
            xsscroll_item_max(void),
            xsscroll_item_min(void),
            xsscroll_item_value(void),
            xsspin_plot(void),
            xstext_item_isnew(void),
            xstext_item_text(void),
            xstoggle_item_isnew(void),
            xstoggle_item_value(void),
            xsupdate_menu(void);
extern int button_item_p(LVAL),
           choice_item_p(LVAL),
           decode_cursor(LVAL),
           dialog_item_p(LVAL),
           dialog_p(LVAL),
           IViewAllPointsShowing(IVIEW_WINDOW),
           IViewAllPointsUnmasked(IVIEW_WINDOW),
           IViewAnyPointsSelected(IVIEW_WINDOW),
           IViewDataGetLineWidth(IViewDATA,unsigned,unsigned *),
           IViewDataIsTransformed(IViewDATA),
           IViewDataLineMasked(IViewDATA,unsigned),
           IViewDataLineScreenValue(IViewDATA,int,int),
           IViewDataLineType(IViewDATA,unsigned),
           IViewDataNextLine(IViewDATA,unsigned),
           IViewDataNumLines(IViewDATA),
           IViewDataNumPoints(IViewDATA),
           IViewDataNumStrings(IViewDATA),
           IViewDataNumVariables(IViewDATA),
           IViewDataPointMarked(IViewDATA,unsigned),
           IViewDataPointMasked(IViewDATA,unsigned),
           IViewDataPointScreenValue(IViewDATA,int,int),
           IViewDataStringMasked(IViewDATA,unsigned),
           IViewDataStringScreenValue(IViewDATA,int,int),
           IViewFixedAspect(IVIEW_WINDOW),
           IViewGetNewBrushSize(IVIEW_WINDOW,int *,int *),
           IViewInternalIsLinked(IVIEW_WINDOW),
           IViewIsLinked(IVIEW_WINDOW),
           IViewShowingLabels(IVIEW_WINDOW),
           IViewStringColor(IVIEW_WINDOW,int),
           list_item_p(LVAL),
           menu_item_p(LVAL),
           menu_p(LVAL),
           scroll_item_p(LVAL),
           text_item_p(LVAL),
           toggle_item_p(LVAL),
           valid_dialog_address(LVAL),
           valid_iview_address(LVAL),
           valid_iview_window_address(LVAL),
           valid_menu_address(LVAL),
           valid_window_address(LVAL);
extern void check_add_to_screen(LVAL,int,int,int,int),
            check_redraw(LVAL,int,int),
            decode_point_symbol(LVAL,int *,int *),
            get_iview_keys(LVAL),
            get_iview_ivars(LVAL,int *),
            *get_menu_address(LVAL),
            GetNiceRange(double *,double *,int *),
            initialize_graph(LVAL),
            initialize_graph_window(LVAL),
            initialize_iview(IVIEW_WINDOW,LVAL),
            internal_iview_add_lines(IVIEW_WINDOW,LVAL,LVAL),
            internal_iview_add_points(IVIEW_WINDOW,LVAL,LVAL),
            internal_iview_add_strings(IVIEW_WINDOW,LVAL,LVAL),
            IViewAdjustLinkedPlots(IVIEW_WINDOW),
            IViewAdjustLinkedScreenPoint(IVIEW_WINDOW,int),
            IViewAdjustOwnScreen(IVIEW_WINDOW),
            IViewAdjustOwnScreenPoint(IVIEW_WINDOW,int),
            IViewAdjustPointsInRect(IVIEW_WINDOW,int,int,int,int,PointState),
            IViewAdjustScreens(IVIEW_WINDOW),
            IViewAltAdjustPointsInRect(IVIEW_WINDOW,int,int,int,int,PointState),
            IViewAltAdjustScreen(IVIEW_WINDOW),
            IViewApplyScaleShift(IVIEW_WINDOW,unsigned,double,double),
            IViewCheckLinks(IVIEW_WINDOW),
            IViewDataAddLines(IViewDATA,int),
            IViewDataAddPoints(IViewDATA,int),
            IViewDataAddStrings(IViewDATA,int),
            IViewDataApplyTransformation(IViewDATA,double **,int *),
            IViewDataClearLines(IViewDATA),
            IViewDataClearPointMarks(IViewDATA),
            IViewDataClearPoints(IViewDATA),
            IViewDataClearStrings(IViewDATA),
            IViewDataCuePoints(IViewDATA,unsigned,int,int,int,unsigned,unsigned),
            IViewDataDrawPoints(IViewDATA,IVIEW_WINDOW,unsigned,unsigned,
                                unsigned,unsigned,int),
            IViewDataFree(IViewDATA),
            IViewDataGetPointSymbol(IViewDATA,unsigned,int *,int *),
            IViewDataGetRange(IViewDATA,unsigned,double *,double *),
            IViewDataGetScreenPointValues(IViewDATA,int,int*),
            IViewDataGetScreenRange(IViewDATA,unsigned,int *,int *),
            IViewDataGetStringModifiers(IViewDATA,unsigned,int *,int *,int *),
            IViewDataPointSymbol(IViewDATA,unsigned,int,int),
            IViewDataResetScreenStates(IViewDATA),
            IViewDataSetIdentityTransformation(IViewDATA),
            IViewDataSetLineColor(IViewDATA,unsigned,int),
            IViewDataSetLineMask(IViewDATA,unsigned,int),
            IViewDataSetLineType(IViewDATA,unsigned,int),
            IViewDataSetLineValue(IViewDATA,int,int,double),
            IViewDataSetLineWidth(IViewDATA,unsigned,unsigned),
            IViewDataSetNextLine(IViewDATA,unsigned,int),
            IViewDataSetPointColor(IViewDATA,unsigned,int),
            IViewDataSetPointLabel(IViewDATA,unsigned,char *),
            IViewDataSetPointMark(IViewDATA,unsigned,int),
            IViewDataSetPointMask(IViewDATA,unsigned,int),
            IViewDataSetPointScreenState(IViewDATA,unsigned,PointState),
            IViewDataSetPointState(IViewDATA,unsigned,PointState),
            IViewDataSetPointSymbol(IViewDATA,unsigned,int,int),
            IViewDataSetPointValue(IViewDATA,int,int,double),
            IViewDataSetRange(IViewDATA,unsigned,double,double),
            IViewDataSetScreenRange(IViewDATA,unsigned,int,int),
            IViewDataSetStringColor(IViewDATA,unsigned,int),
            IViewDataSetStringMask(IViewDATA,unsigned,int),
            IViewDataSetStringModifiers(IViewDATA,unsigned,int,int,int),
            IViewDataSetStringString(IViewDATA,unsigned,char *),
            IViewDataSetStringValue(IViewDATA,int,int,double),
            IViewDataSetTransformation(IViewDATA,double **),
            IViewDataSetVariableLabel(IViewDATA,unsigned,char *),
            IViewDepthCuePoints(IVIEW_WINDOW,unsigned,unsigned,unsigned,
                                unsigned,unsigned,unsigned),
            IViewDrawAxes(IVIEW_WINDOW),
            IViewDrawDataLines(IVIEW_WINDOW,unsigned,unsigned,unsigned,unsigned),
            IViewDrawDataPoints(IVIEW_WINDOW,unsigned,unsigned,unsigned,unsigned),
            IViewDrawDataStrings(IVIEW_WINDOW,unsigned,unsigned,unsigned,unsigned),
            IViewDoClick(LVAL),
            IViewDoMotion(LVAL),
            IViewDrawBrush(IVIEW_WINDOW),
            IViewEraseBrush(IVIEW_WINDOW),
            IViewEraseSelection(IVIEW_WINDOW),
            IViewFreeMem(IVIEW_WINDOW),
            IViewGetAxisMargin(IVIEW_WINDOW,int *,int*,int *,int *),
            IViewGetBrush(IVIEW_WINDOW,int *,int *,int *,int *),
            IViewGetContentMarginRect(IVIEW_WINDOW,int *,int *,int *,int *),
            IViewGetRange(IVIEW_WINDOW,int,double *,double *),
            IViewGetVisibleRange(IVIEW_WINDOW,unsigned,double *,double *),
            IViewGetXaxis(IVIEW_WINDOW,int *,int *,int *),
            IViewGetYaxis(IVIEW_WINDOW,int *,int *,int *),
            IViewLinkWindow(IVIEW_WINDOW),
            IViewMarkPointsInRect(IVIEW_WINDOW,int,int,int,int),
            IViewMaskSelection(IVIEW_WINDOW),
            IViewMatchPointState(IVIEW_WINDOW,unsigned),
            IViewMoveBrush(IVIEW_WINDOW,int,int),
            IViewRedrawBackground(IVIEW_WINDOW),
            IViewRedrawContent(IVIEW_WINDOW),
            IViewRedrawOverlays(IVIEW_WINDOW),
            IViewResizeOverlays(IVIEW_WINDOW),
            IViewRotate2(IVIEW_WINDOW,unsigned,unsigned,double),
            IViewScaleToRange(IVIEW_WINDOW,unsigned,double,double),
            IViewSetBrush(IVIEW_WINDOW,int,int,int,int),
            IViewSetData(IVIEW_WINDOW,IViewDATA),
            IViewSetFixedAspect(IVIEW_WINDOW,int),
            IViewSetLinks(IVIEW_WINDOW,long),
            IViewSetMouseMode(IVIEW_WINDOW,MouseMode),
            IViewSetPointState(IVIEW_WINDOW,int,PointState),
            IViewSetRange(IVIEW_WINDOW,int,double,double),
            IViewSetScale(IVIEW_WINDOW,unsigned,double),
            IViewSetShift(IVIEW_WINDOW,unsigned,double),
            IViewSetShowingLabels(IVIEW_WINDOW,long),
            IViewSetStringColor(IVIEW_WINDOW,int,int),
            IViewSetStringScaledValue(IVIEW_WINDOW,int,int,double),
            IViewSetStringTransformedValue(IVIEW_WINDOW,int,int,double),
            IViewSetXaxis(IVIEW_WINDOW,int,int,int),
            IViewSetYaxis(IVIEW_WINDOW,int,int,int),
            IViewShowAllPoints(IVIEW_WINDOW),
            IViewStdAdjustPointsInRect(IVIEW_WINDOW,int,int,int,int,PointState),
            IViewStdAdjustScreen(IVIEW_WINDOW),
            IViewStdAdjustScreenPoint(IVIEW_WINDOW,int),
            IViewStdBrushingMouseAction(IVIEW_WINDOW,int,int,MouseEventType,
                       MouseClickModifier),
            IViewStdMarkPointsInRect(IVIEW_WINDOW,int,int,int,int),
            IViewStdMouseAction(IVIEW_WINDOW,int,int,MouseEventType,
                       MouseClickModifier),
            IViewStdRedraw(IVIEW_WINDOW),
            IViewStdRedrawBackground(IVIEW_WINDOW),
            IViewStdRedrawContent(IVIEW_WINDOW),
            IViewStdResize(IVIEW_WINDOW),
            IViewStdSelectingMouseAction(IVIEW_WINDOW,int,int,MouseEventType,
                       MouseClickModifier),
            IViewStdUnselectAllPoints(IVIEW_WINDOW),
            IViewUnlinkAllWindows(void),
            IViewUnlinkWindow(IVIEW_WINDOW),
            IViewUnmaskAllPoints(IVIEW_WINDOW),
            IViewUnselectAllPoints(IVIEW_WINDOW),
            newhistinternals(LVAL),
            set_dialog_address(void *,LVAL),
            set_iview_address(void *,LVAL),
            set_iview_window_address(void *,LVAL),
            set_menu_address(void *,LVAL),
            set_window_address(void *,LVAL);
extern double IViewDataLineTransformedValue(IViewDATA,int,int),
              IViewDataLineValue(IViewDATA,int,int),
              IViewDataPointValue(IViewDATA,int,int),
              IViewDataPointTransformedValue(IViewDATA,int,int),
              IViewDataStringTransformedValue(IViewDATA,int,int),
              IViewDataStringValue(IViewDATA,int,int),
              **IViewDataTransformation(IViewDATA),
              IViewDecodeValue(IVIEW_WINDOW,double,int),
              IViewEncodeValue(IVIEW_WINDOW,double,int),
              IViewScale(IVIEW_WINDOW,unsigned),
              IViewShift(IVIEW_WINDOW,unsigned),
              IViewStringScaledValue(IVIEW_WINDOW,int,int),
              IViewStringTransformedValue(IVIEW_WINDOW,int,int);
extern long IViewGetLinks(IVIEW_WINDOW);
extern char *IViewDataPointLabel(IViewDATA,unsigned),
            *IViewDataStringString(IViewDATA,unsigned),
            *IViewDataVariableLabel(IViewDATA,unsigned);
extern ColorCode decode_lisp_color(LVAL),
                 IViewDataLineColor(IViewDATA,unsigned),
                 IViewDataPointColor(IViewDATA,unsigned),
                 IViewDataStringColor(IViewDATA,unsigned);
extern StGWWinInfo *IViewWindowWinInfo(IVIEW_WINDOW);
extern IViewBasicPoints IViewDataLines(IViewDATA),
                        IViewDataPoints(IViewDATA),
                        IViewDataStrings(IViewDATA);
extern IVIEW_WINDOW get_iview_address(LVAL),
                    GETIVIEWADDRESS(LVAL),
                    GETIVIEWWINDOWADDRESS(LVAL),
                    GETWINDOWADDRESS(LVAL),
                    IViewNew(LVAL),
                    IViewWindowNew(LVAL,int);
extern DialogPtr GETDIALOGADDRESS(LVAL);
extern IViewDATA IViewData(IVIEW_WINDOW),
                 IViewDataNew(int);
extern Point ListToPoint(LVAL);
extern PointState decode_point_state(LVAL),
                  IViewDataPointScreenState(IViewDATA,unsigned),
                  IViewDataPointState(IViewDATA,unsigned);
extern MouseMode IViewMouseMode(IVIEW_WINDOW);

#endif IVD_H
