SPG.MFC changelog
Version 3.4.3:
-------------
Bugs fixed:
- There could be a crash in certain circumstances when switching from categorized to sorted view.
- There could be a crash in GWCPropertiesCtrl::Clear() when calling it while the handle of the window has already been destroyed.
Version 3.4.2:
-------------
Bugs fixed:
- Calling Clear() from a toolbar button handler was causing a crash if an inplace control had the focus.
- Takes into account multiple monitors for placement of tooltips and dropdown listbox.
Enhancements:
- The library can now be compiled under VS2005.
Version 3.4.1:
-------------
Bugs fixed:
- Multiple checkboxes were not updating the underlying value correctly.
- When clearing the content of the grid, an internal structure for multiple selected items was not cleared.
- When the grid is not in a dialog, CTRL+... clipboard shortcuts were not working if some text was selected in the inplace control.
Enhancements:
- GWCCategoryItem::SetImageIndex() has been added.
Version 3.4:
-----------
Bugs fixed:
- LockRefresh/UnlockRefresh now maintains a counter to manager stacked calls.
- OnPropertyChanged was generated for radio buttons even if the value was not changed.
- OnPropertyChanged was not called when clicking on a spin button.
Enhancements:
- The updown feel can now be linked to more than integers: It can now manage booleans, floats, doubles and strings.
- A new notification has been added: OnPropertyBeginEdit. It is triggered as soon as something is changed in an inplace control, for example when a key is typed.
Version 3.3.2:
-------------
Bugs fixed:
- Typing the "prior" key could cause a crash in certain circumstances.
- Fixed the scrolling of properties when a multiline property is at the top (partly visible).
- Fixed SwapSiblingProperties.
- An Invalidate() call has been added in GWCInternalGrid::SetBkgColor().
- Added GWCPropertiesCtrl::GetMultiSelectionMode().
- Added GWCPropertiesCtrl::DoesShowComments().
- Added GWCPropertiesCtrl::DoesShowButtons().
- Fixed some "divide by 0" errors when no restricted values have been set on a property (checkboxes and radiobuttons).
- Focus rectangle was drawn for an inplace chekbox with no text.
Version 3.3.1:
-------------
Bugs fixed:
- Multi selected properties are now cleared when a property is deleted.
- Minor cosmetic bug: when resizing the comment area and moving the mouse quickly out of and in the control, the cursor could not be on the resizing line anymore.
- There was a crash if defining a default feel to the PropertyGrid and trying to create hotlink property items. It is now impossible to assign a feel to such property.
- When calling ClearRestrictedValues() on a property with an ENUM type, the existing enums were not properly deleted.
Enhancements:
- A new method SwapSiblingProperties has been added. It is very convenient when using the control for dynamic data and the user wants to change the order of sibling properties (with up and down arrows for example).
Version 3.3:
-----------
Bugs fixed:
- There was an infinite loop when creating a single hidden property under a category.
- It is now possible to delete the currently selected item while in the OnPropertyButtonClicked corresponding to this item. Trying that before this version caused a crash.
Enhancements:
- Multi-selection of the properties is now possible (it is OFF by default). It can be done under two modes: one can select any property in the control, the other one restricts the selection to properties on a given level and under.
- A new built-in drawing manager has been added. The class name is GWCLightColorDrawManager. The name comes from the gradient applied to the categories that have a better effect when the color is light.
- GWCPropertiesCtrl::OnEnableItem takes a new parameter (bool direct) which is true if the property is directly enabled or disabled with a click on a checkbox or by calling EnableItem, and which is false if it has been enabled or disabled because an ancestor has been enabled/disabled. If you have overriden this virtual method, you have to update your code with the new parameter.
Version 3.2:
-----------
Bugs fixed:
- GWCVisibleDeepIterator::operator--() could infinitely loop in certain circumstances.
- GWCPropertiesCtrl::ShowItem() can now be called even if the window has not been created.
- When using several instances of PropertyGrids, each one registering different property factories, the factories were improperly unregistered when deleting one of the PropertyGrid instances, leading to an undefined behaviour when reinstancing a new PropertyGrid and creating its properties.
Enhancements:
- Addition of a new multiline editbox feel.
- Addition of a new multicheckbox feel.
- It is now possible to assign a text next to a checkbox without having to create a drawing manager.
- The tooltip is now also handled for the radiobutton feel.
Version 3.1.2:
-------------
Bugs fixed:
- There was a conflict and therefore a crash when using several instances of PropertyGrids at the same time and in a certain way.
Version 3.1.1:
-------------
Bugs fixed:
- The iterator received in GWCPropertiesCtrl::OnHotLinkClicked was invalid and could cause a crash if dereferenced.
- On feels with an editbox, it was impossible to enter in edition mode with SHIFT + key.
- SHIFT + TAB was broken when the control was not in a dialog box.
- When a combobox has the focus (but closed), the keys up, down, home and end were not fully handled.
Version 3.1:
-----------
Enhancements:
- Cut/Copy/Paste in an editbox was only available when the PropertyGrid is in a dialog box. These features are now available even when the control is inside a window (a view or a controlbar for example).
- Addition of a new look: GWCPropertyIconLook. With it you can display an icon in front of any value. It can be used to display a bitmap or icon, but it can also be used in a lot of other situations, for example to display a status or a hint...
- A new notification virtual method has been added: OnPropertyValueBkgClicked. It is called when the user clicks inside a value but not inside a windows control.
- GWCPropertyValue::ClearRestrictedValues() added.
Bugs fixed:
- When typing a new value in an editable button inplace control and hitting the button without validating the value with ENTER, then the new value was not available in OnPropertyButtonClicked.
- The Hit test for the checkbox at the left of a property label was incorrect. In consequence, clicking the checkbox was only efficient on the far right of the box.
- There aw a crash when deleting a property whose one of the child properties is the currently selected item.
- One memory leak fixed.
Version 3.0:
-----------
Enhancements:
- Complete rewrite of the code dealing with the navigation API. Iterators have been introduced and the properties themselves don't contain pointers to other properties anymore. The hierarchy of properties is thus independant of the properties themselves.
- Addition of "group properties" that have a value and that have child properties that contain a part of the master value.
- Support of XP themes.
- Support of Right to Left languages.
- In any listbox, mouse moves are now tracked to highlight the underlying item.
- It is now possible to add properties (and thus inplace controls) with a height being a multiple of the base row height.
- Addition of a new radio-button feel.
- Addition of a new slider feel.
- A method AdjustLabelColumn() has been added to make the label column fit the widest property label.
- AdjustLabelColumn() is called when double-clicking the vertical line between the labels and the values.
- The SPACE and ENTER keys now toggle checkboxes for categories and for properties when there is no attached feel triggered by the key.
- The hotlink item is now highlighted when selected.
- '+' et '-' keys now expand and collapse categories.
- Notification "OnPropertyExpanded" added.
- Double click on label triggers the edition of the value (edit, button, ...).
- The cursors to move separation lines (the vertical one and the top of the comments box) have been changed to splitter cursors.
- ShowSorted has been replaced by ShowFlat(bool sorted) so that it's possible to have a no sorted linear list.
- Far left column can be hidden with ShowLeftBorder(false).
- TAB and Shift+TAB fully handled.
Bugs fixed:
- The inplace SpinCtrl is correctly redrawn when resizing the control.
- CTRL key or SHIFT key alone doesn't enter in edit mode on inplace controls with an edit box.
- Various other keyboard issues
- The ESCAPE key now correctly cancels input in an editbox by restoring the previous value.
- Fixed: two presses of the TAB key were necessary to go out of an editbox or a datetime control when it was entered with a mouse click.
- Fixed: the listbox portion of editable comboboxes didn't close itself when it was opened after having clicked the edit portion, then the combo arrow then another application
- Fixed drawing issues for hotkey and datetime controls.
- No need to set restricted values anymore for a boolean with a checkbox look when the data is managed by the value.
- The label rectangle was not correct for property with a "manually disable checkbox" creating display problems with text ellipsis.
- "Manually disabled checkboxes" are now correctly clipped inside their column (when moving the vertical separation line to the far left).
- When the value column is narrow, the listbox of comboboxes had the same narrow width. Now it fits the largest string inside.
- Calling SetStringValue() now correctly invalidates the control and the inplace control if any.
- Edition of RGB values now correctly checks the [0,255] boundaries.
- Hotkey: application accelerators are now correctly intercepted.
Version 2.6.1:
-------------
Bugs fixed:
- Crash when creating the control dynamically.
Version 2.6:
-----------
Enhancements:
- It is now possible to change the font of the whole control (properties, inplace controls and comment area)
- Keyboard : Alt down and Alt Up on an inplace combobox respectively open and close the listbox
- Keyboard : Up and Down arrows while in the edit control of a combobox, changes the selection in the listbox
- Keyboard : handling of the TAB key when the control is in a dialog
Bugs fixed:
- Fixed a memory leak
- The font assigned to the properties control was not assigned to the inplace datetime control
- Some edit boxes were not created with the style ES_AUTOHSCROLL
- If a value was being modified and you click on the scrollbar the new value was lost
- Removed the annoying beep when pressing ENTER (and now TAB). Surprisingly no customer complained ;)
Version 2.5:
-----------
Enhancements:
- Addition of a new feel (GWCFEEL_EDITSPIN): editbox + spin to be used with an integer value. Limits can be set by using the UDM_SETRANGE32 message
- New GWCPropertiesCtrl::DeleteProperty() method
- It is now possible to set the maximum number of strings to show in a combobox in-place control
Bugs fixed:
- If Clear() is called and the listbox in-place control is open, the list is still visible and a click on it crashes
- On a font property, tooltip could appearing even if the text is entirely visible
- When receiving the message WM_GWCINPLACE_SHOW, the parameter propertyId could be incorrect
- If the selected property is a combobox (editable) type property, typing on a key sets an incorrect focus, making the arrow keys unavailable to continue navigating the properties control. Now, if the property is a string (and not an index integer) typing a key enters correctly in the edit box for edition
Version 2.4:
-----------
Enhancements:
- Addition of a new Checkbox feel (must be attached to a boolean value and a checkbox look)
- Addition of a simple text value for categories (read-only)
- Addition of a new property type : the enumeration (works with comboboxes)
- Addition of the EnsureVisible method (to be tested)
- Addition of LockRefresh and UnlockRefresh methods
- Addition of a new list feel to implement custom drawn comboboxes
- Text color of properties can be changed (when unselected only for clarity)
- Addition of a new hotlink property
Bugs fixed:
- A font property is not displayed with the font value anymore. It gave some problems with the tooltip.
- When a combobox is open and the wheel is used, the content of the control is scrolled instead of the content of the combobox. The combobox was floating over the control as a result
- Same problem when a tooltip is visible.
- GWCFEEL_EDITBUTTON : the text of the edit box was not scrollable
- Colors now changes when system palette changes
- WS_CLIPCHILDREN was not forced when the control was in a dialog (producing flickering in
in-place controls)
- The tooltip was not always disappearing when moving the mouse to an in-place control below
the tooltip
- When used internally in a propertyValue, the hotkey variable is now set to 0 and the date/time
variable is set to the current date/time
- When a combobox is opened, if the user switches to another app (by click or alt+tab) and returns to
the app containing the properties control, the combobox can't be made visible again except if the user
clicks on another property and comes back to the combobox property
- Correct handling of the placement of the listbox of comboboxes (relative to the desktop working area)
- OnMouseWheel fixed to handle fast wheel movements
Version 2.3:
-----------
Considered the initial release regarding the changelog