Commit Graph

191 Commits

Author SHA1 Message Date
Artur Wieczorek
e772cb1907 Use NULL literal to represent null pointer 2022-05-21 22:08:35 +02:00
Artur Wieczorek
547afc66c4 Pass large object by a const reference 2022-05-21 22:03:08 +02:00
Artur Wieczorek
1c292cfe2c Initialize data members in initialization lists 2022-05-21 22:01:58 +02:00
Artur Wieczorek
2ee8751c46 Use size_t type for index value 2022-01-30 19:27:38 +01:00
Artur Wieczorek
0906e820d9 Use size_t type for index value 2022-01-30 17:29:25 +01:00
Artur Wieczorek
87394856f5 Use wxBitmapBundle in wxPropertyGrid 2021-11-19 17:52:56 +01:00
PB
f57f214122 Remove BCC-specific hdrstop pragma from everywhere 2020-10-12 21:58:37 +02:00
Artur Wieczorek
f938402dd0 Use conditional operator instead of conditional statement 2020-05-01 19:38:52 +02:00
Artur Wieczorek
b9ebffd832 Set also wxPGEditor items while changing wxPGProperty choices
If we replace current set of choices when editor is active
we need also replace editor items.

Closes #18741.
2020-05-01 19:35:29 +02:00
Artur Wieczorek
eec0fd271f Don't display cell image if wxPGProperty image exists 2020-04-13 19:47:54 +02:00
Artur Wieczorek
f31b9b27f4 Rescale wxPGProperty bitmap while drawing
Property bitmap should be stored in its original size and rescaling
to the required size should be done only while drawing the property.
This way bitmap size will always fit to the actual wxPG line height.
2020-04-13 19:47:47 +02:00
Artur Wieczorek
b039ff1822 Adjust bitmap size to the wxPropertyGrid cell size
Bitmap inserted into the wxPG cell should be automatically rescaled while
drawing to let us using bitmaps of any size.
2020-04-13 19:47:37 +02:00
Artur Wieczorek
c4f5fd3581 Move duplicated code to rescale the bitmap to the shared function 2020-04-10 20:45:34 +02:00
Artur Wieczorek
125d2fe90e Use dedicated function to check if wxPGProperty is of category type
We have a dedicated function for this purpose so there is no need to check
the flag directly.
2020-01-23 19:46:59 +01:00
Artur Wieczorek
9ac6c7906a Use conditional operators to simplify statements 2020-01-23 19:45:51 +01:00
Artur Wieczorek
750f3cb783 Return invalid wxPGCell on attempt to get a cell for unattached wxPGProperty
This is to avoid crash if GetCell() would be called for wxPGProperty
not currently attached to a wxPropertyGrid.
2020-01-23 19:42:37 +01:00
Artur Wieczorek
a5d9fe2931 Improve parameter validation in wxPGProperty
Replace wxASSERT_MSG with wxCHECK_MSG to simplify checking that we
don't crash even if wxPGProperty is not attached to a wxPropertyGrid.
2020-01-23 19:41:39 +01:00
Artur Wieczorek
590547b87e Directly check value of wxPG_USE_RENDERER_NATIVE macro
We can check wxPG_USE_RENDERER_NATIVE macro value directly and hence there
is no need to introduce and check a helper macro
wxPG_USE_NATIVE_FOCUS_RECT_RENDERER.
2020-01-23 19:40:02 +01:00
Artur Wieczorek
ce4eaab20a Don't use wxINVERT mode in drawing focus rectangle for wxPGProperty
wxPGProperty of category type is drawn every time (with or without focus
rectangle) on the clear background so there is no need to erase focus
rectangle by overdrawing it in wxINVERT mode. It can be safely drawn in
wxCOPY mode.

See #16890.
2020-01-23 19:29:43 +01:00
Maarten Bent
05e0fad687 Resolve some recently introduced warnings 2019-10-13 08:34:30 -07:00
Artur Wieczorek
488582b04e Avoid unnecessary casting in the comparison
Use variable of the same type as is returned by the function to avoid casting.
2019-10-02 00:09:34 +02:00
Paul Cornett
b200c661ed Fix wxPropertyGrid headers so they can be compiled independently
See #18465
2019-08-15 17:27:07 -07:00
Artur Wieczorek
eca1e857fe Remove unnecessary headers from wxPropertyGrid files
Currently there are included plenty of headers which are apparently not necessary.
2019-08-04 20:20:48 +02:00
Artur Wieczorek
f4e37e57e4 Get rid of unnecessary const casts
A pointer to unqualified type are converted implicitly to a more cv-qualified type.
2019-06-16 19:50:57 +02:00
Artur Wieczorek
b064608c2a Use const_cast to change the constness 2019-06-16 19:50:08 +02:00
Artur Wieczorek
98c1b057e8 Use standard wxVariant instead of wxPropertyGrid-specific WXVARIANT
There is no need to use WXVARIANT for data types directly supported by wxVariant.
2019-06-16 19:46:44 +02:00
Artur Wieczorek
908342e3ad Code cleanup: Define wxPGProperty and wxPropertyGridPageState functions in their own class files
Having definitions of several wxPGProperty and wxPropertyGridPageState functions in wxPropertyGrid header is misleading so they should be moved to the files with their own classes definitions for the sake of clarity.
2019-05-26 18:12:31 +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
d06d403136 Replace 'while' loop with 'for' loop for simple iterations
Using 'for' loop to do a simple iteration is more intuitive and makes the code simpler.
2019-04-28 16:48:32 +02:00
Artur Wieczorek
50b1cfd0b5 Use dedicated function to change wxPGProperty flags
Using wxPGProperty::ChangeFlag() function makes the code simpler and more readable.
2019-04-28 16:38:48 +02:00
Artur Wieczorek
bd313b64ab Fix copying wxPGAttributeStorage
We need implement copy ctor and assignment operator because we are going to do a shallow copy of wxPGHashMapS2P data member and therefore we have to manually update reference counters of the objects being referenced in this map.
2019-04-28 16:35:11 +02:00
Artur Wieczorek
285bedc5e5 Always redraw wxPGProperty after changing its attribute
Because changing some attributes of the property affects the format
of displayed value so the property has to be refreshed whether its
attribute is set through wxPGProperty::SetAttribute()
or wxPropertyGridInterface::SetPropertyAttribute().

Closes #18388.
2019-04-19 22:23:34 +02:00
Artur Wieczorek
b569a429a2 Remove unnecessary position check
Horizontally scrolled item can have a negative x-position.
2018-12-28 14:02:04 +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
322d6874c3 Use wxVector<> instead of wxArrayPGProperty 2018-11-10 20:43:58 +01:00
Artur Wieczorek
7a7777cb4a Fix wxPGProperty::GetMainParent() function
Traversing upwards in the tree should be stopped when parent is root or category property.
2018-10-13 23:33:26 +02:00
Vadim Zeitlin
96ecfd8c77 Provide wxPGChoices ctor, Add(), Set() overloads taking wxStrings
Allow passing an array of wxStrings in addition to an array of wxChar*
strings.
2018-09-29 17:13:00 +02:00
Artur Wieczorek
31ab9d8f3f Make pointer to wxWindow a const argument.
State of referenced window is not going to be changed and let caller know about it.
2016-03-06 21:26:14 +01:00
Artur Wieczorek
ff788f05bb Move duplicated code to the shared function.
Code to calculate label width in wxPropertyCategory::GetTextExtent and CalculateTextExtent is duplicated.
2016-03-06 21:21:19 +01:00
Paul Cornett
01ccff2e05 Avoid comparing address of reference to NULL
As GCC 6 points out, the compiler is free to assume a reference is never
null, and remove such a check
2016-02-26 10:06:26 -08:00
Artur Wieczorek
3cc8b4ae37 wxBitmap::UseAlpha can be used only on wxMSW and wxOSX.
This method is not implemented on all ports.
2016-02-25 22:56:47 +01:00
Artur Wieczorek
c63b1604b3 Use native renderer to draw rectangle indicating that wxPG category property is selected.
Because on some ports native renderers require a valid reference to the windows be drawn then it is necessary to implement and use new wxPGCellRenderer::DrawCaptionSelectionRect method which passes this  additional argument.
2015-08-30 19:46:34 +02:00
Artur Wieczorek
7ce6cff5ab Extend functionality of wxPropertyGridInterface::SetPropertyColoursToDefault method.
SetPropertyTextColour, SetPropertyBackgroundColour methods are able to set colours recursively for sub-properties but SetPropertyColoursToDefault method is not.
For the sake of consistency, SetPropertyColoursToDefault method is extended to have the same capabilities as SetPropertyTextColour and SetPropertyBackgroundColour. Behaviour and signature in default case (no recursion) is preserved.
For internal purposes there were also implemented helper methods in wxPGProperty class: SetDefaultColours, ClearCells.
2015-08-27 19:14:52 +02: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
79794391e9 Declare wxPG_DEFAULT_IMAGE_SIZE as wxDefaultSize constant.
wxDefaultSize is an equivalent of wxSize(-1,-1) but is more portable.
2015-07-15 21:45:27 +02:00
Artur Wieczorek
4398e20655 Use wxDefaultCoord instead of explicit -1 value while initializing wxSize and wxPoint variables. 2015-07-15 21:45:08 +02:00
Artur Wieczorek
7d77168936 Refactor: Use dedicated methods to manipulate wxRect members. 2015-07-07 21:56:17 +02:00
Artur Wieczorek
9e77932278 Use wxBitmap::GetSize() to obtain size of the wxBitmap.
When assigning wxBitmap size to wxSize variable there is not necessary to assign bitmap width and height separately.
2015-07-06 22:13:23 +02:00
Artur Wieczorek
87f0b6fe80 Fix and refactor wxString wxPGProperty::GetFlagsAsString and SetFlagsAsString.
Fixes the bug which could be observed if string containing more then one flag entry was provided to wxPGProperty::SetFlagsFromString. In this case property flags were not set properly (were not set all) due to the error in splitting the string into tokens (whole string instead of its individual token was taken to compare).
Lookup table used to map between flag values and their names is redesigned in order to reduce the size and to make indexing simpler. There are no longer NULL entries in the table and every flag name is identified explicitly by the corresponding flag value and not by the index of the name entry in the table. Thanks to this the relation between flag value and flag name is more clear and the loops in wxPGProperty::GetFlagsAsString/SetFlagsAsString can be simplified.
2015-06-14 17:07:24 +02:00