wxMilliClock_t is always mapped to the proper base type and hence can be used even if wxLongLong type is not defined (when wxUSE_LONGLONG is disabled).
Instead of using individual string literals use globally defined constants representing wxPG variant types (wxLongLong, wxULongLong, wxArrayInt, etc.).
For IMPLEMENT_GET_VALUE macro which is used to implement specialized methods (for bool and double types) define additional parameter to provide explicitly corresponding wxPG type name. With this additional parameter it is not necessary to maintain a separate list of constants containing wxPG type names only for the purposes of this macro and globally defined literals can be used instead.
Since there is a dedicated function to check the type of variant then there is not necessary to call wxVariant::GetType() function and perform explicit comparisons of returned strings.
New element can be added to the list not only by clicking "New item" button but also by clicking under the last element of the list and we need to determine its index in both cases because it is used later on in wxPGArrayEditorDialog::OnEndLabelEdit event handler.
Closes#16905.
Don't send wxEVT_PG_SELECTED event when wxPG is ordered to unselect current property but no property is actually selected.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78519 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Currently, wxEVT_PG_SELECTED event object generated when property is unselected doesn't refer to the property being unselected (in fact it doesn't refer to any property; pointer to the property is NULL) and therefore it is not possible to determine unselected property or to check its state.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78503 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
By preventing sending wxEVT_PG_LABEL_EDIT_ENDING events recursively (recursive generation can happen due to the calling wxPropertyGrid::RefreshProperty() directly or indirectly from within wxEVT_PG_LABEL_EDIT_ENDING event handler) spurious events are not sent to the application and wxPropertyGrid::DoEndLabelEdit() function is not reentered.
Closes#16864.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78500 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Use GetValueImage() getter to get access to m_valueBitmap data member.
Use GetMaxLength() getter to get access to m_maxLen data member.
Use GetAttributes() getter to get access to m_attributes data member.
Use GetChoices() to get access to m_choices data member.
Use GetDepth() to get access to m_depth member variable.
Use GetBaseName() method to get access to m_name data member
Use GetLabel() method to get access to m_label member variable.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78427 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Use dedicated wxPGProperty::HasFlags, wxPGProperty::SetFlag methods to check or modify wxPGProperty::m_flags member variable.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78426 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Override OnSetValue(), StringToValue(), ValidateValue() methods instead of using RTTI in conditional statements to check if wxEditEnumProperty object is actually handled.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78403 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Use attribute constants instead of strings in wxPGProperty and wxPGDefaultRenderer classes and in NumericValidation() function.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78400 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxEnumProperty code is refactored in order to fix a hack which purpose was (apparently) to bypass constness of these functions by caching determined indices in wxEnumProperty::ms_nextIndex static member variable for further processing. (Unclear concept of using this static member was referred in http://trac.wxwidgets.org/ticket/12779#comment:9)
Now, determined index is returned to the caller and processed there if necessary and hence caching of this index is not necessary.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78390 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Rescaled bitmap must have the same alpha channel flag as the source bitmap flag in order to be properly displayed.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78368 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
There is not necessary to fix the color depth - everything is determined internally when converting wxImage to wxBitmap.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78367 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Using a clone of event (with PG id) instead of replacing id in the currently processed event coming from wxPGTextCtrlEditor seems to be less intrusive and safer action.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78328 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
When in wxPropertyGridManager::ReconnectEventHandlers() new window ID is the same as old window ID then there is no need to do anything with handlers. An assertion warning is displayed in this case to notify about this unusual (and maybe unintended) situation.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78321 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This also fixes drawing the PG when buffer is not available and there is necessary do draw directly on window DC.
wxPropertyGrid::DrawItems method is simplified and wxPropertyGrid::DoDrawItems method is reimplemented since its 3-rd argument (isBuffered) is unneeded anymore.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78266 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Because some event handlers are bound to the particular id's they need to be reconnected when wxPG id is the subject of change.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78259 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Toolbar button corresponding to the unsuccessfully selected page should be released and button corresponding to the old page should be pressed again.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78213 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Generally, wxCONTROL_PRESSED control flag is used when drawing native check box (wxPGEditor_CheckBox) in "modified state" but under wxOSX this flag is equivalent to wxCONTROL_CHECKED flag and hence it is necessary to indicate this state in an alternative way.
Closes#16696
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78212 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
In wxPropertyGridPageState::PropagateColSizeDec recursion is replaced with iteration and there is handled PG with more then 2 columns.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78154 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Current best size (especially width) of wxPropertyGrid Manager is too small. wxPG manager should be wide enough to hold wxPG with two columns and scroll bar.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78151 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
wxPG manager is now created with proper size (based on its best size) even if default size is requested. (r78149 is a prerequisite for this patch.)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78150 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Modify wxPropertyGridManager::RecreateControls() to allow adding/removing categorized/alphabetic mode buttons to/from wxPG manager tool bar at any time (not only when creating the tool bar).
Modify wxPropertyGridManager::SetExtraStyle() to fully support manipulating these buttons via wxPG_EX_MODE_BUTTONS flag.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78149 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775