All .fd files go in this directory. Each .fd file should have just one form in them NOTE: An exception to the above is any tabbed form which xforms requires multiple forms to create. In that case the group of forms constitutes one gui form. * All forms should be named form_xxx and saved into a file of the same name. For example, the copyright notice is called form_copyright and is stored in form_copyright.fd. Tabbed folders should be named form_xxx_yyy. For example, the file folder in the graphics dialog has the identifier form_graphics_file. If you match this pattern, the fdfix.sh script will be able to manipulate the generated .c and .h files to produce the .C and .h files used by LyX. A form called form_xxx will result in a struct FD_xxx. * Name all buttons and other form components that are likely to cause a callback. The names should be of the form: button_ok, radio_group_item and so on. Being more explicit: class | prefix ------------------+------- FL_BROWSER | browser FL_BUTTON | button FL_PIXMAPBUTTON | button FL_CHECKBUTTON | check FL_CHOICE | choice FL_COUNTER | counter FL_DIAL | dial FL_INPUT | input FL_FRAME | frame FL_LABELFRAME | frame FL_ROUND3DBUTTON, RADIO_BUTTON | radio FL_SLIDER | slider FL_VALSLIDER | slider FL_TABFOLDER | tabfolder FL_TEXT | text The only exceptions to this are objects that are to be converted in the sed scripts. At the moment this applies only to bmtable and to combox: Convert an FL_BUTTON to a FL_BMTABLE by using prefix "bmtable". Convert an FL_CHOICE to a FL_COMBOX by using prefix "combox". Enter the full name of the callback eg.: C_FormBaseOkCB If you follow these simple rules then you will generate code for functions build_xxx that will need no further editing to make them work. For example, form_graphics.h contains the struct declarations and build methods, so: extern FD_graphics * build_graphics(void *); extern FD_graphics_file * build_graphics_file(void *); extern FD_graphics_size * build_graphics_size(void *); extern FD_graphics_bbox * build_graphics_bbox(void *); extern FD_graphics_special * build_graphics_special(void *); extern FD_graphics_lyxview * build_graphics_lyxview(void *); where the function is to be passed a pointer to the parent dialog (usually "this") so that this pointer can be cast off to FormBase * in the assigned callback function and the appropriate class method called.