Commit Graph

120 Commits

Author SHA1 Message Date
Artur Wieczorek
8e726db667 Use dedicated function to check if wxPropertyGridPageState object is now displayed
There is implemented IsDisplayed() function to check whether wxPropertyGrid current state refers to this state.
2019-05-12 20:24:52 +02:00
Artur Wieczorek
92d2be5842 Resolve ambiguity in calling overloaded wxPropertyGrid::SendEvent()
The right overloaded SendEvent() function can be determined by explicitly
casting second argument of the call to (wxPGProperty*) type.
2019-04-28 18:34:36 +02:00
Artur Wieczorek
9df9e32a70 Get rid of unnecessary casts to wxPGProperty*
These casts are unnecessary and can be removed.
2019-04-28 17:04:07 +02:00
Artur Wieczorek
f39e70be15 Use dedicated event type to notify header about column width changes
Notification about changes of column widths needs to be sent locally from wxPropertyGrid to  wxPropertyGridManager (to update the header) so it would be good to use a dedicated non-public event type for these purposes.
2019-04-28 15:31:10 +02:00
Artur Wieczorek
9b7c281e6b Move repeating code to the dedicated template wxVector function 2018-12-27 14:25:00 +01:00
Artur Wieczorek
7d43ed0fb6 Iterate over all items of wxVector with column proportions with iterator 2018-12-27 14:23:54 +01:00
Artur Wieczorek
5366a1dfbb Iterate over all items of wxVector with column widths with iterator 2018-12-26 11:35:19 +01:00
Artur Wieczorek
b3563b690c Access last element of wxVector with dedicated method
Use reference returned by back() method instead of referencing by the index of the last element.
2018-12-26 11:34:26 +01:00
Artur Wieczorek
7f29ab97df Optimize calculating column widths
Use iterative algorithm instead of recursive one to adjust column widths.
2018-12-26 11:33:10 +01:00
Artur Wieczorek
c86f795914 Move shared wxVector utilities to one place 2018-11-10 22:27:57 +01:00
Artur Wieczorek
e2115d0d6f Remove unneeded calls to c_str() 2018-11-10 20:44:54 +01:00
Artur Wieczorek
63c602c3d2 Explicitly declare iterators in the function templates 2018-11-02 12:10:22 +01:00
Artur Wieczorek
161bb592ce Use wxVector<int> instead of wxArrayInt 2018-11-01 18:22:22 +01:00
Artur Wieczorek
e7357eafa2 Declare array explicitly as a wxVector instead of using wxArrayPGProperty alias 2018-11-01 18:19:56 +01:00
pavel-t
2171076e81 Avoid pointer overflow warning in wxPropertyGridPageState::DoRemoveFromSelection()
Looks like gcc8.1 think 'sel' can be empty after initialization. Avoid this by copying only the remaining entries.
2018-07-12 11:18:01 +03:00
Artur Wieczorek
e0f5b49a07 Fixed searching the elements in wxArrayPGProperty.
Use dedicated Index() function to search elements in wxArray instead of calling custom function.
2015-07-20 21:50:30 +02:00
Artur Wieczorek
8e2f1b47aa Use wxS macro with string literals.
To make string literals notation consistent.
2015-06-12 23:39:00 +02:00
Artur Wieczorek
aeed3322f2 Fixed minor typos in comments. 2015-06-08 21:49:38 +02:00
Artur Wieczorek
06013ea36f Reduce the scope of variables using to index single loop only.
And adjust their types if necessary.
2015-06-06 17:55:39 +02:00
Artur Wieczorek
67bfb78ace Replace wxT() with wxS() in wxPropertyGrid code. 2015-05-31 19:20:11 +02:00
Artur Wieczorek
0508087ce2 Reduce the scope of variables using to indexing single loop only.
And adjust their types if necessary (to have uniform types in the test expression).
2015-05-28 19:39:14 +02:00
Artur Wieczorek
01cf62684c Use wxPGProperty::GetDepth() getter.
Use it instead of getting direct access to the corresponding member variable.
2015-05-27 21:15:28 +02:00
Artur Wieczorek
b3ad8dae84 Use empty() member function to determine if arrays are empty in wxPG.
Use this dedicated function instead of checking if size() function returns zero/non-zero value.
2015-05-24 20:36:44 +02:00
Artur Wieczorek
c79232b5e7 Use getter functions to get access to some properties of wxPropertyGrid.
Use existing GetFontHeight(), GetRowHeight(), GetCaptionFont(), GetMarginWidth(), HasFlag(), GetParent() functions instead of getting direct access to corresponding member variables.
2015-05-23 18:30:22 +02:00
Artur Wieczorek
b6ab81584f Deprecate wxPGProperty::GetFlags() getter method.
Instead of using pass-trough getter just to check the bits of internal field there are implemented dedicated HasFlag() and HasFlagsExact() methods to do so.
2015-05-16 17:17:14 +02:00
Artur Wieczorek
4b8e8adf16 Use wxString::empty() function calls to determine if string is empty in wxPG.
Use this dedicated function instead of explicitly check if wxString::length() returns non-zero value.
2015-05-15 22:34:25 +02:00
Artur Wieczorek
aa495f9389 Fix inserting child properties into the parent composed property (in wxPropertyGridPageState::DoInsert).
When new sub-property is added and the parent property is a container of composed values then its editor (if exists) need to be refreshed to reflect the new composed value.

Closes #16982.
2015-05-14 15:38:05 +02:00
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
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
Lauri Nurmi
8a2ccd9cf7 Fix spelling of occur* in random files. 2015-02-21 20:01:23 +02: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
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
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
cbb28b1f4d Reset current category marker if deleted wxPG property is a category property.
If deleted category or its sub-category is a current category then reset current category marker.

See #16617.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78112 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-10 16:46:16 +00:00
Artur Wieczorek
54c7eb3c56 Invalidate wxPG property and its sub-properties names prior deferred deletion.
If deleted property is a category property then all its sub-properties have to be renamed prior deleting.

See #16617.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78111 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-10 16:41:07 +00:00
Artur Wieczorek
774a58ff20 Use Boolean variable to store Boolean values.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78104 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-08 18:12:53 +00:00
Artur Wieczorek
d6e23dd99b Do not mark selected wxPG property as 'being deleted'.
Only unselected wxPG property can be marked as 'being deleted'.
If this is done for selected wxGP property then in some circumstances it cannot be unselected and hence cannot be safely deleted.

See #16617.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78091 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-04 19:23:01 +00:00
Artur Wieczorek
8a971c12ad Fix deleting wxPG properties with sub-properties.
If property contains sub-properties they should be deselected prior deleting the property.

See #16617.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78083 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-10-31 16:04:44 +00:00
Artur Wieczorek
fd9d67e9f4 Get wxPGProperty items to be deleted with deferral directly from the corresponding internal list of items.
Don't use iterator to collect wxPGProperty items in wxPropertyGridPageState::DoClear().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78069 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-10-25 12:35:14 +00:00
Artur Wieczorek
633b49ef6e Prevent renaming already renamed wxPG property waiting for deferred deletion.
Name of the property to be deleted with delay is changed to the some meaningless name in order to avoid conflict with other active properties.
It is enough to do this only once.

See #16617

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78029 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-10-16 22:33:33 +00:00
Artur Wieczorek
b10b027423 Fix clearing wxPG
Properties deleted immediately in wxPropertyGridPageState::DoClear() should be first removed from the lists of pending deletions.

Closes #16617

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78014 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-10-13 07:19:58 +00:00
Artur Wieczorek
89364e95b9 In wxPropertyGridPageState use Boolean member variables to store Boolean values.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77888 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-09-25 17:29:50 +00:00
Artur Wieczorek
7e859ec6c9 Fix drawing custom colours for wxEnumProperty choice items in wxPG.
In order to draw choice items with custom colours there is necessary to merge custom cell object (wxPGCell) associated with individual item with default cell object (in wxPGProperty::GetDisplayInfo).
wxPGProperty::GetDisplayInfo function should return customized cell object instead of returning pointer to the default cell object only.

Closes #16509

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77505 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-29 21:17:16 +00:00
Artur Wieczorek
1cef1d91e5 Fix deleting (from within wxPG event handler) properties not belonging to the current PG page.
Currently, it is not possible to remove properties from the page other then currently selected.
The scope of iterator used in wxPropertyGridPageState::DoClear() to enumerate properties must be limited to the required page and not always to the selected one.

Closes #16459

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77486 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-26 22:58:39 +00:00
Artur Wieczorek
1443209219 Fix deleting aggregate properties from within wxPG event handler.
Do not explicitly remove sub-properties of aggregate property because they will be removed automatically in their parent property dtor.

See #16459

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77485 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-26 22:54:01 +00:00
Artur Wieczorek
1a2983d433 Resolve ambiguity in multiple inheritance of function GetPropertyByLabel in wxPGPage.
In wxPropertyGridPage class derived from wxPropertyGridPageState and wxPropertyGridInterface, function GetPropertyByLabel is inherited from both base classes.
To resolve this ambiguity, function defined in wxPGInterface is introduced in wxPGPage through 'using-declaration'.
(This is a temporary fix and finally GetPropertyByLabel function should be removed from wxPropertyGridPageState.)

See #15251.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76925 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-07-14 17:18:58 +00:00
Artur Wieczorek
0228d578ee Allow clearing wxPG from within wxPG event handlers.
If wxPG::Clear is called from within event handler then it is not possible to delete all property items directly because some vital internal wxPG data are still in use. In this case it is necessary to put all items on the list for deferred deletion in wxPG idle state.

Closes #16222.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76890 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-07-11 17:25:39 +00:00
Artur Wieczorek
c16808c380 Adjust list of items for deferred deletion/removal if wxPG property item is actually deleted/removed.
When property is actually deleted/removed it must be also removed from the respective list of items for deferred deletion/removal in order to avoid crashes when it would be attempted to delete/remove it again at next wxPG idle state.
Because lists of items for deferred operations can be updated at every actual deletion/removal it is necessary to rearrange iteration through these lists in wxPG::OnIdle.

See #16222.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76889 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-07-11 17:01:28 +00:00