current patch r14298  (  vbainfo-import-export-support.diff )

general status
===============

* currently changing the vba mode ( either removing it or explicitly setting it to 0 in the module source ) doesn't affect the vbamode of the library.
* changing the vba mode wont trigger a change in the existing library ( e.g. what should happen to the autogenerated modules?, should they be deleted or just converted to normal modules )
   * what happens if someone switches the vba mode back again ( if we keep the modules there will be name clashes )

note: some experimental ( but not enabled code ) in namecont.cxx ( NameContainer::convertContainer ) ( note: this code should be moved to the ScriptLibrary class )
* switching the vba mode in the library currently just changes a local state variable, attempting to the change the library mode triggers an infinite loop ( but that should be easy to fix )

* should there be a document wide switch that controls the library mode? ( or just a ui thingy that triggers the library mode )

* the vba mode "library:vbaenabled="true"" is still stored in the xml in Basic/script-lc.xml, we should be storeing this in the library specific xml file e.g. Basic/Standard/script-lb.xml
   changes needed
      o xmlscript/inc/xmlscript/xmllib_imexp.hxx ( add vbamode to LibDescriptor )
      o xmlscript/source/xmllib_imexp/xmllib_import.cxx ( modify LibraryImport::startRootElement to read vbamode )
      * xmlscript/source/xmllib_imexp/xmllib_export.cxx ( need to export vba attribute here )

* the ModuleInfo contains a Source member in the struct, but.. with the current design having the Source member is an unnecessary duplication ( and will probably cause problems )
   * looks like we need  to 
      o change ModuleInfo to remove the ModuleSource member
         o  SfxScriptLibrary::insertByName( basic/source/uno/scriptcont.cxx )
         o  SvxImportMSVBasic::ImportCode_Impl ( svx/source/msfilter/svxmsbas.cxx )
         o lcl_InitModuleInfo, lcl_InsertModule ( sc/source/ui/docshell/docfunc.cxx )
         o ScDocShell::MoveTable sc/source/ui/docshell/docsh5.cxx sc/source/ui/docshell/docsh5.cxx )


      o create a new struct ModuleSourceInfo : ModuleInfo ( which will contain the source ) this will only be used when creating a new module ( hence allowing the source and module info to be created in one step )

  support for vba Attributes ( future )
  ==========================
  * we could modify the ModuleInfo structure to include a NameContainer ( or PropertySet ) this would;
      o encapsulate the vba attributes ( this would keep them nicely seperated from the source ) 
      o allow us to develope a similar concept in vba mode ( if necessary )
      o provide a container to contain this info for round tripping
 

   * a little ripple effect here
 
