mtollari 4db94043cb Patch level : 12.0 no-patch
Files correlati     : 
Commento            : Spostamento in libraries delle librerie esterne di Campo per una maggiore pulizia e organizzazione

git-svn-id: svn://10.65.10.50/branches/R_10_00@24150 c028cbd2-c16b-5b4b-a496-9718f37d4682
2017-10-26 09:11:15 +00:00

1105 lines
38 KiB
Plaintext
Raw Blame History

Version 1.4.13 ( Aug-22-2010 )
New Features:
- Added two new validation failure behavior flags:
wxPG_VFB_SHOW_MESSAGEBOX and
wxPG_VFB_SHOW_MESSAGE_ON_STATUSBAR
These allow defining exactly how the message display behavior works,
unlike the old wxPG_VFB_SHOW_MESSAGE which had inconsistent (default)
behavior (see bug #3024332).
- wxPython Bindings: Python 2.7 is now supported.
Bugs Fixed:
- Linking the library could fail if the program used wxPGProperty::Hide().
- Property label editor blocked basically all other keyboard activity.
- Validation failure was not (always) reset when a valid value was
entered after an invalid one (see bug #3024332).
- Validation failure message for wxIntProperty's min/max constraints
was sometimes incorrect (see bug #3024332).
- Redundant validation failure message boxes should no longer be shown
(see bug #3024332).
- wxPython bindings: Fixed DateProperty value conversion. Month was
off by one and it did not accept datetime.date as input (only accepted
datetime.datetime).
- wxPython Bindings: ChildChanged() was not properly implemented, so it was
not possible to create custom properties with private children (i.e.
things similar to SizeProperty and FontProperty).
Version 1.4.12 ( May-30-2010 )
Bugs Fixed:
- Various bugs in property label editors (some of which were rather fatal).
- Editing wxFontProperty with unspecified value caused wxPropertyGrid to
crash (resolves wxWidgets ticket #12086).
- Hiding property in OnSetValue() caused wxPropertyGrid to crash
(resolves wxWidgets ticket #11987).
- Calling wxPGProperty::Hide() crashed for unattached properties.
- wxPython bindings: Refactored GetValue(), GetPropertyValue()
(fixes bug #2977923).
- Some makefile problems introduced by switching to newer version of
Bakefile (for now, stick with 0.2.6 for everything except Visual Studio
project files).
- Always use non-bold font when drawing drop down items (resolves
wxWidgets ticket #12088).
Version 1.4.11 ( Mar-21-2010 )
New Features:
- Columns can now have custom proportions for auto-resize purposes. Use the
new SetColumnProportion(col, proportion) function.
wxPG_SPLITTER_AUTO_CENTER style must be used, and naturally it now also
works when the grid has more than two columns.
- Much improved Visual Studio project files have now been included, with
experimental win64 support.
Changes:
- Property selection is no longer cleared when adding new properties
(feature request #2942477).
- Property removal and deletion will now be postponed to idle time when it
is done from a wxPropertyGrid event handling (resolves bug #2953675).
Bugs Fixed:
- Value cell could be rendered incorrectly for properties with
'limited editing' enabled.
- wxPropertyGrid::CanClose() could crash if there was no property selected
(bug #2951533, fix by Andrey Kuznetsov).
- wxPropertyGridInterface::Enable/DisableProperty() would crash if called
for a property which did not belong to any grid (bug #2925499).
- SetChoices() could crash if called on a selected property (now the
property selection is cleared).
- Various bugs when re-positioning editors for columns other than 1 (for
example, property label editors).
- Property editors other than text ctrl based ones did not respect
wxPG_PROP_READONLY flag (bug #2940435).
- wxPython Bindings: Using validationInfo member functions in
ValidateValue() implementation of custom properties should no longer
complain about 'wxPGVFBFlags *' memory leaks.
Version 1.4.10 ( Jan-03-2010 )
New Features:
- wxPropertyGrid::SetUnspecifiedValueAppearance() can
now be used to set exact appearance of an unspecified
value. Argument is a wxPGCell, so custom text, colours
and font can be set.
Changes:
- Multi-selection now uses Shift and Ctrl keys more like
a native Windows list box (previously it used Shift for
selecting individual items).
Bugs Fixed:
- Crash on startup on OS X (bug #2915549).
- Editor focus code was usually not executed. This should
now be fixed, and for instance, when a wxTextCtrl based
editor gets a focus, all the contained text will be
selected.
- Unspecified value rendering was incorrect for various
property editors, such as check box.
- Setting property value to unspecified did not properly
refresh the editor control.
- wxPython bindings: setting control name in PropertyGrid
or PropertyGridManager __init__() or Create() did not
work.
- SetColumnCount() could crash if number of columns was
reduced.
Version 1.4.9.3 ( Dec-10-2009 )
Bugs Fixed:
- Fixed regression: wxPropertyGrid could crash if it was
created in its parent's constructor (bug #2907964).
- Fixed a possible crash if wxPG was initialized in an uncommon
manner.
Version 1.4.9.2 ( Nov-29-2009 )
Bugs Fixed:
- On some systems (at least Windows Vista) grid's horizontal size
could be incorrect and a horizontal scroll bar would appear
unintentionally (bug #2903390).
- Did not compile with GCC (bug #2905262).
- Some sample custom properties in test_propgrid.py were partially
broken (they incorrectly used 'true' instead of 'True').
Version 1.4.9.1 ( Nov-25-2009 )
Bugs Fixed:
- Fix to the empty space redraw bug that previous version addressed
was incomplete.
Version 1.4.9 ( Nov-24-2009 )
Bugs Fixed:
- Fixed regression: empty space below properties was rendered
with garbage when other windows were dragged over it.
- wxPython Bindings: PropertyGrid.SetPropertyValue() was not
present in the bindings.
Version 1.4.8 ( Nov-01-2009 )
New Features:
* wxPGCell class now has font support. Use SetFont() and GetFont()
member functions.
* Added flags argument to wxPropertyGrid member functions
SetPropertyBackgroundColour() and
SetPropertyTextColour()
Default value of this argument is wxPG_RECURSE and omitting it
will disable recursive colour assignment.
Bugs Fixed:
- Fixed serious regression that caused some property expander
buttons not to be drawn.
- Fixed various scrolling issues. This is done by changing the
internal scrollbar calculation to a sizer-based solution
(patch #2877550 by Josh Faust).
- Thaw() should no longer moves the scroll bar when reselecting
property that was selected prior to Freeze() call (bug
#2877568).
- wxArrayStringProperty had incorrect backslash escaping
(bug #2888013, fix by Mathias Dz.)
- wxPython bindings: various fixes to custom property class
code. StringToValue() and IntToValue() should now return
tuple (True, newValue) on success instead of just newValue.
- wxPython bindings: various fixes to custom property editor
creation, including code correction in the test_propgrid.py.
Version 1.4.7 ( Oct-04-2009 )
New Features:
- Multiple selection of properties. Enable by calling SetExtraStyle()
with wxPG_EX_MULTIPLE_SELECTION flag. Related new functions are:
AddToSelection()
GetSelectedProperties()
IsPropertySelected()
RemoveFromSelection()
In multiple selection mode, GetSelection() will now return
the property which has editor active (usually the first one
selected).
- Label editing is now possible. Related functions are:
MakeColumnEditable() - call this to allow user edit labels
BeginLabelEdit() - call this to open label editor manually
EndLabelEdit()
Related new events are:
wxEVT_PG_LABEL_EDIT_BEGIN
wxEVT_PG_LABEL_EDIT_ENDING
- Added extra style wxPG_EX_DISABLE_TLP_TRACKING. If you
experience crashes when using wxPropertyGrid with wxAUI or
similar system, then it is recommended that you use this
style.
Note that this style will be enabled by default in
wxWidgets 2.9.1 and later. There you will need to
explicitly set the extra style wxPG_EX_ENABLE_TLP_TRACKING
if you want the old default behavior.
- New wxPropertyGridManager flags (patch by Julian Smart):
wxPG_THEME_BORDER: Show alternative and more thematic border
around the wxPropertyGrid.
wxPG_NO_INTERNAL_BORDER: Do not show internal border around
the wxPropertyGrid.
wxPG_EX_NO_TOOLBAR_DIVIDER: Eliminate the divider above
wxPropertyGridManager tool bar on Windows (it may not
look good if there's already a border).
- Added wxFONTFAMILY_TELETYPE and wxFONTFAMILY_UNKNOWN support
for wxFontProperty.
Changes:
- Most wxPGProperty choice manipulation functions will now
show a run-time error if you try to use them with properties
which do not support choices. Only exception is
wxPGProperty::GetChoiceCount(), which still works as before.
Bugs Fixed:
- Possible crash if property was deleted via a command in
user-defined context menu.
- wxMAC: Various UI layout fixes by Julian Smart.
- wxPGProperty::SetName() crashed if called before property
was added to a grid.
- wxPython bindings: wxPropertyGridHitTestResult did not
work correctly.
- GCC static linking of the sample app did not work
(library order was incorrect in configure.ac).
- Property iterators crashed if iterating through
'non-interesting' properties at the edges of grid.
- wxEditEnumProperty's initial string value could not
be outside the list of choices.
- There were few severe mistakes in the documentation,
specifically in custom properties section.
Version 1.4.6 ( Jul-12-2009 )
New Features:
- Added wxPGProperty::SetDefaultValue(). Synonymous to
SetAttribute(wxT("DefaultValue"), value);
Changes:
- When re-parenting the wxPropertyGrid indirectly (that is, by
calling Reparent() of any of its parent window), you are
recommended to call a new function
wxPropertyGrid::OnTLPChanging(newTLP). It is not strictly
necessary though, as there is idle-time detection. However,
it cannot do perfect job.
Bugs Fixed:
- Crashes if re-parented (bug #2802740).
- Colour property attribute wxPG_COLOUR_ALLOW_CUSTOM did not
work correctly.
- wxPython bindings: SWIG was not fully aware how to destroy
wxColourPropertyValue objects.
- wxPython bindings: Fixed a possible crash-on-startup scenario
(which occurred consistently on specific app setups).
- wxPython bindings: Back ported numerous wxVariant-conversion
related fixes from wxWidgets 2.9.
Version 1.4.5 ( May-17-2009 )
New Features:
- Added wxPropertyGrid::IsEditorFocused().
- Added wxPGChoices::Copy() for convenient creation of real copies
(should help to cope with bug #2537131).
- Included some translations in locale directory. Note that these
message catalogs are not installed in any way at this time.
Current translations include:
Finnish by yours truly
Italian by Salvatore Isaja
Polish by AmiArt
- wxPython bindings for Python 2.6.
Changes:
- Property grid and any editor control are now always refreshed by
default when property value is changed.
- Property value images are no longer shrinked horizontally.
- wxPGProperty::AddChild() is now protected, and should (as it should
always have) be only called from ctor of a derived property class.
You can use new wxPGProperty member functions AppendChild() and
InsertChild() to safely add child properties. Also, there is
AddPrivatechild() if you really need to call AddChild() outside of
a property (but only use it if you know what you are doing).
Bugs Fixed:
- Splitters were not repainted when other windows were being moved over
the grid.
- wxPropertyGridManager description text box was sometimes drawn
incorrectly when other windows werer being moved over it.
- Changing SpinCtrl editor value with Page Up and Page Down keys could
cause grid to scroll (at least under wxGTK).
- Now when grid client width is reduced, the column which is made more
narrow is always the last one instead of the widest one, even when
wxPG_SPLITTER_AUTO_CENTER window style is used (fixes bug #2645749,
"Splitter moves when changing wxPropertyGrid height").
- Should now really have fixed problems Vetoing wxEVT_PG_CHANGING with
Choice or ComboBox editors (issue #1 of bug #2493542).
- wxPropertyGrid's virtual height given to scroll bar was overestimated,
roughly by one property (bug #2636552).
- Overriding wxPropertyGridManager::CreatePropertyGrid() did not work.
Added note to docs that you may need to use two-stage creation to
make this work (bug #2543991).
- Fixed an old wxMac font issue (bug #1396167).
- wxPropertyGridPage::Clear() and wxPropertyGridManager::Clear() now
more consistently clear selection before operating (wxTrac ticket
#10497).
- wxPGChoices::GetCount() should now work always (bug #2592692).
- wxPGMultiButton now works even if primary editor control (which
usually is wxTextCtrl) was not created in wxPGEditor::CreateControls().
- Fixed some spurious splitter movement if grid size was somehow
changed too soon after its creation.
- Reading property name from XRC usually failed (bug #2787863, fix
by Knut).
- Disabled properties could not be expanded or collapsed via keyboard.
(while they still could be expanded/collpsed by clicking the expander
button).
- It was possible to cut from and paste into read-only text properties.
- wxPropertyGrid::GetPropertyBackgroundColour() returned inaccurate
value for category properties.
- wxPropertyGridInterface::SetPropertyReadOnly() with wxPG_DONT_RECURSE
flag didn't do anything.
Version 1.4.4 ( Jan-18-2009 )
New Features:
- Added virtual member function wxPGProperty::OnValidationFailure().
- Added wxPGProperty::DeleteChildren() (fixes bug #2454044).
- Added wxPropertyGrid::RefreshEditor() (does the same as wxPGProperty
RefreshEditor()).
Changes:
- In unspecified value state, selected check box editor will now appear
as a faint rectangle.
- Using wxDP_ALLOWNONE in wxDateProperty's "PickerStyle" attribute
will now enable additional support for unspecified property value
(addresses issue #3 presented in bug report #2493542).
Bugs Fixed:
- There were various situations where deleting properties left
the grid in inconsistent state.
- Fixed crash when expanding/collapsing categories too quickly
(bug #2462471, fix by biggske).
- Splitter was not visible for nested categories.
- Fully conform to the documented statement according to which
names of properties with non-root, non-category parent are not
stored in the per-page hash map.
- Vetoing wxEVT_PG_CHANGING did not really work if editor was
Choice or ComboBox (issue #1 of bug #2493542).
- wxPGProperty::RefreshEditor() will now update editor's font
based on modified-status of a property (bug #2473166).
- wxPGProperty::RefreshEditor() did not update check box
editor correctly (bug #2477359).
- It was not possible to change child bool property by editing
text of a parent (bug #2479469).
- Fixed a possible crash in wxPGProperty::StringToValue() that
could be caused by user editing text value of a property with
nested children.
- SetPropertyValueUnspecified(p) was out-of-sync with
p->SetValue(wxNullVariant) (bug #2490332, also resolves issue
#2 presented in #2493542).
- Default Sort function used case-sensitive string comparison.
- Fixed a bunch of compiler warnings (bug #2473143).
Version 1.4.3 ( Dec-14-2008 )
New Features:
- Added RemoveProperty() member function in wxPropertyGridInterface.
Unlike DeleteProperty(), it does not actually delete the property
object (feature request #2411896).
Changes:
- SpinCtrl's "value change by motion" feature (introduced in previous
version) is now disabled by default. Enable on a property basis
by setting "MotionSpin" to 1 or true. Also, due to problems, it is
now only supported on Windows platforms.
Bugs Fixed:
- Critical SpinCtrl bug fix (wxGTK only).
Version 1.4.2 ( Dec-07-2008 )
New Features:
- Property sort order can be customized by calling wxPropertyGrid::
SetSortFunction(). Function has following signature:
int sortfunc(wxPropertyGrid*, wxPGProperty*, wxPGProperty*);
(feature request #2397071).
- wxSpinCtrl editor can now be used to adjust the property value by
moving mouse vertically when one of the spin buttons is held down
(patch by Terry Farnham).
Bugs Fixed:
- Editor value validation on implicit clear selection has now been
removed (fixes bug #2221099). It is now application's responsibility
to call, if needed, CommitChangesFromEditor() before adding or
removing properties.
- wxPropertyGrid could crash when created in a wxDialog.
- DatePickerCtrl editor could crash if property had unspecified or
otherwise incompatible value (bug #2338976).
- Background colour of description box static texts should no longer be
incorrect (bug #2377983, patch by AmiArt).
- Windows CE build error in advprops.cpp.
Version 1.4.1 ( Nov-02-2008 )
Bugs Fixed:
- wxFontProperty == operator was unnecessarily reimplemented
(bug #2189626).
- On some platforms (at least wxGTK), changing selected property could
cause focus to be lost from wxPropertyGrid (bug #2159094).
- Toggling wxPG_DESCRIPTION window style did not take selected property
into account (bug #2159069).
- In wxPropertyGridManager, alphabetic mode is now sorted even if
wxPG_AUTO_SORT flag is absent (bug #2162053).
- User should no longer be able to modify disabled or read only child
properties by editing their parent (bug #2181860).
- It was not possible to set value of unspecified child by editing
parent's composite string (bug #2186553).
- In composed string values, entry for last children was often omitted
if it was empty (and possibly unspecified, bug #2197916).
- Proper wxVariantData::Eq() implementation (fixes bug #2190259).
- Eliminated 64-bit build warnings (bug #2156069).
- wxPropertyGridIterator can now be copied and assigned to
wxPropertyGridConstIterator.
Version 1.4.0 ( Oct-5-2008 )
This is beginning of a new stable branch. wxPropertyGrid API will
not be changed in any upcoming 1.4.x releases. In addition, new
features and internal changes will be kept at minimum to improve
stability.
NOTE ON WXWIDGETS SVN TRUNK(2.9+) COMPATIBILITY: wxPropertyGrid is
already part of wxWidgets 2.9 and later. Attempt to use this separate
component unmodified will result in compilation failures.
NOTE ON WXWIDGETS 2.6 COMPATIBILITY: This version will not work
properly with wxWidgets 2.6.x, unless wxVariant is patched to have
reference counting. See readme in directory 'patch_wx26' for
details.
New Features (compared to previous stable version, 1.2.12.
List of changes compared to latest development
release, 1.3.8, are at the bottom):
- You can set cell text, bitmap, and colours, of any column of any
property (including category captions), using wxPropertyGrid::SetPropertyCell().
- You can now have more than two columns.
- Property attribute names are now strings instead of ints. Old
attribute defines will work however, as they have been properly
adjusted. Also, arbitrary attributes can now be added to
properties.
- You can specify default values on property-basis by setting
"DefaultValue" attribute.
- New event: wxEVT_PG_CHANGING. It is dispatched just before a
property value is about to change, and can be Veto()ed to abort
the change. Pending value can be acquired using
wxPropertyGridEvent::GetValue().
- wxPGChoices now supports bitmaps, text colour and background
colour. They can be set by calling wxPGChoiceEntry::SetBitmap()
etc.
- wxIntProperty now supports and automatically uses wxLongLong,
when necessary.
- wxUIntProperty now supports and automatically uses wxULongLong,
when necessary.
- Editors can have multiple buttons (an arbitrary mix of wxButtons
and wxBitmapButtons is possible).
- XRC support. You need to link samples/xh_propgrid.cpp with your
app. Also requires wxWidgets 2.8.0+. Note that xh_propgrid.h is
located in include/wx/propgrid.
- Added ability to save and restore user-editable state
(selection, scroll position, splitter position, set of expanded
properties, and current page). Use SaveEditableState() and
RestoreEditableState(), which both work with wxString value.
- Added wxPropertyGrid::SetValidationFailureBehavior(), for
setting behavior when user enters an invalid value in property.
New validation failure behavior includes beep, marking cell
red, and displaying text message.
- New extra window style wxPG_EX_UNFOCUS_ON_ENTER. Using it causes
keyboard focus to be released from text editor when enter is
pressed.
- wxIntProperty, wxUIntProperty and wxFloatProperty now support
attributes "Min" and "Max" (long, double, and longlong values
are supported). SpinCtrl editor recognizes these attributes.
- SpinCtrl editor supports "Step" attribute, which controls how
much value changes when arrow buttons are pressed.
- SpinCtrl editor supports "Wrap" attribute, which when set to
true will cause value to wrap around at "Min" and "Max".
- Added inline help attribute, which displays given text in value
cell when text is otherwise empty. To use, set "InlineHelp"
attribute, with string value, to a property.
- Added "Units" attribute. This string is displayed behind
displayed property value, or in third column, if enabled.
- Added wxPropertyGrid::ChangePropertyValue(), which is similar
to SetPropertyValue() but also runs validation process and
sends property change event.
- Added extra style wxPG_EX_HIDE_PAGE_BUTTONS which allows hiding
page selector buttons on wxPropertyGridManager toolbar.
- For true/false values, properties in general now support bools
in addition to integer ones.
- SpinCtrl editor supports up, down, pageup and pagedown keys.
- GetPropertiesWithFlags() and SetPropertiesFlags() for getting
and setting specific flag of many properties at once. Useful, eg.,
for acquiring list of all expanded properties. However, using
them directly is not necessary as utility functions
GetExpandedProperties() and SetExpandedProperties() have also
been added.
- Added wxPGProperty::GetFullName() (patch #1774780 by Viacheslav
Tararin).
- AddActionTrigger(), ClearActionTriggers(), to add keyboard
event to action triggers (SetActionTrigger() is removed).
- Displayed value of property without text ctrl is copied
when Ctrl-C or Ctrl-Insert is pressed (you can also add
or set your own triggers using feature mentioned above).
- Added FitColumns() member function, which minimizes
column sizes based on size of cell contents.
- Added wxPropertyGrid methods SetEmptySpaceColour() and
GetEmptySpaceColour().
Changes (compared to 1.2.12):
- Various internal changes have been made to reduce library code
size, simplify creation of user properties, and to have graphics
update in more consistent manner.
- The excellent wxCode build system is now used. As a result,
wxPropertyGrid can now be built stand alone on both Windows
and Linux.
- Factory functions are no longer used to instantiate properties.
Instead, property class names now lack 'Class' and new instances
are created with 'new' operator. For instance:
1.2.x:
pg->Append( wxStringProperty(wxT("Label"), wxT("Name"),
wxT("Value")) );
1.3.0:
pg->Append( new wxStringProperty(wxT("Label"), wxT("Name"),
wxT("Value")) );
Class bodies of all usable properties are now found in props.h
and advprops.h.
- wxVariant is now used internally to store property values.
- wxPGProperty now inherits from wxObject. Also, it is now an
abstract class.
- wxPGId is now a simply a typedef of wxPGProperty*. This means,
for instance, that to check if "id" is ok, you only need to
check if the pointer is not NULL.
- wxAdv library is now a dependency.
- In wxWidgets 2.8.0 and newer, built-in wxOwnerDrawnComboBox is
now used.
- wxPropertyContainerMethods is now wxPropertyGridInterface. Typedef has
been added to improve backwards compatibility.
- Deprecated 'target' page manipulating functions in wxPropertyGridManager.
Instead, you should use GetPage() and functions of resulting
wxPropertyGridPage object. wxPropertyGridManager's methods that
only affect single page now affect the selected page.
- wxColour cannot be retrieved using GetPropertyValueAsWxObjectPtr!!!
(atleast not in wxWidgets 2.8.x).
Instead use code like this:
wxVariant variant = pg->GetPropertyValue();
wxColour colour << variant;
- Setting property value programmatically now updates the editor
control, if active (bug #1774793).
- New class wxPGEditorDialogAdapter and virtual wxPGProperty::GetEditorDialog()
help in using same dialog generation code with properties with
different base classes.
- In wxPropertyGridManager, each page tracks its own splitter
positions.
- Wherever possible, GetValue functions return actual type instead
of reference.
- Appearance of expand/collapse buttons can be customized by
implementing wxPropertyGrid::DrawExpanderButton() in a derived
class.
- Intermediate "canvas" wxPanel is used in the wxScrolledWindow.
This should eliminate pretty much all remaining graphics glitches
that could occur when resizing the control.
- Iteration of properties should new be more consistent with
somewhat STL'ish wxPropertyGridIterator classes.
- Properties no longer cannot have empty names.
- Some item iteration functions replaced with a version that accepts
iterator flags as argument (for instance, GetLastProperty is now
GetLastItem, but not all names have changed).
- wxPGProperty::GetAttributes() now simply returns reference to
m_attributes member (which of type wxPGAttributeStorage).
- wxPropertyGrid::GetPropertyValues() can now also return property
attributes (if flag wxPG_INC_ATTRIBUTES is provided). They are
returned as list variants with name "@<propname>@attr".
- New extra style: wxPG_EX_TRADITIONAL_VALIDATORS. When used,
validators will work with editor controls like they do in
wxWidgets itself.
- wxPropertyGridPopulator has been completely rearranged for maximum
usability with wxPropertyGridXmlHandler.
- Removed compactor button and property priority system.
- Delete() -> DeleteProperty().
- SetPropertyUnspecified() -> SetPropertyValueUnspecified()
- wxPG_EX_GREY_LABEL_WHEN_DISABLED is always enabled. The actual
macro define is now zero and deprecated.
- wxPG_EX_PROCESS_EVENTS_IMMEDIATELY is always enabled. The actual
macro define is now zero and deprecated.
- wxPG_INCLUDE_ADVPROPS can now be defined as 0 in project options
or command-line to exclude "advanced" properties such as
wxFontProperty and wxCursorProperty from compilation.
- wxPG_INCLUDE_MANAGER can now be defined as 0 in project options
or command-line to exclude wxPropertyGridManager from compilation.
- wxPG_VERSION replaced with wxCode-style version macros (ie. you
can now use wxCHECK_PROPGRID_VERSION).
- wxPG_EX_TRADITIONAL_VALIDATORS is now default behavior. Use new
extra style wxPG_EX_LEGACY_VALIDATORS to revert to wxPG 1.2
validator usage.
- wxMultiChoiceProperty now uses wxArrayString as value type.
You can still acquire list of values by calling
wxMultiChoiceProperty::GetValueAsArrayInt().
- wxMultiChoiceProperty now supports attribute "UserStringMode".
Default is 0, but if set to 1 or 2, user can enter arbitrary
strings in addition to those in the list of choices.
- wxBoolProperty's string representation is now '[not]label'
instead of 'true/false' when in composite strings. This
should be more readable.
- wxBoolProperty's string representation is now empty string
when false, in composite strings of uneditable (ie. readonly)
properties. This is demonstrated in new 'wxWidgets traits'
sample property on third page of sample app.
- Added GetProperty() as alias for GetPropertyByName().
- Auto unspecified now works on a property basis. Use code
like this to enable:
pg->GetProperty(propName)->SetFlag(wxPG_PROP_AUTO_UNSPECIFIED);
- Oversized bitmaps are no longer drawn in the property grid
itself, or in editor control.
wxPython Bindings Related Changes:
- PyObjectFromVariant() and related '<<' operator now returns new
reference (ie. it calls Py_INCREF).
Changes Only Relevant to Property and Editor Developers:
- wxPGVariant no longer exists. As a consequence, virtual method
DoGetValue now returns wxVariant.
- Class wxPGPropertyWithChildren has been merged with wxPGProperty.
This change should be only a minor detail, even to custom
property developers.
- As a consequence to above change, wxParentProperty has been
removed (or, more accurately, is now typedef of wxStringProperty).
If you need the old displayed value composition behavior, use
string wxT("<composed>") as value.
Now as a rule of thumb, properties which parent is not root
property or category, are now globally accessible (by name) only
with 'ParentName.ChildName' notation, where ParentName is name
of parent property, and ChildName is the name of property given
in constructor. wxPGProperty::GetName() will return name
in this format as well, where appropriate.
- DoSetValue has been splitted into two new functions:
bool ValidateValue(wxVariant&) const, which should validate the
value, and OnSetValue() which can do some value-change related
post-processing, including conversion.
- Virtual SetValueFromString is replaced by StringToValue which
does not change the value, but just the new one. SetValueFromString()
still exists as non-virtual setter function.
- Virtual SetValueFromInt is replaced by StringToValue which does
not change the value, but just the new one. SetValueFromInt()
still exists as non-virtual setter function.
- wxPGPropertyWithChildren::ChildChanged(wxPGProperty* property)
has been changed to:
void wxPGProperty::ChildChanged( wxVariant& thisValue, int childIndex,
wxVariant& childValue ) const = 0;
It is now supposed to modify 'thisValue' instead of m_value and use
given childValue instead of manually fetching one from the child.
- wxPGValueType no longer exists. Internal wxVariants and attribute
system are supposed to replace the missing functionality.
- wxPGClassInfo no longer exists. wxObject classinfo facilities
are to be used instead.
- A completely new custom rendering system. You can use new
wxPGProperty method GetCellRenderer to return wxPGCellRenderer
instance. OnCustomPaint will still work, assuming you change
GetImageSize correctly (see below).
- The basic WX_PG_DECLARE_PROPERTY macros are no longer used.
Instead, now you need to place property class into the header.
- GetImageSize has been replaced by OnMeasureImage, which is
similar except it also has "int item" argument (for measuring
list items). GetImageSize itself is now a deprecated method.
Overriding it will cause run-time assertion failure.
- wxPGChoiceInfo now only has wxPGChoices* m_choices member.
- virtual SetAttribute method removed. bool DoSetAttribute( const
wxString& name, wxVariant& value ) and wxVariant DoGetAttribute()
const replace the functionality.
- In order to support wxEVT_PG_CHANGING, wxPGProperty::OnEvent(),
and wxLongStringProperty::OnButtonClick() should now use new
method wxPGProperty::SetValueInEvent(value) to change property
value, based on received user input.
- Atleast one constructor of property class needs to have default
value specified for all arguments (you can use wxPG_LABEL for
both name and label).
- wx(Base)EnumProperty::m_index is made private. Use
GetIndex/SetIndex to manipulate it in derived classes.
- Property flag wxPG_PROP_UNSPECIFIED is no longer used to
indicate that the property value is unspecified. Instead, Null
variant is set as value.
- WX_PG_DECLARE_PROPERTY_CLASS now requires class name as argument
(so it is used similar to DECLARE_DYNAMIC_CLASS).
- WX_PG_DECLARE_EDITOR_CLASS now requires class name as argument
(so it is used similar to DECLARE_DYNAMIC_CLASS).
- WX_PG_DECLARE_DERIVED_PROPERTY_CLASS and
WX_PG_IMPLEMENT_DERIVED_PROPERTY_CLASS macros are deprecated.
In new code, use DECLARE_DYNAMIC_CLASS and
IMPLEMENT_DYNAMIC_CLASS instead.
- WX_PG_DECLARE_PARENTAL_TYPE_METHODS macro is removed, as
it would no longer declare any functions.
- wxPGEditor::CreateControls now has return value of type
wxPGWindowList, which is used to return primary and secondary
wxWindows. The old writeback pointer has naturally been removed
from the argument list.
- wxPGEditor::CreateControls must now use propGrid->GetPanel() as
the parent for controls instead of plain propGrid. Runtime
assertion failure will otherwise result.
- wxPGEditor::DrawValue argument list changed to (dc, rect,
property, text).
- CopyValueFromControl() replaced with GetValueFromControl(),
which is supposed to return wxVariant value instead of setting
it.
- Control pointer (wxWindow* primary and the kind) passed to
property methods is now always the actual control instead of
clipper window.
- You can create editors with fixed width by adding following code
to CreateControls(): propGrid->SetInternalFlag( wxPG_FL_FIXED_WIDTH_EDITOR );
- wxPGEditor methods SetValueToUnspecified(), SetControlStringValue(),
and SetControlIntValue() now have additional argument (in first
position): wxPGProperty*.
- wxPGSpinCtrlEditor class declaration is now available
in advprops.h.
New Features (compared to version 1.3.8):
- New extra window style wxPG_EX_UNFOCUS_ON_ENTER. Using it causes
keyboard focus to be released from text editor when enter is
pressed. Note that this behavior is probably going to be on by
default in wxPropertyGrid in wxWidgets 2.9.
- AddActionTrigger(), ClearActionTriggers(), to add keyboard
event to action triggers (SetActionTrigger() is removed).
- Displayed value of property without text ctrl is copied
when Ctrl-C or Ctrl-Insert is pressed (you can also add
or set your own triggers using feature mentioned above).
Changes (compared to version 1.3.8):
- wxPropertyGrid editable state save and restore system has been
changed. It now works with wxString alone, without any intermediate
storage class. In other words, SaveEditableState() now simply returns
wxString that can be fed to RestoreEditableState.
- Setting wxPropertyGridManager window style after control has been
created can now be used to show and hide description text box (by
supplying or omitting wxPG_DESCRIPTION style).
- wxPropertyContainerMethods is now wxPropertyGridInterface. Typedef has
been added to improve backwards compatibility.
- Properties can no longer have empty names.
Bugs Fixed (compared to version 1.3.8):
- Behavior specified by wxPG_EX_AUTO_UNSPECIFIED_VALUES was basically
always enabled.
- wxPropertyGridManager::GetDescBoxHeight() returned inconsistent
value.
- Pressing esc when keyboard focus was in property text editor could
crash on some platforms (at least Linux, bug #2138858).
- Many properties failed to work properly with unspecified value
(bug #2128485).
- Settings property attribute to wxNullVariant would cause
GetAttribute() to fail (bug #2128485).
- wxPGProperty::OnEvent() was never called if primary editor
window was NULL (as could be if limited editing was used).
- Select all from keyboard (Ctrl-A) did not work in embedded
wxTextCtrl editor (bug #2130285).
- 'Exiting' editor control with ESC did not work properly.
- Under wxGTK buttons should now display '...' text more
consistently (note that they may now appear slightly wider
on smaller font sizes).
- Using properties with identical labels under same composed
parent led to strange value update behavior (thanks Gr<47>gory
Jaegy).
- Changing property value in property's dialog could result in
crash under wxGTK.
- wxPython bindings: wxPropertyContainerMethods.GetVIterator()
usually crashed due to fatal bug in wxPGVIterator copy ctor.
- Cut, copy, and paste from keyboard did not work in
embedded wxTextCtrl editor. Now should work atleast on
Windows.
- Even selecting property with datepicker editor could cause
program to crash.
- Setting property value string did not update children of
composed parent.
- Showing popup menu on wxPropertyGrid caused crash
(fix by Gr<47>gory Jaegy).
- wxPGTextCtrlEditor::UpdateControl() destroyed property's
value if it had flags wxPG_PROP_PASSWORD (bug #2046081, fix
by Nicholas John).