Windows and Dialogs:
- respond to keyboard and mouse events
- respond to "activate" and "deactivate" events
- custom drawing in the client area
- different background colors or background images
- many different control types as child elements
- Button - A standard push button.
- Label - A label is a control which displays a text string.
- Entry - An entry control is a rectangular child window in which
the user can enter text.
- PopUp - A popup consists of a list box combined with a label control.
The list-box portion of the control may only drop down when the user selects the
drop-down arrow next to the control.
- ListBox - A list box displays a list of items, that the user can view
and select. The ListBox supports both single and multiple selection.
- Slider - A slider is a control containing a slider and tick marks.
When the user moves the slider, using either the mouse or the direction keys,
the control emits the command event to indicate the change. Slider controls
are useful when you want the user to select a discrete value in a range.
- ProgressBar - A progressBar control is a control that an application
can use to indicate the progress of a lengthy operation. It consists of a
rectangle that is gradually filled, from left to right.
- CheckGroup - A group of check box items.
- RadioGroup - A group of radio items.
- Single menu for application. This is restriction in some cases but this is more
easy to implement and more portable across platforms.
- The application menu can be modified at any time. New items can be added and removed.
- The menu items can display bitmaps left to its caption. This is naturaly supported
under GTK but under Windows the support is provided from the Port library.
- Support for checked menu items and groups of radio menu items
- The Timer is a nonvisual widget, which allows you to specify a recurring interval at
which the command event is raised in your application. You can then handle this event to
provide regular processing. For example, suppose you want to do some simple animation, then
you could create a Timer to periodically redraw the window client area. Thanks to the timers
the Worm game is successfully ported from ObjectIO to GIO.
- Very rich set of drawing primitives are supported: Lines, Circles, Rectangles, Polygons and others.
- Unfilled figures can be drawn with various line styles: dashed lines,
lines with width greater that one, joined lines can be drawn with different join styles.
- Filled shapes can be drawn with hatched brushes.
- The text drawing primitives can use any font that is available on the platform. Specialized functions are
provided to retrive the set of available fonts
- Using the drawing primitives the application can create, load, write and edit bitmaps from any format which is provided
on the platform. The supported formats depends on the drivers loaded from GdkPixmap under Linux and from GDI+ under Windows.
Under Windows if there is no GDI+ instaled then the Port library provides its own driver for BMP format. This guarantees that
the BMP format is always supported. Specialized functions are provedied to retrieve the set of supported image formats.
- The library supports an abstract layer which supports trasparent setting/getting of configuration settings
from Windows Registry under Windows and from GConf database under Linux.