gtkmm Reference Manual

# Description

gtkmm is the official C++ interface for the popular GUI library GTK+. Highlights include typesafe callbacks, and a comprehensive set of widgets that are easily extensible via inheritance.

For instance, see Widgets, Dialogs, TreeView and TextView.

See also the Programming with gtkmm book. It can be downloaded from here.

# Features

- GTK+’s mature, capable set of widgets. See the GTK+ website for more information.
- Use inheritance to derive custom widgets.
- Type-safe signal handlers (slots), in standard C++, using libsigc++.
- Polymorphism.
- Use of the Standard C++ Library, including strings, containers and iterators.
- Full internationalisation with UTF8.
- Complete C++ memory management.
  - Member instances or dynamic new and delete.
  - Optional automatic deletion of child widgets.
  - No manual reference-counting.
- Full use of C++ namespaces.
- No macros.

# Basic Usage

Include the gtkmm header:

#include <gtkmm.h>

(You may include individual headers, such as `gtkmm/button.h` instead.)

If your source file is `program.cc`, you can compile it with:

g++ program.cc -o program `pkg-config --cflags --libs gtkmm-3.0`

If your version of g++ is not C++11-compliant by default, add the `-std=c++11` option.

If you use Meson, include the following in `meson.build:`

gtkmm_dep = dependency('gtkmm-3.0')
program_name = 'program'
cpp_sources = [ 'program.cc' ]
executable(program_name,
cpp_sources,
dependencies: gtkmm_dep
)

Alternatively, if using autoconf, use the following in `configure.ac:`

PKG_CHECK_MODULES([GTKMM], [gtkmm-3.0])

Then use the generated `GTKMM_CFLAGS` and `GTKMM_LIBS` variables in the project `Makefile.am` files. For example:

program_CPPFLAGS = $(GTKMM_CFLAGS)
program_LDADD = $(GTKMM_LIBS)