📄 changes-propgrid.txt
字号:
Bugs Fixed:
- Following properties crashed when running their dialogs when using
limited editing option: wxLongStringProperty, wxDirProperty, wxFontProperty,
wxFileProperty, wxImageFileProperty.
- Native controls: When editor class did not create a control (in case of
limited editing, for example), there would always be a crash.
- Since native wxTextCtrl::SetValue generates change event, setting value to
unspecified cleared property's value and sent property change event.
- wxGTK wxCCustomButton: Moving mouse cursor from combo button to combo popup
didn't remove hilighted status of that button.
- wxFileProperty: Default file was unintentionally set to "*.XXX"
(Chris Garrett).
- wxFontDataProperty: When changing colour directly in the textctrl editor,
colour value was not assigned correctly (resulted in assertion failure).
- Graphics glitch involving a property with a button in limited editing mode.
Version 0.9.9.1 ( Jan-11-2005 )
Changes:
- Checkbox: wxDC::DrawCheckMark is now used to render much better check mark
graphics.
- Checkbox: An extra surrounding rectangle is drawn with wxDOT style to
indicate when it is focused (this looks like a short dash on wxMSW - if
anyone knows why, please tell me).
- Checkbox: When property value is modified (and wxPG_BOLD_MODIFIED style is
used), control's rectangle surrounding the check mark is drawn with 2-pixel
wide line.
Bugs Fixed:
- wxEVT_KEY_XXX were not properly skipped, causing wxEVT_CHAR not to trigger.
This meant it was impossible to write any text in wxCCustomTextCtrl
(Vladimir Vainer).
- In various places in code, calls to Editor->SetControlValue did not check
for NULL editor control. This meant horrible amount of crashes in some
scenarios (Vladimir Vainer).
- wxEVT_PG_CHANGED did not usually occur when changing value of an
unspecified property for the first time.
Version 0.9.9 ( Jan-10-2005 )
New Features:
- Unspecified values are now supported. This is a virtual system only, so
internally the value stays the same. Only the displayed value is different.
Use new methods listed below (thanks to Andrew B for suggesting this feature).
- Property specific background colours are now supported. Use new methods listed
below. Also note that SetCategoryColour/GetCategoryColour are removed, but
identical results can be obtained by using new methods.
- CheckBox editor class, as an alternate to Choice used with wxBoolProperty.
Use SetPropertyAttribute(id/name,wxPG_BOOL_USE_CHECKBOX,1) to enable it
for a single property. Set optional flags argument to wxALSO_CHILDREN
for all child bool properties to use it as well.
- Native control support is back, better than ever! Custom controls are still
used by the default, but that should change by setting define
wxPG_USE_CUSTOM_CONTROLS=0 in the library project settings.
NOTE: There are changes to property class system (including implementation of
wxFontDataProperty, wxSizeProperty and wxPointProperty examples). See
"Internal changes of note" below for details.
GTK NOTE: If using native controls with wxGTK <= 2.5.3, then please apply the
following patch. If not, then controls will have excess border and due to
that potentially alignment problems.
https://sourceforge.net/tracker/index.php?func=detail&aid=1098374&group_id=9863&atid=309863
New Methods:
- SetPropertyValueUnspecified(id/name): Sets value of property to "unspecified".
Children are processed too, so to set everything call with GetRoot() as arg.
Internally value is not modified, but for the user it should seem like nothing
is set.
- IsPropertyValueUnspecified(id/name): Returns TRUE if property's value was
set to "unspecified".
- SetPropertyColour(id/name,wxcolour): Sets custom background colour to a property
and all of its children. Can be used on categories as well.
- GetPropertyColour(id/name): Returns background colour of a property.
- SetPropertyColourToDefault(id/name): Reverts colour of property and its children
to the current default cell background colour (set using SetCellBackgroundColour).
- SetPropertyAttribute(id/name,attrid,value,[flags]): Sets a property class/instance
specific attribute, such as wxFloatProperty precision. Flags can be wxALSO_CHILDREN
which causes attribute to be set to all children as well.
- wxPropertyGrid::GetFontHeight(): Returns maximum vertical extent used by
the current font.
Name Changes:
- SetCategoryColour -> SetPropertyColour
- SetCategoryColourToDefault -> SetPropertyColourToDefault
- GetCategoryColour -> GetPropertyColour
Other Changes:
- Added following methods, previously only available in wxPropertyGrid,
to wxPropertyGridManager as well: EnableCategories, EnsureVisible, GetFirst,
GetLastChild, GetPrevSibling, GetPropertyClassName, GetPropertyHelpString,
GetPropertyValueType, InitAllTypeHandlers, IsPropertyValueType, Sort.
- Native controls that had borders even when wxNO_BORDER style was used
now use another wxWindow to clip them (thanks to Vadim Zeitlin for suggesting this).
- Custom choice selection "marker" changed to better mimic the native control
(i.e. now blue background when selected, instead of black rectangle drawn
with wxDOT pen style).
- wxCCustomTextCtrl: HitTest performance and accuracy significantly improved.
- wxGTK: Custom button pressed state colour corrected. Also added more
authentic drop-down arrow.
- wxPropertyGridManager: Changed the built-in icons. Define wxPG_USE_DOTNET_ICONS=1
inorder use the original ones.
- SetBackgroundColour() now mimics SetOwnBackgroundColour's behaviour.
- Custom Controls: Mousewheel events now properly skipped (except for the popup).
Internal changes of note:
- Editor class system. Each property class got GetEditorClass method which is
automatically generated with DECLARE_PROPERTY_CLASS and IMPLEMENT_PROPERTY_CLASS
macros. IMPLEMENT_PROPERTY_CLASS now requires an extra argument which tells
the editor class type. Builtin class symbols are TextCtrl, Choice, TextCtrlAndButton,
and CheckBox.
- DoSetValue(value,ctrl) is now DoSetValue(value). Accordingly, setting value
to control must now be omitted from implementations of this method.
- DoSetValueFromString(value,ctrl,flags) is now DoSetValueFromString(value,flags)
- New wxPGProperty virtual method: GetImageSize. If property has custom image,
override this to return size of that.
Also, properties no longer have to set wxPG_PROP_CUSTOMIMAGE themselves.
- New wxPGProperty virtual method: SetAttribute. This is the future preferred
way to set specific property class values (for example, wxFloatProperty precision
and wxBoolProperty editor class type).
- New wxPGProperty virtual method: GetChoiceInfo. If property uses Choice editor
class (or something similar), and it doesn't inherit from a class that
already properly implements it (wxBoolProperty and wxEnumProperty do), it
must be overridden. See header and source files for details.
- New wxPGProperty virtual method: DoSetValueFromInt. Same rule of importance
as for GetChoiceInfo.
- Custom controls: wxCustomXXX renamed to wxCCustomXXX to mark them different
from potential wxWindow based "true" custom controls.
Bugs Fixed:
- Didn't compile in 2.5.2.
- Right click on image didn't necessarily produce a right click event.
- Properties derived from wxEnumProperty that used the same value type (long),
and didn't set valid index for value 0, caused crash in ClearPropertyValue
(wxCursorProperty, for example, suffered from this symptom).
- Settings window style flags to wxPropertyGridManager unintentionally
removed some flags used in the underlying wxPropertyGrid.
- wxGTK: Native editor controls were not repainted after collapse or expand.
- Native controls: In one occasion, mouse events detected position of editor
control incorrectly. Resulting was that, for example, right-click event
did not always occur as expected.
- Native controls: Right click didn't work on controls (now it works
that way in wxMSW).
Version 0.9.8 ( Dec-30-2004 )
New Features:
- EVT_PG_PAGE_CHANGED: Handles wxEVT_PG_PAGE_CHANGED type events which occur
when propertygridmanager page has changed. Use wxPropertyGridManager::GetSelectedPage
to obtain page that was switched to. This event always has invalid property
associated with it.
Name Changes:
- IsCategory -> IsPropertyCategory
- IsSelected -> IsPropertySelected
- IsExpanded -> IsPropertyExpanded
New Methods:
- SetPropertyValue(id/name,wxArrayInt): for wxMultiChoiceProperty.
- GetPropertyValueAsArrayInt(id/name): for wxMultiChoiceProperty.
- IsPropertyModified: new, proper name for IsModified (which may
be removed at some point).
- wxPropertyGridManager::SetDescBoxHeight: sets the height of the
description text box.
- wxPropertyGridManager::GetPageName: returns name/label of given page.
- IsAnyModified: returns TRUE if any property in grid/manager
was modified.
- wxPropertyGridManager::IsPageModified(index): returns TRUE
if any property on given page was modified.
- wxPropertyGridManager::GetSelectedProperty(): shortcut
for GetGrid->GetSelection().
Other Changes:
- wxCustomTextCtrl: HitTest further improved. Caret moved to the
empty space between characters.
- Added following methods, previously only available in wxPropertyGrid,
to wxPropertyGridManager as well: SetBoolChoices, Collapse, Expand,
GetNextSibling, GetPropertyCategory, IsPropertyCategory.
- wxPG_CLASSIC_SPACING moved to extra styles (it is now wxPG_EX_CLASSIC_SPACING).
- DoGetBestSize() now returns a much smaller area (still, right now I can't get it
to work as good as I want).
- wxPropertyGridManager's description text box no longer overlaps
with its minimum size wxPropertyGrid.
- Splitter is no longer automatically resized when only a scrollbar
(dis)appearance was detected.
- Method PropertyHasCategory removed (use GetPropertyParent and
IsPropertyCategory combination instead).
- Method PropertyHasSubProperties removed (use GetFirstChild and
IsPropertyCategory combination instead).
- Method IsSubProperty removed (use GetPropertyParent and
IsPropertyCategory combination instead).
- Height change treshold which triggers Refresh instead of RedrawAllVisible
changed to 100 (it was 10). This reduces flicker but should not reintroduce
graphics glitches due to some fixes in few previous releases.
- Added tests to sample application.
Internal changes of note:
- To fix things, bool value type's TypeName is now "long" to allow
assigning longs to it (no cast to bool necessary in SetPropertyValue).
Its CustomTypeName is still "bool" to allow auto-creating wxBoolProperty
instead of wxIntProperty for it.
- Custom controls: wxCustomXXXData classes renamed to wxCustomXXXHandler
(wxCustomXXXComponent would have been another appropriate name).
- wxCustomComboBox changed so that it allows any types of popups, not
just simple lists (90% complete, not documented in any manner yet).
- Added wxPG_IMPLEMENT_VALUE_TYPE_WXOBJ_OWNDEFAULT macro that holds
default value in itself, instead of returning a reference to a
value stored elsewhere.
Bugs Fixed:
- SetPropertyValue(id,bool) was missing.
- GetPropertyValueAsBool did not work.
- Const wxChar*'s get cast to void* instead of wxString ( there is now
an additional inline SetPropertyValue wrapper for that particular case).
- wxPG_EX_FLAT_TOOLBAR did not work.
- wxColourProperty's custom-to-listed translation did not always work.
- wxCustomTextCtrl: pressing HOME, END, LEFT or RIGHT when all selected did
not necessarily reset the selection.
- wxGetNextProperty did not go into child categories.
- Default value of wxFontDataProperty (in sample application) did not
work, causing ClearPropertyValue to crash (Vladimir Vainer).
- wxPGValueType was missing a virtual destructor.
- wxLongStringProperty's ExpandEscapeSequences and CreateEscapeSequences
did not check for zero-length string (Vladimir Vainer).
- Few stupid crashes in the sample.
Version 0.9.7 ( Dec-20-2004 )
New Features:
- wxMultiChoiceProperty: Property that embeds wxMultiChoiceDialog
as transparently as possible. Thus, strings are given as
wxArrayString and value as wxArrayInt.
Other Changes:
- wxPG_INIT_NOCAT moved to extra styles (it is now wxPG_EX_INIT_NOCAT).
- Added simple scrollbar detection code to SizeEvent handler resolve
few graphics glitches and fix a hack used with wxGTK.
- Description box got proper borders.
- wxColourProperty: When custom colour given as value, colour list
is examined, and if match is found, then that specific "labeled"
colour is selected instead. Note that right now this is not used in
wxSystemColourProperty.
- wxFileProperty: Searches for best default filter index when value is
given the first time.
- wxCustomChoice now handles mousewheel events.
- wxCustomTextCtrl: now handles events when dragging and mouse
cursor is outside the rect (which is correct behaviour).
- wxCustomTextCtrl: last visible character is now shown
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -