mainGNU G-Golf - Summary

Membership Info
Group Admin:
1 active member

Group identification
Id: 11630
System Name: g-golf
Name: GNU G-Golf
Group Type: Official GNU software

This software is part of the GNU Project.

(Gnome: (Guile Object Library for))

G-Golf is tool to develop fast and feature-rich graphical applications, with a recognizable look and feel. Here is an overview of the GNOME platform libraries, accessible using G-Golf.

In particular, libadwaita provides a number of widgets that change their layout based on the available space. This can be used to make applications adapt their UI between desktop and mobile devices. The [[GNOME Web]] (best known through its code name, Epiphany, is a good example
of such an adaptive UI.

G-Golf uses GLib, GObject and GObject Introspection. As it imports a Typelib (a GObject introspectable library), G-Golf defines GObject classes as Guile Object Oriented System (GOOPS) classes. GObject methods are defined and added to their corresponding generic function. Simple functions are defined as scheme procedures.

Here is an example, an excerpt taken from the peg-solitaire game, that shows the implementation, for the peg-solitaire game, of the GtkApplication activate signal callback in G-Golf:

(define (activate app)
  (let ((window (make <gtk-application-window>
                  #:title "Peg Solitaire"
                  #:default-width 420
                  #:default-height 420
                  #:application app))
        (header-bar (make <gtk-header-bar>))
        (restart (make <gtk-button>
                   #:icon-name "view-refresh-symbolic")))

    (connect restart
             (lambda (bt)
               (restart-game window)))

    (set-titlebar window header-bar)
    (pack-start header-bar restart)
    (create-board window)
    (show window)))

G-Golf comes with some examples, listed on the learn page of the G-Golf web site. Each example comes with a screenshot and has a link that points to its source code, in the G-Golf sources repository.

Registration Date: Wed 27 Jul 2016 12:10:54 AM UTC
License: GNU Lesser General Public License
Development Status: 4 - Beta


Latest News rss feed

No news found

Quick Overview
 Memberlist (1 member)

Communication Tools
 Mailing Lists (1 public mailing list)

Back to the top

Powered by Savane 3.13-4b48.
Corresponding source code