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. Filtered input fields
The on_filter() callback
Filtering cursor movements
Using on_default_filter()
on_default_filter() requirements
9. Static tooltips
Creating and destroying static tooltips
10. The item layout manager
Using singleton objects
11. Input field spinners
Implementing spin buttons
12. Disabling input processing
13. Using focusable display elements
14. 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
15. The grid layout manager
Nested containers
Setting the size of grid rows and columns
Callbacks and captures
16. The border layout manager
Creating a border with an optional title
Setting the border title
17. The page layout manager
18. The book layout manager
The book page factory
The on_opened callback
An appdata example
19. 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
20. Tables
Creating a table layout manager
Adjustable tables
Adjusting table column widths using the keyboard
Preserving table columns' widths
21. Hierarchical lists
Creating a hierarchical list
List item hierarchical indentation
Image icons in selection lists
22. 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
23. Search fields
Creating a search field
The search callback thread
Aborting searches
Processing search results
24. 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
25. Context popup menus
Creating the contents of the context popup menu
Creating new context popup menus on demand
Keyboard shortcuts for context popup menus
26. Copy/Cut/Paste menu items
Application menus with copy, cut, and paste items
Context menu popups with copy, cut, and paste items
27. 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
28. The peephole layout manager
Creating a peephole
Specifying the peephole's size
Ensuring visibility of display elements in a peephole
29. 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
30. Print Dialog
Using the print dialog
Another singleton example
31. Progress bars
32. Scroll-bars
Creating and configuring scroll-bars
Scroll-bar's current value
33. Font and color pickers
Creating font and color pickers
Using the font picker
Using the color picker
34. 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
35. Introduction
Public and implementation objects
Implementing a custom display element
36. Custom x::w::canvas
Horizontal and vertical metrics
Mixin templates
Drawing custom display elements
Scratch buffers
Overriding process_button_event()
37. Custom x::w::element
Resizing a custom display element
38. 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
39. Custom x::w::container
The x::w::container_elementObj template mixin
Overriding pointer_focus()
40. 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
41. Singleton windows
42. Connections and screens
Connection mcguffins
43. Connection threads and callbacks
Callback calling conventions
Callback invocations
Flushing the display buffers
44. 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