Programs for Programmers

GINO Graphics/GUI suite


GINO is a suite of graphics and GUI development tools aimed at scientific/engineering applications and contains over 900 routines available with an F90 and C binding. As well as containing the more common graphing features such as line graphs, charts, contour maps and 3D surfaces, GINO includes an optional programmable GUI interface (GINOMENU) and an optional RAD GUI development tool (GINOMENU Studio) for rapid Fortran application development. GINO features fully integrated OpenGL functionality including facets, lighting, shading and texture-mapping for developing state-of-the-art 3D models. GINO runs under Windows, OpenVMS, Linux and UNIX.


gino enterprise brochure

gino enterprise brochure (pdf)


gino news 2010 (pdf)


gino product logo

GINO is a programmable toolkit providing over 450 routines and functions for developing professional 2D and 3D graphics applications. The library includes functionality from basic line drawing, fonts, polygons and images to full 3D OpenGL features such as facets, bezier surfaces, lighting, shading and texture-mapping. Metafile input/output includes DXF, JPEG, PNG, ICO, BMP, CGM, Postscript and WMF.  Full Description

menu product logo

GINOMENU is a Fortran90/C++ toolkit for developing GUI applications under Windows. It provides extensive window and widget building modules in an easy to use format without the need to get involved in resource files, MFC or direct Windows programming. Full integration with all the high level graphics facilities featured in the other GINO packages is provided.  Full Description

graf product logo

GINOGRAF is a programmable toolkit for the display of 2D data in any popular charting format including block filled bar, step and area charts, X-Y graphs, population graphs, text charts and vector diagrams. Emphasis on scientific/engineering formats are provided such as logarithm plots, engineering units, cubic, spline and akima curve drawing, annotation powers and prefixes, multiple scales on same axis, and multiple axes.  Full Description

surf product logo

GINOSURF is a programmable toolkit enabling 3D data visualization in the form of contour maps, X-sections and surfaces with full hidden-line removal. Data can be in the form of random data or gridded data and then is interpolated onto a rectangular grid or triangular network. Faults, Breaklines, overlayed polylines and 4D data sets are catered for and features include contour extraction, cut and fill calculations and DXF polymesh import.  Full Description

studio product logo

GINOMENU Studio is an interactive GUI builder and development environment for Fortran programmers. Developers can create a graphical user-interface by drag-and-drop methodology with the amount of actual programming kept to a bare minimum. Access to the other GINO libraries is provided via on-line help, automated code-assist pop-ups and colour syntax-highlighted code enabling the developer to create a complex graphics and GUI application all within a RAD environment.  Full Description



  • Available for Fortran (Intel, Lahey, Salford, Absoft), Microsoft C/C++, and VB.NET
  • Platform availability includes Windows and Linux (both 32bit and 64bit supplied in each package) (UNIX/OpenVMS on request)
  • Create simple line drawings, simple GUI interfaces or complex 3D interactive visualizations
  • Import and Export all major image and metafile formats
  • No run-time fees for Applications built under Windows or Linux

GUI Edition

Standard Edition

Developer Edition

Professional Edition

Enterprise Edition

GINO (base 2D/3D toolkit) NO





GINOMENU (GUI library)






GINOGRAF (2D graphing)






GINOSURF (3D surface/contouring)






GINOMENU Studio (GUI RAD tool)






New Features

v7.5 v7.0 v6.5 v6.0 v5.5


GINO v7.5

Below is a brief summary of new features available in v7.5:

  • GINO driver for Flash/SWF files for web-vector-animations more...
  • Add 40 new WindowsXP/Vista icons to GINOMENU more...
  • On-line documentation more...
  • New look and feel to GINOMENU Studio more...
  • New cursor types in GINOMENU
  • Block commenting/uncommenting in GINOMENU Studio
  • Block indenting/outdenting in GINOMENU Studio
  • Extra features to RTF paragraph properties in GINOMENU
  • More options for log axes in GINOGRAF with different display types
  • New GINO Installation with better support for Vista and Windows7
    • Multi-language support during Installation
    • Evaluation downloads without needing serial number
    • Installation setup is now code-signed for better security
    • Examples and Data moved out of Program Files, therefore releasing the need to run as Administrator
  • Rebuild of low-level libraries to avoid LIBC/LIBCMT clash
  • Support for Visual Studio 2010
  • 32bit and 64bit versions supplied as one package

    GINO v7.0

    • Routines, Defined constants and Optional arguments using the words: Dialogue, Centre, Colour and Grey are now provided with their American spelling equivalents.
    • The GINO config, message and font files may now be placed in the system path as an alternative to using GINO environment variable.
    Drawing Objects

    Number/String handling

    Hardware Fonts

    DXF Importing

    Other utilities

    Draws a 2D ellipse
    Draws an open/closed/filled arrow in 2D space
    Draws an open/closed/filled arrow in 3D space

    Converts an integer to its equivalent right-justified string
    Converts a real number to its equivalent string with raised power
    Converts a real number to its equivalent string in scientific format
    Displays a right-justified integer with optional zero padding
    Displays a real number with a raised power value
    Displays a real number with mantissa between 1.0 and 10.0

    Returns the currently selected character font name
    Returns the current character/language set
    Returns a list of available font names on the current device
    Sets the current hardware character font by name
    Sets the current hardware character/language set
    Sets the current character mode to hardware 'point size' mode

    Closes the currently open DXF file
    Returns the entity count of a DXF file
    Returns the graphical extent of a DXF file
    Returns the list of layer names in a DXF file
    Reads one or all the layers from a DXF file and displays them
    Returns the details of the next entity
    Returns a set of vertices and triangles representing a surface mesh
    Opens a DXF file ready for interpreting data

    Generate a BMP/JPG/PNG file containing OpenGL graphics
    Creates a metafile from data stored in pixbuf
    Terminate a background process
    Direct error messages to a particular file
    Enquires the current line width in pixels
    Sets the current line width in pixels


    GINOGRAF v7.0


    New Features
    • Three new routines have been added to implement a colour scaling facility. Any line, curve or symbol graph can be drawn with a graduated colour along the X or Y axis together with an optional colour bar as a key.
    New Routines ggDrawColourScale
    Displays a graduated colour bar
    Returns the current colour scaling settings
    Sets a colour scaling for 2D graph components

    GINOSURF v7.0


    New Features
    • Extend the new cut and fill functionality added last release with facilities to generate a complete cut and fill area by adding spot heights, break lines and site boundaries to create a second surface within an existing surface. Surface area, volume and maximum height between the two surfaces can then be calculated.
    • Contour data can now be enquired directly from the gridded data without having to draw the contours first.
    • Vertical fault lines can now be added to a surface allowing vertical discontinuity between two heights whereby the area between is ignored when calculating the surface to display.
    • New optional arguments have been added to the routine gsSetContourLevels() to allow the specification of pre and post-fix strings to annotation of contour heights.
    • The routine gImportDXFSurface() has been added to the GINO library to import polymesh surface data from a DXF file. The data returned is in a format ready to pass to gsImportTriangulationNetwork() ready for surface display.
    • Cross Sections may now be drawn directly from gridded or triangulated workspaces without the need to draw a contour map or surface first.
    New Routines gsGenerateContourDataSet
    Returns 2D contour data relating to a particular height
    Calculates and Displays information relating to 3D cut and fill
    Returns surface areas and volumes between two surfaces
    Generates a grid from random data with two sets of heights
    Returns the data range information that is used internally
    Stores gridded data in workspace to be used by other routines
    Stores 4D gridded data to be used by other routines
    Controls whether triangulation is restricted to a unit square
    Add one or more fault lines into an existing 3D surface
    Selects the 1st or 2nd data set that has previously been stored

    GINOMENU v7.0


    • A new widget type has been added in this release which is the spinner or up-down control. It can be associated with a value entry for directly controlling the value.
    • RTF text entries have been enhanced with the ability of providing HyperText link callbacks. A user can now click or double-click on a string that has been assigned a hypertext font attribute which will then generate a hypertext link callback.
    • For Windows XP users, documentation has been added to explain how to utilize the current XP theme and mouse-sensitive widgets with the appropriate initialization being carried out in the GINOMENU DLL.
    • In the area of callbacks, a new routine is provided to check the callback queue for particular types of callbacks and greater control of windows messages is provided with the ability to trap messages that are not being used by GINOMENU.
    • The resizing of floating docking panes is now permitted in two directions by selecting one of the four corners of the widget.
    • A new optional property, gmTabList is provided to add or remove a widget from the tab list. For Array Grid widgets gmTabAction has been added to provided three modes of action for the TAB key within this widget.
    • Two routines have been added to enable an enquiry and import of data from an internal bitmap resource (i.e.. Bitmap, icon or cursor). The data can then be used by the GINO routines gDrawPixelArea or gDrawCellArray.
    Checks the callback queue for a particular callback type
    Creates a spinner or 'up-down' control for controlling value entries
    Traps additional windows messages for a particular widget class
    Defines a HyperText link callback to a RTF widget
    Enquires the action of the <CR> key within array grids
    Enquires the windows messages that are being trapped
    Enquires the mode, position and size of a docking pane
    Enquires the size, no. of bits and colours of an internal resource
    Returns the list of currently assigned timer callbacks
    Converts image data from a resource into a GINO array
    Returns a widget handle for use with Windows API routines
    Sets the action of the <CR> key within array grids
    Sets the mode, position and size of a docking pane  

    GINOMENU Studio v7.0

    • A new horizontal and vertical widget alignment facility is now available following the selection of multiple widgets on any form.
    • The Code Editor can now be on permanent display (depending on its state) enabling quicker updating of code with fewer key-clicks. It now incorporates a list of all current widget names and menu-entry names via a tabbed panel and combo boxes allowing quicker code selection between different code blocks.
    • The initial display of Studio now makes use of Docking Panes for the Properties, Hierarchy, Code Editor and Compiler Log windows. These can be docked, re-sized, floated or made invisible.
    • A new widget type; Docking Pane can now be added to the design of the application
    • A Source Code viewer has been added for read-only editing of the complete generated code. This can be useful when making global changes to identify which code blocks changes need to be made in.
    • A new 'Duplicate Widget' (Ctrl D) option has been added to speed-up the copying and pasting of a widget or group on to the same form.
    • A new 'Print Errors' option has been added to the menu bar to enable the printing of compiler/linker errors.
    • For Windows XP users, automatic generation of Windows manifest file for each project to utilize the current XP theme and mouse-sensitive widgets.
    • New properties added to widgets in the new version of GINOMENU have been included for the same widgets in Studio, including:
      • HyperText link callbacks for RTF entries
      • AutoURL for RTF entries
      • Tab Action and Read-only option for text and value arrays
      • Tab List option to all appropriate widgets


    GINO V6.5

    New Features
    • Nine new routines have been added to utilize the facilities of the Windows Registry within a GINO application. Routines have been added to read, write and enquire both keys and values in a simple to use way.
    • There is also a routine to enquire the currently assigned application associated with a file extension on the system.
    New Routines gCloseDrawingFiles
    Closes files and buffers used by gGetDrawing or gGetPicture
    Creates a new subkey in the Windows Registry
    Creates a new data value in the Windows Registry
    Deletes a key from the Windows Registry
    Deletes a data value from the Windows Registry
    Returns information pertaining to a Windows Registry key
    Returns the type and string or data setting of a Windows Registry key
    Returns the registered application pathname associated with a file extension
    Returns list of subkeys under a Windows Registry key
    Returns list of values under a Windows Registry key

    GINOGRAF v6.5

    New Features
    • Two new routines have been added to implement a chart component identification feature using GINO segments. This allows discrete bars, columns and pie chart segments to be identified by segment number where required.
    New Routines ggEnqChartSegments
    Returns the current chart segment id offset
    Defines the chart segment id offset

    GINOSURF v6.5

    New Features Thirteen new routines have been added to this library, four of which provide enquiry functions for information that was difficult or impossible to obtain in previous releases.
    • In the light of problems with the addition of break-lines into existing surfaces, two new routines have been added to generate 3D and 4D constrained triangulation networks composed of free data points, break-lines and excluded regions all in the one call.
    • There are more controls over the style of contour map and cross-sections axes and the ability to define the projection of a polyline cross-section to be aligned along the X (or Y) axis direction as well as the current distance.
    • In a new area of GINOSURF functionality, there are three routines which utilize the knowledge of the supplied data to calculate approximations for the area and volume data associated with a cross-section or surface. In addition, a fourth routine estimates cut-and-fill values for a 3D polyline traversing across a surface.
    New Routines gsEnqContourAxesLimits
    Returns current contour map axes limits
    Returns current contour levels and linestyles
    Returns current cross section axes type and limits
    Returns current surface plot axes limits
    Computes a triangulated network using data, breaklines and regions
    Computes a 4D triangulated network
    Calculates areas of cur and fill between current surface and polyline
    Calculates the areas above and below base line on cross section
    Calculates area of current surface plot
    Calculates volume above and below base line in surface plot
    Sets style of contour plot axes
    Sets style of cross section plot axes
    Sets the projection of a polyline cross section



      17 new routines and 13 new optional arguments have been added to the library, with 8 existing optional arguments adding new facilities to existing routines:  
    • A new widget type has been added in this release and that is the powerful docking pane. This is a container widget which can hold several types of children which are automatically expanded to fit the pane. The pane can then be attached to the side of a window or made to float in a similar manner to the toolbar widget.
    • Value entries have been enhanced with new input controls and error checking facilities and the contents of both value cells and value entries can be cleared if required (without 0.0) through two new routines.
    • Various enhancements have been mode to array grids, including
      • new colour control, font attributes and border type
      • change callbacks
      • combo box button display
      • TAB control
      • use of rogue values in value cells
      • A new optional argument gmCount has been added to the add/remove row/column routine allowing for more efficient multiple operations in one call.
    • Bubble help facilities have been extended to add justification of multi-line tool-tip messages as well as inhibiting the display of all bubble help with one switch.
    New Features
    • RTF text entries have been enhanced with
      • multi-level undo features
      • routine to prevent OLE inserts
      • routine to buffer up application changes to prevent flashing
      • routines to extract the currently pointed to word and any specified text without having to select it first
      • Single line RTF entries are now also permitted.
      • Colour syntax highlighting for numbers
    • In the area of callbacks, a new routine is provided to flush the callback queue, should that be required by an application and a routine has been added to generate (post) callbacks from application control as if the user had carried out an action on the display.
    • Addition of File Drop callback to MDI Master windows
    • Addition of double-click callback to tree view entries
    • Justification of button labels
    • Read-only property for text, tty and value entries
    • Addition of quit mode for tool bar widgets
    New Routines gmClearArrayCell
    Clears an array grid cell of its contents
    Clears a value entry of its contents
    Creates a docking pane either floating or docked to window edge
    Defines a value error callback activated on illegal values
    Returns setting of browser directory switch
    Returns setting of global bubble help display switch
    Returns setting of global entry selection mode (single/double)
    Gets widget display status
    Extracts string from text widget
    Extracts word from text widget
    Flushes callback queue of any outstanding callbacks
    Sets switch to freeze/unfreeze changes to RTF widget
    Imports a WMF/EMF metafile into a graphics frame
    Posts an application defined callback into the callback queue
    Sets global application browser directory switch
    Sets global switch for display of bubble help
    Sets global switch for single/double selection of widgets  

    GINOMENU Studio 5.0


    User Code Editor/Callback Editor
    • The User Code Editor and Callback Editor have been merged into one Editor. This saves time when moving from user code to callback code which can now be done just by selecting a different code block from the pull-down combo-box.
    • A new code block entitled 'Global Routines' has been added to allow the addition of routines to the project module or global block. This can be more efficient than placing them in the 'User Routines' section.
    • F1 Help can now access routines from all GINO libraries, not just GINOMENU.
    • The Editor now keeps a track of the current line and character number and displays this in the status bar
    • The Editor now provides a 'Code-Assist' popup window when adding GINO routines, assisting in the placement of arguments by giving the number and type of each argument required.
    • The Find and Replace dialogue works more intuitively and contains combo lists of previous find and replace strings.
    • Multi-level Undo is now available as well as Undo and Redo in the Find/Replace dialog.
    • <ctrl>W can be used as a hot-key to bring up the list of current widgets available to use in the Editor
    GUI Designer
    • A toolbar separator widget has been added into the tool box.
    • Undo and redo options are now available for widget movement and resize
    • Icon resources can be added to menu entries, tree view entries and combo box and list box entries through new options in their respective editor dialogues

    Widget Properties

    • All new properties added to widgets in the new version of GINOMENU have been included for the same widgets in Studio, including:
      • Quit mode for Toolbars
      • Label alignment in (user defined) buttons and bubble help
      • Read-only option for text, tty and value entries
      • Border type, colours and border line types for text and value arrays
      • OLE insertion control for RTF text widgets
      • Double click callback for tree view entries
      • File drop callback for master MDI forms
      • Value error callback for value entries
      • GTOP option for initial state for windows
    • The Options - Preferences menu has been reworked to provide auto-backup and project/code synchronization
    • The snap grid setting dialogue has been moved from the preferences dialogue to the project settings dialogue as the setting applies to the currently opened project only.
    • Other dialogues have been improved with the Menu Editor now providing automatic generation of menu entry identifier names.
    • The Widget Tab Order dialogue is now resizable and allows for the re-ordering of multiple widgets in one action.
    • Additional hot-keys have been added to improve development speed. These include Esc to close many windows, Ctrl Y and Z for redo and undo actions



    GINO 6.0

    New Drawing Routines and Functionality

    A small number of enhancements have been added to the GINO library at this release.

    Object Complexity

    Object complexity options have been added for the box and cube objects allowing more accurate lighting and texturing of large objects of this type.

    External Process Control

    The routine gExecuteSysCommand has been extended to include optional arguments specifying if the GINO application is to be suspended or run in parallel with the new process as well as returning its handle if appropriate.

    Curve Interpolation

    Two routines have been added to interpolate values given a supplied set of 2D or 3D data points. These can be passed from the internal point storage mechanism allowing for accurate interpolation of GINO curves.

    Postscript Export

    An option in the generation of Postscript files (through gEpsexp) has been added to place the correct bounding box in the header of the generated file (rather than at the end). This option requires post processing the postscript file and so incurs a time penalty but the resulting file better suits some import filters.


    GINOGRAF v6.0

    • General bug fix release

    GINOSURF v6.0

    • Most of the improvements in the GINOSURF library occur in connection with the triangulation data routines, as it is here where the greatest functionality now exists within this library. Surface and contour maps with excluded regions and irregular boundaries can all be handled using random data that has been triangulated into a linked network.

    GINOMENU v6.0 - New Features

    A large and varied range of enhancements have been added to this library again in this release. Whilst no specific new widget types have been added, the facilities within many widget types have been extended in either their functionality and/or their display features. In order to make best use of several newer facilities in the Windows API, some facilities in GINOMENU are not available in earlier Windows environments (primarily Windows 95 and Windows NT). These are listed below under the various sub-headings.


    GINOMENU Studio v4.0

    The new release of GINOMENU Studio (version 4.0) contains many improvements on the current release enhancing its features as a GUI production tool for Fortran and C programmers.



    GINO-F v5.5  (19 new routines)

    New Drawing Routines

    • 2D and 3D Bezier Curves
    • Bezier curve elevation and reduction
    • 3D Spline surface
    • OpenGL planar shadows
    • Shaded polylines
    • View matrix modification
    • Postscript window dumps
    • Gouraud shading of textured facets

    Other New v5.5 Features

    • Mouse wheel event handling
    • File and directory handling system routines

     GINOGRAF v5.5

    • Documentation updated
    • Bug fixes

     GINOSURF v5.5

    • Display of triangular net on a surface
    • Perspective projection with supplied workspace
    • Filled Triangulated contours and surfaces
    • Shading key position and size definition
    • Surface line shading is now switchable


     GINOMENU v5.5 - New Features

    (35 new routines)

    Property List

    The property list is a two column scrollable list to be used for changing or displaying properties of objects within your application.

    Properties can be added, removed and edited by the user. The contents of each property can be text, combo boxes or numerical values. In addition, the property can be an HTML style colour hex string.


    Calendar Widget

    This widget allows the selection of a valid date using the standard Windows month view widget.


    Other Features and Enhancements

    • Double Click Callback
    • Key Select Callback
    • Widget tab sequence reordering
    • Printer Properties
    • Page Setup control
    • Tree view file and directory browser
    • RTF find and replace text
    • RTF Page breaks
    • RTF superscript, subscript, page break and justification
    • Resource file string access
    • Floating Tool bar position and size enquiry and setting
    • Table box column removal
    • Interactive widget moving and resizing
    • Tracking position control
    • Selected text enquiry
    • Toolbox style window titles
    • Mouse Wheel control


    GINOMENU Studio v3.0

    • New look and feel
    • Automatically generate C/C++ code as well as F77 & F90
    • Fully integerated with Fortran or C compiler
    • Compilation errors hot-clickable with auto-jumping to offending code
    • New objects such as Gauges, Progress Bars, TTY Windows
    • Full support for MDI applications
    • Group selection/editing of widgets
    • Variable snap-to-Grid selection
    • User preferences including default style of all objects
    • Enhanced Project Options for reading-in own code blocks
    • Form save option for re-using in other Projects
    • Tree-view Object hierarchy for improved Project management
    • Find and Replace dialogs in Code and Callback Editors
    • Context-sensitive F1 Help in all dialogs


    Buy Now!

    GINO Products are available from Polyhedron Software Ltd, Linden House, 93 High Street, Standlake, Witney, Oxon, OX29 7RH, United Kingdom.

    Tel +44 (0)1865 300579, Fax +44(0)1865 300232, email email Polyhedron