2004-11-21, 03:35 PM
I put in the request for a new SourceForge project, so by next week, there should be a collaboration environment in place for those interested in this side project, plus whatever else SourceForge provides.
Here's the list of widgets that I have already gotten a good start on:
IWidgetControl: Defines the interface that widget controls must implement
BaseWidgetControl: A basic realization of IWidgetControl. Â Provides functionality common to all other widget controls, like screen layout (size and position), Border style color, Background color, etc. Â WidgetControls inherit from this class.
Button: Essentially a Frame and a Caption with a click event
Frame: Draws a border and fills with a color. Â Border styles created so far include Square, Rounded, Borderless, Top & Bottom only, and Left & Right only.
Label: Draws text on the screen
Listbox: A Frame containing a list of strings, allowing the user to scroll through the list to pick a value. Â Can optionally display a VScrollBar
Picture: Draws an image to the screen. Â Has the ability to keep the aspect ratio to prevent stretching.
VScrollBar: Provides feedback as to the window position within a list moreso than a method of scrolling.
I plan to have a container object as well that will really manage control focus and event handling between the controls and the plugin. Â This object will also hopefully provide a lot of the skinning functionality by allowing layout and display properties to be externalized in the skin files, and the container object will refer to those files when initializing the controls. Â Not too much different than how it is today, but should be a little more object oriented.
Here's the list of widgets that I have already gotten a good start on:
IWidgetControl: Defines the interface that widget controls must implement
BaseWidgetControl: A basic realization of IWidgetControl. Â Provides functionality common to all other widget controls, like screen layout (size and position), Border style color, Background color, etc. Â WidgetControls inherit from this class.
Button: Essentially a Frame and a Caption with a click event
Frame: Draws a border and fills with a color. Â Border styles created so far include Square, Rounded, Borderless, Top & Bottom only, and Left & Right only.
Label: Draws text on the screen
Listbox: A Frame containing a list of strings, allowing the user to scroll through the list to pick a value. Â Can optionally display a VScrollBar
Picture: Draws an image to the screen. Â Has the ability to keep the aspect ratio to prevent stretching.
VScrollBar: Provides feedback as to the window position within a list moreso than a method of scrolling.
I plan to have a container object as well that will really manage control focus and event handling between the controls and the plugin. Â This object will also hopefully provide a lot of the skinning functionality by allowing layout and display properties to be externalized in the skin files, and the container object will refer to those files when initializing the controls. Â Not too much different than how it is today, but should be a little more object oriented.
JasonF