LibCXX Windows Library


LibCXX Windows Library
Installation, and requirements
I. Tutorial
1. LibCXX overview
2. Hello world!
Building example programs
Basic concepts
Display elements are reference-counted objects with smart pointers
Containers own references to the elements in the container
Connection threads and callbacks
Creator lambdas
Layout managers
3. Text labels
4. Word-wrapping labels
Preserving window positions
5. Input fields and buttons
Input fields
Using x::w::input_field
Password input fields
Shortcut activation
Element activation
Attaching application data to display elements
6. Date input fields
7. Validating input fields
Using on_validate()
8. The item layout manager
Using singleton objects
9. Input field spinners
Implementing spin buttons
10. Disabling input processing
11. Using focusable display elements
12. Checkboxes and radio buttons
Creating checkboxes and radio buttons
Button labels
Customizing x::w::image_button labels
Setting checkbox and radio button state
Getting checkbox and radio button state
13. The grid layout manager
Nested containers
Setting the size of grid rows and columns
Callbacks and captures
14. The page layout manager
15. The book layout manager
The book page factory
The on_opened callback
An appdata example
16. Selection lists
Creating a list layout manager
Selecting multiple items in a list, and callbacks
Enabling and disabling list items
Modifying the contents of a list
List locks
Lists with multiple columns
17. Tables
Creating a table layout manager
Adjustable tables
Adjusting table column widths using the keyboard
Preserving table columns' widths
18. Hierarchical lists
Creating a hierarchical list
List item hierarchical indentation
Image icons in selection lists
19. Standard and editable combo-boxes
Creating a standard combo-box layout manager
Retrieving the standard combo-box's current selection
Using the standard combo-box with a pointer or a keyboard
Locking the combo-box
Editable combo-boxes
20. Menus
The menu bar layout manager
Using the list layout manager with menus
Menu item attributes
Using the mouse pointer or the keyboard with menus
21. Context popup menus
Creating the contents of the context popup menu
Creating new context popup menus on demand
Keyboard shortcuts for context popup menus
22. Copy/Cut/Paste menu items
The on_popup_state_update callback
Determining whether a copy, cut, or paste operation is possible
Executing a copy, cut, or paste operation
23. The pane layout manager
Pane container's size
Creating new panes
Removing panes
Input focus and selection lists or tables
Configuring lists and tables in panes
Panes with synchronized lists
24. Dialogs
Dialog identifiers and configuration settings
Other dialog creation parameters
File dialogs
Showing and hiding dialogs
Modal dialogs
x::w::main_windows own references on their dialogs
Custom dialogs
Ad-hoc error message dialogs
25. Print Dialog
Using the print dialog
Another singleton example
26. Progress bars
27. Scroll-bars
Creating and configuring scroll-bars
Scroll-bar's current value
28. Font and color pickers
Creating font and color pickers
Using the font picker
Using the color picker
29. Toolbox Dialogs
Creating a toolbox layout manager
Initial dialog position
The on_stabilized() callback
Custom images for checkbox and radio buttons
II. Custom display elements
30. Introduction
Public and implementation objects
Implementing a custom display element
31. Custom x::w::canvas
Horizontal and vertical metrics
Mixin templates
Drawing custom display elements
Scratch buffers
Overriding process_button_event()
32. Custom x::w::element
Resizing a custom display element
33. Custom focusable x::w::element
Overriding keyboard_focus() and process_key_event()
Overriding elementObj::implObj's basic do_draw() method
Drawing the updated contents of a custom display element
Creating the standard input focus frame display element
Creating the standard input focus frame implementation object
The x::w::nonrecursive_visibilityObj template mixin
The x::w::always_visibleObj template mixin
The x::w::container_visibleObj template mixin
Creating the standard input focus frame public object
34. Custom x::w::container
The x::w::container_elementObj template mixin
Overriding pointer_focus()
35. Custom font rendering
Font collections
Theme font rendering
The x::themedim_elementObj template mixin.
Typical implementation of custom theme-aware custom display elements
III. Miscellaneous topics
36. Singleton windows
37. Connections and screens
Connection mcguffins
38. Connection threads and callbacks
Callback calling conventions
Callback invocations
Flushing the display buffers
39. Properties and debugging
Setting properties
Locked display when setting breakpoints in callbacks
Lockups at program startup
Lockups at program terminations
Windows no longer getting updated
A. Scalable X Graphics
Structure of an SXG file
Scaling and round-off errors
Scaling algorithm
Specifying fonts
Creating pictures
Creating solid color pictures
Defining a background color
Using theme colors
Using predefined locations and dimensions
Creating text pictures
Creating pixmaps
Graphic context commands
fill and clear
Picture render commands
tristrip and trifan
Example SXG file
Using XInclude with SXG files
B. Manual pages
cxxwtheme — Set default display theme for LibCXXW-based applications