/* drwSelnfn */


#ifdef __cplusplus 
extern "C" {
#endif

extern drw_wcaretseln *drw_new_caretseln(void);
extern void drw_wint_lose_focus(wimp_w whan);
extern int drw_seln_mouse_click(wimp_w whan,
                                wimp_i icon,
                                wimp_mouse_state buttontype,
                                int mousex,
                                int mousey,
                                int x,
                                int y);
extern int drw_seln_key_press(wimp_w whan,
                              wimp_i icon,
                              wimp_key_no wkey,
                              int dkinuse,
                              drw_dk_flags dkflagwd);
extern void drw_init_wcaretseln(void *cseln);
extern void drw_lose_caret(void);
extern void drw_claim_recv_caret_seln(void);
extern int drw_compare_wcaretseln(void *thiscseln, void *cmpwith);
extern drw_wcaretseln *drw_new_wcaretseln(void);
extern drw_wcaretseln *drw_locate_wseln_data(wimp_w whan);
extern void drw_clear_previous_selection(void);
extern int drw_start_drag_selection(wimp_w whan,
                                    wimp_i icon,
                                    wimp_mouse_state buttontype,
                                    wimp_mouse_state dragbuttontype,
                                    int mousex,
                                    int mousey);
extern int drw_wint_startselndrag(wimp_w whan,
                                  wimp_i icon,
                                  wimp_mouse_state buttontype,
                                  wimp_mouse_state dragbuttontype,
                                  int mousex,
                                  int mousey,
                                  drw_wcaretseln *cseln);
extern void drw_send_message_drag_claim(int inref,
                                        wimp_drag_claim_flags dcflags,
                                        bits *ftypes);
extern void drw_init_ghost_caret(void);
extern void drw_recv_message_dragging(wimp_message *wmsg);
extern void drw_drag_terminated(int savedata,
                                wimp_full_message_drag_claim *dmsg);
extern void drw_recv_message_drag_claim(wimp_message *wmsg);
extern void drw_wint_returned_dragging(wimp_message *wmsg);
extern void drw_endselndrag(wimp_dragged *dragged);
extern void drw_wint_endrbanddrag(wimp_dragged *dragged);
extern void drw_wint_endpointdrag(wimp_dragged *dragged);
extern void drw_endofdrag(wimp_dragged *dragged);
extern int drw_startsave_nt_selnobject(drw_datatfr *dtfr,
                                       wimp_t desttask,
                                       wimp_w destwhan,
                                       wimp_i destic,
                                       int destx,
                                       int desty,
                                       int est_size,
                                       bits filetype);
extern void drw_set_insert_point(wimp_caret *ghostcaret,
                                 wimp_w destwhan,
                                 wimp_i destic,
                                 int destx,
                                 int desty,
                                 drw_wcaretseln *cseln);
extern void drw_abort_seln_drag(void);
extern void drw_set_seln_fns(void);
extern void drw_catch_msg_dragging(wimp_message *wmsg,
                                   bits msgactioncode,
                                   wimp_event_no reason,
                                   void *actiondata);
extern void drw_catch_msg_dragclaim(wimp_message *wmsg,
                                    bits msgactioncode,
                                    wimp_event_no reason,
                                    void *actiondata);
extern void drw_catch_rtnd_dragging(wimp_message *wmsg,
                                    bits msgackcode,
                                    wimp_event_no reason,
                                    void *actiondata);
extern void drw_seln_init(void);

#ifdef __cplusplus
}
#endif

