Future Thoughts
- Common plugin templates. Almost all panels update periodically. The solution - AbstractUpdatingPanel (inherits from AbstractConfigurablePanel).
- I started making a panel IDE for SharpDevelop "Corsavy" (the .NET 2 beta version). It is mostly for script panels, dunno why I'm posting this here. LOL. Basically I implement a SecondaryDisplayBinding for all the plugin files (dsskin, dscanvas), and treat dsplugin as project files (I have to see how I plug the project file in SD). A BackendBinding (or whatever they call it now) will allow running DS and debugging the panel.
Please post ideas for the panel IDE, more plugin abstract classes, and other ideas as to how this library's development can be continued.
Unfortunately (?
Sept. 11, 2005 -
Version 1.3.1 released.
Fixes update checker problems and integrates KeithI's UpdateChecker into the library.
Fixes numerous PanelProperties issues.
There's more (some features too) but I don't remember and don't have time.
Library and source in the attached package.
June 21, 2005 -
Version 1.3 released.
Overhauled PanelProperties - easier to plug in property types and use custom attributes with them. Public properties on the class remained mainly backwards compatible.
Introduced PropertiesDialog, the default Panel Properties dialog that will take care of everything for you. No need to implement IPanelProperties. Includes About tab that supports links and implements backup/restore settings.
Fixed bug where HandleError would throw when called before AbstractPanel::Create (thanks KeithI!).
June 7, 2005 -
Version 1.2 released. Integrated PanelUpdateCheck (slightly modified). Thanks a lot KeithI! There are still some problems with the update checker implementation (shows the message too many times when there's an update available).
Alert functionality integrated too (no need to implement IAlert, use AbstractPanel::ShowAlert).
At this point I'm pretty confident this can be used in "production" panels (used in MailNotifier 2.0).
Details and new sample panel code tomorrow.
April 20, 2005 -
I decided to release the pre-alpha assembly and code so people will be able to help me test it and improve it, by ideas or by contributing code.
The code is released under the zlib/libpng license (license text is also in AssemblyInfo.cs).
Tested under Windows XP SP2, DS 1.05 build 90.
Basically, to start a new panel you just add DSPanelUtils.dll as a reference to the project. Then, add a DSPLUGIN file and a Plugin class like in every other panel (for VS.NET users it's easier to use the wizard). Then make a new Panel class which inherits from AbstractPanel (or AbstractConfigurablePanel if you want panel properties). Now override all the abstract members (you must) and you're ready to go.
A sample with panel properties and context menu is also attached (it's necessary to download the library too and set up the references in the project in order to compile).
Please note that eventually the Plugin file shouldn't even have to call RegisterPanel, this will be specified in the DSPLUGIN in an <info> node, but it's not working currently.
Please ask any questions regarding this library in this thread.
April 11, 2005 -
Just to let you know... and keep you expecting.
I'm developing a library which is supposed to do all the "hard" work for .NET panel developers - like loading/saving settings, displaying Panel Properties, handling context menu - it'll all (hopefully) be taken from the DSPLUGIN, like in ScriptPanel. The ultimate goal is to have an AbstractPanel abstract class which will save a lot of time - of course, the needed methods can be overriden by the inheriting class.
I'll release this library's code.
I'm not going to be home in the next 3 days, and the 3 days after the weekend as well. Hopefully I'll be able to put something together during the weekend.
Hope it'll work out, because I think it could work great and save us (me!) a lot of work in coding the panels.
