#ifndef drwFn38_H
 #define  drwFn38_H

#include "DRW/drwwh.h"


#if defined NAMESPACE_DRWIMPC
  namespace DrWimpC {
#endif

#if defined NAMESPACE_OSLIB
  using namespace OSLib;
#endif

typedef void (*drw_autofn_seticondragbounds_fn)(wimp_w startwindow,
                                                wimp_i dragicon,
                                                wimp_mouse_state buttontype,
                                                int startmousex,
                                                int startmousey,
                                                os_box *bbox,
                                                void *userdata);


typedef void (*drw_seticondragbounds_ufn)(wimp_w startwindow,
                                          wimp_i dragicon,
                                          wimp_mouse_state buttontype,
                                          int startmousex,
                                          int startmousey,
                                          os_box *bbox);

typedef void (*drw_autofn_draggingicon_fn)(wimp_w startwindow,
                                           wimp_i dragicon,
                                           wimp_mouse_state buttontype,
                                           int mousex,
                                           int mousey,
                                           wimp_w overwindow,
                                           wimp_i overicon,
                                           os_box *bbox,
                                           void *userdata);

typedef void (*drw_draggingicon_ufn)(wimp_w startwindow,
                                     wimp_i dragicon,
                                     wimp_mouse_state buttontype,
                                     int mousex,
                                     int mousey,
                                     wimp_w overwindow,
                                     wimp_i overicon,
                                     os_box *bbox);

typedef void (*drw_autofn_endicondrag_fn)(wimp_w startwindow,
                                          wimp_i dragicon,
                                          wimp_mouse_state buttontype,
                                          int startmousex,
                                          int startmousey,
                                          os_box *finalbox,
                                          wimp_w endwindow,
                                          wimp_i endicon,
                                          int endmousex,
                                          int endmousey,
                                          void *userdata);

typedef void (*drw_endicondrag_ufn)(wimp_w startwindow,
                                    wimp_i dragicon,
                                    wimp_mouse_state buttontype,
                                    int startmousex,
                                    int startmousey,
                                    os_box *finalbox,
                                    wimp_w endwindow,
                                    wimp_i endicon,
                                    int endmousex,
                                    int endmousey);


typedef int (*drw_autofn_dragicon_fn)(wimp_w whan,
                                      wimp_i icon,
                                      wimp_mouse_state buttontype,
                                      void *userdata);

typedef int (*drw_dragicon_ufn)(wimp_w whan,
                                wimp_i icon,
                                wimp_mouse_state buttontype);


typedef struct drw_autofn_icondrag_data      drw_autofn_icondrag_data;

struct drw_autofn_icondrag_data {

wimp_mouse_state buttontype;
int startmousex;
int startmousey;
wimp_w overwindow;
wimp_i overicon;
os_box *bbox;
int endmousex;
int endmousey;

};

#if defined NAMESPACE_DRWIMPC
  }
#endif

#ifndef drwFn00_H
 #include "DRW/drwFn00h.h"
#endif

#include "DRW/drwFn38.h"

#endif

