Steps to integrate module
==========================

1) Create new windows forms user control which will contain your module and add it to project. 
   Call it for example MyNewlyAddedModuleControl.

2) edit ModuleManager.cs and add new module type to ModuleType enum. Example:
   public enum ModuleType
    {
      Ca,
      MyNewModule
    }
   

3) edit ModuleManager.cs and add your module to the "moduleTemplates" array. Example: 
   {
     { ModuleType.Ca, typeof (CaTab) }, 
     { ModuleType.MyNewModule, typeof(MyNewlyAddedModuleControl) }
   };

4) implement IResourceModule interface on your tab - it only has one function: 
   ResourceDownload HandleRequest(string typeOfResource, int hash, string name);
   it starts a download of given resource. 
   Its needed in case you want to cooperate with lobby or "main tab" and override default download method.

   Downloader will call HandleRequest of your module for every incoming download request and 
   if you accept it (return new ResourceDownload) it will use ResourceDownload to monitor your progress and 
   report it to lobby for example.


Additional guidelines:
=======================

1) to store your own configuration data, extend Config.cs class 
2) to read configuration at any time use Program.Conf (for example Program.Conf.SpringFolder)
3) to run expensive long term tasks use TaskManager.Run and monitor TaskManager.Cancel to interrupt it
4) to download from web using progress bar at bottom and taskmanager use WebGet Get method 
   (either synchronous Get(url).WaitOne()) or asynchronous listening for Done event for example
5) to write to log use Program.Notify and its various overloads