Design details // Load document - Done for time being.. // Save document What is the active document. issue pre_save to all modules (which returns array(bookmarkid,URL) from call! any document holders, if they are active editors can then ask the transport_manager to save the specified URL. save_document is then issued to all module - - used to change undo/* markers on file lists, - refresh the parsers? /--------------------------- What is still missing : where do parsers fit into the jigsaw. where do the bookmark editors go... // under the bookmark module? /--------------------------- Language_manager - load languages & parsers - holds it in documents[$URL] - called straight after load document. Interface manager Loads the Chosen Interface into the top level window. Then instructs the module manager to load/attach it's widgets to the layout. /-------------- Module manager - responsible for loading modules passing messages to modiles (eg. menu emit,load_document) modules : holds documents[$URL] - widget that holds URL. (optional) widget - widget that is added to interface responsible for a widget or group of widgets. responding to menu_emits selectivly. /------------ transport manager holds documents[URL] = array of transport objects responsible for forwarding tree queries storing open documents transport modules: responsible for file/network read write access.. 2 types transport_core_file (answers tree queries) transport_document_file (does file/save stuff)