E Windowing System 1.0.1 review
DownloadEiffel Windowing System (EWS) is an Eiffel library which provides a small, stand-alone windowing system. The current implementatio
|
|
Eiffel Windowing System (EWS) is an Eiffel library which provides a small, stand-alone windowing system.
The current implementation is based on the Simple Directmedia Library (SDL), but the design allows other graphical backends.
Besides the basic windowing system functionality (overlapping windows, event passing and handling, graphical operations, input froum mouse and keyboard), a small widget-toolkit is included (buttons, scrollbars, labels, etc.).
It's specially well suited for applications where a fine degree of control over presentation and timing is required. Multimedia applications and games are the usual examples.
Here are some key features of "E Windowing System":
Transparency (alpha channel) support
Can load most standard image formats via libSDL_image (PNG, JPEG, GIF, Windows bitmap...)
Mostly coded in OO Eiffel. Only a small C module handling SDL interface. All the API is OO.
Complete control over application appearance.
Simple design, easily extendible for new event kinds, new widgets, etc.
Quite fast even in old slow computers (if you compile at require_check level or lower).
Licensed under the LGPL
Supported widgets:
The UI toolkit coming with EWS includes
Buttons: push buttons triggering commands
Toggle buttons: controls that toggle its state (they may be used to implement checkboxes and radio buttons)
Text entries: One line text entries, handling cursor keys. Selection not implemented yet (the core is selection capable, but the UI not).
Labels: A simple text label
Multiline labels: Labels spanning several lines with optional word-wrapping
Marquees: Like a label, but scrolling a longer message sideways
Images: A fixed image
Animations: An animated area of the screen
Drag handles: An area that can be dragged to move other window. Useful as titlebars.
Scrollbars: The usual thing, with buttons at the end and a slider which can be dragged. (only vertical scrollbar implemented now)
Adding widgets to the toolkit is very simple
Requirements:
SmartEiffel 1.2
SDL 1.2, with development libraries
Eiffel utils 0.3
E Windowing System 1.0.1 keywords