# 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.

## features

- GTK+’s mature, capable set of widgets 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.

## basics

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`

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)