Girish Mahajan (Editor)

Gtkmm

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Written in
  
C++

Type
  
Language binding

Platform
  
GTK+

Website
  
www.gtkmm.org

License
  
GNU Lesser General Public License

gtkmm (formerly known as gtk-- or gtk minus minus) is the official C++ interface for the popular GUI library GTK+. gtkmm is free software distributed under the GNU Lesser General Public License (LGPL).

Contents

gtkmm allows the creation of user interfaces either in code or with the Glade Interface Designer, using the Gtk::Builder class. Other features include typesafe callbacks, a comprehensive set of graphical control elements, and the extensibility of widgets via inheritance.

Features

Because gtkmm is the official C++ interface of the GUI library GTK+, C++ programmers can use the common OOP techniques such as inheritance, and C++-specific facilities such as STL (In fact, many of the gtkmm interfaces, especially those for widget containers, are designed to be similar to the Standard Template Library (STL)).

Main features of gtkmm are listed as follows:

  • Use inheritance to derive custom widgets.
  • Type-safe signal handlers, in standard C++.
  • Polymorphism.
  • Use of Standard C++ Library, including strings, containers, and iterators.
  • Full internationalisation with UTF-8.
  • Complete C++ memory management.
  • Object composition.
  • Automatic deallocation of dynamically allocated widgets.
  • Full use of C++ namespaces.
  • No macros.
  • Cross-platform: Linux (gcc, LLVM), FreeBSD (gcc, LLVM), NetBSD (gcc), Solaris (gcc, Forte), Win32 (gcc, MSVC++), macOS (gcc), others.
  • Hello World in Gtkmm

    The above program will create a window with a button labeled "Hello World". The button sends "Hello world" to standard output when clicked.

    The program is run using the following commands:

    This is usually done using a simple makefile.

    Applications

    Some notable applications that use Gtkmm include:

  • Amsynth
  • Cadabra (computer program)
  • Inkscape Vector graphics drawing.
  • K-3D, for 3D modeling and animation.
  • Workrave Assists in recovery and prevention of RSI.
  • GNOME Color Chooser
  • Gnome System Monitor
  • Gigedit
  • GParted disk partitioning tool.
  • Gobby Collaborative text editor.
  • Nemiver GUI for the GNU debugger gdb.
  • PulseAudio tools: pavucontrol, paman, paprefs pavumeter,
  • RawTherapee
  • GNOME Referencer document organiser and bibliography manager
  • Seq24
  • Synfig Studio
  • Linthesia
  • MySQL Workbench Administrator Database GUI.
  • Ardour Open Source digital audio workstation (DAW) for Linux and MacOS.
  • Gnote desktop notetaking application.
  • VisualBoyAdvance
  • VMware Workstation and VMware Player both use Gtkmm for their Linux ports.
  • References

    Gtkmm Wikipedia