Description: This book explains key concepts of the gtkmm C++ API for creating user interfaces. It also introduces the main user interface elements ("widgets").

Programming with gtkmm 4

# Programming with gtkmm 4

### Murray Cumming

### Bernhard Rieder

Chapter on "Timeouts".

### Jonathon Jongsma

Chapter on "Drawing with Cairo". Chapter on "Working with gtkmm's Source Code". Chapter on "Recent Files".

### Ole Laursen

Parts of chapter on "Internationalization".

### Marko Anastasov

Chapter on "Printing". Parts of chapter on "Internationalization".

### Daniel Elstner

Section "Build Structure" of chapter on "Wrapping C Libraries with gmmproc".

### Chris Vine

Chapter on "Multi-threaded programs".

### David King

Section on Gtk::Grid.

### Pedro Ferreira

Chapter on "Keyboard Events".

### Kjell Ahlstedt

Update from gtkmm 3 to gtkmm 4. Chapter on "Building applications". Chapter on "The DropDown Widget". Chapter on "ListView, GridView, ColumnView".

### Daniel Boles

Notes on need to remove widgets in non-managed wrappers from parents to dispose, other tweaks.

Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Murray Cumming

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

Abstract

This book explains key concepts of the gtkmm C++ API for creating user interfaces. It also introduces the main user interface elements ("widgets").

List of Figures

- 3.1. Hello World
- 6.1. buttons example
- 6.2. CheckButton
- 6.3. RadioButton
- 7.1. Range Widgets
- 8.1. Label
- 8.2. Entry
- 8.3. Entry Completion
- 8.4. Entry with Icon
- 8.5. Entry with Progress Bar
- 8.6. SpinButton
- 8.7. ProgressBar
- 8.8. InfoBar
- 8.9. Tooltip
- 9.1. Frame
- 9.2. Paned
- 9.3. ScrolledWindow
- 9.4. AspectFrame
- 9.5. Hello World 2
- 9.6. Box Packing 1
- 9.7. Box Packing 2
- 9.8. Grid
- 9.9. Notebook
- 9.10. Assistant
- 10.1. ListView
- 10.2. GridView
- 10.3. ColumnView
- 10.4. SortListModel
- 10.5. FilterListModel
- 10.6. TreeListModel
- 11.1. TreeView - ListStore
- 11.2. TreeView - TreeStore
- 11.3. TreeView - ListStore
- 11.4. TreeView - TreeStore
- 11.5. TreeView - Editable Cells
- 11.6. TreeView - Drag And Drop
- 11.7. TreeView - Popup Context Menu
- 12.1. Simple DropDown
- 12.2. Search String
- 12.3. Search Font
- 12.4. Search Font
- 13.1. ComboBox
- 13.2. ComboBoxText
- 13.3. ComboBox with Entry
- 13.4. ComboBoxText with Entry
- 14.1. TextView
- 15.1. App and Main Menu
- 15.2. Main Menu
- 15.3. Popup Menu
- 17.1. AlertDialog
- 17.2. FileDialog
- 17.3. ColorDialog
- 17.4. FontDialog
- 17.5. AboutDialog
- 17.6. Window Dialog
- 18.1. Drawing Area - Lines
- 18.2. Different join types in Cairo
- 18.3. Drawing Area - Thin Lines
- 18.4. Drawing Area - Curve
- 18.5. Drawing Area - Arcs
- 18.6. Drawing Area - Text
- 18.7. Drawing Area - Image
- 19.1. Drag and Drop
- 20.1. Clipboard - Simple
- 20.2. Clipboard - Ideal
- 21.1. Printing - Simple
- 21.2. Printing - PrintDialog
- 23.1. Keyboard Events - Simple
- 23.2. Keyboard Events - Event Propagation
- 23.3. Keyboard and Mouse Events
- 27.1. Translatable Strings
- 28.1. Custom Container
- 28.2. Custom Widget
- 28.3. Custom CSS Name
- 29.1. Multi-Threaded Program
- 31.1. A trivial application
- 31.2. Populating the window
- 31.3. Opening files
- 31.4. A menu
- 31.5. A preference dialog
- 31.6. Adding a search bar
- 31.7. Adding a side bar
- 31.8. Properties
- 31.9. Header bar

|  | Chapter 1. Introduction