Index: trunk/src/global_typedefs.h =================================================================== --- trunk/src/global_typedefs.h (revision 23646) +++ trunk/src/global_typedefs.h (revision 23647) @@ -74,6 +74,8 @@ typedef struct pcb_view_s pcb_view_t; +typedef struct pcb_hid_dad_subdialog_s pcb_hid_dad_subdialog_t; + #include "pcb_bool.h" #include "unit.h" Index: trunk/src/hid.h =================================================================== --- trunk/src/hid.h (revision 23646) +++ trunk/src/hid.h (revision 23647) @@ -369,8 +369,8 @@ * * flags_ are the bitwise OR */ - char *(*fileselect)(const char *title, const char *descr, const char *default_file, const char *default_ext, const char *history_tag, pcb_hid_fsd_flags_t flags); + char *(*fileselect2)(const char *title, const char *descr, const char *default_file, const char *default_ext, const char *history_tag, pcb_hid_fsd_flags_t flags, pcb_hid_dad_subdialog_t *sub); /* A generic dialog to ask for a set of attributes. If n_attrs_ is zero, attrs_(.name) must be NULL terminated. attr_dlg_run returns Index: trunk/src/hid_dad.h =================================================================== --- trunk/src/hid_dad.h (revision 23646) +++ trunk/src/hid_dad.h (revision 23647) @@ -592,4 +592,9 @@ int pcb_hid_dad_run(void *hid_ctx, pcb_dad_retovr_t *retovr); void pcb_hid_iterate(pcb_hid_t *hid); +/* sub-dialogs e.g. for the file selector dialog */ +struct pcb_hid_dad_subdialog_s { + PCB_DAD_DECL_NOINIT(dlg) +}; + #endif