2004-12-14, 11:45 AM
[b Wrote:Quote[/b] (firefox_i @ Dec. 14 2004,04:03)]Is there a planning when the DLL is available ?A widget is a generic term that is primarily known as a control today (things like scrollbars, listboxes, checkboxes, etc). Â In the classic definition, it's something in the GUI that interacts with the OS.
What is meant with the "widget library" ?
The widget library, as I termed it, is a collection of such widgets that could be used by GBPVR plugins. Â There's other things thrown into the library that aren't actual controls (useful data structures, etc).
Say, for example, that you need a listbox. Â You would normally have to code logic to hold the items, display only a subset of the items, handle keypress events to scroll through the items, track which item was selected, and then render the whole thing. Â The code gets really messy when you have multiple listboxes in one plugin.
With a listbox widget control, you simply create an instance of it, initialize the properties (to set the list and also to establish look-and-feel), and then call its render() method during the plugin's render() execution. Â When the listbox has focus, you also need to pass through keystrokes, and it handles the scrolling, etc.
The look-and-feel part is where the widgets can greatly enhance skinning abilities, or at least make it really easy to drastically change the plugin's appearance. Â For instance, each bordered control (like a listbox or a button) has a BorderStyle property. Â If you don't like the normal rounded frame style, you can switch it to any of the other available ones with one line of code.
I've also worked on the ability to completely instantiate widget controls from XML representations. Â This will eventually lead the way to skinners being able to re-position/resize controls and change look and feel properties outside of code. Â Maybe it will lead into a graphical plugin/skin designer (it's easy to think big at this point, but hard to actually implement in a timely fashion).
As far as DLL availability, I'm not sure at this point. Â If there's interest in helping to develop, I can already provide developer access to the source repository. Â But as far as a release that plugin developers can take and run with, that might be a ways off--there's still more things that I would like to establish before the library is ready for plugin development.
However, having said that, I might as well make a preview release of the controls that have already been written so that people can see what's involved and be able to play with them. Â This wouldn't include some of the other parts of the library that I'm creating to make using the widgets easier.
JasonF