1
0
Fork
You've already forked g-golf
0
No description
  • Scheme 92.6%
  • M4 3.1%
  • C 2.6%
  • Makefile 1.3%
  • Shell 0.4%
Grigory Shepelev 5ae6cc27fe (g-golf hl-api vfunc)/add-vfunc-closure: reuse if exists
Use g-type-class-ref instead of g-type-class-peek: peek returns
NULL for freshly-registered derived types whose class struct has
not yet been initialized (no instance created yet).
2026年04月05日 21:54:20 +03:00
am Enabling cross-compilation 2024年03月27日 00:12:05 -03:00
doc Doc - Prepare for 0.8.3 2026年02月06日 20:36:42 -03:00
examples Adw1-demo - Fixing the Makefile.am 2026年02月06日 20:30:50 -03:00
g-golf (g-golf hl-api vfunc)/add-vfunc-closure: reuse if exists 2026年04月05日 21:54:20 +03:00
libg-golf New g[u]int-to-pointer interfaces 2025年01月06日 17:50:01 -03:00
m4 Fixing guile m4 files license headers 2025年10月20日 19:50:57 -03:00
meta Adding libg-golf - wip 2018年11月09日 01:00:34 -02:00
test-suite Test suite enhancement - gi-array->scm test for arrays of objects 2025年11月11日 19:54:56 -03:00
.gitignore Gtk-4 examples - Adding layout-manager-2.scm[png] 2024年10月11日 22:53:46 -03:00
AUTHORS Gbank initialization - Step 1 2016年05月01日 22:56:00 -03:00
autogen.sh Doc review - Configure --with-guile-site option 2024年03月11日 01:45:09 -03:00
ChangeLog Gbank initialization - Step 1 2016年05月01日 22:56:00 -03:00
configure.ac Prepare 0.8.3 2026年02月07日 14:32:32 -03:00
COPYING Gbank becomes G-Golf - Step 4 2016年07月22日 22:22:59 -03:00
g-golf.scm Fixing (g-golf) - re-export-and-replace! - Adding list-index 2025年10月01日 21:16:54 -03:00
INSTALL Updating NEWS, README and INSTALL for the 0.8.3 release 2026年02月07日 14:31:16 -03:00
LICENSE Gbank becomes G-Golf - Step 4 2016年07月22日 22:22:59 -03:00
Makefile.am Makefile.am _ Adding pkgconfigdir 2025年10月20日 19:48:35 -03:00
NEWS Updating NEWS, README and INSTALL for the 0.8.3 release 2026年02月07日 14:31:16 -03:00
pre-inst-env.in Updating pre-inst-env.in 2021年11月16日 02:45:56 -03:00
README Updating NEWS, README and INSTALL for the 0.8.3 release 2026年02月07日 14:31:16 -03:00

# ;; -*- mode: org; coding: utf-8 -*-
#+TITLE: GNU G-Golf README
#+BEGIN_COMMENT
Copyright (C) 2016 - 2026
Free Software Foundation, Inc.
This document is part of GNU G-Golf.
Copying and distribution of this file, with or without modification, are
permitted in any medium without royalty provided the copyright notice
and this notice are preserved. This file is offered as-is, without any
warranty.
#+END_COMMENT
 G-Golf - README
 ===========================================
 Please send G-Golf bug reports to
 bug-g-golf@gnu.org
* GNU G-Golf
[[http://www.gnu.org/software/g-golf][G-Golf]]
GNOME: (Guile Object Library for).
** Description
[[http://www.gnu.org/software/g-golf][G-Golf]] is a [[https://www.gnu.org/software/guile/][Guile]] Object Library for [[https://www.gnome.org/][GNOME]].
G-Golf is tool to develop fast and feature-rich graphical applications,
with a recognizable look and feel. Here is an overview of the [[https://developer.gnome.org/documentation/introduction/overview/libraries.html][GNOME
platform libraries]], accessible using G-Golf.
In particular, [[https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/][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
[[https://wiki.gnome.org/Apps/Web][GNOME Web]] (best known through its code name, Epiphany, is a good example
of such an adaptive UI.
G-Golf uses [[https://docs.gtk.org/glib/index.html][GLib]], [[https://docs.gtk.org/gobject/index.html][GObject]] and [[https://gi.readthedocs.io/en/latest/][GObject Introspection]]. As it imports a
[[https://gi.readthedocs.io/en/latest/][Typelib]] (a GObject introspectable library), G-Golf defines GObject
classes as Guile Object Oriented System ([[https://www.gnu.org/software/guile/manual/html_node/GOOPS.html#GOOPS][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:
#+BEGIN_SRC scheme
(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
 'clicked
 (lambda (bt)
 (restart-game window)))
 (set-titlebar window header-bar)
 (pack-start header-bar restart)
 (create-board window)
 (show window)))
#+END_SRC
G-Golf comes with some examples, listed on the [[https://www.gnu.org/software/g-golf/learn.html][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 [[http://git.savannah.gnu.org/cgit/g-golf.git][repository]].
** Latest News
February 2026
GNU G-Golf version 0.8.3 released.
Visit the NEWS file or see the [[http://git.savannah.gnu.org/cgit/g-golf.git/tree/NEWS][News]] page for the list of visible changes
in this release, as well as older news.
** Savannah
GNU G-Golf also has a [[https://savannah.gnu.org/][Savannah]] project page, [[https://savannah.gnu.org/projects/g-golf/][here]].
** Join the GNU Project
GNU G-Golf is part of the GNU Operating System, developed by the GNU
Project.
If you are the author of an awesome program and want to join us in
writing Free (libre) Software, please consider making it an official
GNU program and become a GNU Maintainer. You can find instructions
on how to do this [[https://www.gnu.org/help/evaluation][here]].
You don't have a program to contribute? Look at all the other ways you
still may [[https://www.gnu.org/help/help][help]].
To learn more about Free (libre) Software, you can read and please share
[[https://gnu.org/philosophy/free-sw.html][this page]].
** License
GNU G-Golf is a free software, distributed under the terms of the GNU
Lesser General Public License LGPLv3 or higher. You must be aware there
is no warranty whatsoever for GNU G-Golf. This is described in full in
the license.
For any copyright year range specified as YYYY - ZZZZ in this package,
note that the range specifies every single year in that closed interval.