/* drwWcreate */


#ifdef __cplusplus 
extern "C" {
#endif

extern os_error *drw_wimp_open_template(char *file_name);
extern os_error *drw_wimp_load_template(byte *wblock,
                                        char *data,
                                        char const *end,
                                        byte *font_ref,
                                        char *name,
                                        int context,
                                        int *used,
                                        int *data_used,
                                        int *context_out);
extern int drw_wimp_load_tdata(char *template_path_name,
                               char *workbuff,
                               int workbuffsize,
                               char *template_leaf_name,
                               char *window_name,
                               drw_uw_data *uwd,
                               char *resdir,
                               drw_res_obj_search_flags rsflags,
                               wimp_window **wndout,
                               byte **icondataout);
drw_vw_posn drw_conv_wposn(char *win_open_type);
int drw_get_app_win_data(char *leafname,
                         char *tpltename,
                         char *winname,
                         drw_visible_window_posn *openat,
                         drw_main_win_open_flags *mwoflags);
extern void drw_load_uwc(char *ext_tplte_path_name);
extern int drw_get_user_win_code(char *ext_tplte_path_name,
                                 char *template_leaf_name,
                                 char *window_name);
extern wimp_w drw_wimp_cr_window(char *ext_tplte_path_name,
                                 char *template_leaf_name,
                                 char *window_name,
                                 byte *wblock,
                                 wimp_w *whan,
                                 int userwincode,
                                 void *userdata);
extern void drw_wimp_deletewindow(wimp_w whan);
extern char *drw_wimp_get_tplte_filename(char *template_path_name,
                                         char *workbuff,
                                         int workbuffsize,
                                         char *template_leaf_name,
                                         char *resdir,
                                         drw_res_obj_search_flags rsflags,
                                         drw_uw_data *uwd);
extern char *drw_get_app_tfilename(char *leafname,
                                   char *appname,
                                   drw_uw_data *uwd);
extern void *drw_wimp_load_window_path(char *template_path_name,
                                       char *workbuff,
                                       int workbuffsize,
                                       char *template_leaf_name,
                                       char *window_name,
                                       char *resdir,
                                       osspriteop_area *sprarea,
                                       wimp_w *whandle,
                                       drw_res_obj_search_flags rsflags,
                                       int userwincode,
                                       void *userdata,
                                       drw_uw_data *uwd);
extern void *drw_wimp_load_ext_window(char *template_path_name,
                                      char *template_leaf_name,
                                      char *window_name,
                                      drw_uw_data *uwd,
                                      char *resdir,
                                      char *resdirprefix,
                                      osspriteop_area *sprarea,
                                      wimp_w *whandle,
                                      int useterrname,
                                      int useterrno,
                                      drw_user_pre_wcr_fn userpwcrfn,
                                      int userfnwincode,
                                      void *userfndata,
                                      int userwincode,
                                      void *userdata);
extern int drw_find_spr_area_dets(void *listval, void *findval);
extern void drw_init_spr_details(void *dataptr);
extern void drw_wint_save_spr_area_dets(osspriteop_area *loadto,
                                        char *sprfileleafname,
                                        char *extpathname,
                                        char *template_leaf_name);
extern drw_spr_area_details *drw_wint_find_appn_sprite_area(
                                            char *sprfileleafname,
                                            char *extpathname,
                                            char *template_leaf_name);
extern char *drw_wint_load_appn_sprites(char *extpathname,
                                        char *template_leaf_name,
                                        char *sprfileleafname,
                                        int use_wimp_sprite_pool,
                                        osspriteop_area **sprarea);
extern void drw_wint_load_app_window(char *appname,
                                     char *template_leaf_name,
                                     char *window_name,
                                     char *sprfileleafname,
                                     int sharedw,
                                     osspriteop_area **sprarea,
                                     wimp_w *whandle,
                                     void **userdata);
extern void *drw_wimp_load_app_window(char *template_leaf_name,
                                      char *window_name,
                                      osspriteop_area *sprarea,
                                      wimp_w *whandle,
                                      int tryobeydir,
                                      int userwincode,
                                      void *userdata);
extern void *drw_wimp_load_app_window_uwd(char *template_leaf_name,
                                          char *window_name,
                                          osspriteop_area *sprarea,
                                          wimp_w *whandle,
                                          int tryobeydir,
                                          int userwincode,
                                          void *userdata,
                                          drw_uw_data *uwd);
extern void *drw_wimp_load_window_spr_path(char *appn_leaf_name,
                                           char *template_path_name,
                                           char *workbuff,
                                           int workbuffsize,
                                           char *template_leaf_name,
                                           char *window_name,
                                           drw_uw_data *uwd,
                                           char *resdir,
                                           char *sprpath,
                                           char *sprdirname,
                                           char *sprfileleafname,
                                           wimp_w *whandle,
                                           drw_res_obj_search_flags rsflags,
                                           int userwincode,
                                           void *userdata,
                                           osspriteop_area **sprarea_out);
extern void *drw_wimp_load_ext_window_spr(char *template_path_name,
                                          char *template_leaf_name,
                                          char *window_name,
                                          drw_uw_data *uwd,
                                          char *resdir,
                                          char *sprpath,
                                          char *sprdirname,
                                          char *sprfileleafname,
                                          wimp_w *whandle,
                                          drw_user_pre_wcr_fn userpwcrfn,
                                          int userfnwincode,
                                          void *userfndata,
                                          int userwincode,
                                          void *userdata,
                                          osspriteop_area **sprarea_out);
extern void *drw_wimp_load_window(char *template_file_name,
                                  char *ext_tplte_path_name,
                                  char *template_leaf_name,
                                  char *window_name,
                                  osspriteop_area *sprarea,
                                  wimp_w *whandle,
                                  int userwincode,
                                  void *userdata);
extern wimp_w drw_wimp_loadwindow(char *template_file_name,
                                  char *window_name,
                                  osspriteop_area *sprarea);
extern void drw_wimp_init_wdefn(byte *wblock);
extern void drw_wimp_init_vwpos(os_box *visible,
                                int x0,
                                int y0,
                                int x1,
                                int y1);
extern void drw_wimp_init_stackpos(byte *wblock, wimp_w next);
extern int drw_wimp_wflag(wimp_window_flags *wflags,
                          wimp_window_flags flagno,
                          int toggle);
extern wimp_window_flags drw_wimp_init_wfflags(wimp_window_flags *flags,
                                               int bicon,
                                               int closeable,
                                               int titlebar,
                                               int toggle,
                                               int vscroll,
                                               int adjustsize,
                                               int hscroll);
extern void drw_wimp_initt_vwdata(byte *wblock,
                                  int x0,
                                  int y0,
                                  int x1,
                                  int y1,
                                  int bicon,
                                  int closeable,
                                  int titlebar,
                                  int toggle,
                                  int vscroll,
                                  int adjustsize,
                                  int hscroll);
extern wimp_colour drw_wimp_init_vwcol_o(byte *wblock,
                                         int vwcoloffset,
                                         int newvwcol);
extern wimp_colour drw_wimp_init_vwcol(wimp_colour *vwcol,
                                       int newvwcol);
extern void drw_wimp_init_vwclrs_o(byte *wblock,
                                   int work_fg,
                                   int work_bg,
                                   int scroll_outer,
                                   int scroll_inner,
                                   int highlight_bg);
extern void drw_wimp_init_vwclrs(byte *wblock,
                                 int work_fg,
                                 int work_bg,
                                 int scroll_outer,
                                 int scroll_inner,
                                 int highlight_bg);
extern void drw_wimp_init_wtitle(byte *wblock,
                                 char *title,
                                 char *valnstr,
                                 int maxlen);
extern void drw_wimp_init_wtitle_data(byte *wblock,
                                      char *title,
                                      int hastext,
                                      int hassprite,
                                      int hcentred,
                                      int vcentred,
                                      int usesolf,
                                      int rjustify,
                                      int shalfsize,
                                      int indirected,
                                      int maxlen,
                                      char *valnstr);
extern void drw_wimp_init_wtitle_clrs(byte *wblock,
                                      wimp_colour title_fg,
                                      wimp_colour title_bg);
extern void drw_wimp_init_wtitle_font(byte *wblock,
                                      int titlefont);
extern void drw_dealloc_ind_title_data(wimp_w whandle);
extern void drw_wimp_init_scrollpos(byte *wblock,
                                    int xscroll,
                                    int yscroll);
extern void drw_wimp_init_wwk_data(byte *wblock,
                                   int wx0,
                                   int wy0,
                                   int wx1,
                                   int wy1,
                                   wimp_icon_flags wbuttontype);
extern wimp_window_flags drw_wimp_init_wflags(wimp_window_flags *flags,
                                              int moveable,
                                              int autodraw,
                                              int wpane,
                                              int hotkeys,
                                              int arrowclick,
                                              int arrowclicknorpt,
                                              int realcolours);
extern void drw_wimp_init_winxy_and_sprrea(byte *wblock,
                                           int minwidth,
                                           int minheight,
                                           osspriteop_area *sprite_area);
extern void drw_wimp_init_wdata(byte *wblock,
                                int minwidth,
                                int minheight,
                                osspriteop_area *sprite_area,
                                int moveable,
                                int autodraw,
                                int wpane,
                                int hotkeys,
                                int arrowclick,
                                int arrowclicknorpt,
                                int realcolours);
extern wimp_window_flags drw_wimp_init_wbound_flags(wimp_window_flags *flags,
                                                    int nobounds,
                                                    int noopenbelowthis,
                                                    int bounded,
                                                    int ignoreX,
                                                    int ignoreY);
extern void drw_setup_minimal_window(void);
extern wimp_w drw_cr_min_w(void);
extern wimp_w drw_cr_back_w(void);
extern wimp_w drw_cr_std_savebox(int sharedw);

#ifdef __cplusplus
}
#endif

