Programming with gtkmm 4
- 1. Introduction
-
2. Installation
- 2.1. Dependencies
- 2.2. Unix and Linux
- 2.3. Microsoft Windows
-
3. Basics
- 3.1. Simple Example
- 3.2. Headers and Linking
- 3.3. Widgets
- 3.4. Signals
- 3.5. Glib::ustring
- 3.6. Mixing C and C++ APIs
- 3.7. Hello World in gtkmm
-
4. Changes in gtkmm 3
-
5. Changes in gtkmm-4.0 and glibmm-2.68
-
6. Buttons
- 6.1. Button
- 6.2. ToggleButton
- 6.3. CheckButton
- 6.4. Radio Button
-
7. Range Widgets
- 7.1. Scrollbar Widgets
- 7.2. Scale Widgets
- 7.3. Example
-
8. Miscellaneous Widgets
- 8.1. Label
- 8.2. Entry
- 8.3. SpinButton
- 8.4. ProgressBar
- 8.5. InfoBar
- 8.6. Tooltips
- 9. Container Widgets
-
10. The TreeView widget
- 10.1. The Model
- 10.2. The View
- 10.3. Iterating over Model Rows
- 10.4. The Selection
- 10.5. Sorting
- 10.6. Drag and Drop
- 10.7. Popup Context Menu
- 10.8. Examples
-
11. Combo Boxes
- 11.1. The model
- 11.2. The chosen item
- 11.3. Responding to changes
- 11.4. Full Example
- 11.5. Simple Text Example
- 11.6. ComboBox with an Entry
-
12. TextView
- 12.1. The Buffer
- 12.2. Widgets and ChildAnchors
- 12.3. Examples
-
13. Menus and Toolbars
- 13.1. Actions
- 13.2. Menubar and Toolbar
- 13.3. Popup Menus
- 13.4. Gio::Resource and glib-compile-resources
- 13.5. Examples
-
14. Adjustments
- 14.1. Creating an Adjustment
- 14.2. Using Adjustments the Easy Way
- 14.3. Adjustment Internals
-
15. Dialogs
- 15.1. MessageDialog
- 15.2. FileChooserDialog
- 15.3. ColorChooserDialog
- 15.4. FontChooserDialog
- 15.5. Non-modal AboutDialog
-
16. The DrawingArea Widget
- 16.1. The Cairo Drawing Model
- 16.2. Drawing Straight Lines
- 16.3. Drawing Curved Lines
- 16.4. Drawing Arcs and Circles
- 16.5. Drawing Text
- 16.6. Drawing Images
- 16.7. Example Application: Creating a Clock with Cairo
-
17. Drag and Drop
- 17.1. Sources and Destinations
- 17.2. Methods
- 17.3. Signals
- 17.4. Example
- 18. The Clipboard
-
19. Printing
- 19.1. PrintOperation
- 19.2. Page setup
- 19.3. Rendering text
- 19.4. Asynchronous operations
- 19.5. Export to PDF
- 19.6. Extending the print dialog
- 19.7. Preview
- 19.8. Example
-
20. Recently Used Documents
- 20.1. RecentManager
- 20.2. FileChooser
-
21. Keyboard Events
- 21.1. Overview
- 21.2. Event Propagation
-
22. Timeouts, I/O and Idle Functions
- 22.1. Timeouts
- 22.2. Monitoring I/O
- 22.3. Idle Functions
-
23. Memory management
- 23.1. Widgets
- 23.2. Shared resources
-
24. Glade and Gtk::Builder
- 24.1. Loading the .glade file
- 24.2. Accessing widgets
- 24.3. Using derived widgets
-
25. Internationalization and Localization
- 25.1. Preparing your project
- 25.2. Marking strings for translation
- 25.3. Expecting UTF8
- 25.4. Pitfalls
- 25.5. Getting help with translations
-
26. Custom Widgets
- 26.1. Custom Containers
- 26.2. Custom Widgets
-
27. Multi-threaded programs
- 27.1. The constraints
- 27.2. Using Glib::Dispatcher
- 27.3. Example
-
28. Recommended Techniques
- 28.1. Application Lifetime
- 28.2. Using a gtkmm widget
-
29. Building applications
- 29.1. A trivial application
- 29.2. Populating the window
- 29.3. Opening files
- 29.4. A menu
- 29.5. A preference dialog
- 29.6. Adding a search bar
- 29.7. Adding a side bar
- 29.8. Properties
- 29.9. Header bar
-
30. Contributing
-
A. The RefPtr smartpointer
- A.1. Copying
- A.2. Dereferencing
- A.3. Casting
- A.4. Checking for nullptr
- A.5. Constness
- B. Signals
-
C. Creating your own signals
- C.1. Example
-
D. Comparison with other signalling systems
-
E. gtkmm and Win32
- F. Working with gtkmm's Source Code
-
G. Wrapping C Libraries with gmmproc
- G.1. The build structure
- G.2. Generating the .defs files.
- G.3. The .hg and .ccg files
- G.4. Hand-coded source files
- G.5. Initialization
- G.6. Problems in the C API.
- G.7. Documentation