### The DynAPI Project

Note: As of 1999/10/22 the examples and images related to the DynAPI files that were previously only available in the DynamicDuo tutorial are now in the DynAPI archive and now under the LGPL.

About The DynAPI

The goal of the DynAPI Project is to develop an open source programming library for developing DHTML applications. This library is freely distributed under the terms of the GNU Library General Public License.

The DynAPI is a spin-off of the Dynamic Duo DHTML Tutorial. As I progressed with the DynDuo, I eventually found myself building a core set of JavaScript files that were often needed when building DHTML applications. These files were almost always based around my Dynamic Layer Object (and where the DynAPI gets its name from). I extracted the most important JavaScript files out of the tutorial and have named it the DynAPI. I am now further separating the "API" from the "tutorial", by extracting all the examples and images that are directly related to the DynAPI JavaScript files. I'm planning to continue this by working on documentation specific to the DynAPI in the form of a specification guide - a listing of the objects and functions and their syntax - a short summary of the JS files. This will be like properties and methods listings in the tutorial which will probably be removed from there.

If you are just beginning with DHTML you should first read the The Dynamic Duo tutorial which will take you through a learning path to understand how DHTML works, eventually progressing to how to build sophisticated JavaScript objects for use in DHTML applications, and very specific explanations on how to use the DynAPI files.

Note: The tutorial does not explain everything and will not necessarily be up-to-date with the code distributed in the DynAPI.

Downloads, Code, and Examples

Download the latest DynAPI

View the Code Summary

View the Examples

Contribution

It is my hope that JavaScript programmers will contribute to the development of these libraries. Help would be very much appreciated in any capacity such as:

Testing and bug fixes across platforms

  I develop under Linux and Windows, I have no MacIntosh computer or any other operating systems to do extensive bug testing. I would appreciate if you discover a bug to please e-mail me what platform/browser the bug appears in, what line numbers were causing the problems etc. And better yet, try to fix the bug on your own and send a fixed version of the JavaScript file.

New scripts or improvements to existing ones

  Any new scripts that you've created or modified versions of mine would are very welcome. If you're good with graphics, I'd certainly appreciate some cool alternative styles to the objects that use a lot of images (DynWindow, Scroll, Tabs etc).

New widgets

  I've outlined a very nice manner in which JavaScript widgets can be built utilizing the DynLayer. There are many possible widgets that could be created.

Wanted Feature List

These are the items that I plan/will/want/might to add to the DynAPI. If you want to lend a hand with any of these please notify me.

- TreeMenu - a Windows Explorer like tree menu **** (most requested)
- A more "dynamic" List object - make it add and remove items on the fly using createDestroy() as well make it width independent (stretchy)
- IconBox object - for a system to minimize DynWindows, almost creating a complete windowing environment for web applications :)
- DropDown object - like the Microsoft.com menus (easy)
- PopUp object - something pops up at the current mouse location, could even be just a function that accepts a dynlayer, and moves the layer so that it's centered on the mouse pointer
- RollTable object - an object which writes out a table that changes color when the mouse is over a cell to select stuff with - really easy in IE, real pain in Netscape but it would be a nice generic widget

### Contact

The DynAPI is primarly developed by:

Dan Steinman
dynduo@dansteinman.com
www.dansteinman.com

Contributors to the DynAPI are listed in the README file distributed in the DynAPI archive.