/* drwFn00.h */


#ifdef __cplusplus 
extern "C" {
#endif

extern drw_object_data *drw_new_object_data(drw_wimp_data *wpwd,
                                            int objectid);
extern drw_object_data *drw_find_object_data(drw_wimp_data *wpwd,
                                             int objectid);
extern void *drw_find_object_user_data(drw_wimp_data *wpwd,
                                       int objectid);
extern int drw_adjusted_objectid(drw_wimp_data *wpwd,
                                 drw_autofn_whan_data *whdata,
                                 int objectid);
extern int drw_actual_objectid(drw_wimp_data *wpwd,
                               drw_autofn_whan_data *whdata,
                               int objectid);
extern void drw_init_ofd(void *dataptr);
extern void drw_init_obj_whan_data(void *dataptr);
extern void *drw_call_user_object_init_fn(drw_fn_ptr autofn,
                                          drw_wimp_data *wpwd,
                                          int objectid,
                                          wimp_w whan,
                                          wimp_i icon,
                                          int occno,
                                          int userwincode);
extern int drw_autofn_cmp_obj_type_icon(void *listval, void *findval);
extern void drw_init_autofn_obj_type_data(void *dataptr);
extern int drw_new_object_fn_data(drw_autofn_data *mdata,
                                  drw_autofn_fn_data *fndata,
                                  int object_is_real);
extern void drw_call_derived_init_fn(void *userfndata, void *userval);
extern int drw_autofn_cmp_fntype(void *listval, void *findval);
extern drw_fn_ptr drw_autofn_get_autofn(drwGP autofnhdr,
                                        int fntype);
extern int drw_autofn_cmp_obj_whan(void *listval, void *findval);
extern int drw_autofn_cmp_objectid(void *listval, void *findval);
extern int drw_set_object_fn_active(drw_wimp_data *wpwd,
                                    drw_autofn_numbers fntype,
                                    int objectid,
                                    wimp_w whan,
                                    wimp_i icon,
                                    int fn_is_active);
extern int drw_autofn_cmp_obj_type_icon_fn_ud(void *listval, void *findval);
extern int drw_autofn_cmp_obj_type_icon_fn(void *listval, void *findval);
extern int drw_set_fn_active(drw_wimp_data *wpwd,
                             drw_autofn_numbers fntype,
                             int objectid,
                             wimp_w whan,
                             wimp_i icon,
                             drw_fn_ptr autofn,
                             int fn_is_active);
extern int drw_set_fn_active_ud(drw_wimp_data *wpwd,
                                drw_autofn_numbers fntype,
                                int objectid,
                                wimp_w whan,
                                wimp_i icon,
                                drw_fn_ptr autofn,
                                void *userdata,
                                int user_data_is_key,
                                int fn_is_active);
extern void *drw_get_set_fn_local_data(drw_wimp_data *wpwd,
                                       drw_autofn_numbers fntype,
                                       int objectid,
                                       wimp_w whan,
                                       wimp_i icon,
                                       drw_fn_ptr autofn,
                                       void *userdata,
                                       int user_data_is_key,
                                       int set_fn_local_data,
                                       void *newuserdata);
extern void drw_init_call_app_fn_data(drw_app_fn_data *appfndata);
extern drw_autofn_smenu_wlink *drw_wint_open_asw_test(
                                  drw_autofn_type_data *ftd,
                                  wimp_mouse_state buttontype,
                                  int *openwindowout);
extern int drw_open_asw_window(wimp_w whan,
                               wimp_w openatstackpos,
                               drw_openat_flags oflags,
                               drw_menu_pop_up_pos openatm,
                               drw_visible_window_posn *openat,
                               int *oposupdated);
extern int drw_wint_open_asw(drw_app_fn_data *afd);
extern int drw_do_oftd_fn(drw_autofn_data *mdata,
                          drw_autofn_obj_type_data *oftd,
                          drw_fn_ptr fn,
                          drw_fn_ptr autofn,
                          int icon_matched,
                          int resultin);
extern int drw_find_and_call_ftdfn(void *listval, void *findval);
extern int drw_find_and_call_objfn(void *listval, void *findval);
extern int drw_find_owd_whan(void *listval, void *findval);
extern int drw_do_find_and_call_object_fn(void *listval, void *findval);
extern int drw_find_and_call_object_fn(drw_autofn_data *mdata);
extern void *drw_get_object_user_data(drw_autofn_data *mdata,
                                      drw_autofn_fn_data *fndata);
extern void drw_autofn_process_autofn(void *userfndata, void *userval);
extern int drw_autofn_cmp_whan(void *listval, void *findval);
extern drw_autofn_whan_data *drw_autofn_find_whan_data(drw_autofn_data *mdata,
                                                       drwGP searchhdr);
extern int drw_autofn_cmp_iname(void *listval, void *findval);
extern int drw_autofn_cmp_icon_no(void *listval, void *findval);
extern int drw_autofn_action(drw_autofn_data *mdata);
extern int drw_autofn_call_show_fn(drw_fn_ptr autofn,
                                   wimp_i iconno,
                                   drw_autofn_data *mdata,
                                   void *userdata);
extern void drw_init_autofn_data_common_fields(drw_autofn_data *mdata);
extern void drw_init_autofn_data_w(drw_autofn_data *mdata);
extern void drw_init_autofn_data_n(drw_autofn_data *mdata);
extern int drw_autofn_show(drw_wimp_data *wpwd,
                           wimp_w whan,
                           wimp_i icon,
                           os_box *box,
                           int usercode,
                           int objectid);
extern int drw_autofn_call_input_fn(drw_fn_ptr autofn,
                                    wimp_i iconno,
                                    drw_autofn_data *mdata,
                                    void *userdata);
extern int drw_autofn_input(drw_wimp_data *wpwd,
                            wimp_w whan,
                            wimp_i icon,
                            int objectid);
extern drw_autofn_fn_data *drw_autofn_find_autofn(drw_autofn_data *mdata,
                                                  drwGP searchhdr,
                                                  int findtype);
extern int drw_autofn_cmp_user_data_srch(void *listval, void *findval);
extern void *drw_get_set_user_data(drw_wimp_data *wpwd,
                                   wimp_w whan,
                                   wimp_i icon,
                                   char *name,
                                   int name_is_ref,
                                   int name_is_object,
                                   int occno,
                                   int getdata,
                                   void *userdata);
extern void *drw_get_set_obj_user_data(drw_wimp_data *wpwd,
                                       wimp_w whan,
                                       wimp_i icon,
                                       char *objectname,
                                       char *objectref,
                                       int occno,
                                       void *userdata);
extern void *drw_get_set_icon_user_data(drw_wimp_data *wpwd,
                                        wimp_w whan,
                                        wimp_i icon,
                                        char *iconname,
                                        char *iconref,
                                        int occno,
                                        void *userdata);
extern int drw_autofn_get_objectid(drw_wimp_data *wpwd,
                                   wimp_w whan,
                                   wimp_i icon,
                                   char *name,
                                   int name_is_ref,
                                   int name_is_object,
                                   int occno);
extern void drw_del_whan_ofd_fn_icon_data(void *userfndata, void *userval);
extern void drw_del_whan_ofd_icon_data(void *userfndata, void *userval);
extern void drw_del_whan_fn_obj_data(drw_wimp_data *wpwd,
                                     drw_autofn_whan_data *whdata,
                                     drw_autofn_fn_data *fndata);
extern void drw_del_whan_ofd_fn_data(void *userfndata, void *userval);
extern void drw_del_whan_ofd_data(void *userfndata, void *userval);
extern void drw_del_whan_obj_data(drw_wimp_data *wpwd,
                                  drw_autofn_whan_data *whdata);
extern void drw_call_mitem_generic_fn(drw_autofn_type_data *ftd,
                                      drw_autofn_data *mdata);
extern int drw_find_mih_itemno(void *listval, void *findval);
extern wimp_menu *drw_get_curr_defmenu(wimp_i *icon);
extern void drw_reset_defmenu_and_icon(void);

#ifdef __cplusplus
}
#endif

