Commit Graph

534 Commits

Author SHA1 Message Date
Artur Wieczorek
cc575a7a89 Use in wxPG classes wxMilliClock_t variables to store values returned by wxGetLocalTimeMillis() function.
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).
2015-04-03 21:11:15 +02:00
Artur Wieczorek
6a7b95f419 Use predefined constants to represent common wxPG variant types (cont.).
Instead of using individual string literals use globally defined constants representing wxPG variant types (wxLongLong, wxULongLong, wxArrayInt, etc.).
2015-04-03 21:09:12 +02:00
Artur Wieczorek
d00c184ec8 Simplify declaration and definition of some wxPropertyGridInterface::GetPropertyValueAsXXX methods.
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.
2015-03-30 23:57:51 +02:00
Artur Wieczorek
4e7fbd4e92 Use predefined constants to represent wxPG variant types.
Instead of using individual string literals use globally defined constants representing wxPG variant types.
2015-03-29 21:42:58 +02:00
Artur Wieczorek
5353a00180 Use wxVariant::IsType() function to check the type of variant values in wxPG.
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.
2015-03-29 21:41:52 +02:00
Artur Wieczorek
fad1ec7ce8 Determine whether a new element is added to the list in wxPGArrayEditorDialog when its editing is started.
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.
2015-03-18 19:04:29 +01:00
Artur Wieczorek
2f239930eb Avoid consecutive calls of wxVariant::GetType() in the multiple-branch conditional statements.
This is a minor optimization since wxVariant::GetType() is not a simple inline getter method.
2015-02-28 16:37:07 +01:00
Bryan Petty
3fb1827c93 Merge pull request #19 from lanurmi/spelling-fix-occurrrrrrrr
Fix spelling of occur* in random files.
2015-02-27 12:06:28 -07:00
Artur Wieczorek
b5e0a16dfd Activate double-click processor only if wxPGComboBox editor is associated with wxBoolProperty.
Special handling of double-clicks (in wxPGDoubleClickProcessor) makes sense only for properties handling Boolean values (wxBoolProperty).
2015-02-26 19:18:06 +01:00
Lauri Nurmi
8a2ccd9cf7 Fix spelling of occur* in random files. 2015-02-21 20:01:23 +02:00
Artur Wieczorek
821f5da314 Suppress sending spurious wxEVT_PG_SELECTED events.
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
2015-02-18 17:13:52 +00:00
Artur Wieczorek
f7fc873ec7 wxEVT_PG_SELECTED event object generated when property is unselected should refer to the property being unselected.
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
2015-02-15 23:23:25 +00:00
Artur Wieczorek
44dc3e20df Prevent sending wxEVT_PG_LABEL_EDIT_ENDING events recursively.
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
2015-02-15 22:21:56 +00:00
Artur Wieczorek
35b53a8c30 Replace WX_PG_IMPLEMENT_PROPERTY_CLASS macro with simplified wxPG_IMPLEMENT_PROPERTY_CLASS macro.
New macro have no obsolete parameters and its name conforms to the naming standard (prefixed with wx).

Closes #15541

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78444 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-02-04 16:46:34 +00:00
Artur Wieczorek
1127820164 Encapsulate wxPGProperty::m_children member variable.
Implement RemoveChild and SortChildren methods to perform operations on m_children member variable.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78428 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-31 21:49:01 +00:00
Artur Wieczorek
da0f4ce29e Use getter methods to get access to wxPGProperty member variables.
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
2015-01-31 21:45:24 +00:00
Artur Wieczorek
9698181b45 Use getter/setter methods to get access to wxPGProperty::m_flags.
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
2015-01-31 21:42:17 +00:00
Artur Wieczorek
cafff4405a Use constant variables to store cached constants in wxPGGlobalVarsClass.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78405 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-22 17:32:48 +00:00
Artur Wieczorek
5788b4b3d9 Use polymorphism to differentiate behaviour of wxEnumProperty and wxEditEnumProperty.
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
2015-01-21 17:28:43 +00:00
Artur Wieczorek
1bac5cfbe0 Refactor property attribute names in wxPGProperty::GetAttribute calls.
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
2015-01-21 17:06:16 +00:00
Artur Wieczorek
3100258aa1 Refactor wxPGSpinCtrlEditor.
Declare and use attribute constant instead of explicit string "MotionSpin".


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78399 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-21 16:59:46 +00:00
Artur Wieczorek
42a1064ea8 Implement deprecated wxPGProperty::GetValueString function only in wxPG 1.4 compatibility mode.
This function was marked as deprecated in 2008.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78391 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-19 19:58:32 +00:00
Artur Wieczorek
752938cecd Fix a hack implemented in wxEnumProperty::ValueFromString_ and wxEnumProperty::ValueFromInt_ functions.
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
2015-01-19 17:22:29 +00:00
Artur Wieczorek
7a9ae4aecf Fix using WXWIN_COMPATIBILITY_3_0 in conditional blocks in wxPG code.
Check the value of WXWIN_COMPATIBILITY_3_0 instead of checking whether it is defined.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78369 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-13 16:41:33 +00:00
Artur Wieczorek
630b7fd5d7 Preserve alpha channel flag when rescaling bitmap in wxPGProperty::SetValueImage (when wxUSE_IMAGE == 0).
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
2015-01-12 20:37:34 +00:00
Artur Wieczorek
66e48fd84b Let system decide about required depth of rescaled bitmap in wxPGProperty::SetValueImage.
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
2015-01-12 20:32:14 +00:00
Artur Wieczorek
be9c92f6f2 Sanity check regarding DC in wxPropertyGrid::OnComboItemPaint
Ensure that wxDC used by drawing functions in wxPropertyGrid::OnComboItemPaint is valid.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78366 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-12 20:29:02 +00:00
Artur Wieczorek
a90597a355 Don't attempt to draw element-specific bitmap when drawing wxPGChoices element inside the control field of wxEnumProperty with wxPGComboBox.
The only bitmap which can be drawn in the control field is a "general" value bitmap (assigned to the property).

Closes #16781


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78365 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-12 20:23:58 +00:00
Artur Wieczorek
56edecab94 Optimize wxPGChoices::Add methods.
Remove unnecessary variables, limit the scope of variables and implement some sanity checks.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78344 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-03 15:20:19 +00:00
Artur Wieczorek
e622cc3f18 Delete wxDC object when exiting from wxPropertyGrid::OnPaint
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78333 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-01-02 16:15:52 +00:00
Artur Wieczorek
55da8a0f86 Pass outside wxPG a modified clone of wxEVT_TEXT event instead of hacking current event object.
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
2014-12-28 20:06:35 +00:00
Artur Wieczorek
1b0d09e5be Do not actually reconnect PG event handlers when attempting to reconnect them to the same window.
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
2014-12-27 11:30:45 +00:00
Artur Wieczorek
c7bc7b467a Remove unused member variable from wxSimpleCheckBox (used in wxPGCheckBoxEditor).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78269 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-12 22:58:10 +00:00
Artur Wieczorek
1a4921b45a Fix typo in a comment
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78268 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-12 22:56:44 +00:00
Artur Wieczorek
6ba0f3016b Use wxBufferedPaintDC to implement double buffering in wxPG.
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
2014-12-12 22:36:28 +00:00
Artur Wieczorek
de2f5898c4 Reconnect wxPropertyGridManager event handlers when wxPG id is changing.
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
2014-12-09 17:07:59 +00:00
Vadim Zeitlin
c671950f72 No real changes, just fix some typos in comments.
Closes #16699.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78215 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-03 17:18:17 +00:00
Artur Wieczorek
07371fcd56 Define wxPG toolbar event handler only if library is compiled with toolbar classes.
Include wxPropertyGridManager::OnToolbarClick() code only if wxUSE_TOOLBAR is set to 1.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78214 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-12-03 17:01:35 +00:00
Artur Wieczorek
922bef4df6 Restore wxPG toolbar buttons state if selecting wxPG page was unsuccessful.
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
2014-12-03 16:59:11 +00:00
Artur Wieczorek
7dc1ab1c76 Use wxCONTROL_FOCUSED control state flag when drawing native wxPG check box in the "modified state" under wxOSX.
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
2014-12-01 22:47:48 +00:00
Artur Wieczorek
8a25a6fb49 Add member function to retrieve wxBoolProperty attribute.
Added wxBoolProperty::DoGetAttribute virtual function.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78211 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-29 20:18:47 +00:00
Artur Wieczorek
29bf859fae Check if new index is in range before selecting new value in wxPGProperty::SetChoiceSelection.
Closes #16697

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78210 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-29 16:45:21 +00:00
Artur Wieczorek
f34f9d6708 Refresh wxPGProperty after changing its attribute.
Closes #16696

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78209 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-28 20:45:35 +00:00
Artur Wieczorek
161e8dcff2 Use Boolean variable to store Boolean values in wxPG.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78175 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-24 16:09:46 +00:00
Artur Wieczorek
1fd049988d Use a hash set instead of vector to hold dedicated keys in wxPG.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78173 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-24 16:04:53 +00:00
Artur Wieczorek
7170eca0f7 Allow using the letter 'E' (capital) as a symbol of exponent when entering floating point numbers.
Currently, only the letter 'e' is accepted when editing wxPG numeric properties.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78156 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-18 22:34:30 +00:00
Artur Wieczorek
460b24e486 Fix adjustment of columns width in response to splitter position change in wPG.
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
2014-11-18 16:34:16 +00:00
Artur Wieczorek
c6c08c9484 Make more realistic estimation of the best size of wxPropertyGridManager.
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
2014-11-15 17:39:34 +00:00
Artur Wieczorek
9c74163386 Fix setting initial size of wxPropertyGridManager.
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
2014-11-15 17:27:24 +00:00
Artur Wieczorek
c0e2e0c5d8 Fix adding/removing categorized/alphabetic mode buttons in wxPropertyGridManager.
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
2014-11-15 17:14:39 +00:00