# Theme-D-Gnome Software Library

## Introduction

Theme-D-Gnome is a software library that allows using the GNOME user interface libraries in Theme-D. The library is bases to the guile wrapper library guile-gnome2 . Only a subset of the GTK library has been currently checked to work with Theme-D-Gnome.

## Hello, World with Theme-D-Gnome

          (define-proper-program (gnome-examples hello)

            (import (standard-library core)
                    (gnome gobject)
                    (gnome gtk))

            (define-simple-proc main (() <none> nonpure)
              (let ((window (gtk-window-create 'toplevel))
                    (button (gtk-button-create-with-label "Hello, World!")))
                (set-border-width window 10)
                (add window button)
                (connect
                  button 'clicked
                  (lambda (((args (rest <object>))) <object> nonpure)
                    (gtk-main-quit)
                    null))
                (show-all window)
                (gtk-main))))

## Requirements

You must have the following software installed to use Theme-D-Gnome:

- Guile 2.2. Theme-D-Gnome versions before and including 0.7.3-1 use Guile 2.0. It is possible to build the newer releases of Theme-D-Gnome for Guile 2.0, though.
- Theme-D. Theme-D-Gnome 0.9.2-1 requires Theme-D 2.1.0. This release of Theme-D-Gnome may not work with newer Theme-D versions in which case a new version of Theme-D-Gnome shall be released.
- guile-gnome2 version 2.16.2, 2.16.4, or 2.16.5.
- GNU make

## Documentation

- Theme-D-Gnome User Guide
- Documentation in the guile-gnome software package, see subdirectory `gtk/doc/gtk` there
- Documentation of the GTK library

## Example programs

See the Theme-D-Gnome User Guide for instructions how to build and run the example programs. The example programs can also be found in the Theme-D-Gnome source package in subdirectory `gnome-examples`.

## Downloading the Library

### Debian bullseye and sid distributions and Ubuntu focal

Get the Theme-D-Gnome package and Theme-D-Gnome development package and install them with commands

          sudo dpkg -i theme-d-gnome_0.9.2-1_all.deb
          sudo dpkg -i theme-d-gnome-dev_0.9.2-1_all.deb

### Debian buster distribution and Ubuntu disco and eoan

If you have installed Theme-D with command `apt-get` install Theme-D-Gnome with command

          sudo apt-get install theme-d-gnome theme-d-gnome-dev

If you have installed Theme-D version 2.1.0 follow the instructions in the next paragraph.

### Other Debian-based systems

Get the Theme-D-Gnome package and Theme-D-Gnome development package and install them with commands

          sudo dpkg -i theme-d-gnome_0.9.2-1_all.deb
          sudo dpkg -i theme-d-gnome-dev_0.9.2-1_all.deb

### Other systems

Get the library source from theme-d-gnome-0.9.2.tar.xz . See Theme-D-Gnome User Guide for installation instructions.

### Source code

Theme-D-Gnome source code can be found at theme-d-gnome-0.9.2.tar.xz . The debianization files can be found at theme-d-gnome_0.9.2-1.debian.tar.xz . The `.dsc` file can be found here.

## Old versions

Old versions of the library can be obtained from

- theme-d-gnome-0.9.1.tar.gz and theme-d-gnome_0.9.1-1.debian.tar.xz
- theme-d-gnome-0.9.0.tar.gz and theme-d-gnome_0.9.0-1.debian.tar.xz
- theme-d-gnome-0.8.2.tar.gz and theme-d-gnome_0.8.2-1.debian.tar.xz
- theme-d-gnome-0.8.1.tar.gz and theme-d-gnome_0.8.1-1.debian.tar.xz
- theme-d-gnome-0.8.0.tar.gz and theme-d-gnome_0.8.0-1.debian.tar.xz or theme-d-gnome_0.8.0-2.debian.tar.xz
- theme-d-gnome-0.7.6.tar.gz and theme-d-gnome_0.7.6-1.debian.tar.xz
- theme-d-gnome-0.7.5.tar.gz and theme-d-gnome_0.7.5-1.debian.tar.xz , theme-d-gnome_0.7.5-2.debian.tar.xz , theme-d-gnome_0.7.5-3.debian.tar.xz , or theme-d-gnome_0.7.5-4.debian.tar.xz
- theme-d-gnome-0.7.4.tar.gz and theme-d-gnome_0.7.4-1.debian.tar.xz
- theme-d-gnome-0.7.3.tar.gz and theme-d-gnome_0.7.3-1.debian.tar.xz
- theme-d-gnome-0.7.2.tar.gz and theme-d-gnome_0.7.2-1.debian.tar.xz
- theme-d-gnome-0.7.1.tar.gz and theme-d-gnome_0.7.1-1.debian.tar.xz
- theme-d-gnome_0.7.0.orig.tar.gz and theme-d-gnome_0.7.0-1.debian.tar.xz or theme-d-gnome_0.7.0-2.debian.tar.xz
- theme-d-gnome_0.6.17.tar.gz
- theme-d-gnome_0.6.16.tar.gz
- theme-d-gnome_0.6.15.tar.gz
- theme-d-gnome_0.6.14.tar.gz
- theme-d-gnome_0.6.13.tar.gz
- theme-d-gnome_0.6.12.tar.gz
- theme-d-gnome_0.6.11.tar.gz
- theme-d-gnome_0.6.10.tar.gz
- theme-d-gnome_0.6.9.tar.gz
- theme-d-gnome_0.6.8.tar.gz
- theme-d-gnome_0.6.7.tar.gz
- theme-d-gnome_0.6.6.tar.gz
- theme-d-gnome_0.6.5.tar.gz
- theme-d-gnome_0.6.4.tar.gz
- theme-d-gnome_0.6.3.tar.gz
- theme-d-gnome_0.6.2.tar.gz
- theme-d-gnome_0.6.1.tar.gz
- theme-d-gnome_0.6.0.tar.gz
- theme-d-gnome_0.5.3.tar.gz
- theme-d-gnome-0.5.2.tar.bz2
- theme-d-gnome-0.5.1.tar.bz2
- theme-d-gnome-0.5.0.tar.bz2.

## Related Software

- Theme-D programming language
- guile programming language
- guile-gnome-2 wrapper library
- GTK graphical user interface C library

## Checked GTK classes

- `<gtk-action-group>`
- `<gtk-box>`
- `<gtk-button>`
- `<gtk-button-box>`
- `<gtk-cell-renderer-toggle>`
- `<gtk-cell-renderer-text>`
- `<gtk-check-button>`
- `<gtk-combo-box>`
- `<gtk-container>`
- `<gtk-dialog>`
- `<gtk-entry>`
- `<gtk-frame>`
- `<gtk-hbox>`
- `<gtk-hbutton-box>`
- `<gtk-hpaned>`
- `<gtk-image>`
- `<gtk-label>`
- `<gtk-list-store>`
- `<gtk-menubar>`
- `<gtk-message-dialog>`
- `<gtk-paned>`
- `<gtk-scrolled-window>`
- `<gtk-size-group>`
- `<gtk-statusbar>`
- `<gtk-table>`
- `<gtk-text-buffer>`
- `<gtk-text-iter>`
- `<gtk-text-view>`
- `<gtk-toolbar>`
- `<gtk-tree-selection>`
- `<gtk-tree-store>`
- `<gtk-tree-view>`
- `<gtk-tree-view-column>`
- `<gtk-ui-manager>`
- `<gtk-vbox>`
- `<gtk-vbutton-box>`
- `<gtk-vpaned>`
- `<gtk-widget>`
- `<gtk-window>`

## Version history

### Changes in the version 0.9.2

- Better support for using the software without installation.

### Changes in the version 0.9.1

- Updated for Theme-D version 2.0.0.

### Changes in the version 0.9.0

- Updated documentation for the Debian package split.

### Changes in the version 0.8.2

- Updated for Theme-D version 1.4.1.

### Changes in the version 0.8.1

- Updated for Theme-D version 1.4.0.

### Changes in the version 0.8.0

- Built for Theme-D version 1.3.0.

### Changes in the version 0.7.6

- Updated for Theme-D 1.2.0

### Changes in the version 0.7.5

- Added missing dependencies to `gnome/Makefile.am`.
- Changed module search paths so that local directories are searched before the default module search path.
- Changed Debian revision in the User Guide to a symbol.

### Changes in the version 0.7.4

- Updated the documentation.
- Changed guile-gnome2 default version to 2.6.15.

### Changes in the version 0.7.3

- Compiled for Theme-D 1.1.11.

### Changes in the version 0.7.2

- Updated documentation.

### Changes in the version 0.7.1

- Updated documentation.

### Changes in the version 0.7.0

- Reorganized the code to be distributed in Debian.
- Configuration file not needed anymore.
- Install examples into `/usr/share/doc/theme-d-gnome/examples`.

### Changes in the version 0.6.17

- Fixed the code to be compatible with Theme-D 1.1.5.

### Changes in the version 0.6.16

- Compiled for Theme-D 1.1.3.
- Updated the documentation.

### Changes in the version 0.6.15

- Compiled for Theme-D 1.1.1.
- Commented out Pango attribute code from the calculator application.

### Changes in the version 0.6.14

- Compiled for Theme-D 1.1.0.
- Use guile-gnome2 version 2.16.4 by default.

### Changes in the version 0.6.13

- Compiled for Theme-D 1.0.12.
- Changed `generate-theme-d-code` to use `:simple-proc` instead of `:procedure` in the generated interface files.
- Added dependencies to `guile-gnome2` libraries into `debian/control`.
- Updated `calc.thp` for complex number and rational number calculations.
- Removed example program `calc2.thp`.

### Changes in the version 0.6.12

- Compiled for Theme-D version 1.0.10.
- Updated generate-theme-d-code.thp for Theme-D 1.0.10.

### Changes in the version 0.6.11

- Compiled for Theme-D version 1.0.7. Works for versions 1.0.8 and 1.0.9, too.

### Changes in the version 0.6.10

- Compiled for Theme-D version 1.0.6.

### Changes in the version 0.6.9

- Compiled for Theme-D version 1.0.4. Works for version 1.0.5, too.

### Changes in the version 0.6.8

- Updated for Theme-D version 1.0.3.
- Changed the architecture from "all" to "amd64".

### Changes in the version 0.6.7

- Compiled for Theme-D version 1.0.1. Works for Theme-D 1.0.2, too.

### Changes in the version 0.6.6

- Compiled for Theme-D version 1.0.0.

### Changes in the version 0.6.5

- Updated for Theme-D version 0.9.10.

### Changes in the version 0.6.4

- Compiled for Theme-D version 0.9.7.

### Changes in the version 0.6.3

- Added `<gtk-tree-store>` to the Theme-D-Gnome demo.
- Compiled for Theme-D version 0.9.6.

### Changes in the version 0.6.2

- Updated for Theme-D version 0.9.5.

### Changes in the version 0.6.1

- Compiled for Theme-D version 0.9.4.

### Changes in the version 0.6.0

- Implemented methods and creators (high-level constructors)
- Checked several new widget classes and procedures.
- Added a demo using several widget classes.
- Support for guile-gnome-platform-2.16.4. Version 2.16.2 is still supported.
- Compatible with Theme-D version 0.9.3.

### Changes in the version 0.5.3

- Initial debianized package.

### Changes in the version 0.5.2

It is no longer necessary to have hacked versions of the guile-gnome wrapper modules.

### Changes in the version 0.5.1

The calculator example program has been corrected so that no procedure calls are done toplevel outside procedures.

### Changes in the version 0.5.0

Initial prerelease version.

Last updated March 22, 2020.

tommi.hoynalanmaa@REMOVEiki.fi