/* External edit Interface function definitions. */

#ifndef drwExdfnh_H
 #define drwExdfnh_H

#if defined NAMESPACE_DRWIMPC
  namespace DrWimpC {
#endif

#if defined NAMESPACE_OSLIB
  using namespace OSLib;
#endif

typedef void (*drw_extedit_load_data_fn)(char *filename,
                                        wimp_w whan,
                                        wimp_i icon,
                                        bits filetype,
                                        int workx,
                                        int worky,
                                        drw_datatfr *dtfr);
typedef int (*drw_extedit_save_data_fn)(char *filename,
                                       bits filetype,
                                       void *tfrinfo);

typedef void (*drw_extedit_aborted_job_fn)(void *tfrinfo, int inform);

typedef char *(*drw_extedit_get_leaf_name_fn)(void *exteditdata);
typedef void (*drw_extedit_resize_jh_w_fn)(void);
typedef void (*drw_extedit_recv_dl_ack_fn)(drw_datatfr *dtfr,
                                           wimp_t desttask,
                                           int inmyref,
                                           int inyourref,
                                           wimp_w destwhan,
                                           wimp_i destic,
                                           int destx,
                                           int desty,
                                           int est_size,
                                           bits filetype,
                                           char *filename);
typedef void (*drw_extedit_rq_rtn_data_fn)(void *rqrtndata,
                                           char *filename);
typedef void (*drw_extedit_reset_dcsflags_fn)(void *exddata);
typedef void (*drw_extedit_post_dtfr_fn)(bits msgtype,
                                         char *path,
                                         char *leafname,
                                         wimp_w whandle,
                                         wimp_i iconno,
                                         char *ftype,
                                         bits filetype,
                                         int workx,
                                         int worky);
typedef void (*drw_extedit_abort_all_edits_fn)(int all_client_edits,
                                               int all_server_edits);

typedef struct   drw_exteditfn_str    drw_exteditfn_str;

struct drw_exteditfn_str {

drw_extedit_load_data_fn              loadexteditdata;
drw_extedit_save_data_fn              saveextedit;
drw_extedit_rq_rtn_data_fn            rqrtndata;
drw_extedit_reset_dcsflags_fn         resetdcsflags;
drw_extedit_aborted_job_fn            abortedjob;
drw_extedit_get_leaf_name_fn          get_leaf_name;
drw_extedit_resize_jh_w_fn            resizejhw;
drw_extedit_recv_dl_ack_fn            recvdataloadack;
drw_extedit_post_dtfr_fn              postexteditdtfr;
drw_extedit_abort_all_edits_fn        abortalledits;

};

#if defined NAMESPACE_DRWIMPC
  }
#endif

#endif

/* End of External edit Interface function definitions. */

