Using Gamma™ with GTK, Version 0.10

March 27, 2008

Gamma binds the GTK widget set as object-oriented classes, creating a Linux-based rapid development environment with full GUI support and flexible callbacks.

Cogent software is source-code compatible among the Linux, QNX 6, and QNX 4 operating systems.
Go to the Cogent Web Site.

This document contains many links to the HTML versions of the GTK, GDK and GLIB documentation. For that reason those documents are included in the distribution of this document. Since the GTK, GDK, and GLIB documents are not complete, and since the Gamma mapping of some GTK functions is not complete, you might find gaps in this document. The Gamma/GTK bindings and this document are being made available as a beta release.

Copyright, trademark, and software license information.

Table of Contents

I. Programmers Manual

1. Introduction
1.1. Why Gamma and GTK?
1.2. Assumptions about the Reader
1.3. System Requirements
1.4. Cogent Product Integration
1.5. Where can I get help?

2. Differences between Gamma and C for GTK
2.1. Machine-Wrapped Functions
2.2. Lists
2.3. Accessing Widget Resources

3. Building Applications - a Tutorial
3.1. Create a Window
3.2. Add a Button with a Callback
3.3. Multiple Buttons
3.4. Packing Widgets in Boxes
3.5. Using Tables

A. Example Code
A.1. Main Window
A.2. Button Box
A.3. Buttons
A.4. Calendar
A.5. Check Buttons
A.6. Color Selection
A.7. Dialog
A.8. Entry
A.9. Event Watcher
A.10. File Selection
A.11. Font Selection
A.12. Handle Box
A.13. Gamma Curve
A.14. Labels
A.15. List
A.16. Menus
A.17. Modal Window
A.18. Panes
A.19. Pixmap
A.20. Progress Bar
A.21. Radio Buttons
A.22. Range Controls
A.23. Reparent
A.24. Rulers
A.25. Saved Position
A.26. Scrolled Windows
A.27. Spin Button
A.28. Status Bar
A.29. Test Mainloop
A.30. Text
A.31. Toggle Buttons
A.32. Tool Bar
A.33. Trees
A.34. Timers
A.35. Wrapping Functions
B. List of Functions (Non Widget-Specific)
C. The Gtk Widget Hierarchy
D. GNU General Public License
E. GNU Lesser General Public License

II. Reference

I. Gtk Widgets
GtkAccelLabel - displays an accelerator key on menus etc.
GtkArrow - points in one of 4 directions.
GtkAspectFrame - constrains resizing to a given aspect ratio.
GtkBin - a class of containers that have only one child.
GtkBox - a parent class for GtkHBox and GtkVBox.
GtkButton - a parent class for buttons.
GtkButtonBox - a parent class for GtkHButtonBox and GtkVButtonBox.
GtkCList - a scrollable list of selectable items with multiple columns.
GtkCTree - an adjustable, expandable tree of selectable items.
GtkCalendar - a user-customizable calendar.
GtkCheckButton - a clickable label with a small toggle button beside it.
GtkCheckMenuItem - a menu item with a small toggle button beside it.
GtkColorSelection - lets the user select colors visually or numerically.
GtkColorSelectionDialog -
GtkCombo - a GtkEntry widget combined with a dropdown list.
GtkContainer - a parent class for container widgets.
GtkCurve - an editable curve.
GtkDialog - a pop-up dialog window.
GtkDrawingArea - lets you create custom GUI elements.
GtkEditable - a parent class for text widgets.
GtkEntry - a text-entry field.
GtkEventBox - gives event-handling capability to windowless widgets.
GtkFileSelection - lets the user browse and select directories and files.
GtkFixed - lets you fix child widget sizes and positions.
GtkFontSelection - lets the user browse and select fonts.
GtkFontSelectionDialog - a dialog box containing a GtkFontSelection widget.
GtkFrame - a bin with a border and label (optional).
GtkGammaCurve - an editable gamma curve.
GtkHBox - packs its children in a horizontal row.
GtkHButtonBox - facilitates horizontal layout of buttons.
GtkHPaned - creates two horizontally-adjustable panes.
GtkHRuler - a horizontal ruler.
GtkHScale - a horizontal slider used to select values.
GtkHScrollbar - a horizontal scrollbar.
GtkHSeparator - a horizontal separator.
GtkHandleBox - a container whose children can be detached and moved.
GtkInputDialog - supports configuration of XInput extension devices.
GtkItem - a parent class for items.
GtkLabel - displays a text string.
GtkLayout -
GtkList - a scrollable list of selectable items.
GtkListItem - an item used in a GtkList.
GtkMenu - a menu.
GtkMenuBar - displays GtkMenuItems at the top of a window.
GtkMenuItem - an item used in a GtkMenu.
GtkMisc - a parent class that handles alignment and padding.
GtkNotebook - a group of tabbed pages.
GtkOptionMenu - a menu accessed by a button.
GtkPacker -
GtkPaned - a parent class for adjustable panes.
GtkPixmap - displays a pixmap image.
GtkPlug - works with GtkSocket to embed widgets across processes.
GtkPreview - displays an image's RGB or grayscale data.
GtkProgress - a parent class for GtkProgressBar.
GtkProgressBar - a thermometer-style bar display.
GtkRadioButton - a check button that allows only one selection from a group.
GtkRadioMenuItem - a menu item that allows only one selection from a group.
GtkRange - a parent class for GtkScrollbar and GtkScale.
GtkRuler - a parent class for rulers.
GtkScale - a parent class for sliders.
GtkScrollbar - a parent class for scrollbars.
GtkScrolledWindow - adds scrollbars to a widget.
GtkSeparator - a parent class for separators.
GtkSocket - works with GtkPlug to embed widgets across processes.
GtkSpinButton - facilitates entering numbers.
GtkStatusbar - displays nonessential messages.
GtkTable - packs widgets horizontally and vertically.
GtkTearoffMenuItem - lets the user remove and reposition a menu.
GtkText - a multi-line text entry and display field.
GtkToggleButton - a button that retains its on/off state.
GtkToolbar - creates a toolbar of buttons etc.
GtkTree - an expandable tree of selectable items.
GtkTreeItem - an item used in a GtkTree.
GtkVBox - packs its children in a vertical column.
GtkVButtonBox - facilitates vertical layout of buttons.
GtkVPaned - creates two vertically-adjustable panes.
GtkVRuler - a vertical ruler.
GtkVScale - a vertical slider used to select values.
GtkVScrollbar - a vertical scrollbar.
GtkVSeparator - a vertical separator.
GtkViewport - lets you add scrollbars to non-scrolling widgets.
GtkWidget - the parent class of widgets.
GtkWindow - the parent class of windows.

II. Gtk Non-Widget Classes
GtkAccelEntry -
GtkAccelGroup -
GtkAdjustment -
GtkAlignment - controls its child's alignment and size.
GtkAllocation -
GtkArg -
GtkArgInfo -
GtkBindingArg -
GtkBindingEntry -
GtkBindingSet -
GtkBindingSignal -
GtkBoxChild -
GtkCListCellInfo -
GtkCListColumn -
GtkCListDestInfo -
GtkCListRow -
GtkCTreeNode -
GtkCTreeRow -
GtkCell -
GtkCellPixText -
GtkCellPixmap -
GtkCellText -
GtkCellWidget -
GtkData - a parent class for data classes.
GtkDitherInfo -
GtkEnumValue -
GtkFixedChild -
GtkFlagValue -
GtkFontFilter -
GtkImage - displays an image.
GtkImageClass -
GtkItemFactory -
GtkItemFactoryEntry -
GtkItemFactoryItem -
GtkMenuEntry -
GtkMenuFactory -
GtkMenuPath -
GtkMenuShell - a parent class for GtkMenu and GtkMenuBar.
GtkMenuShellClass -
GtkNotebookPage -
GtkObject - the fundamental Gtk parent class.
GtkPackerChild -
GtkPatternSpec -
GtkPreviewInfo -
GtkPropertyMark -
GtkRcStyle -
GtkRequisition -
GtkRulerMetric -
GtkSelectionData -
GtkSignalQuery -
GtkStatusbarMsg -
GtkStyle -
GtkStyleClass -
GtkTableChild -
GtkTableRowCol -
GtkTargetEntry -
GtkTargetList -
GtkTargetPair -
GtkThemeEngine -
GtkTipsQuery - freezes the GIU to display help tips.
GtkTipsQueryClass -
GtkToolbarChild -
GtkTooltips - lets you add help tips to widgets.
GtkTooltipsData - data associated with GtkTooltips.
GtkTypeClass -
GtkTypeInfo -
GtkTypeObject -
GtkTypeQuery -
GtkWidgetAuxInfo -
GtkWidgetShapeInfo -

III. Gdk Classes
GdkColor -
GdkColorContext -
GdkColorContextDither -
GdkColormap -
GdkCursor -
GdkDeviceInfo -
GdkDeviceKey -
GdkDragContext -
GdkDrawable -
GdkEvent -
GdkEventAny -
GdkEventButton -
GdkEventClient -
GdkEventConfigure -
GdkEventCrossing -
GdkEventDND -
GdkEventExpose -
GdkEventFocus -
GdkEventKey -
GdkEventMotion -
GdkEventNoExpose -
GdkEventProperty -
GdkEventProximity -
GdkEventSelection -
GdkEventVisibility -
GdkFont -
GdkGC -
GdkGCValues -
GdkGeometry -
GdkICAttr -
GdkImage -
GdkPoint -
GdkRectangle -
GdkRegion -
GdkSegment -
GdkTimeCoord -
GdkVisual -
GdkWindowAttr -