Skip to content

November22

mdavisprog edited this page Dec 2, 2022 · 2 revisions

November 2022

Here is the list of updates for the month of November. Major improvements include changes to the Splitter and Table controls. The Splitter control now allows for more than two containers. The Table control now uses the Splitter control for its header and allowing for each column to be resizable. For a full list of updates, please refer to the commit history. Thanks to Waqar144 for providing additional support.

Code Base

The project is now compiled with the max warning levels and all warnings are now treated as errors. This is an effort to attempt to catch errors at compile time. The compilers that the code base has been tested against are MSVC, AppleClang, and GCC.

Combo Box

The minimum drop down size has been fixed to take into account scroll bar buttons if they are visible.

Control

The Control class now has the ability to forward mouse events to its parent if SetForwardMouseEvents is true. This is useful for containers which may wish to handle mouse events, but not have to provide a custom Control class in order to achieve this.

File Dialog

The file list in the File Dialog has been converted to be a table. This will allow for showing additional information about files such as type and file size, similar to how files are displayed in Window's Explorer or Mac's Finder.

List Box

Support for multi-selection. When enabled, multiple items can be selected while the control key is pressed. A new property 'MultiSelect' has been introduced to toggle this behavior. The Overview application has been updated to allow toggling this feature to test out the behavior.

Scroll Bar

Scroll bar movement has been fixed to now follow the mouse position. Previously, the scroll bar position was updated with the delta mouse movement, which would de-synchronize the the engagement point of the mouse with the scroll bar. With these changes, the scroll bar movement and mouse are now synchronized.

Splitter

The Splitter control has been updated to now support any number of containers. A new property 'Fit' has been added that will attempt to evenly fit all splitters within the full size of the container.

Table

The Table control has been refactored to now use a Splitter control to allow for adjustable column sizes. A new property 'RowSelectable' has been introduced to allow for an entire row to be selected.

Tools

Some improvements have been made to the tools interface.

Profile Viewer

Moved allocation of this control to the Tools interface and deprecated the static allocation.

Tree

The tree control has been fixed to now use the font height and potential icon width as the child offset. Previously, this value relied on the size of the container, but this required an initial layout to occur. Trees that are initialized with data at container initialization would not use the correct values for the offset.

Window

Custom title bars now support showing the focused state of the window. New theme properties Window_Focused and Window_Title_Focused have been introduced to set the background and text color when the window is focused.

Unit Tests

The following test suites have been added/updated:

  • ListBox
  • Splitter
  • Table

Clone this wiki locally